bug-texinfo
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fwd: REVIEW REQUEST - user manual generation


From: Vincent Belaïche
Subject: Re: Fwd: REVIEW REQUEST - user manual generation
Date: Thu, 05 May 2016 11:55:13 +0200

Answering to myself below...

>Feedback below...
>
>Le 04/05/2016 22:57, Gavin Smith a écrit :
>> On 2 May 2016 at 20:53, Gavin Smith <address@hidden> wrote:
>>> On 29 April 2016 at 09:27, Vincent Belaïche <address@hidden> wrote:
>>>> Attached is an attempt to do that. Unfortunately using \egroup for group

[...]

>> ============
>> (I typed the "x" here as input.) I may try upgrading to a newer
>> version and see if the same happens.
>
>
>That is defintely a bug : any crash is a bug. You should try
>
>etex '\toks0={\input toto.texi\relax}\the\toks0'
>
>because otherwise when \the\toks0 is expanded, then the \input command
>is waiting from input to conclude the filename, as the filename has to
>be terminated by a space or \relax.
>
>The bug is probably that with the \input expansion etex reads past the
>end of the argument string an ``infinite'' file name and doing so corrupt
>somehow the memory.
>
>   Vincent.


Please note that I meant 'test.texi', not 'toto.texi' ...

You can also do one of these:

  etex '\toks0={\input test.texi}\the\toks0\space\space'

  etex '\toks0={\input test.texi}\the\toks0 \space'

  etex '\toks0={\input test.texi}\the\toks0\relax'


If you just type:

  etex '\toks0={\input test.texi}\the\toks0'

then what happens is that the tailing '\the\toks0' eats the end of
argument to find out that the argument of \toks is 0 (not 01 or 001),
then, so when '\the\toks0' is expanded, '\input test.texi' is waiting for
some input to decide whether the filename is 'test.texi' or, say,
'test.texiXXX'. Under these circumstances, MikTeX enters the interactive
mode with prompt '*'. By just typing one space + enter, the compilation
is launched.

Now, with:

  etex '\toks0={\input test.texi}\the\toks0 \space'

the first space after '\the\toks0' is eaten by '\toks' grabbing the token
number, ie it is grabbed along with '0', and the second space is eaten
by the expansion of '\input test.texi'.

What strikes me is that by typing (just one space after '\the\toks0'):

etex '\toks0={\input test.texi}\the\toks0 '

then MikTeX also enters interactive mode. This means that the end of
argument condition is lost after the first expansion. This means that
this condition it not implemented like some special token that would
expand to empty and be removed by the expansion processor whenever
preceding tokens need more input (like some macro asking for input
tokens).

   Vincent.







reply via email to

[Prev in Thread] Current Thread [Next in Thread]