summaryrefslogtreecommitdiff
path: root/tex/context/base/node-tra.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/node-tra.lua')
-rw-r--r--tex/context/base/node-tra.lua11
1 files changed, 8 insertions, 3 deletions
diff --git a/tex/context/base/node-tra.lua b/tex/context/base/node-tra.lua
index f86ab791a..38855f659 100644
--- a/tex/context/base/node-tra.lua
+++ b/tex/context/base/node-tra.lua
@@ -664,17 +664,22 @@ number.basepoints = basepoints
local colors = { }
tracers.colors = colors
+local get_attribute = node.has_attribute
local set_attribute = node.set_attribute
local unset_attribute = node.unset_attribute
-local attribute = attributes.private('color')
-local mapping = attributes.list[attribute] or { }
+local attribute = attributes.private('color')
+local colormodel = attributes.private('colormodel')
+local mapping = attributes.list[attribute] or { }
-function colors.set(n,c)
+function colors.set(n,c,s)
local mc = mapping[c]
if not mc then
unset_attribute(n,attribute)
else
+ if not get_attribute(n,colormodel) then
+ set_attribute(n,colormodel,s or 1)
+ end
set_attribute(n,attribute,mc)
end
end