On 08/05/2014 17:00, Ulrike Fischer wrote:

> I tested a bit with various files and it seems ok. But -- as the
> question on tex.sx shows -- the bug didn't always lead to errors but
> could simply produce faulty output and it is not so easy to check if
> somewhere an "and" or a comma is missing


 With this change reverted the only remaining change is adding \long everywhere
so there shouldn't be any change other than things that were error before are now allowed.
(Although code that is explicitly checking a definition with \patchcmd or
\checkcommand etc can of course fail if _any_ change is made such failures are usually pretty obvious though.

> If one loads the new xkeyval v2.6c before keyval the error is still
> there. So xkeyval needs a patch too.

Yep it's an identical patch needed (in xkeyval's keyval.tex and xkeyval.tex)
Sorry to Hendri Adriaens (I gave him a prerelease of keyval and suggested he update to
match) I was just holding off until I have confirmed this is OK before suggesting xkeyval is changed again.


$ diff /usr/local/texlive/2014/texmf-dist/tex/generic/xkeyval/keyval.tex .
< \long\def\KV@@sp@b#1##1 \@nil{\KV@@sp@c\@empty##1}%
> \long\def\KV@@sp@b#1##1 \@nil{\KV@@sp@c##1}%
< \long\def\KV@@sp@c#1\@nil#2\relax#3{\XKV@toks\expandafter{#1}\edef#3{\the\XKV@toks}}
> \long\def\KV@@sp@c#1\@nil#2\relax#3{\XKV@toks{#1}\edef#3{\the\XKV@toks}}

$ diff /usr/local/texlive/2014/texmf-dist/tex/generic/xkeyval/xkeyval.tex .
<   \XKV@r@placepointers\@empty#1\usevalue\@nil
>   \XKV@r@placepointers#1\usevalue\@nil
<   \expandafter\XKV@addtomacro@n\expandafter\XKV@tempa\expandafter{#1}%
>   \XKV@addtomacro@n\XKV@tempa{#1}%

The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs.