OSDN Git Service

removed \null
[luatex-ja/luatexja.git] / src / ltj-jfmglue.lua
index 3476f5c..d33f032 100644 (file)
@@ -127,19 +127,24 @@ end
 
 
 -- penalty 値の計算
-local function add_penalty(p,e)
-   local pp = getfield(p, 'penalty')
-   if pp>=10000 then
-      if e<=-10000 then setfield(p, 'penalty', 0) end
-   elseif pp<=-10000 then
-      if e>=10000 then  setfield(p, 'penalty', 0) end
-   else
-      pp = pp + e
-      if pp>=10000 then      setfield(p, 'penalty', 10000)
-      elseif pp<=-10000 then setfield(p, 'penalty', -10000)
-      else                   setfield(p, 'penalty', pp) end
+local add_penalty
+do
+local setpenalty = node.direct.setpenalty or function(n, a) setfield(n,'penalty',a) end
+local getpenalty = node.direct.getpenalty or function(n) return getfield(n,'penalty') end
+function add_penalty(p,e)
+   local pp = getpenalty(p)
+   if (pp>-10000) and (pp<10000) then
+      if e>=10000 then       setpenalty(p, 10000)
+      elseif e<=-10000 then  setpenalty(p, -10000)
+      else
+         pp = pp + e
+         if pp>=10000 then      setpenalty(p, 10000)
+         elseif pp<=-10000 then setpenalty(p, -10000)
+        else                   setpenalty(p, pp) end
+      end
    end
 end
+end
 
 -- 「異なる JFM」の間の調整方法
 diffmet_rule = math.two_paverage
@@ -933,8 +938,8 @@ local function combine_spc(name)
    return (Np[name] or Nq[name]) and ((Np[name]~=0) and (Nq[name]~=0))
 end
 
--- OAX, OBX: alchar or math
-local function get_OAX_skip()
+-- NA, NB: alchar or math
+local function get_NA_skip()
    local pm = Np.met
    local g, _, kn, kp, kh = new_jfm_glue(
       pm.char_type,
@@ -945,7 +950,7 @@ local function get_OAX_skip()
        and get_xkanjiskip_low(false, pm, kn, kp, kh)
    return g, k
 end
-local function get_OBX_skip()
+local function get_NB_skip()
    local qm = Nq.met
    local g, _, kn, kp, kh = new_jfm_glue(
       qm.char_type, Nq.class,
@@ -999,7 +1004,7 @@ local function handle_np_jachar(mode)
       handle_penalty_normal(0, Np.pre, g); real_insert(g); real_insert(k)
    elseif Nq.pre then
       local g, k
-      if non_ihb_flag then g, k = get_OAX_skip() end -- O_A->X
+      if non_ihb_flag then g, k = get_NA_skip() end -- N_A->X
       if not g then g = get_xkanjiskip(Np) end
       handle_penalty_normal((qid==id_hlist and 0 or Nq.post), Np.pre, g); 
       real_insert(g); real_insert(k)
@@ -1020,7 +1025,7 @@ end
 -- jachar .. (anything)
 local function handle_nq_jachar()
     if Np.pre then
-      local g = non_ihb_flag and get_OBX_skip() or get_xkanjiskip(Nq) -- O_B->X
+      local g = non_ihb_flag and get_NB_skip() or get_xkanjiskip(Nq) -- N_B->X
       handle_penalty_normal(Nq.post, (Np.id==id_hlist and 0 or Np.pre), g); real_insert(g)
    else
       local g =non_ihb_flag and  (get_OB_skip()) -- O_B