X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=src%2Fltj-jfmglue.lua;h=9486c322ca6f544c5683fe8d15546b56f90e3436;hb=e5aeb15c211866e3911c84337af5e6d85ef79043;hp=99fcd66069fd034c386ad4607deeefedc3687172;hpb=3e8921cf5c4567f5e502f4307d10feb1f0ff7ff9;p=luatex-ja%2Fluatexja.git diff --git a/src/ltj-jfmglue.lua b/src/ltj-jfmglue.lua index 99fcd66..9486c32 100644 --- a/src/ltj-jfmglue.lua +++ b/src/ltj-jfmglue.lua @@ -9,6 +9,7 @@ luatexbase.provides_module({ module('luatexja.jfmglue', package.seeall) local err, warn, info, log = luatexbase .errwarinf(_NAME) +luatexja.load_module('base'); local ltjb = luatexja.base luatexja.load_module('stack'); local ltjs = luatexja.stack luatexja.load_module('jfont'); local ltjf = luatexja.jfont local pairs = pairs @@ -100,11 +101,16 @@ local function fast_find_char_class(c,m) end -- 文字クラスの決定 -local function slow_find_char_class(c, m, oc) - local xc = c or oc - local cls = ltjf_find_char_class(oc, m) - if xc ~= oc and cls==0 then cls = ltjf_find_char_class(-xc, m) end - return cls, xc +local slow_find_char_class +do + slow_find_char_class = function (c, m, oc) + local cls = ltjf_find_char_class(oc, m) + if not c and cls==0 then + return ltjf_find_char_class(-c, m), oc + else + return cls, oc + end + end end local zero_glue = node_new(id_glue) @@ -941,10 +947,13 @@ do local lp, par_indented, lpi, lps = head, 'boxbdd', getid(head), getsubtype(head) while lp and ((lpi==id_whatsit and lps~=sid_user) or ((lpi==id_hlist) and (lps==3))) do - if (lpi==id_hlist) and (lps==3) then par_indented = 'parbdd' end + if (lpi==id_hlist) and (lps==3) then + Np.char, par_indented = 'parbdd', 'parbdd' + Np.width = getfield(lp, 'width') + end lp=node_next(lp); lpi, lps = getid(lp), getsubtype(lp) end return lp, node_tail(head), par_indented - else + else return head, nil, 'boxbdd' end end