On 28/07/2023 17:29, Joseph Wright wrote: > On 28/07/2023 16:44, LARONDE Thierry wrote: >> On Fri, Jul 28, 2023 at 04:20:09PM +0100, Joseph Wright wrote: >>> On 28/07/2023 16:18, David Carlisle wrote: >>>> On 28/07/2023 16:14, LARONDE Thierry wrote: >>>>> On Fri, Jul 28, 2023 at 03:58:49PM +0100, Joseph Wright wrote: >>>>>> On 28/07/2023 15:28, Thierry wrote: >>>>>>> Yes. But the same engine does things differently between LaTeX >>>>>>> 2022-11-01 and LaTeX 2023-06-01. >>>>>>> >>>>>>> So could someone give me the diff of the input related things in >>>>>>> LaTeX between these two versions so that I can have a clue about >>>>>>> what LaTeX is expecting and what it is eventually calling >>>>>>> (because it >>>>>>> could be calling, low level, the open routine, and there is no >>>>>>> acrobatics made in the open routine in kerTeX: the handling is made >>>>>>> before calling the routine; so if LaTeX is calling low level like >>>>>>> this, the result is not a surprise). >>>>>> Older LaTeX used \openin + \ifeof to test for file existence; we >>>>>> now use >>>>>> \(pdf)filesize, which is expandable and reports "0" for a >>>>>> non-existent file. >>>>>> Both methods should find "foo.tex" from "foo" in the same way. >>>>>> >>>>> Uh! You expect \filesize to do searching and file extension? Why? >>>>> \filesize can be called with whatever file, not necessarily a .tex. >>>>> Why would it assume it has to try an extension if it is not found? >>>>> >>>>> Where was this specified for the primitive? >>>> >>>> The primitive has always acted that way (since being added by pdftex) >>>> it's not a latex feature. >>>> >>>> If \input{xxx} inputs a file, \(pdf)filesize{xxx} should refer to the >>>> same file, so the primitive has always used the same file searching. >>> >>> Indeed, we (team) picked up the trick of using \(pdf)filesize from Heiko >>> Oberdiek's code, where it has been used for I think 15+ years in some >>> extensions to the graphics mechanisms for file searching. >>> >> >> And it was specified nowhere. > > True, but I think that's because it's implicit in TeX. The 'classical' > primitives \input, \openin and \openout all add .tex if no file > extension is given: this is why you cannot create extensionless files > from DocStrip, for example. So when Hans added other file-related > primitives to pdfTeX, the same underlying extension behaviour applied > automatically - the same low-level file access is used by everything. Note that in order to do file testing by expansion (which we want for various expl3 functions), we *have* to avoid \openin and that realistically means \(pdf)filesize is the best option. Joseph