Subject: Re: [h-e-w] Re: Possible bug in Emacs 21.3
From: [email-masked]
To: David Ponce <[email-masked]>
Cc: [email-masked], [email-masked], [email-masked], [email-masked]
Date: Sat, 29 Mar 2003 19:08:19 +0100

Hello David,

I tried your patch below with emacs-21.3 and emacs cvs head and it
works very fine with gcc 3.2 and the latest cygwin release. So
hopefully the patch is soon included into cvs. Thanks for your fast
reply.

Harald

David Ponce <[email-masked]> writes:

> [email-masked] wrote:
>
>> "Peter Milliken" <[email-masked]> writes:
>>
>>>I have downloaded the source of 21.3 and built it on a PC running Win2000
>>>and using the Cygwin distribution and following the INSTALL instructions in
>>>emacs-21.3/nt/INSTALL (well, I ran "configure.bat --prefix=/c/emacs" and
>>>then type "make install" as I have done for all other source distributions
>>>:-))
>>>
>>>The resulting binary falls over with a "Abort, Retry or Ignore" dialog when
>>>any package referenced from my .emacs that attempts to "require" the cl.el
>>>package.
>>>
>>>Just typing M-: (require 'cl) from within the Emacs session will bring up
>>>the problem.

>> ----------------------------------+-----------------
>> gcc    2.95.3-10 (cygwin special) | fails with cl.el
>> gcc 3.2 20020927 (prerelease)     | fails with cl.el
>> gcc     2.95.3-6 (mingw special)  | okay
>> msvc                              | okay

> Maybe are you using the mingw runtime 2.3 or 2.4?
> There is a compatibility problem between that runtime and Emacs,
> because of change in the way it handles binary vs. text IO mode.
>
> Notice that the development version (in CVS) is affected too.
>
> The following patch (discussed in the emacs-devel ML) fixed that
> problem for me.

>
> *** emacs.c.ori	Thu Aug 29 21:27:07 2002
> --- emacs.c	Thu Mar 27 16:29:58 2003
> ***************
> *** 40,45 ****
> --- 40,49 ----
>    #include <sys/ioctl.h>
>    #endif
>
> + #ifdef WINDOWSNT
> + #include <fcntl.h>
> + #endif
> +
>    #include "lisp.h"
>    #include "commands.h"
>    #include "intervals.h"
> ***************
> *** 874,884 ****
>      uninterrupt_malloc ();
>    #endif	/* not SYSTEM_MALLOC */
>
> ! #ifdef MSDOS
>      /* We do all file input/output as binary files.  When we need to translate
>         newlines, we do that manually.  */
>      _fmode = O_BINARY;
>
>    #if __DJGPP__ >= 2
>      if (!isatty (fileno (stdin)))
>        setmode (fileno (stdin), O_BINARY);
> --- 878,890 ----
>      uninterrupt_malloc ();
>    #endif	/* not SYSTEM_MALLOC */
>
> ! #if defined (MSDOS) || defined (WINDOWSNT)
>      /* We do all file input/output as binary files.  When we need to translate
>         newlines, we do that manually.  */
>      _fmode = O_BINARY;
> + #endif /* MSDOS || WINDOWSNT */
>
> + #ifdef MSDOS
>    #if __DJGPP__ >= 2
>      if (!isatty (fileno (stdin)))
>        setmode (fileno (stdin), O_BINARY);

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/