OSDN Git Service

Releases 20200412.0
[luatex-ja/luatexja.git] / src / luatexja.lua
index 4a4de62..df1b57d 100644 (file)
@@ -1,6 +1,5 @@
 
 require('lualibs')
-tableunpack = table.unpack
 
 ------------------------------------------------------------------------
 local function load_lua(fn)
@@ -100,6 +99,7 @@ load_module('rmlgbm');    local ltjr = luatexja.rmlgbm -- must be 1st
 
 if luatexja_debug then load_module('debug') end
 
+load_module('lotf_aux');  local ltju = luatexja.lotf_aux
 load_module('charrange'); local ltjc = luatexja.charrange
 load_module('stack');     local ltjs = luatexja.stack
 load_module('direction'); local ltjd = luatexja.direction -- +1 hlist +1 attr_list
@@ -232,7 +232,9 @@ do
    }
 
    local unary_pars = luatexja.unary_pars
-   function luatexja.ext_get_parameter_unary(k)
+   local scan_arg = token.scan_argument
+   function luatexja.ext_get_parameter_unary()
+      local k= scan_arg()
       if unary_pars[k] then
         tex.write(tostring(unary_pars[k](tex.getcount('ltj@@stack'))))
       end
@@ -289,9 +291,9 @@ do
       end,
    }
    local binary_pars = luatexja.binary_pars
-
+   local scan_arg, scan_int = token.scan_argument, token.scan_int
    binary_pars.alxspmode = binary_pars.jaxspmode
-   function luatexja.ext_get_parameter_binary(k,c)
+   function luatexja.ext_get_parameter_binary(k, c)
       if binary_pars[k] then
         tex.write(tostring(binary_pars[k](c,tex.getcount('ltj@@stack'))))
       end
@@ -402,7 +404,7 @@ end
 
 local prefix, inner_depth
 local utfchar = utf.char
-local function debug_show_node_X(p,print_fn, limit)
+local function debug_show_node_X(p,print_fn, limit, inner_depth)
    local k = prefix
    local s
    local pt=node_type(p.id)
@@ -410,7 +412,8 @@ local function debug_show_node_X(p,print_fn, limit)
    .. ' ' .. pt .. ' ' .. tostring(p.subtype) .. ' '
    if pt == 'glyph' then
       s = base .. ' ' .. 
-         (p.char>=0xF0000 and string.format('(U+%X)', p.char) or utfchar(p.char)) .. ' '
+         (p.char<0xF0000 and utfchar(p.char) or '') 
+         .. string.format(' (U+%X) ', p.char)
          .. tostring(p.font) .. ' (' .. print_scaled(p.height) .. '+'
          .. print_scaled(p.depth) .. ')x' .. print_scaled(p.width)
       if p.xoffset~=0 or p.yoffset~=0 then
@@ -450,7 +453,7 @@ local function debug_show_node_X(p,print_fn, limit)
       prefix, inner_depth = prefix.. '.', inner_depth + 1
       if inner_depth < limit then
         for q in node.traverse(p.head) do
-           debug_show_node_X(q, print_fn, limit)
+           debug_show_node_X(q, print_fn, limit, inner_depth)
         end
       end
       prefix=k
@@ -465,15 +468,15 @@ local function debug_show_node_X(p,print_fn, limit)
       if inner_depth < limit then
          prefix, inner_depth = k.. 'p.', inner_depth + 1
         for q in node.traverse(p.pre) do
-           debug_show_node_X(q, print_fn, limit)
+           debug_show_node_X(q, print_fn, limit, inner_depth)
         end
          prefix = k.. 'P.'
         for q in node.traverse(p.post) do
-           debug_show_node_X(q, print_fn, limit)
+           debug_show_node_X(q, print_fn, limit, inner_depth)
         end
          prefix = k.. 'R.'
         for q in node.traverse(p.replace) do
-           debug_show_node_X(q, print_fn, limit)
+           debug_show_node_X(q, print_fn, limit, inner_depth)
         end
       end
       prefix=k
@@ -531,7 +534,7 @@ local function debug_show_node_X(p,print_fn, limit)
             prefix, inner_depth =prefix.. '.', inner_depth + 1
             if inner_depth < limit then
               for q in node.traverse(p.value) do
-                 debug_show_node_X(q, print_fn, limit)
+                 debug_show_node_X(q, print_fn, limit, inner_depth)
               end
            end
             prefix, inner_depth = k, bid
@@ -552,13 +555,13 @@ local function debug_show_node_X(p,print_fn, limit)
    elseif pt=='noad' then
       s = base ; print_fn(s)
       if p.nucleus then
-         prefix = k .. 'N'; debug_show_node_X(p.nucleus, print_fn, limit);
+         prefix = k .. 'N'; debug_show_node_X(p.nucleus, print_fn, limit, inner_depth);
       end
       if p.sup then
-         prefix = k .. '^'; debug_show_node_X(p.sup, print_fn, limit);
+         prefix = k .. '^'; debug_show_node_X(p.sup, print_fn, limit, inner_depth);
       end
       if p.sub then
-         prefix = k .. '_'; debug_show_node_X(p.sub, print_fn, limit);
+         prefix = k .. '_'; debug_show_node_X(p.sub, print_fn, limit, inner_depth);
       end
       prefix = k;
    elseif pt=='math_char' then
@@ -569,7 +572,7 @@ local function debug_show_node_X(p,print_fn, limit)
       if p.head then
          prefix = k .. '.';
         for q in node.traverse(p.head) do
-           debug_show_node_X(q, print_fn)
+           debug_show_node_X(q, print_fn, limit, inner_depth)
         end
       end
    else
@@ -582,7 +585,7 @@ function luatexja.ext_show_node_list(head,depth,print_fn, lim)
    inner_depth = 0
    if head then
       while head do
-         debug_show_node_X(head, print_fn, lim or 1/0); head = node_next(head)
+         debug_show_node_X(head, print_fn, lim or 1/0, inner_depth); head = node_next(head)
       end
    else
       print_fn(prefix .. ' (null list)')
@@ -592,7 +595,7 @@ function luatexja.ext_show_node(head,depth,print_fn, lim)
    prefix = depth
    inner_depth = 0
    if head then
-      debug_show_node_X(head, print_fn, lim or 1/0)
+      debug_show_node_X(head, print_fn, lim or 1/0, inner_depth)
    else
       print_fn(prefix .. ' (null list)')
    end