Benjamin Berg <[log in to unmask]> writes:

> Hi,
>
> On Sun, 2019-03-31 at 18:57 -0300, Phelype Oleinik wrote:
>> If you can't switch the catcode of & before looking for the
>> optional argument, as David suggests
>
> David has a good point, I could handle the optional argument parsing
> myself and ensure that the case works correctly. It may not be trivial,
> but it should be reasonably easy.

It should be trivial.  You just use the provided mechanism exactly as
you did before (though naming it differently) and call it last thing in
your argumentless wrapper environment after setting up catcodes.  That
way the argument scanning only commences once catcodes are settled.

-- 
David Kastrup