debug/squish.debug.lua

Tue, 27 Nov 2012 08:25:18 -0800

author
Matthew Wild <mwild1@gmail.com>
date
Tue, 27 Nov 2012 08:25:18 -0800
changeset 86
2322f7932064
parent 34
0e34461ab2a6
permissions
-rw-r--r--

Remove shebangs from modules, if any (thanks Markus Stenberg)


local cs = require "minichunkspy"

local function ___adjust_chunk(chunk, newname, lineshift)
	local c = cs.disassemble(string.dump(chunk));
	c.body.name = newname;

	lineshift = -c.body.line;
	local function shiftlines(c)
		c.line = c.line + lineshift;
		c.last_line = c.last_line + lineshift;
		for i, line in ipairs(c.source_lines) do
			c.source_lines[i] = line+lineshift;
		end
		for i, f in ipairs(c.prototypes) do
			shiftlines(f);
		end
	end
	shiftlines(c.body);

	return assert(loadstring(cs.assemble(c), newname))();
end

mercurial