OSDN Git Service

luatexja.dtx: Fix typos.
[luatex-ja/luatexja.git] / src / ltj-inputbuf.lua
index 512e4d1..d23d21c 100644 (file)
@@ -14,27 +14,33 @@ luatexja.load_module('charrange'); local ltjc = luatexja.charrange
 
 local node_new = node.new
 local id_glyph = node.id('glyph')
+local getcatcode = tex.getcatcode
+local ltjc_is_ucs_in_japanese_char = ltjc.is_ucs_in_japanese_char
 
 --- the following function is modified from jafontspec.lua (by K. Maeda).
 --- Instead of "%", we use U+FFFFF for suppressing spaces.
 function add_comment(buffer)
    local i = utf.len(buffer)
-   while (i>0) and (tex.getcatcode(utf.byte(buffer, i))==1 
-                or tex.getcatcode(utf.byte(buffer, i))==2) do
+   while (i>0) and (getcatcode(utf.byte(buffer, i))==1 
+                or getcatcode(utf.byte(buffer, i))==2) do
       i=i-1
    end
    if i>0 then
       local c = utf.byte(buffer, i)
-      local ct = tex.getcatcode(c)
-      local ctl = tex.getcatcode(13) -- endline character
-      local ctc = tex.getcatcode(0xFFFFF) -- new comment character
-      if ((ct==11) or (ct==12)) and (ctl==5) and (ctc==14) then
-        local p =  node_new(id_glyph)
-        p.char = c
-        if ltjc.is_ucs_in_japanese_char(p) then
-           buffer = buffer .. string.char(0xF3,0xBF,0xBF,0xBF) -- U+FFFFF
+      if c>0x80 then
+        local ct = getcatcode(c)
+        local te = tex.endlinechar
+        local ctl = (te ~= -1) and (getcatcode(te)==5) and (getcatcode(0xFFFFF)==14)
+        -- Is the catcode of endline character is 5 (end-of-line)?
+        -- Is the catcode of U+FFFFF (new comment char) is 14 (comment)?
+        if ((ct==11) or (ct==12)) and ctl then
+           local p = node_new(id_glyph)
+           p.char = c
+           if ltjc_is_ucs_in_japanese_char(p) then
+              buffer = buffer .. string.char(0xF3,0xBF,0xBF,0xBF) -- U+FFFFF
+           end
+           node.free(p)
         end
-        node.free(p)
       end
    end
    return buffer