diff options
author | Karl Berry <karl@freefriends.org> | 2012-12-10 01:31:19 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-12-10 01:31:19 +0000 |
commit | eb3f5f9a64a4553a16273f9ff5cfe99d10f27dd8 (patch) | |
tree | 5e47c27e88cdb655ee7fefcf919ab531e8a4b757 /Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua | |
parent | 64b7e39503022a8c0ce58857cea7f25d57369757 (diff) |
luatexja (9dec12)
git-svn-id: svn://tug.org/texlive/trunk@28482 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua')
-rw-r--r-- | Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua index c7f52c93fb6..de985d59175 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua @@ -17,7 +17,9 @@ local id_whatsit = node.id('whatsit') local sid_user = node.subtype('user_defined') local hmode = 118 -- in luatexref-t.pdf, this must be 127 -local charprop_stack_table={}; charprop_stack_table[0]={} +charprop_stack_table={}; +local charprop_stack_table = charprop_stack_table +charprop_stack_table[0]={} -- modified from table.fastcopy local next = next @@ -96,14 +98,14 @@ function set_stack_table(g,m,c,p,lb,ub) "(-1 is used for denoting `math boundary')\n" .. 'So I changed this one to zero.') c=0 - elseif not charprop_stack_table[i][m] then - charprop_stack_table[i][m] = {} + elseif not charprop_stack_table[i][c] then + charprop_stack_table[i][c] = {} end - charprop_stack_table[i][m][c] = p + charprop_stack_table[i][c][m] = p if g=='global' then for j,v in pairs(charprop_stack_table) do - if not charprop_stack_table[j][m] then charprop_stack_table[j][m] = {} end - charprop_stack_table[j][m][c] = p + if not charprop_stack_table[j][c] then charprop_stack_table[j][c] = {} end + charprop_stack_table[j][c][m] = p end end end @@ -117,14 +119,14 @@ function set_stack_font(g,m,c,p) "The family number should in the range 0 .. 255.\n" .. "I'm going to use 0 instead of that illegal family number.") c=0 - elseif not charprop_stack_table[i][m] then - charprop_stack_table[i][m] = {} + elseif not charprop_stack_table[i][c] then + charprop_stack_table[i][c] = {} end - charprop_stack_table[i][m][c] = p + charprop_stack_table[i][c][m] = p if g=='global' then for j,v in pairs(charprop_stack_table) do - if not charprop_stack_table[j][m] then charprop_stack_table[j][m] = {} end - charprop_stack_table[j][m][c] = p + if not charprop_stack_table[j][c] then charprop_stack_table[j][c] = {} end + charprop_stack_table[j][c][m] = p end end end @@ -163,8 +165,13 @@ function fast_get_skip_table(m) or { width = 0, stretch = 0, shrink = 0, stretch_order = 0, shrink_order = 0 } end function fast_get_penalty_table(m,c) - local i = table_current_stack[m] - return (i and i[c]) + local i = table_current_stack[c] + return (i and i[m]) +end + +local empty_table = {} +function fast_get_penalty_table_parent(c) + return table_current_stack[c] or empty_table end -- For other situations, use the following instead: @@ -173,8 +180,8 @@ function get_skip_table(m, idx) or { width = 0, stretch = 0, shrink = 0, stretch_order = 0, shrink_order = 0 } end function get_penalty_table(m,c,d, idx) - local i = charprop_stack_table[idx][m] - return (i and i[c]) or d + local i = charprop_stack_table[idx][c] + return (i and i[m]) or d end |