Mail Archives: djgpp/2012/07/08/11:35:36
> Date: Sat, 7 Jul 2012 17:18:28 -0700 (PDT)
> From: rugxulo AT gmail DOT com
> Cc: djgpp AT delorie DOT com
>
> The problem is that src\callproc.c uses mkstemp(), hence callproc's "Failed to open temporary file" message, since mkstemp() calls mktemp() which requires a filename using "emXXXXXX" and fails on "emxxxxxx" (lower case 'x's).
>
> Here's callproc.c's culprit line (indirectly):
>
> pattern = Fexpand_file_name (Vtemp_file_name_pattern, tmpdir);
>
> See src\fileio.c for that definition, which basically uses this:
>
> name = FILE_SYSTEM_CASE (name);
>
> Which is defined in src\s\msdos.h as this:
>
> #define FILE_SYSTEM_CASE Fmsdos_downcase_filename
>
> Which is ultimately defined in src\msdos.c and basically says this:
>
> "Under LFN we expect to get pathnames in their true case."
>
> So there, problem solved! Now Dr. Watson ... er, Eli, can suggest a tiny patch or you can probably figure it out yourself. :-)
Thanks, this is indeed the cause of the problem.
I think I will simply remove that #define of FILE_SYSTEM_CASE for the
DJGPP port. I don't see why we need it nowadays, that all file names
are compared case-insensitively on DOS and Windows.
- Raw text -