Am 13.05.2011 um 12:43 schrieb Heiko Oberdiek: > On Fri, May 13, 2011 at 10:25:16AM +0200, Paul Isambert wrote: > >> Le 13/05/2011 09:15, Manuel Pégourié-Gonnard a écrit : >>> Le 13/05/2011 02:08, Philipp Stephani a écrit : >>>> or at >>>> least rewritten so that \jobname is never expanded at every job: >>>> >>> I don't see any way to achieve that at the moment. >> >> The following observation might help: \everyjob is put into the >> stream before whatever comes next. So it can know what's coming, >> either \input or anything else. If it is \input, then it just has to >> use one \expandafter before doing what it is supposed to do, and >> \jobname is correctly fixed. >> >> For instance, try "lualatex \input test" > > And this will miss the cases where some code is inbetween that > does not affect \jobname, e.g.: > "lualatex \def\flag{...}\input test" > > And quoting the \jobname should not be necessary, because > LuaTeX supports the {}-syntax with \input, \openin, \openout, ... > Thus the LaTeX kernel macros that mess with file input and output > needs fixed to support spaces. Unhappily this will also change > internal interfaces, because the space is used as end delimiter > of the file name or spaces are removed from file names (\includeonly). Still I think this should be tried; there is no other robust way than to fix the LaTeX issues. The format initialization files already contain several engine-related fixes, and a few more shouldn't hurt. If they change something user-visible, then they could go to fixltx2e. Maybe we should even do the unthinkable and forbid the unbraced version of \input entirely: better fail loudly in all cases than silently in an incalculable number of cases. Grepping through the LaTeX-related macro trees finds only 4112 instances of \\(@@){0,2}input, that's almost trivial and doable in five minutes ;'-/