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 ... ;-) Ciao Andreas