summaryrefslogtreecommitdiff
path: root/tex/context/base/mkxl/strc-ref.lmt
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkxl/strc-ref.lmt')
-rw-r--r--tex/context/base/mkxl/strc-ref.lmt26
1 files changed, 22 insertions, 4 deletions
diff --git a/tex/context/base/mkxl/strc-ref.lmt b/tex/context/base/mkxl/strc-ref.lmt
index ddbb160ff..7ad20fa34 100644
--- a/tex/context/base/mkxl/strc-ref.lmt
+++ b/tex/context/base/mkxl/strc-ref.lmt
@@ -195,7 +195,7 @@ local nofreferred = 0
local function initializer() -- can we use a tobesaved as metatable for collected?
tobereferred = references.tobereferred
referred = references.referred
- nofreferred = #referred
+ nofreferred = #referred
end
-- no longer done this way
@@ -1854,7 +1854,7 @@ references.identify = identify
local unknowns, nofunknowns, f_valid = { }, 0, formatters["[%s][%s]"]
-function references.valid(prefix,reference,specification)
+function references.valid(prefix,reference,specification,silent)
local set, bug = identify(prefix,reference)
local unknown = bug or #set == 0
if unknown then
@@ -1862,7 +1862,7 @@ function references.valid(prefix,reference,specification)
local str = f_valid(prefix,reference)
local u = unknowns[str]
if not u then
- if somefound then
+ if somefound and not silent then
interfaces.showmessage("references",1,str) -- 1 = unknown, 4 = illegal
end
unknowns[str] = 1
@@ -1880,6 +1880,10 @@ function references.valid(prefix,reference,specification)
return not unknown
end
+function references.checked(prefix,reference,specification)
+ return references.valid(prefix,reference,specification,true)
+end
+
implement {
name = "doifelsereference",
actions = { references.valid, commands.doifelse },
@@ -1894,6 +1898,20 @@ implement {
}
}
+implement {
+ name = "doifelsereferencechecked",
+ actions = { references.checked, commands.doifelse },
+ arguments = {
+ "string",
+ "string",
+ {
+ { "highlight", "boolean" },
+ { "newwindow", "boolean" },
+ { "layer" },
+ }
+ }
+}
+
logs.registerfinalactions(function()
if nofunknowns > 0 then
statistics.register("cross referencing", function()
@@ -2064,7 +2082,7 @@ function references.setandgetattribute(data) -- maybe do internal automatically
if ndat then
local numbers = ndat.numbers
if type(numbers) == "string" then
- ndat.numbers = counters.compact(numbers,nil,true)
+ counters.compact(ndat,numbers)
end
data.numberdata = helpers.simplify(ndat)
end