Hello, ** Ulrike Fischer [2013-05-01 18:50:01 +0200]: > In february there was a discussion about how \input handles files > without extension > (http://tug.org/mailman/htdig/luatex/2013-February/004042.html).
> The problem popped up again in a tex.sx question today > http://tex.stackexchange.com/questions/111747/error-with-lualatex-lstinputlisting-and-an-extension-less-file > So I tried to identify the source of the problem. > When using \input{foo} LaTeX checks for the existence of a file with > \openin and \ifeof and this test fails for files without extension. > On the other side the primitive \input foo works without problem. > \openin0 makefile % makefile exist in the folder > \ifeof0 % gives: don't exist > don't exist > \else > exist > \fi > \closein0 > \openin0 {makefile} %with braces > \ifeof0 % gives: exist > don't exist > \else > exist > \fi > \closein0 > \input makefile %works > \openin0 test-1 % test-1.tex exists > \ifeof0 % gives: exist > don't exist > \else > exist > \fi > \closein0 > \input test-1 %works > \bye > I tested with > LuaTeX, Version beta-0.70.2-2012080612 (TeX Live 2012/W32TeX) > and Version beta-0.77.0-2013041621 (rev 4633) (Context) > Is this behaviour of \openin a bug or intended? I'm not TeX expert but I did some extended tests based on your example in TeX Live 2012 (Linux x86_64) using pdftex, xetex and luatex engines. ex1: full copy of Ulrike example; ex2: my dummy example, here I use macros for file names; ex3: slightly modified version of ex1; Results: ex1 === block / engine | pdftex | xetex | luatex --------------------+-------------+-------------+------------- \openin0 makefile | exist | exist | don't exist \openin0 {makefile} | don't exist | don't exist | exist \openin0 test-1 | exist | exist | exist --------------------+-------------+-------------+------------- File 'makefile' included into document in all cases, as well as 'test-1.tex'. ex2 === Here I define two macros for file names: '\flI' and '\flII'. block / engine | pdftex | xetex | luatex -----------------+-------------+-------------+--------- \openin0 \flI | exist | - | exist \openin0 {\flI} | don't exist | don't exist | exist \openin0 \flII | exist | - | exist -----------------+-------------+-------------+--------- xetex don't show message for first and third '\ifeof0' but still includes both files. ex3 === This test file is essential the same as ex1 but I added some test to 'if' branches to distinguish all three blocks. block / engine | pdftex | xetex | luatex --------------------+-------------+-------------+------------- \openin0 makefile | exist | exist | don't exist \openin0 {makefile} | don't exist | don't exist | exist \openin0 test-1 | exist | exist | exist --------------------+-------------+-------------+------------- As I told I'm not TeX expert but from my PoV enclosing file name in {} or defining a macro for it is fine and works in all cases. I attach test TeX files and corresponding PDF files. --- WBR, Vladimir Lomov -- OS/2 must die!
openin-test-files.tar.xz
Description: Binary data
