On 2017-04-16, Zdenek Wagner <zdenek.wag...@gmail.com> wrote:
> 2017-04-16 10:08 GMT+02:00 Julian Bradfield <jcb+xe...@jcbradfield.org>:
....
>> Definitely a bug. The TeXbook defines the behaviour of \if and \ifcat,
>> and all control sequences are considered to have character code 256
>> and category code 16, unless \let equal to a non-active character, in
>> which case they have the value of that character.
>>
>> Not all control sequences but primitives. Unlike \ifx, \if and \ifcat
> perform full expansion.

(a) Yes, they do perform expansion. That's irrelevant to the point at
    hand, since expansion happens before the comparison.
(b) All control sequences, not just primitives:

\ifcat\noexpand\foo\noexpand\baz true\else false \fi

\ifcat\noexpand\foo\halign true\else false \fi

As Philip pointed out, I was reporting Knuth's words, which are by
definition authoritative.


--------------------------------------------------
Subscriptions, Archive, and List information, etc.:
  http://tug.org/mailman/listinfo/xetex

Reply via email to