delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2012/07/07/20:18:43

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
X-Recipient: djgpp AT delorie DOT com
Path: glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: comp.os.msdos.djgpp
Date: Sat, 7 Jul 2012 17:18:28 -0700 (PDT)
In-Reply-To: <83sjd412pe.fsf@gnu.org>
Complaints-To: groups-abuse AT google DOT com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=65.13.115.246;
posting-account=p5rsXQoAAAB8KPnVlgg9E_vlm2dvVhfO
NNTP-Posting-Host: 65.13.115.246
References: <MPG DOT 2a61256b7098af43989680 AT news60 DOT forteinc DOT com> <83sjd412pe DOT fsf AT gnu DOT org>
User-Agent: G2/1.0
X-Google-Web-Client: true
X-Google-IP: 65.13.115.246
MIME-Version: 1.0
Message-ID: <b7563c8c-4248-499f-a8fe-bcffa12eb5e9@googlegroups.com>
Subject: Re: Ispell (found the problem!)
From: rugxulo AT gmail DOT com
To: comp DOT os DOT msdos DOT djgpp AT googlegroups DOT com
Cc: djgpp AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019