From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Joe Buehler Newsgroups: gmane.emacs.devel Subject: [PATCHES] 21.3.50 for Cygwin: patch 5 Date: Fri, 06 Dec 2002 13:36:39 -0500 Sender: emacs-devel-admin@gnu.org Message-ID: NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: main.gmane.org 1039200741 12479 80.91.224.249 (6 Dec 2002 18:52:21 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Fri, 6 Dec 2002 18:52:21 +0000 (UTC) Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 18KNaF-0003F2-00 for ; Fri, 06 Dec 2002 19:52:19 +0100 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 18KNiz-0001hP-00 for ; Fri, 06 Dec 2002 20:01:21 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18KNSE-0002yL-00; Fri, 06 Dec 2002 13:44:02 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10.13) id 18KNQU-0000wS-00 for emacs-devel@gnu.org; Fri, 06 Dec 2002 13:42:14 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10.13) id 18KNPy-0000dM-00 for emacs-devel@gnu.org; Fri, 06 Dec 2002 13:42:14 -0500 Original-Received: from main.gmane.org ([80.91.224.249]) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18KNOs-0000D4-00 for emacs-devel@gnu.org; Fri, 06 Dec 2002 13:40:36 -0500 Original-Received: from root by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 18KNOl-0002QF-00 for ; Fri, 06 Dec 2002 19:40:27 +0100 Original-To: emacs-devel@gnu.org X-Injected-Via-Gmane: http://gmane.org/ Original-Received: from news by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 18KNL3-00029k-00 for ; Fri, 06 Dec 2002 19:36:37 +0100 Original-Path: not-for-mail Original-Lines: 309 Original-NNTP-Posting-Host: 64.47.34.2 Original-X-Trace: main.gmane.org 1039199797 7463 64.47.34.2 (6 Dec 2002 18:36:37 GMT) Original-X-Complaints-To: usenet@main.gmane.org Original-NNTP-Posting-Date: Fri, 6 Dec 2002 18:36:37 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.2) Gecko/20021126 X-Accept-Language: en-us, en Errors-To: emacs-devel-admin@gnu.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.0.11 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Emacs development discussions. List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.emacs.devel:9930 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:9930 This patch fixes various C code issues for Cygwin. Note that the diff at the end is the new src/s/cygwin.h file. Joe Buehler Index: ./lib-src/ChangeLog =================================================================== RCS file: /cvsroot/emacs/emacs/lib-src/ChangeLog,v retrieving revision 2.212 diff -u -r2.212 ChangeLog --- ./lib-src/ChangeLog 4 Dec 2002 11:19:42 -0000 2.212 +++ ./lib-src/ChangeLog 6 Dec 2002 17:38:39 -0000 @@ -1,3 +1,7 @@ +2002-12-06 Joe Buehler + + * pop.c: a Cygwin header file defines _P, so undef it + 2002-12-04 Richard M. Stallman * Update getopt from gnulib version; changes described below. Index: ./src/ChangeLog =================================================================== RCS file: /cvsroot/emacs/emacs/src/ChangeLog,v retrieving revision 1.2979 diff -u -r1.2979 ChangeLog --- ./src/ChangeLog 4 Dec 2002 11:44:42 -0000 1.2979 +++ ./src/ChangeLog 6 Dec 2002 17:39:00 -0000 @@ -1,3 +1,7 @@ +2002-12-06 Joe Buehler + + * s/cygwin.h: added for Cygwin port + 2002-12-04 Richard M. Stallman * sysdep.c (fcntl.h): Test only HAVE_FCNTL_H. Index: ./src/ChangeLog =================================================================== RCS file: /cvsroot/emacs/emacs/src/ChangeLog,v retrieving revision 1.2979 diff -u -r1.2979 ChangeLog --- ./src/ChangeLog 4 Dec 2002 11:44:42 -0000 1.2979 +++ ./src/ChangeLog 6 Dec 2002 17:39:00 -0000 @@ -1,3 +1,11 @@ +2002-12-06 Joe Buehler + + * mem-limits.h: added ifdef to define BSD4_2 for Cygwin + + * keyboard.c: port to Cygwin (just added proper preprocessor tests) + + * fileio.c: support // at start of name for Cygwin (just added proper preprocessor tests) + 2002-12-04 Richard M. Stallman * sysdep.c (fcntl.h): Test only HAVE_FCNTL_H. Index: lib-src/pop.c =================================================================== RCS file: /cvsroot/emacs/emacs/lib-src/pop.c,v retrieving revision 1.31 diff -u -r1.31 pop.c --- lib-src/pop.c 17 May 2002 11:24:02 -0000 1.31 +++ lib-src/pop.c 6 Dec 2002 16:34:43 -0000 @@ -119,6 +119,9 @@ #endif #endif +#ifdef _P +#undef _P +#endif #ifndef _P # ifdef __STDC__ # define _P(a) a cvs server: Diffing lisp Index: src/fileio.c =================================================================== RCS file: /cvsroot/emacs/emacs/src/fileio.c,v retrieving revision 1.466 diff -u -r1.466 fileio.c --- src/fileio.c 4 Dec 2002 11:44:00 -0000 1.466 +++ src/fileio.c 6 Dec 2002 16:35:27 -0000 @@ -2052,13 +2052,13 @@ for (p = nm; p != endp; p++) { if ((p[0] == '~' -#if defined (APOLLO) || defined (WINDOWSNT) - /* // at start of file name is meaningful in Apollo and - WindowsNT systems. */ +#if defined (APOLLO) || defined (WINDOWSNT) || defined(CYGWIN) + /* // at start of file name is meaningful in Apollo, + WindowsNT and Cygwin systems. */ || (IS_DIRECTORY_SEP (p[0]) && p - 1 != nm) -#else /* not (APOLLO || WINDOWSNT) */ +#else /* not (APOLLO || WINDOWSNT || CYGWIN) */ || IS_DIRECTORY_SEP (p[0]) -#endif /* not (APOLLO || WINDOWSNT) */ +#endif /* not (APOLLO || WINDOWSNT || CYGWIN) */ ) && p != nm && (0 @@ -2230,11 +2230,11 @@ for (p = xnm; p != x; p++) if ((p[0] == '~' -#if defined (APOLLO) || defined (WINDOWSNT) +#if defined (APOLLO) || defined (WINDOWSNT) || defined(CYGWIN) || (IS_DIRECTORY_SEP (p[0]) && p - 1 != xnm) -#else /* not (APOLLO || WINDOWSNT) */ +#else /* not (APOLLO || WINDOWSNT || CYGWIN) */ || IS_DIRECTORY_SEP (p[0]) -#endif /* not (APOLLO || WINDOWSNT) */ +#endif /* not (APOLLO || WINDOWSNT || CYGWIN) */ ) && p != xnm && IS_DIRECTORY_SEP (p[-1])) xnm = p; Index: src/keyboard.c =================================================================== RCS file: /cvsroot/emacs/emacs/src/keyboard.c,v retrieving revision 1.716 diff -u -r1.716 keyboard.c --- src/keyboard.c 22 Nov 2002 12:23:13 -0000 1.716 +++ src/keyboard.c 6 Dec 2002 16:35:33 -0000 @@ -6492,7 +6492,7 @@ if (n_to_read > sizeof cbuf) n_to_read = sizeof cbuf; #else /* no FIONREAD */ -#if defined (USG) || defined (DGUX) +#if defined (USG) || defined (DGUX) || defined(CYGWIN) /* Read some input if available, but don't wait. */ n_to_read = sizeof cbuf; fcntl (input_fd, F_SETFL, O_NDELAY); @@ -6549,9 +6549,9 @@ ); #ifndef FIONREAD -#if defined (USG) || defined (DGUX) +#if defined (USG) || defined (DGUX) || defined (CYGWIN) fcntl (input_fd, F_SETFL, 0); -#endif /* USG or DGUX */ +#endif /* USG or DGUX or CYGWIN */ #endif /* no FIONREAD */ for (i = 0; i < nread; i++) { Index: src/mem-limits.h =================================================================== RCS file: /cvsroot/emacs/emacs/src/mem-limits.h,v retrieving revision 1.31 diff -u -r1.31 mem-limits.h --- src/mem-limits.h 19 Aug 2002 17:45:50 -0000 1.31 +++ src/mem-limits.h 6 Dec 2002 16:35:33 -0000 @@ -46,6 +46,10 @@ #define BSD4_2 #endif +#ifdef CYGWIN +#define BSD4_2 +#endif + #ifndef BSD4_2 #ifndef USG #ifndef MSDOS --- src/s/cygwin.h 2002-12-06 12:58:52.000000000 -0500 +++ src/s/cygwin.h 2002-12-05 16:47:00.000000000 -0500 @@ -0,0 +1,146 @@ +/* Template for system description header files. + This file describes the parameters that system description files + should define or not. + Copyright (C) 1985, 1986, 1992, 1999 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "cygwin" + +/* Emacs can read input using SIGIO and buffering characters itself, + or using CBREAK mode and making C-g cause SIGINT. + The choice is controlled by the variable interrupt_input. + + Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO) + + Emacs uses the presence or absence of the SIGIO and BROKEN_SIGIO macros + to indicate whether or not signal-driven I/O is possible. It uses + INTERRUPT_INPUT to decide whether to use it by default. + + SIGIO can be used only on systems that implement it (4.2 and 4.3). + CBREAK mode has two disadvantages + 1) At least in 4.2, it is impossible to handle the Meta key properly. + I hear that in system V this problem does not exist. + 2) Control-G causes output to be discarded. + I do not know whether this can be fixed in system V. + + Another method of doing input is planned but not implemented. + It would have Emacs fork off a separate process + to read the input and send it to the true Emacs process + through a pipe. */ + +#undef INTERRUPT_INPUT + +/* + * Define HAVE_TERMIOS if the system provides POSIX-style + * functions and macros for terminal control. + * + * Define HAVE_TERMIO if the system provides sysV-style ioctls + * for terminal control. + * + * Do not define both. HAVE_TERMIOS is preferred, if it is + * supported on your system. + */ + +#define HAVE_TERMIOS + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +#define HAVE_PTYS +#define PTY_ITERATION for (i = 0; i < 1; i++) /* ick */ +#define PTY_NAME_SPRINTF /* none */ +#define PTY_TTY_NAME_SPRINTF /* none */ +#define PTY_OPEN \ + do \ + { \ + int dummy; \ + SIGMASKTYPE mask; \ + mask = sigblock (sigmask (SIGCHLD)); \ + if (-1 == openpty (&fd, &dummy, pty_name, 0, 0)) \ + fd = -1; \ + sigsetmask (mask); \ + emacs_close (dummy); \ + } \ + while (0) + +/* Define this symbol if your system has the functions bcopy, etc. */ + +#define BSTRING + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is generally OS dependent, and not supported + under most USG systems. */ + +#define subprocesses + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +#define CLASH_DETECTION + +/* If the system's imake configuration file defines `NeedWidePrototypes' + as `NO', we must define NARROWPROTO manually. Such a define is + generated in the Makefile generated by `xmkmf'. If we don't + define NARROWPROTO, we will see the wrong function prototypes + for X functions taking float or double parameters. */ + +#define NARROWPROTO 1 + +/* used in various places to enable cygwin-specific code changes */ +#define CYGWIN 1 + +#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base) +#define GETPGRP_NO_ARG 1 +#define SYSV_SYSTEM_DIR 1 +/* -lutil comes from inetutils and has pty functions in it */ +#define LIBS_SYSTEM -lutil +/* undumping is not implemented yet */ +#define CANNOT_DUMP 1 +#define POSIX_SIGNALS 1 +/* force the emacs image to start high in memory, so dll relocation + can put things in low memory without causing all sorts of grief for + emacs lisp pointers */ +#define DATA_SEG_BITS 0x20000000 +#define LINKER $(CC) -Wl,--image-base,DATA_SEG_BITS +/* gettext.h is in a strange place */ +#define C_SWITCH_SYSTEM -I/usr/share/gettext + +/* Use terminfo instead of termcap. Fewer environment variables to + go wrong, more terminal types. */ +#define TERMINFO + +#define HAVE_SOCKETS +/* C-g aborts emacs without this */ +/*#define HAVE_VFORK*/ +/* Xaw3d causes problems -- might have been fixed by NARROWPROTO + above, but I haven't tried it */ +#undef HAVE_XAW3D + +/* vfork() interacts badly with setsid(), causing ptys to fail to + change their controlling terminal */ +#define vfork fork + +/* the end */