OSDN Git Service

Fix a bug of prepare_vert_data (when "id" is a number)
[luatex-ja/luatexja.git] / src / ltj-jfont.lua
index 3094c93..0669b83 100644 (file)
@@ -212,7 +212,7 @@ do
       if not r then
          r = m.chars[c] or
             luatexbase.call_callback("luatexja.find_char_class", 0, m, c)
-         m.chars_cbcache[c] = r
+         m.chars_cbcache[c or 0] = r
       end
       return r
    end
@@ -622,7 +622,7 @@ do
    local function prepare_vert_data(n, id)
       -- test if already loaded
       if type(id)=='number' then -- sometimes id is an integer
-         font_vert_table[n] = font_vert_table[id]; return
+         return
       elseif (not id) or font_vert_table[n]  then return
       end
       local fname = id.filename
@@ -637,7 +637,7 @@ do
       if a then
         local s = id.shared.rawdata.descriptions
         for i,v in pairs(a) do
-           if v.features.vert or v.features.vrt2 then
+           if v.features.vert then
               add_feature_table(v.subtables[1], s, vtable)
            end
         end
@@ -667,6 +667,7 @@ end
 do
    local is_ucs_in_japanese_char = ltjc.is_ucs_in_japanese_char_direct
    local tex_set_attr = tex.setattribute
+   local font = font
    -- EXT: italic correction
    function append_italic()
       local p = to_direct(tex.nest[tex.nest.ptr].tail)
@@ -680,7 +681,7 @@ do
            local j = font_metric_table[f]
            setfield(g, 'kern', j.char_type[find_char_class(getchar(p), j)].italic)
         else
-           local h = font_getfont(f)
+           local h = font_getfont(f) or font.fonts[f]
            if h then
               setfield(g, 'kern', h.characters[getchar(p)].italic)
            else