From 8a30fe684374af7dd25c8f9a2a97f5c01ea9d7bc Mon Sep 17 00:00:00 2001 From: Dohyun Kim Date: Wed, 3 Jun 2015 20:26:58 +0900 Subject: check if token register exists using allocation number --- src/luaotfload-colors.lua | 9 +++++---- src/luaotfload.sty | 2 ++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/luaotfload-colors.lua b/src/luaotfload-colors.lua index a151101..ff4dc13 100644 --- a/src/luaotfload-colors.lua +++ b/src/luaotfload-colors.lua @@ -321,9 +321,10 @@ local color_handler = function (head) if res then res["1"] = true local tpr = texget("pdfpageresources") - local pgf_loaded = tpr:find("/ExtGState %d+ 0 R") + local no_extgs = not tpr:find("/ExtGState<<.*>>") + local pgf_loaded = no_extgs and luaotfload.pgf_loaded if pgf_loaded then - tpr = texgettoks("pgf@sys@pgf@resource@list@extgs@toks") -- see luaotfload.sty + tpr = texgettoks(pgf_loaded) -- see luaotfload.sty end local t = "" @@ -335,9 +336,9 @@ local color_handler = function (head) end if t ~= "" then if pgf_loaded then - texsettoks("global", "pgf@sys@pgf@resource@list@extgs@toks", tpr..t) + texsettoks("global", pgf_loaded, tpr..t) else - if not tpr:find("/ExtGState<<.*>>") then + if no_extgs then tpr = tpr .. "/ExtGState<<>>" end tpr = tpr:gsub("/ExtGState<<", "%1"..t) diff --git a/src/luaotfload.sty b/src/luaotfload.sty index f183f9a..34f9a87 100644 --- a/src/luaotfload.sty +++ b/src/luaotfload.sty @@ -50,6 +50,7 @@ \ifcsname selectfont\endcsname \AtBeginDocument{\@ifpackageloaded{pgfsys}{ \csname newtoks\endcsname\pgf@sys@pgf@resource@list@extgs@toks + \directlua{luaotfload.pgf_loaded=\the\allocationnumber} \def\pgf@sys@pgf@resource@list@extgs{\the\pgf@sys@pgf@resource@list@extgs@toks} \def\pgf@sys@addpdfresource@extgs@plain#1{\global\pgf@sys@pgf@resource@list@extgs@toks \expandafter{\the\pgf@sys@pgf@resource@list@extgs@toks #1}} @@ -60,6 +61,7 @@ \count255=\the\catcode`@\relax \catcode`@=11\relax \newtoks\pgf@sys@pgf@resource@list@extgs@toks +\directlua{luaotfload.pgf_loaded=\the\allocationnumber} \def\pgf@sys@pgf@resource@list@extgs{\the\pgf@sys@pgf@resource@list@extgs@toks} \def\pgf@sys@addpdfresource@extgs@plain#1{\global\pgf@sys@pgf@resource@list@extgs@toks \expandafter{\the\pgf@sys@pgf@resource@list@extgs@toks #1}} -- cgit v1.2.3