summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/core-reg.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-11-18 01:37:52 +0000
committerKarl Berry <karl@freefriends.org>2006-11-18 01:37:52 +0000
commit5c91b9f8a88e06f057a6a08b0a755a224d08e019 (patch)
tree57cfafb6bd6c146dcdfc911dbef8db622c6476bd /Master/texmf-dist/tex/context/base/core-reg.tex
parent983736c2ab572e9a860c74f0f781b3decd282f13 (diff)
context 17nov06 update
git-svn-id: svn://tug.org/texlive/trunk@2449 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/context/base/core-reg.tex')
-rw-r--r--Master/texmf-dist/tex/context/base/core-reg.tex414
1 files changed, 175 insertions, 239 deletions
diff --git a/Master/texmf-dist/tex/context/base/core-reg.tex b/Master/texmf-dist/tex/context/base/core-reg.tex
index 309aee2f9ed..bd64bd6adda 100644
--- a/Master/texmf-dist/tex/context/base/core-reg.tex
+++ b/Master/texmf-dist/tex/context/base/core-reg.tex
@@ -69,9 +69,8 @@
{\dotripleempty\dosetupregister}
\def\getlastregisterentry#1%
- {\def\docommando##1%
- {\def\!!stringa{##1}}%
- \processseparatedlist[#1][+]\docommando
+ {\def\docommand##1{\def\!!stringa{##1}}%
+ \processseparatedlist[#1][+]\docommand
\!!stringa}
\def\registerparameter#1{\csname\??id\currentregister#1\endcsname}
@@ -80,61 +79,37 @@
%
% \index[Ätsch]{Ätsch} test \index{QÄtsch} test \index[ratsch]{RÄtsch} test
-% \def\doprocesspageregister[#1]#2#3% key altnum entry
-% {\begingroup
-% \thisisnextinternal\s!ind
-% \ifduplicate\getlastregisterentry{#3}\fi
-% \convertexpanded{\registerparameter\c!keyexpansion}{#1}\asciiregisterentryA
-% \convertexpanded{\registerparameter\c!expansion }{#3}\asciiregisterentryB
-% \doifsomething{\registerparameter\c!keyexpansion}
-% {\ifx\asciiregisterentryA\empty
-% \convertexpanded{\registerparameter\c!keyexpansion}{#3}\asciiregisterentryA
-% \fi}%
-% \makesectionformat
-% \doifelse{\registerparameter\c!ownnumber}\v!yes
-% \donetrue\donefalse
-% % the spaces between } { are essential for texutil's split
-% \expanded
-% {\writeutility%
-% {r \ifcase\registerpagestatus\space\or e \or f \or t \fi
-% {\currentregister} %
-% {\nextinternalreference} %
-% {\asciiregisterentryA} %
-% {\asciiregisterentryB} %
-% {\sectionformat\sectionseparator\sectionseparator
-% \ifdone#2\else\noexpand\pagenumber\fi} %
-% {\noexpand\realfolio}}}%
-% \getfirstcharacter\currentregister
-% \registerinfo{> \firstcharacter}{#3}%
-% \endgroup}
+\newif\ifwritetoregister \writetoregistertrue
\def\doprocesspageregister[#1]#2#3% key altnum entry
- {\begingroup
- \thisisnextinternal\s!ind
- \ifduplicate\getlastregisterentry{#3}\fi
- \convertexpanded{\registerparameter\c!keyexpansion}{#1}\asciiregisterentryA
- \convertexpanded{\registerparameter\c!expansion }{#3}\asciiregisterentryB
- \doifsomething{\registerparameter\c!keyexpansion}
- {\ifx\asciiregisterentryA\empty
- \convertexpanded{\registerparameter\c!keyexpansion}{#3}\asciiregisterentryA
- \fi}%
- \makesectionformat
- \doifelse{\registerparameter\c!ownnumber}\v!yes
- \donetrue\donefalse
- % the spaces between } { are essential for texutil's split
- \expanded
- {\writeutility%
- {r \ifcase\registerpagestatus\space\or e \or f \or t \fi
- {\currentregister} %
- {\nextinternalreference} %
- {\asciiregisterentryA} %
- {\asciiregisterentryB} %
- {\sectionformat\sectionseparator\sectionseparator
- \ifdone#2\else\noexpand\pagenumber\fi} %
- {\noexpand\realfolio}}}%
- \getfirstcharacter\currentregister
- \registerinfo{> \firstcharacter}{#3}%
- \endgroup}
+ {\ifwritetoregister
+ \begingroup
+ \thisisnextinternal\s!ind
+ \ifduplicate\getlastregisterentry{#3}\fi
+ \convertexpanded{\registerparameter\c!keyexpansion}{#1}\asciiregisterentryA
+ \convertexpanded{\registerparameter\c!expansion }{#3}\asciiregisterentryB
+ \doifsomething{\registerparameter\c!keyexpansion}
+ {\ifx\asciiregisterentryA\empty
+ \convertexpanded{\registerparameter\c!keyexpansion}{#3}\asciiregisterentryA
+ \fi}%
+ \makesectionformat
+ \doifelse{\registerparameter\c!ownnumber}\v!yes
+ \donetrue\donefalse
+ % the spaces between } { are essential for texutil's split
+ \expanded
+ {\writeutility%
+ {r \ifcase\registerpagestatus\space\or e \or f \or t \fi
+ {\currentregister} %
+ {\nextinternalreference} %
+ {\asciiregisterentryA} %
+ {\asciiregisterentryB} %
+ {\sectionformat\sectionseparator\sectionseparator
+ \ifdone#2\else\noexpand\pagenumber\fi} %
+ {\noexpand\realfolio}}}%
+ \getfirstcharacter\currentregister
+ \registerinfo{> \firstcharacter}{#3}%
+ \endgroup
+ \fi}
\def\doregister#1%
{\chardef\registerpagestatus\plusone
@@ -146,11 +121,6 @@
\def\donoregister[#1]%
{\dodoregister[#1]{}}
-% \def\dodoregister[#1]#2#3%
-% {\doprocesspageregister[#1]{#2}{#3}%
-% \ifvmode\nobreak\fi
-% \GotoPar}
-
% \long\def\doflushatpar#1%
% %{\dogotopar{#1}}
% %{\dogotopar{\dontleavehmode#1}} % this one can introduce empty lines
@@ -193,7 +163,8 @@
\dodoregister[#2]{}{#3}} % key altnum entry
\def\doprocessseeregister[#1]#2#3%
- {\begingroup
+ {\ifwritetoregister
+ \begingroup
\thisisnextinternal\s!ind
\ifduplicate\getlastregisterentry{#2}\fi
\convertexpanded{\registerparameter\c!keyexpansion}{#1}\asciiregisterentryA
@@ -213,8 +184,9 @@
{\asciiregisterentryB} %
{\asciiregisterentryC} %
{\sectionformat}}}%
- \endgroup
- \registerinfo{> see}{#2}}
+ \endgroup
+ \registerinfo{> see}{#2}%
+ \fi}
\def\complexdoseeregister[#1]#2#3%
{\doflushatpar{\doprocessseeregister[#1]{#2}{#3}}}
@@ -249,7 +221,9 @@
{\nextregisterpage
\hbox to 1em{\hss\doregisterpagehowto{#1}{#2}\hss}}
-\def\setregisterpage#1%
+% todo: \installregisterpagehandler
+
+\def\setregisterpage#1% todo: currentregister gebruiken
{\let\registerpageseparator\empty
\processaction
[\getvalue{\??id#1\c!symbol}]
@@ -260,18 +234,37 @@
1=>{\def\doregisterpage##1[##2]%
{\doregisterpagelocation{#1}{$\bullet$}}},
2=>{\def\doregisterpage##1[##2]%
- {\doregisterpagelocation{#1}{\vrule\!!width1em\!!height1ex\!!depth\!!zeropoint}}},
+ {\doregisterpagelocation{#1}{\vrule\!!width1em\!!height1ex\!!depth\zeropoint}}},
\v!none=>{\def\doregisterpage##1[##2]{}},%
\s!unknown=>{\def\registerpagesymbol{\getvalue{\??id#1\c!symbol}}%
\def\doregisterpage##1[##2]%
{\doregisterpagelocation{#1}{\registerpagesymbol}}},
- \s!default=>{\def\registerpageseparator%
- {,}%
- \def\doregisterpage##1[##2]%
- {\doregisterpagehowto{##1}
- {\strut
- \pageprefix{\??id##1}[##2]%
- \translatednumber[##2]}}}]}
+ \s!default=>{\def\registerpageseparator{,}%
+ \let\doregisterpage\doregisterpagedefault}]}
+
+\def\doregisterpagedefault#1[#2]%
+ {\doregisterpagehowto{#1}{\strut\pageprefix{\??id#1}[#2]\translatednumber[#2]}}
+
+% test case
+%
+% \starttext
+% \placelist[section][criterium=all] \blank[2*big]
+% \placeregister[index][compress=no] \blank[2*big]
+% \placeregister[index][compress=no,sectionnumber=yes] \blank[2*big]
+% \placeregister[index][compress=yes] \page
+% test text \index{test index}
+% \section{heading}
+% more test text \index{test index}
+% \section{heading}
+% more test text \index{test index}
+% \page
+% \section{heading text \index{test index}}
+% more test text \index{test index}
+% \page
+% test text \index{test index}
+% \section{heading text \index{test index}}
+% more test text \index{test index}
+% \stoptext
\let\registerpagehowto\empty
\let\registertexthowto\empty
@@ -320,8 +313,6 @@
\let\c!entryb =\relax
\let\c!entryc =\relax
-\chardef\lastregisterpagestatus=0
-
\def\limitedregisterentry#1#2%
{\getvalue{\??id#1\c!textcommand}%
{\doifelsenothing{\??id#1\c!maxwidth}
@@ -331,74 +322,6 @@
\def\dosetpageregisterpage#1#2#3#4#5#6%
{\doifreglevelelse[#5]{\dodosetpageregisterpage{#1}{#2}{#3}{#4}{#5}{#6}}{}}
-% \def\dodosetpageregisterpage#1#2#3#4#5#6%
-% {\global\utilitydonetrue
-% \c!entryletter
-% \setregisterhowto[#3]%
-% \def\dohandleregisterentry##1%
-% {\bgroup
-% \if!!donea % \strut nieuw
-% %\setbox0\hbox{\showlocation{\doregistertexthowto{#2}
-% % {\strut\limitedregisterentry{#2}{##1}}}}%
-% % \gotonextinternal\s!ind{#4}{#6}{\box0}%
-% %
-% \hhboxindent\hangindent % maybe also left and right skip
-% \setbox0\hbox{\doregistertexthowto{#2}{\strut\limitedregisterentry{#2}{##1}}}%
-% \unhhbox0\with{\gotonextinternal\s!ind{#4}{#6}{\box\hhbox}}%
-% %
-% \else
-% \doregistertexthowto{#2}{##1}%
-% \fi
-% \egroup
-% \!!doneafalse}%
-% \!!doneafalse
-% \doifelsevalue{\??id#2\c!interaction}\v!text
-% {\ifcase\currententrylevel \or
-% \!!doneatrue\c!entrya\c!entryb\c!entryc \or
-% \c!entrya\!!doneatrue\c!entryb\c!entryc \or
-% \c!entrya\c!entryb\!!doneatrue\c!entryc \fi}
-% {\c!entrya\c!entryb\c!entryc}%
-% \global\let\c!entrya\relax
-% \global\let\c!entryb\relax
-% \global\let\c!entryc\relax
-% \global\let\c!entryletter\relax
-% \global\let\c!entryreference\relax
-% % \global\firstregisterentrytrue
-% \iffirstregisterpage
-% \global\chardef\lastregisterpagestatus\zerocount
-% \expandafter\hskip\getvalue{\??id#2\c!distance}\relax
-% \donetrue
-% \else\ifnum#1=3
-% |--|\relax % -- !
-% \donetrue
-% \else\ifnum\lastregisterpagestatus=2
-% \donefalse % waiting for "to" pagenumber
-% \else
-% \registerpageseparator
-% |\space|\relax % \relax needed because | looks ahead
-% \donetrue
-% \fi\fi\fi
-% \ifdone
-% \begingroup
-% %
-% \doifelsevalue{\??id#2\c!prefix}\v!none % default v!both
-% {\chardef\pageprefixmode\zerocount}%
-% {\doifvalue{\??id#2\c!prefix}\v!first % only first in range (1.2-4)
-% {\ifnum#1=3 \chardef\pageprefixmode\zerocount \fi}}%
-% %
-% \doifelsevalue{\??id#2\c!interaction}\v!pagenumber
-% {\bgroup
-% \setbox0\hbox
-% {\showlocation{\doregisterpage{#2}[#5]\ifnum#1=2\/\fi}}%
-% \gotonextinternal{\s!ind}{#4}{#6}{\box0}%{\copy0}%
-% \egroup}
-% {\hbox{\doregisterpage{#2}[#5]\ifnum#1=2\/\fi}}%
-% \endgroup
-% \ignorespaces
-% \global\chardef\lastregisterpagestatus#1\relax
-% \fi
-% \global\firstregisterpagefalse}
-
\def\dodosetpageregisterpageA#1#2#3#4#5#6%
{\global\utilitydonetrue
\c!entryletter
@@ -428,41 +351,33 @@
\global\let\c!entryreference\relax}
\def\dodosetpageregisterpageB#1#2#3#4#5#6%
- {% \global\firstregisterentrytrue
- \iffirstregisterpage
- \global\chardef\lastregisterpagestatus\zerocount
- \expandafter\hskip\getvalue{\??id#2\c!distance}\relax
- \donetrue
- \else\ifnum#1=3
- |--|\relax % -- !
- \donetrue
- \else\ifnum\lastregisterpagestatus=2
- \donefalse % waiting for "to" pagenumber
- \else
- \registerpageseparator
- |\space|\relax % \relax needed because | looks ahead
- \donetrue
- \fi\fi\fi
- \ifdone
- \begingroup
- %
- \doifelsevalue{\??id#2\c!prefix}\v!none % default v!both
- {\chardef\pageprefixmode\zerocount}%
- {\doifvalue{\??id#2\c!prefix}\v!first % only first in range (1.2-4)
- {\ifnum#1=3 \chardef\pageprefixmode\zerocount \fi}}%
- %
- \doifelsevalue{\??id#2\c!interaction}\v!pagenumber
- {\bgroup
- \setbox0\hbox
- {\showlocation{\doregisterpage{#2}[#5]\ifnum#1=2\/\fi}}%
- \gotonextinternal{\s!ind}{#4}{#6}{\box0}%{\copy0}%
- \egroup}
- {\hbox{\doregisterpage{#2}[#5]\ifnum#1=2\/\fi}}%
- \endgroup
- \ignorespaces
- \global\chardef\lastregisterpagestatus#1\relax
- \fi
- \global\firstregisterpagefalse}
+ {\iffirstregisterpage
+ \expandafter\hskip\getvalue{\??id#2\c!distance}\relax
+ \else\ifnum#1=3
+ \strut|--|\relax % -- !
+ \else
+ % \relax after space needed because | looks ahead
+ \strut\registerpageseparator|\space|\relax
+ \fi\fi
+ \iftrue % \iftrue ...\fi to preserve indentation, can be folded out
+ \begingroup
+ %
+ \doifelsevalue{\??id#2\c!prefix}\v!none % default v!both
+ {\chardef\pageprefixmode\zerocount}%
+ {\doifvalue{\??id#2\c!prefix}\v!first % only first in range (1.2-4)
+ {\ifnum#1=3 \chardef\pageprefixmode\zerocount \fi}}%
+ %
+ \doifelsevalue{\??id#2\c!interaction}\v!pagenumber
+ {\bgroup
+ \setbox0\hbox{\showlocation{\doregisterpage{#2}[#5]\ifnum#1=2\/\fi}}%
+ \gotonextinternal{\s!ind}{#4}{#6}{\box0}%{\copy0}%
+ \egroup}
+ {\hbox{\doregisterpage{#2}[#5]\ifnum#1=2\/\fi}}%
+ \endgroup
+ \ignorespaces
+ \relax
+ \fi
+ \global\firstregisterpagefalse}
\def\resetseenregisterpage
{\global\let\firstseenregisterreal \relax
@@ -477,27 +392,61 @@
\def\dodosetpageregisterpageC#1#2#3#4#5#6%
{\xdef\currentseenregisterpage{#5}%
\xdef\currentseenregisterreal{#6}%
- \gdef\flushseenregisterpage{\doflushseenregisterpage{#1}{#2}{#3}{#4}}%
\ifx\firstseenregisterreal\relax
+ % no range yet
\global\let\firstseenregisterreal\currentseenregisterreal
\global\let\firstseenregisterpage\currentseenregisterpage
\global\let\lastseenregisterreal \currentseenregisterreal
\global\let\lastseenregisterpage \currentseenregisterpage
+ \else\ifnum\lastseenregisterreal=\currentseenregisterreal\relax
+ % same page (catch error)
\else\ifnum\numexpr\lastseenregisterreal+\plusone\relax=\currentseenregisterreal\relax
\global\let\lastseenregisterreal \currentseenregisterreal
\global\let\lastseenregisterpage \currentseenregisterpage
\else
- \ifx\firstseenregisterreal\lastseenregisterreal
- \expanded{\dodosetpageregisterpageB{1}{#2}{#3}{#4}{\lastseenregisterpage}{\lastseenregisterreal}}%
- \else
- \expanded{\dodosetpageregisterpageB{2}{#2}{#3}{#4}{\firstseenregisterpage}{\firstseenregisterreal}}%
- \expanded{\dodosetpageregisterpageB{3}{#2}{#3}{#4}{\lastseenregisterpage }{\lastseenregisterreal }}%
- \fi
- \global\let\firstseenregisterreal\currentseenregisterreal
- \global\let\firstseenregisterpage\currentseenregisterpage
- \global\let\lastseenregisterreal \currentseenregisterreal
- \global\let\lastseenregisterpage \currentseenregisterpage
- \fi\fi}
+ \global\let\savedcurrentseenregisterreal\currentseenregisterreal
+ \global\let\savedcurrentseenregisterpage\currentseenregisterpage
+ \flushseenregisterpage
+ \global\let\firstseenregisterreal\savedcurrentseenregisterreal
+ \global\let\firstseenregisterpage\savedcurrentseenregisterpage
+ \global\let\lastseenregisterreal \savedcurrentseenregisterreal
+ \global\let\lastseenregisterpage \savedcurrentseenregisterpage
+ \fi\fi\fi
+ \gdef\flushseenregisterpage{\doflushseenregisterpage{#1}{#2}{#3}{#4}}}
+
+% \def\dodosetpageregisterpageC#1#2#3#4#5#6%
+% {\xdef\currentseenregisterpage{#5}%
+% \xdef\currentseenregisterreal{#6}%
+% \firstregisterpagefalse
+% \gdef\flushseenregisterpage{\doflushseenregisterpage{#1}{#2}{#3}{#4}}%
+% \ifx\firstseenregisterreal\relax
+% % no range yet
+% \global\let\firstseenregisterreal\currentseenregisterreal
+% \global\let\firstseenregisterpage\currentseenregisterpage
+% \global\let\lastseenregisterreal \currentseenregisterreal
+% \global\let\lastseenregisterpage \currentseenregisterpage
+% \else\ifnum\firstseenregisterreal=\currentseenregisterreal\relax
+% \global\let\firstseenregisterreal\currentseenregisterreal
+% \global\let\firstseenregisterpage\currentseenregisterpage
+% \global\let\lastseenregisterreal \currentseenregisterreal
+% \global\let\lastseenregisterpage \currentseenregisterpage
+% \else\ifnum\lastseenregisterreal=\currentseenregisterreal\relax
+% \global\let\lastseenregisterpage \currentseenregisterpage
+% \else\ifnum\numexpr\lastseenregisterreal+\plusone\relax=\currentseenregisterreal\relax
+% \global\let\lastseenregisterreal \currentseenregisterreal
+% \global\let\lastseenregisterpage \currentseenregisterpage
+% \else
+% % back up, flush, go on
+% \global\let\savedcurrentseenregisterreal\currentseenregisterreal
+% \global\let\savedcurrentseenregisterpage\currentseenregisterpage
+% \let\currentseenregisterpage\lastseenregisterpage
+% \let\currentseenregisterreal\lastseenregisterreal
+% \flushseenregisterpage
+% \global\let\firstseenregisterreal\savedcurrentseenregisterreal
+% \global\let\firstseenregisterpage\savedcurrentseenregisterpage
+% \global\let\lastseenregisterreal \savedcurrentseenregisterreal
+% \global\let\lastseenregisterpage \savedcurrentseenregisterpage
+% \fi\fi\fi\fi}
\def\doflushseenregisterpage#1#2#3#4%
{\global\let\flushseenregisterpage\relax
@@ -526,8 +475,13 @@
{\dodosetpageregisterpageA{#1}{#2}{#3}{#4}{#5}{#6}%
\dodosetpageregisterpageB{#1}{#2}{#3}{#4}{#5}{#6}}
+% \def\dodosetpageregisterpagecollapsed#1#2#3#4#5#6%
+% {\dodosetpageregisterpageA{#1}{#2}{#3}{#4}{#5}{#6}%
+% \dodosetpageregisterpageC{#1}{#2}{#3}{#4}{#5}{#6}}
+
\def\dodosetpageregisterpagecollapsed#1#2#3#4#5#6%
- {\dodosetpageregisterpageA{#1}{#2}{#3}{#4}{#5}{#6}%
+ {\ifx\firstseenregisterreal\relax\flushseenregisterpage\fi
+ \dodosetpageregisterpageA{#1}{#2}{#3}{#4}{#5}{#6}%
\dodosetpageregisterpageC{#1}{#2}{#3}{#4}{#5}{#6}}
% test case for collapsing (experimental, for Steffen Wolfrum)
@@ -564,9 +518,8 @@
\global\let\c!entryc\relax
\global\let\c!entryletter\relax
\global\let\c!entryreference\relax
- \global\chardef\lastregisterpagestatus\zerocount
% \global\firstregisterentrytrue
- \global\firstregisterpagefalse}}
+ \global\firstregisterpagetrue}}
{}}
%D Extended with variant:
@@ -699,7 +652,6 @@
\global\firstsubentrytrue
\global\firstsubsubentrytrue
\setregisterpage{#1}%
- \chardef\lastregisterpagestatus\zerocount
\setvalue{#1\s!entrya}{\dosetpageregisterentrya {#1}}%
\setvalue{#1\s!entryb}{\dosetpageregisterentryb {#1}}%
\setvalue{#1\s!entryc}{\dosetpageregisterentryc {#1}}%
@@ -763,7 +715,7 @@
\fi
\fi
% aangepast
- \def\dodocommando[##1-##2]%
+ \def\dodocommand[##1-##2]%
{\gotonextinternal{\s!ind}{##1}{##2}{\box0}}%
\doifelsevalue{\??id#1\c!interaction}\v!pagenumber
{\limitedregisterentry{#1}{#2}} % paginanummer
@@ -772,25 +724,25 @@
\ifx\midlistreference\empty
\box0
\else
- \expandafter\dodocommando\expandafter[\midlistreference]%
+ \expandafter\dodocommand\expandafter[\midlistreference]%
\fi
\else
- \expandafter\dodocommando\expandafter[\firstlistreference]%
+ \expandafter\dodocommand\expandafter[\firstlistreference]%
\fi}}%
\doifvalue{\??id#1\c!number}\v!yes
{\hskip\getvalue{\??id#1\c!distance}(\commalistsize)}%
\doifnotvalue{\??id#1\c!interaction}\v!text % paginanummer,alles
- {\def\docommando##1##2%
+ {\def\docommand##1##2%
{{\setbox0\hbox{\showlocation{\hbox to 1em{\hss\symbol[##2]\hss}}}%
\ifx##1\empty
% \hskip\wd0 % (optioneel maken)
\else
- \expandafter\dodocommando\expandafter[##1]%
+ \expandafter\dodocommand\expandafter[##1]%
\fi}}%
\hskip\getvalue{\??id#1\c!distance}%
- \docommando\firstlistreference\v!previous
- \docommando\midlistreference\v!somewhere
- \docommando\lastlistreference\v!next}%
+ \docommand\firstlistreference\v!previous
+ \docommand\midlistreference\v!somewhere
+ \docommand\lastlistreference\v!next}%
% tot hier
\else
% no \endgraf
@@ -857,8 +809,9 @@
\ifcase0\countervalue{autolink:#1}\relax % only once
\begingroup
\let\dosetregister\doloadregisterlinks
+ \def\currentregister{#1}%
\setupregister[#1][#2]%
- \doutilities{#1}\jobname{#1}\relax\relax
+ \doutilities{#1}{\registerparameter\c!file}{#1}\relax\relax
\endgroup
\ifautoregisterhack
\doinitializeautoregister{#1}%
@@ -871,10 +824,10 @@
\def\coupleregister
{\dodoubleempty\docoupleregister}
-\def\dodocommandoprolinrefAA[#1-#2]%
+\def\dodocommandprolinrefAA[#1-#2]%
{\def\lastlistreference{#1-#2}}
-\def\dodocommandoprolinrefA[#1-#2]%
+\def\dodocommandprolinrefA[#1-#2]%
{\def\lastlistreference{#1-#2}%
\ifx\firstlistreference\empty
\let\firstlistreference\lastlistreference
@@ -883,24 +836,24 @@
\let\prevlistreference\lastlistreference
\else\ifnum#1>\nextinternalreference\relax
\let\nextlistreference\lastlistreference
- \let\dodocommandoprolinrefA\dodocommandoprolinrefAA
+ \let\dodocommandprolinrefA\dodocommandprolinrefAA
\else
\let\selflistreference\lastlistreference
\fi\fi}
-\def\docommandoprolinrefA#1%
- {\dodocommandoprolinrefA[#1]}
+\def\docommandprolinrefA#1%
+ {\dodocommandprolinrefA[#1]}
-\def\dodocommandoprolinrefB[#1-#2]%
+\def\dodocommandprolinrefB[#1-#2]%
{\gotonextinternal{\s!ind}{#1}{#2}{\box0}}
-\def\docommandoprolinrefB#1#2#3%
+\def\docommandprolinrefB#1#2#3%
{\bgroup
\ifx#2\empty
\doifvalue{\??id#1\c!unknownreference}\v!empty{\hskip1em}%
\else
\setbox0\hbox to 1em{\hss\showlocation{\symbol[#3]}\hss}%
- \expandafter\dodocommandoprolinrefB\expandafter[#2]%
+ \expandafter\dodocommandprolinrefB\expandafter[#2]%
\fi
\egroup}
@@ -914,7 +867,7 @@
\let\nextlistreference\empty
\getalllistreferences{#1}{#3}%
\ifx\alllistreferences\empty \else
- \expanded{\rawprocesscommalist[\alllistreferences]}\docommandoprolinrefA
+ \expanded{\rawprocesscommalist[\alllistreferences]}\docommandprolinrefA
\fi
\ifx\prevlistreference\empty
\let\prevlistreference\lastlistreference
@@ -929,11 +882,11 @@
\setalignmentswitch{\getvalue{\??id#1\c!location}}%
\ifcase\alignmentswitch
% links
- \docommandoprolinrefB{#1}\prevlistreference\v!previous
- \docommandoprolinrefB{#1}\nextlistreference\v!next
+ \docommandprolinrefB{#1}\prevlistreference\v!previous
+ \docommandprolinrefB{#1}\nextlistreference\v!next
\or
% midden
- \docommandoprolinrefB{#1}\prevlistreference\v!previous
+ \docommandprolinrefB{#1}\prevlistreference\v!previous
\or
% rechts
\fi
@@ -946,31 +899,13 @@
% links
\or
% midden
- \docommandoprolinrefB{#1}\nextlistreference\v!next
+ \docommandprolinrefB{#1}\nextlistreference\v!next
\or
% rechts
- \docommandoprolinrefB{#1}\prevlistreference\v!previous
- \docommandoprolinrefB{#1}\nextlistreference\v!next
+ \docommandprolinrefB{#1}\prevlistreference\v!previous
+ \docommandprolinrefB{#1}\nextlistreference\v!next
\fi}}
-% \def\dodolinkedregister[#1][#2]#3% page auto link
-% {\bgroup
-% \chardef\registerpagestatus\plusone
-% \def\currentregister{#1}%
-% \iflocation
-% \ifautoregisterhack
-% \def\next{\doprocessautoregister[#1][#2]}%
-% \else
-% \def\next{\doprocesslinkregister[#1][#2]}%
-% \fi
-% \else
-% \def\next{\doprocesspageregister[#2]{}}%
-% \fi
-% \next{#3}%
-% \egroup
-% \ifvmode\nobreak\fi
-% \GotoPar}
-
\def\doprocesslinkedregister[#1][#2]#3% page auto link
{\bgroup
\chardef\registerpagestatus\plusone
@@ -1092,7 +1027,7 @@
\c!align=\registerparameter\c!align]%
\dontcomplain
\startpacked[\v!blank]%
- \doutilities\currentregister\jobname\currentregister\dobeforeplaceregister\doafterplaceregister
+ \doutilities\currentregister{\registerparameter\c!file}\currentregister\dobeforeplaceregister\doafterplaceregister
\stoppacked
\stopcolumns
\endgroup
@@ -1151,6 +1086,7 @@
\c!prefix=\v!both,
\c!expansion=,
\c!keyexpansion=,
+ \c!file=\jobname,
%\c!deeptextcommand=, % undefined by default !
\s!language=\currentmainlanguage]%
\doglobal\appendtoksonce
@@ -1176,6 +1112,7 @@
\def\dodetermineregistercharacteristics[#1][#2]%
{\begingroup
+ \def\currentregister{#1}%
\setupregister[#1][#2]%
\dosetreglevel{#1}%
\setvalue{#1\s!from}%
@@ -1186,8 +1123,7 @@
\global\utilitydonetrue}
{}}%
\doglobal\newcounter\utilityregisterlength
- \setbox0\vbox
- {\doutilities{#1}\jobname{#1}\relax\relax}%
+ \setbox0\vbox{\doutilities{#1}{\registerparameter\c!file}{#1}\relax\relax}%
\endgroup
\ifregistergeplaatst
\setsystemmode \v!register