From: Kazuki Maeda Date: Sun, 4 Dec 2011 23:43:12 +0000 (+0900) Subject: Add tools to dump luatexja.fmt (work in progress). X-Git-Url: http://git.osdn.jp/view?a=commitdiff_plain;h=refs%2Fheads%2Fkmaeda-fmt;p=luatex-ja%2Fluatexja.git Add tools to dump luatexja.fmt (work in progress). --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e01d227 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +*.log +*.aux +*.toc +*.out +*.tmp +*~ diff --git a/config/ltjfmtutil.cnf b/config/ltjfmtutil.cnf new file mode 100644 index 0000000..8ff805a --- /dev/null +++ b/config/ltjfmtutil.cnf @@ -0,0 +1,8 @@ +# +# ltjfmtutil.cnf +# +# Run: fmtutil --cnffile ltjfmtutil.cnf --all +# + +luatexja luatex language.def,language.dat.lua luatexja.ini +lualatexja luatex language.def,language.dat.lua lualatexja.ini diff --git a/config/luadump.lua b/config/luadump.lua new file mode 100644 index 0000000..840376e --- /dev/null +++ b/config/luadump.lua @@ -0,0 +1,46 @@ +-- +-- luadump.lua +-- + +-- ToDo: initex 時の dofile(), loadfile() の hack +-- restore 時の require(), dofile(), loadfile() の hack +-- 読み込み済みファイルリストの作成. + +module('luadump', package.seeall) + +local require = _G.require + +function require_and_register(modname) + local ret = require(modname) + + local modfilename = string.gsub(modname, '[.]', '/') .. '.lua' + local modfilepath = kpse.find_file(modfilename) + if modfilepath then + lua.bytecode[bytecode_index] = loadfile(modfilepath) + bytecode_index = bytecode_index + 1 + end + + return ret +end + +function init() + bytecode_index = 1 + _G.require = require_and_register +end + +function finalize() + _G.require = require +end + +function restore() + local write_nl = texio.write_nl + texio.write_nl = function() end + local i = 1 + while lua.bytecode[i] do + print(i) + lua.bytecode[i]() + lua.bytecode[i] = nil + i = i + 1 + end + texio.write_nl = write_nl +end \ No newline at end of file diff --git a/config/luadump.tex b/config/luadump.tex new file mode 100644 index 0000000..31ce8c6 --- /dev/null +++ b/config/luadump.tex @@ -0,0 +1,37 @@ +% +% luadump.tex +% + +\catcode`@=11 + +\directlua{require('luadump')} + +\let\luadump@directlua@orig\directlua + +\long\def\luadump@directlua#1{% + \luadump@directlua@orig{ + #1 + lua.bytecode[luadump.bytecode_index] = function() + #1 + end + luadump.bytecode_index = luadump.bytecode_index + 1 + }% +} + +\def\luadump@init{% + \directlua{luadump.init()} + \let\directlua\luadump@directlua +} + +\def\luadump@finalize{% + \let\directlua\luadump@directlua@orig + \let\luadump@directlua\undefined + \let\luadump@directlua@orig\undefined + \let\luadump@init\undefined + \let\luadump@finalize\undefined + \directlua{luadump.finalize()} + \everyjob{\directlua{require('luadump'); luadump.restore()}} + \catcode`@=12 +} + +\endinput diff --git a/config/luatexja.ini b/config/luatexja.ini new file mode 100644 index 0000000..a9e448d --- /dev/null +++ b/config/luatexja.ini @@ -0,0 +1,22 @@ +% +% luatexja.ini +% + +\let\DUMP\dump +\let\dump\relax + +% from luatex.ini +\input luatexiniconfig.tex +\input luatex-unicode-letters.tex +\input pdftexconfig.tex +\input etex.ini + +\input luadump.tex +\luadump@init +\input luatexja.sty +\luadump@finalize + +\let\dump\DUMP +\let\DUMP\undefined + +\dump