X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=src%2Fltj-rmlgbm.lua;h=b1be80610df11e637309616e1ac8a365c1e8d3b6;hb=0526b27bf88ed7f2adedef267f4d9226f6f5a692;hp=25eafdca1a5df8c13d6387a957340759cde1face;hpb=a6c37dba4272ef5de87886c805f6f902aa5f7175;p=luatex-ja%2Fluatexja.git diff --git a/src/ltj-rmlgbm.lua b/src/ltj-rmlgbm.lua index 25eafdc..b1be806 100644 --- a/src/ltj-rmlgbm.lua +++ b/src/ltj-rmlgbm.lua @@ -217,7 +217,7 @@ end local definers = fonts.definers local function mk_rml(name, size, id) local specification = definers.analyze(name,size) - specification = definers.resolve(specification) + --specification = definers.resolve(specification) (not needed) specification.detail = specification.detail or '' local fontdata = {} @@ -296,25 +296,25 @@ local function mk_rml(name, size, id) end local function font_callback(name, size, id, fallback) - local p = utf.find(name, ":") or utf.len(name)+1 - if utf.sub(name, 1, p-1) == 'psft' then + local p = name:find(":") or name:len()+1 + if name:sub(1, p-1) == 'psft' then local s = "Adobe-Japan1-6" - local basename = utf.sub(name,p+1) - local p = utf.find(basename, ":") - local q = utf.find(basename, "/[BI][BI]?") + local basename = name:sub(p+1) + local p = basename:find(":") + local q = basename:find("/[BI][BI]?") if q and p and q<=p then - basename = utf.gsub(basename, '/[BI][BI]?', '', 1) - p = utf.find(basename, ":") + basename = basename:gsub('/[BI][BI]?', '', 1) + p = basename:find(":") end if p then - local xname = utf.sub(basename, p+1) + local xname = basename:sub(p+1) p = 1 while p do - local q = utf.find(xname, ";", p+1) or utf.len(xname)+1 - if utf.sub(xname, p, p+3)=='cid=' and q>p+4 then - s = utf.sub(xname, p+4, q-1) + local q = xname:find(";", p+1) or xname:len()+1 + if xname:sub(p, p+3)=='cid=' and q>p+4 then + s = xname:sub(p+4, q-1) end - if utf.len(xname)+1==q then p = nil else p = q + 1 end + if xname:len()+1==q then p = nil else p = q + 1 end end end cid_reg, cid_order = string.match(s, "^(.-)%-(.-)%-(%d-)$") @@ -335,7 +335,11 @@ local function font_callback(name, size, id, fallback) end return mk_rml(basename, size, id) else - return fallback(name, size, id) + local tfmdata=fallback(name, size, id) + if type (tfmdata) == "table" and tfmdata.shared then + luatexbase.call_callback("luaotfload.patch_font", tfmdata, name) + end + return tfmdata end end