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

Reply via email to