Thursday, January 17, 2002 Giuseppe Bilotta wrote:

GB> Hello,

GB> I have a bug report and an enhancement request for enumerations.

GB> First of all: the bug.

I found the bug. It comes from the definition in core-des:

\def\special@@definitiewoord#1#2#3#4[#5]#6#7%
  {\strut
   \doifelsevalue{\??dd#1\c!nummer}{\v!nee}
     {\!!doneafalse}
     {\doifelse{#5}{-}
        {\!!doneafalse}
        {\!!doneatrue}}%
   \chardef\definitiekoppeling=0
   \iflocation
     \doifvaluesomething{\??dd#1\c!koppeling}
       {\processaction % genereert > of <
          [\getvalue{\??dd#1\c!koppelwijze}]
          [ \v!lokaal=>\chardef\definitiekoppeling=1, % old: default
           \v!globaal=>\chardef\definitiekoppeling=2]}% new: global crosslinking
   \fi
   \stelnummerin % the number is called indirectly
     [\getvalue{\??dd#1\??dd\c!nummer}]
     [\c!sectienummer=\getvalue{\??dd#1\c!sectienummer}]%
   \if!!donea
     \getvalue{\e!volgende#2#1}%
     \iflocation
       \bgroup
       \setvalue{\??dd#1\c!sectienummer}{\v!ja}%
       \protectconversion
      %\maakvoorafgaandenummer[#1]%
       \maakvoorafgaandenummer[\getvalue{\??dd#1\??dd\c!nummer}]%
       \ifcase\definitiekoppeling \or
         \xdef\internaldoornummer{#3{#1}}%
         \rawreference{\s!num}{#1:\internaldoornummer}{}%
       \or
         \xdef\internaldoornummer{\countervalue{\??dd\c!koppeling#1}}%
         \rawreference{\s!num}{#1:\internaldoornummer}{}%
       \fi
       \egroup
     \fi
    %\maakvoorafgaandenummer[#1]%
     \maakvoorafgaandenummer[\getvalue{\??dd#1\??dd\c!nummer}]%
     \hbox
       {\let\normalkap\relax % sorry, uppercase causes troubles
        \doattributes        % \nocase primitive needed
          {\??dd#1}\c!kopletter\c!kopkleur
          {\getvalue{\??dd#1\c!commando}% hook for taco 
             {\showdntext{#2#1}%
              \domakednnummer{#1}{#2}{#3}}}%
        \iflocation\ifcase\definitiekoppeling \else
          \edef\localconnection{\getvalue{\??dd#1\c!koppeling}:\internaldoornummer}%
          \doifreferencefoundelse{\localconnection}
            {\in[\localconnection]}{}% genereert > of <
         %\in[\localconnection]%
        \fi\fi}%
     \doifnot{#5}{-}{\rawreference{\s!num}{#5}{#3{#1}}}%
% Here is the bug -----------------------------^^^^^^
% When this gets called with \showdnnummer as #3, there
% is an expansion problem, since \showdnnummer is *not*
% properly expandable: it uses the command sequence
% \preparednumber which is defined by \showdnnummer itself
% If I change the line with something like
     \preparethenumber{\??dd#1}\voorafgaandenummer\preparednumber
     \edef\thenumbertouse{%
       \preparednumber
       \nummer[\getvalue{\??dd#1\??dd\c!nummer}]}%
     \doifnot{#5}{-}{\rawreference{\s!num}{#5}{\thenumbertouse}}%
% everything goes on smoothly.
% Maybe we need and expandable version of showdnnummer?
   \else % Why was this strange expansion needed? 
     \hbox
       {\edef\!!stringa{\showdnpuretext{#2#1}}% nog eens testen binnen \expanded
        \expanded{\doattributes{\??dd#1}\noexpand\c!kopletter\noexpand\c!kopkleur
          {\noexpand\getvalue{\??dd#1\c!commando}%
             {\!!stringa}}}%
        \doifnot{#5}{-}{\rawreference{\s!num}{#5}{}}}%
   \fi}

--
Giuseppe "Oblomov" Bilotta

Reply via email to