summaryrefslogtreecommitdiff
path: root/tex/context/base/mkxl/font-col.lmt
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkxl/font-col.lmt')
-rw-r--r--tex/context/base/mkxl/font-col.lmt21
1 files changed, 16 insertions, 5 deletions
diff --git a/tex/context/base/mkxl/font-col.lmt b/tex/context/base/mkxl/font-col.lmt
index 1bce9b3a9..2a999ddeb 100644
--- a/tex/context/base/mkxl/font-col.lmt
+++ b/tex/context/base/mkxl/font-col.lmt
@@ -53,6 +53,7 @@ local charcommand = helpers.commands.char
local rightcommand = helpers.commands.right
local addprivate = helpers.addprivate
local hasprivate = helpers.hasprivate
+local isprivate = helpers.isprivate
local fontpatternhassize = helpers.fontpatternhassize
local hashes = fonts.hashes
@@ -258,7 +259,9 @@ function collections.clonevector(name)
if target then
for unicode = start, stop do
local unic = unicode + offset - start
- if not newchars[target] then
+ if isprivate(unic) or isprivate(target) then
+ -- ignore
+ elseif not newchars[target] then
-- not in font
elseif force or (not vector[unic] and not oldchars[unic]) then
vector[unic] = { cloneid, target }
@@ -270,7 +273,9 @@ function collections.clonevector(name)
else
for unicode = start, stop do
local unic = unicode + offset - start
- if not newchars[unicode] then
+ if isprivate(unic) or isprivate(unicode) then
+ -- ignore
+ elseif not newchars[target] then
-- not in font
elseif force or (not vector[unic] and not oldchars[unic]) then
vector[unic] = cloneid
@@ -281,7 +286,9 @@ function collections.clonevector(name)
if target then
for unicode = start, stop do
local unic = unicode + offset - start
- if force or (not vector[unic] and not oldchars[unic]) then
+ if isprivate(unic) or isprivate(target) then
+ -- ignore
+ elseif force or (not vector[unic] and not oldchars[unic]) then
vector[unic] = { cloneid, target }
end
target = target + 1
@@ -289,14 +296,18 @@ function collections.clonevector(name)
elseif remap then
for unicode = start, stop do
local unic = unicode + offset - start
- if force or (not vector[unic] and not oldchars[unic]) then
+ if isprivate(unic) or isprivate(unicode) then
+ -- ignore
+ elseif force or (not vector[unic] and not oldchars[unic]) then
vector[unic] = { cloneid, remap[unicode] }
end
end
else
for unicode = start, stop do
local unic = unicode + offset - start
- if force or (not vector[unic] and not oldchars[unic]) then
+ if isprivate(unic) then
+ -- ignore
+ elseif force or (not vector[unic] and not oldchars[unic]) then
vector[unic] = cloneid
end
end