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
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
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
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)
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