Morten Høgholm wrote:
> On Fri, 28 Dec 2007 14:31:52 +0100, Andreas Matthias wrote:
>> Well, I am still pondering on this. How does \def:Npx fit into this
>> scheme? The x argument is not expanded before being passed to \edef.
> The x argument is expanded before being passed on the
> \def:Npn. Which is more or less true except currently it is
> implemented as a straight \edef because it would otherwise suffer
> from the same problems as other functions needing to go through a
> temporary variable in the \::x function. With the \expanded
> primitive in pdfTeX 1.50 we should have uniform behavior at last.
>> Here are some other functions I just ran across, where the x might not
>> be appropriate: \io_put_deferred:Nx, \io_put_term:x, \io_put_log:x,
>> \err_message:x, \err_latex_bug:x. These names have the same problem
>> as the proposed \int_set:Nx, haven't they?
> Most of those functions are from before eTeX was required and so
> now one could say the base form of many such messages was, say,
> \err_latex_bug:n which just outputs a message (making it literal
> with \unexpanded) and then there are x variants in case one wants
> to use the value of some variable in the output. You are pointing
> to an area of the code which hasn't received much attention after
> we started extending expl3 and it could use some cleaning up (so
> could our 4-day old daughter so I better look at that first! :-).
Sounds all reasonable to me. But these explanations can be used to
promote \int_set:Nx, as well. And here we start again ... ;-)