Greetings,
Attached please find a small patch against the Nov 5th beta
which fixes a few bugs in register page number compression.
--Mike Bird
diff -Naur -x'*~' tex.original/context/base/core-reg.tex tex/context/base/core-reg.tex
--- tex.original/context/base/core-reg.tex 2006-10-26 01:28:15.000000000 -0700
+++ tex/context/base/core-reg.tex 2006-11-11 10:31:46.000000000 -0800
@@ -313,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}
@@ -353,27 +351,15 @@
\global\let\c!entryreference\relax}
\def\dodosetpageregisterpageB#1#2#3#4#5#6%
- {\global\let\lastseenregisterreal\currentseenregisterreal
- \global\let\lastseenregisterpage\currentseenregisterpage
- \xdef\currentseenregisterpage{#5}%
- \xdef\currentseenregisterreal{#6}%
- \let\placeregisterpageseparator\relax
- \iffirstregisterpage
- \global\chardef\lastregisterpagestatus\zerocount
+ {\iffirstregisterpage
\expandafter\hskip\getvalue{\??id#2\c!distance}\relax
- \donetrue
\else\ifnum#1=3
- |--|\relax % -- !
- \donetrue
- \else\ifnum\lastregisterpagestatus=2
- \donefalse % waiting for "to" pagenumber
+ \strut|--|\relax % -- !
\else
% \relax after space needed because | looks ahead
- \def\placeregisterpageseparator{\registerpageseparator|\space|\relax}%
- \donetrue
- \fi\fi\fi
- \ifdone
- \strut\placeregisterpageseparator
+ \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
@@ -389,7 +375,7 @@
{\hbox{\doregisterpage{#2}[#5]\ifnum#1=2\/\fi}}%
\endgroup
\ignorespaces
- \global\chardef\lastregisterpagestatus#1\relax
+ \relax
\fi
\global\firstregisterpagefalse}
@@ -406,7 +392,6 @@
\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
@@ -426,7 +411,8 @@
\global\let\firstseenregisterpage\savedcurrentseenregisterpage
\global\let\lastseenregisterreal \savedcurrentseenregisterreal
\global\let\lastseenregisterpage \savedcurrentseenregisterpage
- \fi\fi\fi}
+ \fi\fi\fi
+ \gdef\flushseenregisterpage{\doflushseenregisterpage{#1}{#2}{#3}{#4}}}
\def\doflushseenregisterpage#1#2#3#4%
{\global\let\flushseenregisterpage\relax
@@ -460,7 +446,7 @@
% \dodosetpageregisterpageC{#1}{#2}{#3}{#4}{#5}{#6}}
\def\dodosetpageregisterpagecollapsed#1#2#3#4#5#6%
- {\iffirstregisterpage\flushseenregisterpage\fi
+ {\ifx\firstseenregisterreal\relax\flushseenregisterpage\fi
\dodosetpageregisterpageA{#1}{#2}{#3}{#4}{#5}{#6}%
\dodosetpageregisterpageC{#1}{#2}{#3}{#4}{#5}{#6}}
@@ -498,7 +484,6 @@
\global\let\c!entryc\relax
\global\let\c!entryletter\relax
\global\let\c!entryreference\relax
- \global\chardef\lastregisterpagestatus\zerocount
% \global\firstregisterentrytrue
\global\firstregisterpagetrue}}
{}}
@@ -633,7 +618,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}}%
_______________________________________________
dev-context mailing list
[email protected]
http://www.ntg.nl/mailman/listinfo/dev-context