summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/mkiv/strc-reg.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkiv/strc-reg.mkiv')
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-reg.mkiv232
1 files changed, 86 insertions, 146 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-reg.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-reg.mkiv
index 559e1bd4231..04fdef9adc2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-reg.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-reg.mkiv
@@ -83,7 +83,6 @@
\c!pagestyle=\v!slanted,
\c!indicator=\v!yes,
\c!criterium=\v!all,
- \c!check=\v!yes, % check for weird see usage
%\c!command=,
\c!referencing=\v!on,
\c!location=\v!middle,
@@ -160,8 +159,8 @@
%D Registering:
-\glet\currentregistername \empty
-\glet\currentregisternumber\!!zerocount
+\global\let\currentregistername \empty
+\global\let\currentregisternumber\!!zerocount
\def\strc_registers_register_page_entry
{\iftrialtypesetting
@@ -176,33 +175,33 @@
\xdef\currentregisterentriesb{\registerparameter{\c!entries:2}}%
\xdef\currentregisterentriesc{\registerparameter{\c!entries:3}}%
\xmlstopraw
- \glet\currentregistercoding\s!xml}
+ \globallet\currentregistercoding\s!xml}
\def\strc_registers_register_page_expand_yes_entries
{\xdef\currentregisterentriesa{\registerparameter{\c!entries:1}}%
\xdef\currentregisterentriesb{\registerparameter{\c!entries:2}}%
\xdef\currentregisterentriesc{\registerparameter{\c!entries:3}}%
- \glet\currentregistercoding\s!tex}
+ \globallet\currentregistercoding\s!tex}
\def\strc_registers_register_page_expand_nop_entries
{\xdef\currentregisterentriesa{\detokenizedregisterparameter{\c!entries:1}}%
\xdef\currentregisterentriesb{\detokenizedregisterparameter{\c!entries:2}}%
\xdef\currentregisterentriesc{\detokenizedregisterparameter{\c!entries:3}}%
- \glet\currentregistercoding\s!tex}
+ \globallet\currentregistercoding\s!tex}
\def\strc_registers_register_page_expand_xml
{\xmlstartraw
\xdef\currentregisterentries{\registerparameter\c!entries}%
\xmlstopraw
- \glet\currentregistercoding\s!xml}
+ \globallet\currentregistercoding\s!xml}
\def\strc_registers_register_page_expand_yes
{\xdef\currentregisterentries{\registerparameter\c!entries}%
- \glet\currentregistercoding\s!tex}
+ \globallet\currentregistercoding\s!tex}
\def\strc_registers_register_page_expand_nop
{\xdef\currentregisterentries{\detokenizedregisterparameter\c!entries}%
- \glet\currentregistercoding\s!tex}
+ \globallet\currentregistercoding\s!tex}
\def\strc_registers_register_page_expand_xml_keys
{\xmlstartraw
@@ -305,7 +304,7 @@
\ifx\currentregisterownnumber\v!yes
\glet\currentregistersynchronize\relax
\else
- \xdef\currentregistersynchronize{\clf_deferredenhanceregister{\currentregister}\number\currentregisternumber}%
+ \xdef\currentregistersynchronize{\ctxlatecommand{enhanceregister("\currentregister",\currentregisternumber)}}%
\fi
\currentregistersynchronize % here?
% needs thinking ... bla\index{bla}. will break before the . but adding a
@@ -341,7 +340,7 @@
% internal \locationcount
% view {\interactionparameter\c!focus}%
\relax % this will change
- \xdef\currentregistersynchronize{\clf_deferredenhanceregister{\currentregister}\number\currentregisternumber}%
+ \xdef\currentregistersynchronize{\ctxlatecommand{enhanceregister("\currentregister",\currentregisternumber)}}%
\currentregistersynchronize % here?
\dostarttagged\t!registerlocation\currentregister
\attribute\destinationattribute\lastdestinationattribute \signalcharacter % no \strut as it will be removed during cleanup
@@ -353,46 +352,16 @@
\unexpanded\def\strc_registers_insert_entry[#1][#2]%
{\def\currentregister{#1}%
- \edef\p_ownnumber{\registerparameter\c!ownnumber}%
- \ifx\p_ownnumber\v!yes
- \expandafter\strc_registers_insert_entry_yes
- \else
- \expandafter\strc_registers_insert_entry_nop
- \fi{#2}}
-
-% \def\strc_registers_insert_entry_nop#1#2%
-% {\doflushatpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!entries={#2}}{}}}
-%
-% \def\strc_registers_insert_entry_yes#1#2#3%
-% {\doflushatpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!alternative=#2,\c!entries={#3}}{}}}
-%
-% less tokens passed (nicer for tracing) .. could become installable
-
-\def\strc_registers_insert_entry_nop
- {\ifvmode
- \expandafter\strc_registers_insert_entry_nop_par
- \else
- \expandafter\strc_registers_insert_entry_nop_txt
- \fi}
-
-\def\strc_registers_insert_entry_yes
- {\ifvmode
- \expandafter\strc_registers_insert_entry_yes_par
- \else
- \expandafter\strc_registers_insert_entry_yes_txt
- \fi}
-
-\def\strc_registers_insert_entry_nop_par#1#2%
- {\flushatnextpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!entries={#2}}{}}}
+ \doifelse{\registerparameter\c!ownnumber}\v!yes
+ \strc_registers_insert_entry_yes
+ \strc_registers_insert_entry_nop
+ {#2}}
-\def\strc_registers_insert_entry_yes_par#1#2#3%
- {\flushatnextpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!alternative=#2,\c!entries={#3}}{}}}
+\def\strc_registers_insert_entry_nop#1#2%
+ {\doflushatpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!entries={#2}}{}}}
-\def\strc_registers_insert_entry_nop_txt#1#2%
- {\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!entries={#2}}{}}
-
-\def\strc_registers_insert_entry_yes_txt#1#2#3%
- {\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!alternative=#2,\c!entries={#3}}{}}
+\def\strc_registers_insert_entry_yes#1#2#3%
+ {\doflushatpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!alternative=#2,\c!entries={#3}}{}}}
\unexpanded\def\startregister{\doquadrupleempty\strc_registers_start_entry}
\unexpanded\def\stopregister {\dodoubleargument\strc_registers_stop_entry}
@@ -434,14 +403,14 @@
\xmlstartraw
\xdef\currentregisterentries{\registerparameter\c!entries}%
\xmlstopraw
- \glet\currentregistercoding\s!xml
+ \globallet\currentregistercoding\s!xml
\else
\ifx\currentregisterexpansion\v!yes
\xdef\currentregisterentries{\registerparameter\c!entries}%
\else
\xdef\currentregisterentries{\detokenizedregisterparameter\c!entries}%
\fi
- \glet\currentregistercoding\s!tex
+ \globallet\currentregistercoding\s!tex
\fi
% I hate this kind of mess ... but it's a user request.
\ifx\currentregisterentries\empty
@@ -524,7 +493,7 @@
\xdef\currentregisterentries{\detokenize{#3}}% not ok yet
\xdef\currentregisterseeword{\detokenize{#4}}% not ok yet
\xmlstopraw
- \glet\currentregistercoding\s!xml
+ \globallet\currentregistercoding\s!xml
\else
\ifx\currentregisterexpansion\v!yes
\xdef\currentregisterentries{#3}% not ok yet
@@ -533,7 +502,7 @@
\xdef\currentregisterentries{\detokenize{#3}}% not ok yet
\xdef\currentregisterseeword{\detokenize{#4}}% not ok yet
\fi
- \glet\currentregistercoding\s!tex
+ \globallet\currentregistercoding\s!tex
\fi
\setnextinternalreference
% we could consider storing register entries in list
@@ -575,8 +544,8 @@
\def\strc_registers_determine_characteristics[#1][#2]%
{\begingroup
- \setupregister[#1][#2]%
- \edef\currentregister{\firstinset{#1}}%
+ \edef\currentregister{#1}%
+ \setupregister[\currentregister][#2]%
\normalexpanded{\endgroup\noexpand\xdef\noexpand\utilityregisterlength{\clf_analyzeregister
{\currentregister}%
{%
@@ -600,8 +569,6 @@
\dontcomplain
\to \everyplaceregister
-\newconditional\c_strc_registers_text_interaction
-
\unexpanded\def\placeregister
{\dodoubleempty\strc_registers_place}
@@ -609,29 +576,30 @@
{\iffirstargument
\begingroup
%\forgetall
- \setupregister[#1][#2]% can be a list
- \edef\currentregister{\firstinset{#1}}%
+ \edef\currentregister{#1}%
+ \setupregister[\currentregister][#2]%
\the\everyplaceregister
\ifnum\namedmixedcolumnsparameter\currentregister\c!n>\plusone
\startmixedcolumns[\currentregister]
- \strc_registers_place_indeed{#1}%
+ \strc_registers_place_indeed
\stopmixedcolumns
\else
- \strc_registers_place_indeed{#1}%
+ \strc_registers_place_indeed
\fi
\endgroup
\fi}
-\def\strc_registers_place_indeed#1%
+\newconditional\c_strc_registers_text_interaction
+
+\def\strc_registers_place_indeed
{\doifelse{\registerparameter\c!interaction}\v!text
\settrue\setfalse\c_strc_registers_text_interaction
\clf_processregister
- {#1}%
+ {\currentregister}%
{%
language {\registerparameter\s!language}%
method {\registerparameter\c!method}%
numberorder {\registerparameter\c!numberorder}%
- check {\registerparameter\c!check}%
compress {\registerparameter\c!compress}%
criterium {\registerparameter\c!criterium}%
pagenumber \ifx\registerpageseparatorsymbol\empty false\else true\fi
@@ -671,9 +639,9 @@
\def\strc_registers_complete[#1][#2]%
{\iffirstargument
\begingroup
- \edef\currentregister{\firstinset{#1}}%
+ \edef\currentregister{#1}%
\normalexpanded{\startnamedsection[\v!chapter][\c!title={\headtext{\currentregister}},reference=\currentregister]}%
- \placeregister[#1][#2]%
+ \placeregister[\currentregister][#2]%
\page[\v!yes]%
\stopnamedsection
\endgroup
@@ -867,16 +835,15 @@
\unexpanded\def\startregisterpages
{\begingroup
\dostarttagged\t!registerpages\empty
- \useregisterstyleandcolor\c!pagestyle\c!pagecolor
- \registerparameter\c!pageleft}
+ \useregisterstyleandcolor\c!pagestyle\c!pagecolor}
\unexpanded\def\stopregisterpages
- {\registerparameter\c!pageright
- \dostoptagged
+ {\dostoptagged
\endgroup}
\unexpanded\def\startregisterseewords
- {\begingroup
+ {%\par % \ifhmode\crlf\fi % otherwise wrong level
+ \begingroup
\dostarttagged\t!registerpage\empty
\useregisterstyleandcolor\c!pagestyle\c!pagecolor}
@@ -909,69 +876,46 @@
% \fi}
\unexpanded\def\withregisterpagecommand#1#2#3#4%
- {\ifcase#3\relax
- {\tt [entry\space not\space flushed]}%
+ {\def\currentregisterpageindex{#2}%
+ \iflocation
+ \strc_references_goto_internal{\applyprocessor{#1}{\registerparameter\c!pagecommand{#4}}}[internal(#2)]%
\else
- \def\currentregisterpageindex{#2}%
- \iflocation
- \strc_references_goto_internal{\applyprocessor{#1}{\registerparameter\c!pagecommand{#4}}}[internal(#2)]%
- \else
- \applyprocessor{#1}{\registerparameter\c!pagecommand{#4}}%
- \fi
+ \applyprocessor{#1}{\registerparameter\c!pagecommand{#4}}%
\fi}
-\unexpanded\def\pushcurrentregister#1%
- {\let\m_current_register\currentregister
- \edef\currentregister{#1}}
-
-\unexpanded\def\popcurrentregister
- {\let\currentregister\m_current_register}
-
-\unexpanded\def\registeronepage#1#2#3#4#5% #1:class #2:processor content
- {\pushcurrentregister{#1}%
- \edef\p_pagenumber{\registerparameter\c!pagenumber}%
- \ifx\p_pagenumber\v!no\else
- \registerpageseparator
- \global\setconstant\c_strc_registers_page_state\plusone
- \dostarttagged\t!registerpage\empty
- \withregisterpagecommand{#2}{#3}{#4}{#5}%
- \dostoptagged
- \fi
- \popcurrentregister}
-
-\unexpanded\def\registerpagerange#1#2#3#4#5#6#7#8% #1:class #2:processor content, content todo: -- configurable
- {\pushcurrentregister{#1}%
- \edef\p_pagenumber{\registerparameter\c!pagenumber}%
- \ifx\p_pagenumber\v!no\else
- \registerpageseparator
- \global\setconstant\c_strc_registers_page_state\plusone
- \dostarttagged\t!registerpagerange\empty
- \dostarttagged\t!registerfrompage\empty
- \withregisterpagecommand{#2}{#3}{#4}{#5}%
- \dostoptagged
- \registeronepagerangeseparator
- \dostarttagged\t!registertopage\empty
- \withregisterpagecommand{#2}{#6}{#7}{#8}%
- \dostoptagged
- \dostoptagged
- \fi
- \popcurrentregister}
+\unexpanded\def\registeronepage#1#2#3#4% #1:processor content
+ {\registerpageseparator
+ \global\setconstant\c_strc_registers_page_state\plusone
+ \dostarttagged\t!registerpage\empty
+ \withregisterpagecommand{#1}{#2}{#3}{#4}%
+ \dostoptagged}
+
+\unexpanded\def\registerpagerange#1#2#3#4#5#6#7% #1:processor content, content todo: -- configurable
+ {\registerpageseparator
+ \global\setconstant\c_strc_registers_page_state\plusone
+ \dostarttagged\t!registerpagerange\empty
+ \dostarttagged\t!registerfrompage\empty
+ \withregisterpagecommand{#1}{#2}{#3}{#4}%
+ \dostoptagged
+ \registeronepagerangeseparator
+ \dostarttagged\t!registertopage\empty
+ \withregisterpagecommand{#1}{#5}{#6}{#7}%
+ \dostoptagged
+ \dostoptagged}
-\unexpanded\def\defaultregisterentry#1#2#3#4#5% #1:class #2:processor #3:internal #4:seeindex #5:word
- {\pushcurrentregister{#1}%
- \def\currentregisterpageindex{#3}%
+\unexpanded\def\defaultregisterentry#1#2#3#4% #1:processor #2:internal #3:seeindex #4:word
+ {\def\currentregisterpageindex{#2}%
\iflocation
- \def\currentregisterseeindex{#4}%
+ \def\currentregisterseeindex{#3}%
\ifconditional\c_strc_registers_text_interaction
- \strc_references_goto_internal{\setlocationcolor\doapplyregisterentrycommand{#2}{#5}}[internal(#3)]%
+ \strc_references_goto_internal{\setlocationcolor\doapplyregisterentrycommand{#1}{#4}}[internal(#2)]%
\else
- \doapplyregisterentrycommand{#2}{#5}%
+ \doapplyregisterentrycommand{#1}{#4}%
\fi
\else
\let\currentregisterseeindex\empty
- \doapplyregisterentrycommand{#2}{#5}%
- \fi
- \popcurrentregister}
+ \doapplyregisterentrycommand{#1}{#4}%
+ \fi}
\unexpanded\def\doapplyregisterentrycommand#1#2% processor text
{\dostarttagged\t!registercontent\empty
@@ -991,29 +935,25 @@
\applyprocessor{#1}{#2}%
\fi\fi}
-\unexpanded\def\defaultregisterseeword#1#2#3#4#5#6#7% class i n #3:processor #4:internal #5:seeindex #6:word
- {\pushcurrentregister{#1}%
- \ifnum#2=\plusone
- \registerpageseparator
- \fi
+\unexpanded\def\defaultregisterseeword#1#2#3#4#5#6% i n #3:processor #4:internal #5:seeindex #6:word
+ {\registerpageseparator
\global\setconstant\c_strc_registers_page_state\plustwo
- \def\currentregisterpageindex{#5}%
+ \def\currentregisterpageindex{#4}%
\dostarttagged\t!registersee\empty
\settrue\c_strc_registers_page_done
\iflocation
- \def\currentregisterseeindex{#6}%
+ \def\currentregisterseeindex{#5}%
\else
\let\currentregisterseeindex\empty
\fi
- \ifnum#2=\plusone
- \labeltexts\v!see{\doapplyregisterseecommand{#4}{#7}}%
- \else\ifnum#2=#3\relax
- \labeltexts\v!and{\doapplyregisterseecommand{#4}{#7}}%
+ \ifnum#1=\plusone
+ \labeltexts\v!see{\doapplyregisterseecommand{#3}{#6}}%
+ \else\ifnum#1=#2\relax
+ \labeltexts\v!and{\doapplyregisterseecommand{#3}{#6}}%
\else
- ,\space\doapplyregisterseecommand{#4}{#7}%
+ ,\space\doapplyregisterseecommand{#3}{#6}%
\fi\fi
- \dostoptagged
- \popcurrentregister}
+ \dostoptagged}
\let\registerseeword \defaultregisterseeword
\let\registerentry \defaultregisterentry
@@ -1053,18 +993,18 @@
\setvalue{\??registersymbol\v!none}%
{\let\registerpageseparatorsymbol\empty
- \let\registeronepage \gobblefivearguments
- \let\registerpagerange\gobbleeightarguments}
+ \let\registeronepage \gobblefourarguments
+ \let\registerpagerange \gobblesevenarguments}
\setvalue{\??registersymbol 1}%
{\let\registerpageseparatorsymbol\space
- \def\registeronepage {\symbol[1]\gobblefivearguments}%
- \def\registerpagerange{\symbol[1]\gobbleeightarguments}}
+ \def\registeronepage {\symbol[1]\gobblefourarguments}%
+ \def\registerpagerange{\symbol[1]\gobblesevenarguments}}
\setvalue{\??registersymbol 2}%
{\let\registerpageseparatorsymbol\space
- \def\registeronepage {\registerpagebuttonsymbol\gobblefivearguments}%
- \def\registerpagerange{\registerpagebuttonsymbol\gobbleeightarguments}}
+ \def\registeronepage {\registerpagebuttonsymbol\gobblefourarguments}%
+ \def\registerpagerange{\registerpagebuttonsymbol\gobblesevenarguments}}
\unexpanded\def\setregisterpagerendering
{\doifelse{\registerparameter\c!pagenumber}\v!no
@@ -1076,8 +1016,8 @@
\csname\??registersymbol\currentregisterpagesymbol\endcsname
\else
\let\registerpageseparatorsymbol\space
- \def\registeronepage {\registerparameter\c!symbol\gobblefivearguments}%
- \def\registerpagerange{\registerparameter\c!symbol\gobbleeightarguments}%
+ \def\registeronepage{\registerparameter\c!symbol\gobblefourarguments}%
+ \def\registerpagerange{\registerparameter\c!symbol\gobblesevenarguments}%
\fi\fi}
\appendtoks