summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/luaotfload-colors.lua17
1 files changed, 4 insertions, 13 deletions
diff --git a/src/luaotfload-colors.lua b/src/luaotfload-colors.lua
index 8035210..19903d8 100644
--- a/src/luaotfload-colors.lua
+++ b/src/luaotfload-colors.lua
@@ -40,6 +40,8 @@ local setattribute = nodedirect.set_attribute
local texset = tex.set
local texget = tex.get
+local texsettoks = tex.settoks
+local texgettoks = tex.gettoks
local stringformat = string.format
local concat = table.concat
@@ -310,9 +312,6 @@ node_colorize = function (head, current_color)
return head, current_color
end
-local pgf_extgs = { }
-luaotfload.pgf_extgs = pgf_extgs
-
--- node -> node
local color_handler = function (head)
head = todirect(head)
@@ -326,7 +325,7 @@ local color_handler = function (head)
local no_extgs = not tpr:find("/ExtGState<<.*>>")
local pgf_loaded = no_extgs and luaotfload.pgf_loaded
if pgf_loaded then
- tpr = concat(pgf_extgs)
+ tpr = texgettoks(pgf_loaded)
end
local t = ""
@@ -338,7 +337,7 @@ local color_handler = function (head)
end
if t ~= "" then
if pgf_loaded then
- pgf_extgs[#pgf_extgs+1] = t
+ texsettoks("global", pgf_loaded, tpr..t)
else
if no_extgs then
tpr = tpr .. "/ExtGState<<>>"
@@ -379,13 +378,5 @@ add_color_callback = function ( )
end
end
-tex.sprint("\\count255=\\catcode`@ \\catcode`@=11 ",
- "\\ifdefined\\AtBeginDocument\\else\\def\\AtBeginDocument#1{#1}\\fi",
- "\\AtBeginDocument{\\ifdefined\\pgfutil@everybye",
- "\\directlua{luaotfload.pgf_loaded=true}\\begingroup",
- "\\toks@{\\pgf@sys@addpdfresource@extgs@plain{\\directlua{tex.sprint(luaotfload.pgf_extgs)}}}",
- "\\edef\\x{\\endgroup\\noexpand\\pgfutil@everybye{\\the\\toks@\\the\\pgfutil@everybye}}\\x",
- "\\fi}\\catcode`@=\\count255 ")
-
-- vim:tw=71:sw=4:ts=4:expandtab