Mail Archives: djgpp/2012/07/07/20:18:43
Hi,
On Saturday, July 7, 2012 1:54:05 AM UTC-5, Eli Zaretskii wrote:
> > From: "Stephen W. Bullington" <s DOT DOT AT nospam DOT key-net DOT net>
> > Date: Fri, 6 Jul 2012 18:00:36 -0400
> >
> > When I try to use [Emacs] I get the message "Failed to
> > open temporary file: no such
> > file or directory (ENOENT), detmp.XXX". I get the same message if I try
> > to run a shell command. I also have DJGPP Emacs installed on a Windows
> > 98SE box, with LFN=Y, and Ispell works fine there.
Annoying. I really suck at using GDB, or I could've found this faster. Anyways ....
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. :-)
- Raw text -