summaryrefslogtreecommitdiff
path: root/tex/context/base/strc-reg.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/strc-reg.mkiv')
-rw-r--r--tex/context/base/strc-reg.mkiv38
1 files changed, 34 insertions, 4 deletions
diff --git a/tex/context/base/strc-reg.mkiv b/tex/context/base/strc-reg.mkiv
index 4c1c4be96..06c719a97 100644
--- a/tex/context/base/strc-reg.mkiv
+++ b/tex/context/base/strc-reg.mkiv
@@ -117,6 +117,7 @@
\c!prefix=\v!both,
%\c!expansion=,
%\c!xmlsetup=,
+ \c!pagenumber=\v!yes,
\c!pageprefixconnector=\endash,
\c!pagesegments=2:2,
\c!file=\jobname,
@@ -451,7 +452,7 @@
{\begingroup
\edef\currentregister{#1}%
\setupregister[\currentregister][#2]%
- \normalexpanded{\endgroup\noexpand\xdef\noexpand\utilityregisterlength{\ctxlua{structures.registers.analyse('\currentregister',{
+ \normalexpanded{\endgroup\noexpand\xdef\noexpand\utilityregisterlength{\ctxlua{structures.registers.analyze('\currentregister',{
language = "\registerparameter\s!language",
compress = "\registerparameter\c!compress",
criterium = "\registerparameter\c!criterium",
@@ -563,9 +564,26 @@
{\doifsomething{#1}
{\doifnot{#1}\s!unknown
{\doifelse{\registerparameter\c!indicator}\v!yes
- {\expandcheckedcsname{\??id:\c!indicator:}{\registerparameter\c!alternative}{a}{#1}}
+ {\doregistercharacter{#1}}
{\noregistercharacter{#1}}}}}
+% \def\doregistercharacter#1%
+% {\expandcheckedcsname % why no \executeifdefined
+% {\??id:\c!indicator:}%
+% {\registerparameter\c!alternative}%
+% {a}%
+% {#1}}
+
+\def\doregistercharacter#1%
+ {\iflocation
+ \pagereference[\currentregister:\v!section:#1]%
+ \fi
+ \expandcheckedcsname % why no \executeifdefined
+ {\??id:\c!indicator:}%
+ {\registerparameter\c!alternative}%
+ {a}%
+ {#1}}
+
\def\noregistercharacter#1%
{\registerparameter\c!before
\goodbreak}
@@ -701,11 +719,21 @@
\registerseeword{#3}%
\dostoptagged}
-\def\defaultregisterentry#1%
+\def\doapplyregisterentrycommand#1%
{\dostarttagged\t!registerentry\empty
\registerparameter\c!textcommand{\limitedregisterentry{\registerparameter\c!deeptextcommand{#1}}}%
\dostoptagged}
+\def\defaultregisterentry#1#2% #1 is pageref
+ {\def\currentregisterpageindex{#1}%
+ \iflocation
+ \doifelse{\registerparameter\c!interaction}\v!text
+ {\directgoto{\setlocationcolor\??ia\doapplyregisterentrycommand{#2}}[internal(#1)]}
+ {\doapplyregisterentrycommand{#2}}%
+ \else
+ \doapplyregisterentrycommand{#2}%
+ \fi}
+
\def\defaultregisterseeword#1%
{\dostarttagged\t!registersee\empty
\labeltexts\v!see{#1}%
@@ -760,7 +788,9 @@
\def\registerpagerange {\registerpagebuttonsymbol\gobblesixarguments}}
\def\setregisterpagerendering
- {\edef\currentregisterpagesymbol{\registerparameter\c!symbol}%
+ {\doifelse{\registerparameter\c!pagenumber}\v!no
+ {\let \currentregisterpagesymbol\v!none}
+ {\edef\currentregisterpagesymbol{\registerparameter\c!symbol}}%
\ifx\currentregisterpagesymbol\empty
\csname\??id:\c!symbol:\c!n\endcsname
\else\ifcsname\??id:\c!symbol:\currentregisterpagesymbol\endcsname