From: Hironori Kitagawa Date: Mon, 3 Feb 2014 01:51:52 +0000 (+0900) Subject: Fix a bug introduced by c1f148d3. X-Git-Tag: 20140204.0~3 X-Git-Url: http://git.osdn.net/view?p=luatex-ja%2Fluatexja.git;a=commitdiff_plain;h=089ceb2f3f6295e2f15bf80d20874080dc5a0f38 Fix a bug introduced by c1f148d3. --- diff --git a/src/ltj-adjust.lua b/src/ltj-adjust.lua index 5c0a781..6621856 100644 --- a/src/ltj-adjust.lua +++ b/src/ltj-adjust.lua @@ -172,8 +172,8 @@ end local function aw_step1(p, res, total) local head = getlist(p) local x = node_tail(head); if not x then return false end + -- x: \rightskip x = node_prev(x); if not x then return false end - -- 本当の行末の node を格納 if getid(x) == id_glue and getsubtype(x) == 15 then -- 段落最終行のときは,\penalty10000 \parfillskip が入るので, -- その前の node が本来の末尾文字となる @@ -196,8 +196,8 @@ local function aw_step1(p, res, total) return false-- それ以外は対象外. end local xk = ltjf_font_metric_table[getfont(xc)] - xk = xk.char_type[has_attr(xc, attr_jchar_class) or 0] - xk = xk['end_' .. res.name] or 0 + xk = xk.char_type[has_attr(xc, attr_jchar_class) or 0] + xk = xk['end_' .. res.name] or 0 if xk>0 and total>=xk then total = total - xk diff --git a/src/ltj-jfmglue.lua b/src/ltj-jfmglue.lua index bd308a5..3678027 100644 --- a/src/ltj-jfmglue.lua +++ b/src/ltj-jfmglue.lua @@ -279,11 +279,11 @@ local function check_next_ickern(lp) end end -local function calc_np_pbox(lp) +local function calc_np_pbox(lp, last) Np.first = Np.first or lp; Np.id = id_pbox local lpa, nc = KINSOKU, nil set_attr(lp, attr_icflag, get_attr_icflag(lp)); - while lp and (lpa>=PACKED) and (lpa=PACKED) and (lpa=PACKED then if lpa%PROCESSED_BEGIN_FLAG == BOXBDD then local lq = node_next(lp) head = node_remove(head, lp); node_free(lp); lp = lq - else return calc_np_pbox(lp) + else return calc_np_pbox(lp, last) end -- id_pbox else k, lp = calc_np_auxtable[getid(lp)](lp) @@ -942,9 +942,9 @@ do or ((lpi==id_hlist) and (lps==3))) do if (lpi==id_hlist) and (lps==3) then par_indented = 'parbdd' end lp=node_next(lp); lpi, lps = getid(lp), getsubtype(lp) end - return lp, par_indented + return lp, node_tail(head), par_indented else - return head, 'boxbdd' + return head, nil, 'boxbdd' end end end @@ -974,14 +974,14 @@ end function main(ahead, mode) if not ahead then return ahead end head = ahead; - local lp, par_indented = init_var(mode) + local lp, last, par_indented = init_var(mode) lp = calc_np(lp, last) if Np then extract_np(); handle_list_head(par_indented) else - return cleanup(mode, last) + return cleanup(mode) end - lp = calc_np(lp) + lp = calc_np(lp, last) while Np do extract_np(); adjust_nq(); @@ -996,7 +996,7 @@ function main(ahead, mode) if Nq.id==id_hlist then handle_nq_ja_hlist() else handle_nq_jachar() end end - lp = calc_np(lp) + lp = calc_np(lp, last) end handle_list_tail(mode) return cleanup(mode)