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 -