summaryrefslogtreecommitdiff
path: root/tex/context/base/core-reg.tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2005-01-12 00:00:00 +0100
committerHans Hagen <pragma@wxs.nl>2005-01-12 00:00:00 +0100
commit0fece0253ad71930dc23890d1ae3e1f76b296acb (patch)
treeee4101915a66616c98023bf6456d5615817b0766 /tex/context/base/core-reg.tex
parent5604cb0a875f6114b67391fd279060678a9b7937 (diff)
downloadcontext-0fece0253ad71930dc23890d1ae3e1f76b296acb.tar.gz
stable 2005.01.12
Diffstat (limited to 'tex/context/base/core-reg.tex')
-rw-r--r--tex/context/base/core-reg.tex124
1 files changed, 26 insertions, 98 deletions
diff --git a/tex/context/base/core-reg.tex b/tex/context/base/core-reg.tex
index d9a94631d..9bf43bf45 100644
--- a/tex/context/base/core-reg.tex
+++ b/tex/context/base/core-reg.tex
@@ -74,26 +74,34 @@
\processseparatedlist[#1][+]\docommando
\!!stringa}
+% \enableregime[windows] \setupregister[index][keyexpansion=strict]
+%
+% \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{\??id\currentregister}{#3}\asciiregisterentry
+ \convertexpanded{\getvalue{\??id\currentregister\c!keyexpansion}}{#1}\asciiregisterentryA
+ \convertexpanded{\getvalue{\??id\currentregister\c!expansion }}{#3}\asciiregisterentryB
+\doifvaluesomething{\??id\currentregister\c!keyexpansion}
+ {\ifx\asciiregisterentryA\empty
+ \convertexpanded{\getvalue{\??id\currentregister\c!keyexpansion}}{#3}\asciiregisterentryA
+ \fi}%
\makesectionformat
\doifelsevalue{\??id\currentregister\c!ownnumber}\v!yes
\donetrue\donefalse
% the spaces between } { are essential for texutil's split
- \edef\schrijfwegnaarregister%
+ \expanded
{\writeutility%
{r \ifcase\registerpagestatus\space\or e \or f \or t \fi
{\currentregister} %
{\nextinternalreference} %
- {#1} %
- {\asciiregisterentry} %
+ {\asciiregisterentryA} %
+ {\asciiregisterentryB} %
{\sectionformat\sectionseparator\sectionseparator
\ifdone#2\else\noexpand\pagenumber\fi} %
{\noexpand\realfolio}}}%
- \schrijfwegnaarregister
\getfirstcharacter\currentregister
\registerinfo{> \firstcharacter}{#3}%
\endgroup}
@@ -140,54 +148,32 @@
\def\dostopregister[#1][#2]%
{\getvalue{\??id#1\??id#2}\setgvalue{\??id#1\??id#2}{}}
-%\def\dodostopregister[#1][#2]%
-% {\chardef\registerpagestatus=3
-% \def\currentregister{#1}%
-% \complexdoregister[#2]}
-
\def\dodostopregister[#1][#2]%
{\chardef\registerpagestatus3
\def\currentregister{#1}%
\donoregister[#2]}
-% \def\complexdozieregister[#1]#2#3%
-% {\begingroup
-% \thisisnextinternal\s!ind
-% \ifduplicate\getlastregisterentry{#2}\fi
-% \convertexpanded{\??id\currentregister}{#2}\asciiregisterentryA
-% \convertexpanded{\??id\currentregister}{#3}\asciiregisterentryB
-% \makesectionformat
-% \edef\schrijfwegnaarregister%
-% {\writeutility%
-% {r s %
-% {\currentregister} %
-% {\nextinternalreference} %
-% {#1} %
-% {\asciiregisterentryA} %
-% {\asciiregisterentryB} %
-% {\sectionformat}}}%
-% \schrijfwegnaarregister
-% \endgroup
-% \registerinfo{> zie}{#2}%
-% \GotoPar}
-
\def\complexdozieregister[#1]#2#3%
{\begingroup
\thisisnextinternal\s!ind
\ifduplicate\getlastregisterentry{#2}\fi
- \convertexpanded{\??id\currentregister}{#2}\asciiregisterentryA
- \convertexpanded{\??id\currentregister}{#3}\asciiregisterentryB
+ \convertexpanded{\getvalue{\??id\currentregister\c!keyexpansion}}{#1}\asciiregisterentryA
+ \convertexpanded{\getvalue{\??id\currentregister\c!expansion }}{#2}\asciiregisterentryB
+ \convertexpanded{\getvalue{\??id\currentregister\c!expansion }}{#3}\asciiregisterentryC
+\doifvaluesomething{\??id\currentregister\c!keyexpansion}
+ {\ifx\asciiregisterentryA\empty
+ \convertexpanded{\getvalue{\??id\currentregister\c!keyexpansion}}{#2}\asciiregisterentryA
+ \fi}%
\makesectionformat
- \edef\schrijfwegnaarregister%
+ \expanded
{\writeutility%
{r s %
{\currentregister} %
{\nextinternalreference} %
- {#1} %
{\asciiregisterentryA} %
{\asciiregisterentryB} %
+ {\asciiregisterentryC} %
{\sectionformat}}}%
- \schrijfwegnaarregister
\endgroup
\registerinfo{> zie}{#2}%
\GotoPar}
@@ -196,10 +182,6 @@
{\def\currentregister{#1}%
\complexorsimpleempty\dozieregister}
-%\def\doschrijfnaarregister[#1]% % de twee-traps-aanroep is nodig
-% {\edef\currentregister{#1}% % om gebruik van \ExpandBothAfter
-% \doprocesspageregister} % mogelijk te maken
-
\def\dowritetoregister[#1]% % de twee-traps-aanroep is nodig
{\edef\currentregister{#1}% % om gebruik van \ExpandBothAfter
\doprocesspageregister{}} % mogelijk te maken
@@ -308,61 +290,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}%
-% \else
-% \doregistertexthowto{#2}{##1}%
-% \fi
-% \egroup
-% \!!doneafalse}%
-% \!!doneafalse
-% \doifelsevalue{\??id#2\c!interactie}\v!tekst
-% {\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!afstand}\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
-% \doifelsevalue{\??id#2\c!interactie}\v!paginanummer
-% {\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}}%
-% \ignorespaces
-% \global\chardef\lastregisterpagestatus#1\relax
-% \fi
-% \global\firstregisterpagefalse}
-
\def\dodosetpageregisterpage#1#2#3#4#5#6%
{\global\utilitydonetrue
\c!entryletter
@@ -557,7 +484,7 @@
{\dosetfilterlevel{\getvalue{\??id#1\c!criterium}}\empty}
\def\getalllistreferences#1#2%
- {\doglobal\convertexpanded{\??id#1}{#2}\currentregisterentry
+ {\doglobal\convertexpanded{\getvalue{\??id#1\c!expansion}}{#2}\currentregisterentry
\doifdefinedelse{\??id#1\??id\currentregisterentry}
{\edef\alllistreferences%
{\getvalue{\??id#1\??id\currentregisterentry}}%
@@ -959,7 +886,8 @@
\c!maxwidth=,
\c!number=\v!no,
\c!unknownreference=\v!empty,
- \c!expansion=]%
+ \c!expansion=,
+ \c!keyexpansion=]%
\presetheadtext[#1=\Word{#1}]%
\addutilityreset{#1}%
\setvalue{#1}{\doregister{#1}}%
@@ -971,7 +899,7 @@
\setvalue{\e!complete#1}{\completeregister[#1]}%
\setvalue{\e!setup#1\e!endsetup}[##1]{\getparameters[\??id#1][##1]}}
-\def\defineregister%
+\def\defineregister
{\dodoubleargument\dodefineregister}
\def\registerlengte{\utilityregisterlength}