X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=src%2Fluatexja.lua;h=1aa5c89c80643c5705cbf494d4c6e3649db612ca;hb=80bbcf52bf096105cf1797a4422a38d400b3fa05;hp=7b608d50df4e6f7ac265e931612cbba5d4085cd3;hpb=3e504e019a4383595fef1f479625c6c3e5c46928;p=luatex-ja%2Fluatexja.git diff --git a/src/luatexja.lua b/src/luatexja.lua index 7b608d5..1aa5c89 100644 --- a/src/luatexja.lua +++ b/src/luatexja.lua @@ -86,6 +86,7 @@ local XKANJI_SKIP = 7 local PROCESSED = 8 local IC_PROCESSED = 9 local BOXBDD = 15 +local PROCESSED_BEGIN_FLAG = 16 -- Three aux. functions, bollowed from tex.web @@ -120,7 +121,7 @@ local function print_glue(d,order) return out end -local function print_spec(p) +function print_spec(p) local out=print_scaled(p.width)..'pt' if p.stretch~=0 then out=out..' plus '..print_glue(p.stretch,p.stretch_order) @@ -131,8 +132,6 @@ local function print_spec(p) return out end -function math.two_add(a,b) return a+b end -function math.two_average(a,b) return (a+b)/2 end ---- table: charprop_stack_table [stack_level].{pre|post|xsp}[chr_code] @@ -181,14 +180,15 @@ function luatexja.ext_get_parameter_binary(k,c) c=0 end if k == 'jacharrange' then - if c<0 or c>216 then + if c>216 then ltjb.package_error('luatexja', 'invalid character range number (' .. c .. ')', 'A character range number should be in the range 0..216,\n'.. 'So I changed this one to zero.') c=0 end - tex.write(ltjc.get_range_setting(c)) + -- 負の値は 0x10FFFF then ltjb.package_error('luatexja', @@ -214,7 +214,7 @@ end -- EXT: print \global if necessary function luatexja.ext_print_global() - if isglobal=='global' then tex.sprint(cat_lp, '\\global') end + if luatexja.isglobal=='global' then tex.sprint(cat_lp, '\\global') end end -- main process @@ -242,16 +242,20 @@ luatexbase.add_to_callback('hpack_filter', 'luaotfload.hpack_filter') + 1) -- debug +local function get_attr_icflag(p) + return (has_attr(p, attr_icflag) or 0) % PROCESSED_BEGIN_FLAG +end + local debug_depth local function debug_show_node_X(p,print_fn) local k = debug_depth local s local pt=node_type(p.id) - local base = debug_depth .. string.format('%X', has_attr(p,attr_icflag) or 0) - .. ' ' .. tostring(p) + local base = debug_depth .. string.format('%X', get_attr_icflag(p)) + .. ' ' .. pt .. ' ' .. tostring(p.subtype) .. ' ' if pt == 'glyph' then - s = base .. ' ' .. utf.char(p.char) .. ' ' .. tostring(p.font) + s = base .. ' ' .. utf.char(p.char) .. ' ' .. tostring(p.font) .. ' (' .. print_scaled(p.height) .. '+' .. print_scaled(p.depth) .. ')x' .. print_scaled(p.width) print_fn(s) @@ -272,7 +276,7 @@ local function debug_show_node_X(p,print_fn) for i = 2, p.glue_order do s = s .. 'l' end end end - if has_attr(p, attr_icflag, PACKED) then + if get_attr_icflag(p) == PACKED then s = s .. ' (packed)' end print_fn(s) @@ -284,11 +288,11 @@ local function debug_show_node_X(p,print_fn) debug_depth=k elseif pt == 'glue' then s = base .. ' ' .. print_spec(p.spec) - if has_attr(p, attr_icflag)==FROM_JFM then + if get_attr_icflag(p)==FROM_JFM then s = s .. ' (from JFM)' - elseif has_attr(p, attr_icflag)==KANJI_SKIP then + elseif get_attr_icflag(p)==KANJI_SKIP then s = s .. ' (kanjiskip)' - elseif has_attr(p, attr_icflag)==XKANJI_SKIP then + elseif get_attr_icflag(p)==XKANJI_SKIP then s = s .. ' (xkanjiskip)' end print_fn(s) @@ -296,19 +300,19 @@ local function debug_show_node_X(p,print_fn) s = base .. ' ' .. print_scaled(p.kern) .. 'pt' if p.subtype==2 then s = s .. ' (for accent)' - elseif has_attr(p, attr_icflag)==IC_PROCESSED then + elseif get_attr_icflag(p)==IC_PROCESSED then s = s .. ' (italic correction)' - -- elseif has_attr(p, attr_icflag)==ITALIC then + -- elseif get_attr_icflag(p)==ITALIC then -- s = s .. ' (italic correction)' - elseif has_attr(p, attr_icflag)==FROM_JFM then + elseif get_attr_icflag(p)==FROM_JFM then s = s .. ' (from JFM)' - elseif has_attr(p, attr_icflag)==LINE_END then + elseif get_attr_icflag(p)==LINE_END then s = s .. " (from 'lineend' in JFM)" end print_fn(s) elseif pt == 'penalty' then s = base .. ' ' .. tostring(p.penalty) - if has_attr(p, attr_icflag)==KINSOKU then + if get_attr_icflag(p)==KINSOKU then s = s .. ' (for kinsoku)' end print_fn(s)