changeset 49549:99be3a1e2589

Cygwin support patch.
author Juanma Barranquero <lekktu@gmail.com>
date Fri, 31 Jan 2003 15:24:20 +0000
parents 8b1c605f8c9b
children 950737d7271d
files ChangeLog Makefile.in configure configure.in etc/ChangeLog etc/MACHINES etc/NEWS lib-src/ChangeLog lib-src/Makefile.in lisp/ChangeLog lisp/comint.el lisp/dired-aux.el lisp/dired.el lisp/dirtrack.el lisp/dos-w32.el lisp/fast-lock.el lisp/filecache.el lisp/files.el lisp/gnus/ChangeLog lisp/gnus/nnheader.el lisp/hippie-exp.el lisp/international/mule.el lisp/net/browse-url.el lisp/pcomplete.el lisp/recentf.el lisp/shell.el lisp/woman.el lispref/ChangeLog lispref/os.texi src/ChangeLog src/Makefile.in src/fileio.c src/keyboard.c src/mem-limits.h
diffstat 34 files changed, 479 insertions(+), 408 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Jan 31 15:05:24 2003 +0000
+++ b/ChangeLog	Fri Jan 31 15:24:20 2003 +0000
@@ -1,3 +1,11 @@
+2003-01-31  Joe Buehler  <jhpb@draco.hekimian.com>
+
+	* Makefile.in: Use @EXEEXT@ for Cygwin.
+	Use USERNAME if LOGNAME is not set (for Cygwin).
+
+	* configure.in:
+	* configure: Add opsys=cygwin.
+
 2003-01-29  Kim F. Storm  <storm@cua.dk>
 
 	* AUTHORS: Regenerated using new format (after fixing numerous
--- a/Makefile.in	Fri Jan 31 15:05:24 2003 +0000
+++ b/Makefile.in	Fri Jan 31 15:24:20 2003 +0000
@@ -215,8 +215,8 @@
 TRANSFORM = @program_transform_name@
 
 # What emacs should be called when installed.
-EMACS = `echo emacs | sed '$(TRANSFORM)'`
-EMACSFULL = `echo emacs-${version} | sed '$(TRANSFORM)'`
+EMACS = `echo emacs@EXEEXT@ | sed '$(TRANSFORM)'`
+EMACSFULL = `echo emacs-${version}@EXEEXT@ | sed '$(TRANSFORM)'`
 
 # Subdirectories to make recursively.  `lisp' is not included
 # because the compiled lisp files are part of the distribution.
@@ -358,7 +358,7 @@
 	    exec_prefix=${exec_prefix} bindir=${bindir} \
 	    libexecdir=${libexecdir} archlibdir=${archlibdir} \
 	    INSTALL_STRIP=${INSTALL_STRIP})
-	${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs ${bindir}/$(EMACSFULL)
+	${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs@EXEEXT@ ${bindir}/$(EMACSFULL)
 	-chmod 1755  ${bindir}/$(EMACSFULL)
 	rm -f ${bindir}/$(EMACS)
 	-ln ${bindir}/$(EMACSFULL) ${bindir}/$(EMACS)
@@ -406,7 +406,7 @@
 	      (cd $${dir}; tar -chf - . ) \
 		| (cd $${dest}; umask 022; \
                    tar -xvf - && cat > /dev/null) || exit 1; \
-	      find $${dest} -exec chown $$LOGNAME {} ';' ;\
+	      find $${dest} -exec chown $${LOGNAME:-$$USERNAME} {} ';' ;\
 	      for subdir in `find $${dest} -type d ! -name RCS ! -name CVS -print` ; do \
 		chmod a+rx $${subdir} ; \
 		rm -rf $${subdir}/RCS ; \
@@ -445,7 +445,7 @@
 	   echo "Copying etc/DOC-* to ${docdir} ..." ; \
 	   (cd ./etc; tar -chf - DOC*) \
 	     |(cd ${docdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \
-	   (cd $(docdir); chown $${LOGNAME} DOC*; chmod a+r DOC*; \
+	   (cd $(docdir); chown $${LOGNAME:-$$USERNAME} DOC*; chmod a+r DOC*; \
 	    if test "`echo DOC-*`" != "DOC-*"; then rm DOC; fi); \
 	else true; fi
 	-unset CDPATH; \
@@ -457,7 +457,7 @@
 	   echo "Copying lisp/*.el and lisp/*.elc to ${lispdir} ..." ; \
 	   (cd lisp; tar -chf - *.el *.elc) \
 	     |(cd ${lispdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \
-	   (cd ${lispdir}; find . -exec chown $${LOGNAME} {} ';') ; \
+	   (cd ${lispdir}; find . -exec chown $${LOGNAME:-$$USERNAME} {} ';') ; \
 	else true; fi
 	-unset CDPATH; \
 	thisdir=`/bin/pwd`; \
@@ -735,7 +735,7 @@
 bootstrap: bootstrap-clean-before info FRC
 	(cd lisp; $(MAKE) $(MFLAGS) bootstrap-clean)
 	(cd src; $(MAKE) $(MFLAGS) bootstrap)
-	(cd lisp; $(MAKE) $(MFLAGS) bootstrap EMACS=../src/bootstrap-emacs)
+	(cd lisp; $(MAKE) $(MFLAGS) bootstrap EMACS=../src/bootstrap-emacs@EXEEXT@)
 	(cd src; $(MAKE) $(MFLAGS) mostlyclean)
 	$(MAKE) $(MFLAGS) all
 	(cd lisp; $(MAKE) $(MFLAGS) bootstrap-after)
--- a/configure	Fri Jan 31 15:05:24 2003 +0000
+++ b/configure	Fri Jan 31 15:24:20 2003 +0000
@@ -2493,6 +2493,7 @@
   i[3456]86-*-* )
     machine=intel386
     case "${canonical}" in
+      *-cygwin )                opsys=cygwin ;;
       *-lynxos* )               opsys=lynxos ;;
       *-isc1.* | *-isc2.[01]* )	opsys=386-ix ;;
       *-isc2.2* )		opsys=isc2-2 ;;
--- a/configure.in	Fri Jan 31 15:05:24 2003 +0000
+++ b/configure.in	Fri Jan 31 15:24:20 2003 +0000
@@ -1053,6 +1053,7 @@
   i[3456]86-*-* )
     machine=intel386
     case "${canonical}" in
+      *-cygwin )                opsys=cygwin ;;
       *-lynxos* )               opsys=lynxos ;;
       *-isc1.* | *-isc2.[01]* )	opsys=386-ix ;;
       *-isc2.2* )		opsys=isc2-2 ;;
--- a/etc/ChangeLog	Fri Jan 31 15:05:24 2003 +0000
+++ b/etc/ChangeLog	Fri Jan 31 15:24:20 2003 +0000
@@ -1,3 +1,7 @@
+2003-01-31  Joe Buehler  <jhpb@draco.hekimian.com>
+
+	* MACHINES: Added Cygwin.
+
 2003-01-27  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
 	* DEBUG: Added note about xmon.
--- a/etc/MACHINES	Fri Jan 31 15:05:24 2003 +0000
+++ b/etc/MACHINES	Fri Jan 31 15:24:20 2003 +0000
@@ -109,7 +109,7 @@
 
 Apple Macintosh running Mac OS X
 
-  For installtion on all versions of the Mac OS platform, see the file 
+  For installtion on all versions of the Mac OS platform, see the file
   mac/INSTALL.
 
 Apple PowerPC Macintosh running GNU/Linux
@@ -163,8 +163,8 @@
   relocation."  This means you are linking with some code that has compressed
   data sections.  In some cases this comes from linking with X libraries.  Try
   using shared X libraries instead.  With some versions of Domain/OS this is
-  as simple as removing the "-lX11" from the LIBX line in src/Makefile.  
-  
+  as simple as removing the "-lX11" from the LIBX line in src/Makefile.
+
   When running the configure script, use the configuration name
   "m68k-apollo-bsd".  You will also need to use the "-with-gcc=no" and
   "-with-x" options.  Depending upon your site configuration, you may have to
@@ -180,9 +180,9 @@
 
 AT&T 3b2, 3b5, 3b15, 3b20 (we32k-att-sysv)
 
-  Emacs will probably not work with certain kernel constants too small. 
+  Emacs will probably not work with certain kernel constants too small.
 
-  In param.h CDLIMIT should be at least (1L << 12) in order to allow 
+  In param.h CDLIMIT should be at least (1L << 12) in order to allow
   processes to write up to 2 Mbyte files.  This parameter is configurable
   by normal means in /etc/master.d/kernel; examine that file for the
   symbol CDLIMIT or ULIMIT, and raise it by several powers of 2.  Then
@@ -220,7 +220,7 @@
   _POSIX_SOURCE, _XOPEN_SOURCE and _BULL_SOURCE.
 
   On bos2.00.45 there is a bug that makes the F_SETOWN fcntl
-  call enters in an infinite loop. F_SETOWN_BUG has been defined to avoid 
+  call enters in an infinite loop. F_SETOWN_BUG has been defined to avoid
   calling it.
 
 Bull DPX/20 (rs6000-bull-bosx)
@@ -274,7 +274,7 @@
   System versions other than DGUX 5.4R3.00 have not been tested.
 
   DGUX 5.4R3.10 works with 19.29 and 19.30.
-  
+
   DGUX R4.11 contains changes to the stdio internals and it doesn't work
   with versions before 20.2 without patches.  20.2 works in interactive
   mode but usually fails in batch mode.  The problem is that using
@@ -324,7 +324,7 @@
   One fix is to edit those files to protect against multiple inclusion.
 
   As of version 19.13, Emacs was reported to run under SYSVr3 and SYSVr4.
- 
+
 Dual running System V (m68k-dual-sysv)
 
   As of 17.46, this worked except for a few changes
@@ -373,7 +373,7 @@
   compiling `lib-src/sorted-doc' tickles a compiler bug: remove the -g
   flag to cc in the makefile.
 
-  UTX/32 1.3 has a bug in the bcopy library routine.  Fix it by 
+  UTX/32 1.3 has a bug in the bcopy library routine.  Fix it by
   #undef BSTRING in `src/m/gould.h'.
 
   Version 19 incorporates support for releases 2.1 and later of UTX/32.
@@ -421,7 +421,7 @@
   some problems on 10.10 which have not been resolved.  Emacs 19.34
   works on HPUX 10.20 provided you compile with GCC; with the HP C
   compiler, subprocess commands do not work.
-  
+
   On HPUX 9, Emacs sometimes crashes with SIGBUS or SIGSEGV after you
   delete a frame.  We think this is due to a bug in the X libraries
   provided by HP.  With the alternative X libraries in
@@ -488,7 +488,7 @@
   Some people report trouble using the GNU memory allocator under
   HP/UX version 9.  The problems often manifest as lots of ^@'s in the
   buffer.
-  
+
   We are told that these problems go away if you obtain the latest
   patches for the HP/UX C compiler.  James J Dempsey
   <jjd@spserv.bbn.com> says that this set of versions works for him:
@@ -544,17 +544,17 @@
 
   These machines are based on PA architecture running HI-UX/MPP
   (based on OSF1. `MPP' stands for `Massively Parallel Processor').
-  
+
   Emacs 19.34 is believed to work; its pretest was tested
-  both on SR2001 (output of `uname -rv' is `00-01-BB 0') and 
+  both on SR2001 (output of `uname -rv' is `00-01-BB 0') and
   SR2201 (`02-00 0').
 
   Emacs 20.7 was reported to build on a system whose `uname -rs'
   output is `HI-UX/MPP 03-04'.
-  
-  The machine description file is `src/m/sr2k.h' is based on 
+
+  The machine description file is `src/m/sr2k.h' is based on
   `src/m/hp800.h'. The system description file is `src/s/hiuxwe2.h'
-  based on `src/s/osf1.h'. Note that this system doesn't use COFF.   
+  based on `src/s/osf1.h'. Note that this system doesn't use COFF.
 
 IBM PS/2 (i386-ibm-aix1.1 or i386-ibm-aix1.2)
 
@@ -624,7 +624,7 @@
   BSD 4.2 (3.05e) system).  18.42 is reported to work on
   a Qbus 68010 system.  Has not been tried on `WorkStation' `Cluster
   Compute Node' `Cluster WorkStation' or `Server Node'  (Love the
-  StudLYCaps) 
+  StudLYCaps)
 
   Compilation with -O is rumored to break something.
 
@@ -637,7 +637,7 @@
 	   i386-*-xenix,	i386-*-freebsd,  i386-*-linux-gnu,
 	   i386-*-sol2.4,	i386-*-sysv3,    i386-intsys-sysv,
 	   i386-*-sysv4,	i386-*-sysv4.2,
-	   i386-*-sysv5.3,	i386-*-bsd4.2,
+	   i386-*-sysv5.3,	i386-*-bsd4.2,   i386-*-cygwin,
 	   i386-*-sco3.2v4,	i386-*-bsd386,   i386-*-386bsd,
 	   i386-*-msdos,	i386-*-windowsnt.
 	   i386... can be replaced with i486... or i586...)
@@ -651,6 +651,8 @@
 	i386-unknown-isc3.0 as your configuration name.
   Use i386-*-esix for Esix; Emacs runs as of version 19.6.
   Use i386-*-linux-gnu for GNU/Linux systems; Emacs runs as of version 19.26.
+  Use i386-*-cygwin for Cygwin; Emacs builds as of version 21.4, in both X11
+  and non-X11 modes.  (The Cygwin site has source and binaries for 21.2.)
   Use i386-intsys-sysv for Integrated Solutions 386 machines.
   It may also be correct for Microport systems.
   Use i386-*-sco3.2v4 for SCO 3.2v4; Emacs runs as of version 19.26.
@@ -698,7 +700,7 @@
   puts spurious spaces in `src/xmakefile'.  If that happens,
   specify CPP=/lib/cpp as an option when you run make.
   There is no problem if you compile with GCC.
-    
+
   Note that use of Linux with GCC 2.4 and the DLL 4.4 libraries
   requires the experimental "net 2" network patches (no relation to
   Berkeley Net 2).  There is a report that (some version of) Linux
@@ -803,7 +805,7 @@
   was reported for 18.36 on a Masscomp (model and version unknown but probably
   a 68020 system).  The report sounds like a compiler bug.
 
-  A compiler bug affecting statements like 
+  A compiler bug affecting statements like
     unsigned char k; unsigned char *p;... x = p[k];
   has been reported for "C version 1.2 under RTU 3.1".  We do not wish
   to take the time to install the numerous workarounds required to
@@ -941,7 +943,7 @@
 
   You need to build Emacs in the Berkeley universe with
   the `ucb' command, as in `ucb make' or `ucb build-install'.
-  
+
   In OSx 4.0, it seems necessary to add the following two lines
   to `src/m/pyramid.h':
      #define _longjmp longjmp
@@ -1079,8 +1081,8 @@
   19.32 works on Solaris 2.4 and 2.5.  On Solaris 2.5
   you may need one of these patches to prevent Emacs from crashing
   when it starts up:
-        103093-03: [README] SunOS 5.5: kernel patch (2140557 bytes) 
-        102832-01: [README] OpenWindows 3.5: Xview Jumbo Patch (4181613 bytes) 
+        103093-03: [README] SunOS 5.5: kernel patch (2140557 bytes)
+        102832-01: [README] OpenWindows 3.5: Xview Jumbo Patch (4181613 bytes)
 	103242-04: [README] SunOS 5.5: linker patch (595363 bytes)
 
   There are reports that using SunSoft cc with -xO4 -xdepend produces
@@ -1107,7 +1109,7 @@
   `sparc-sun-sunos4.1'.  For SunOS release 4.1.3 on a Sparc, use
   `sparc-sun-sunos4.1.3'.  Note that shared libraries are now
   used by default on SunOS 4.1.
-  
+
   A user reported irreproducible segmentation faults when using 19.29
   on Solaris 2.3 and 2.4 after compiling it with the Sun compiler.
   The problem went away when GCC 2.7.0 was used instead.  We do not know
--- a/etc/NEWS	Fri Jan 31 15:05:24 2003 +0000
+++ b/etc/NEWS	Fri Jan 31 15:24:20 2003 +0000
@@ -58,6 +58,8 @@
 item was added to the menu bar that makes it easy accessible
 (Help->More Manuals->Introduction to Emacs Lisp).
 
+** Support for Cygwin was added.
+
 ---
 ** Support for AIX 5.1 was added.
 
@@ -686,7 +688,7 @@
 
 ** The variable `cursor-in-non-selected-windows' can now be set to any
 of the recognized cursor types.
-  
+
 +++
 ** The default values of `tooltip-delay' and `tooltip-hide-delay'
 were changed.
@@ -1189,7 +1191,7 @@
 unbound.  The test must be in exactly one of the above forms (after
 macro expansion), but such tests may be nested.  Note that `when' and
 `unless' expand to `if', but `cond' doesn't.
-  
+
 ** New translation table `translation-table-for-input'.
 
 +++
@@ -1308,7 +1310,7 @@
 write-contents-hooks to write-contents-functions.
 Marked local-write-file-hooks as obsolete (use the LOCAL arg of `add-hook').
 
-** The new variable `delete-frame-functions' replaces `delete-frame-hook'. 
+** The new variable `delete-frame-functions' replaces `delete-frame-hook'.
 It was renamed to follow the naming conventions for abnormal hooks.  The old
 name remains available as an alias, but has been marked obsolete.
 
@@ -1533,7 +1535,7 @@
 if FUNCTION adjusts point before or after inserting the object.
   If UNDO is present and non-nil, it is a function that will be called
 by `yank-pop' to undo the insertion of the current object.  It is
-called with two arguments, the start and end of the current region. 
+called with two arguments, the start and end of the current region.
 FUNCTION may set `yank-undo-function' to override the UNDO value.
 
 *** The functions kill-new, kill-append, and kill-region now has an
@@ -1573,7 +1575,7 @@
 name in addition to a process id to identify the signalled process.
 
 *** Processes now have an associated property list where programs can
-maintain process state and other per-process related information.  
+maintain process state and other per-process related information.
 
 The new functions process-get and process-put are used to access, add,
 and modify elements on this property list.
--- a/lib-src/ChangeLog	Fri Jan 31 15:05:24 2003 +0000
+++ b/lib-src/ChangeLog	Fri Jan 31 15:24:20 2003 +0000
@@ -1,3 +1,7 @@
+2003-01-31  Joe Buehler  <jhpb@draco.hekimian.com>
+
+	* Makefile.in: Use @EXEEXT@ for Cygwin.
+
 2003-01-21  Dave Love  <fx@gnu.org>
 
 	* etags.c (Cplusplus_help, Cjava_help): Re-phrase and avoid
@@ -43,7 +47,7 @@
 
 	* getopt.c (const): Move outside !HAVE_CONFIG_H conditional.
 	(libintl.h): Include this if _LIBC.  Otherwise include gettext.h.
-	(wchar.h): Include, maybe.		     
+	(wchar.h): Include, maybe.
 	(attribute_hidden): Define if not defind.
 	(__getopt_initialized): Use attribute_hidden.
 	(__libc_argc, __libc_argv): Renamed from original_argc, etc.
@@ -204,7 +208,7 @@
 
 	* make-docfile.c (scan_c_file): Warn about missing `usage' info.
 
-2002-07-05  Jonathan Kamens <jik@kamens.brookline.ma.us>
+2002-07-05  Jonathan Kamens  <jik@kamens.brookline.ma.us>
 
 	* b2m.pl: Obey the rmail file and use the unpruned header properly.
 
@@ -1341,7 +1345,7 @@
 
 	* movemail.c (main): Improve error message if can't create lock file.
 
-2000-01-28  Eric Hanchrow <offby1@blarg.net>
+2000-01-28  Eric Hanchrow  <offby1@blarg.net>
 
 	* emacsclient.c (socket_status): New function.
 	(main): If $LOGNAME or $USER exist and differ from our euid, look
@@ -1352,7 +1356,7 @@
 	* emacsclient.c: Add option -a EDITOR and environment variable
 	ALTERNATE_EDITOR.  Exec this editor if we fail to contact Emacs.
 
-1999-12-10  Jonathan Kamens <jik@kamens.brookline.ma.us>
+1999-12-10  Jonathan Kamens  <jik@kamens.brookline.ma.us>
 
 	* movemail.c (popmail): Allow mailbox specifications of the
 	form `po:username:hostname'.
@@ -1704,7 +1708,7 @@
 
 	* makefile.nt: Do string comparision of _NMAKE_VER.
 
-1998-11-03  Theodore Jump <tjump@cais.com>
+1998-11-03  Theodore Jump  <tjump@cais.com>
 
 	* makefile.nt: Compile multiple source files when possible.
 
@@ -2411,7 +2415,7 @@
 
 	* cvtmail.c, sorted-doc.c, yow.c, emacsserver.c: Undo previous change.
 
-1996-07-15  David Mosberger-Tang <davidm@AZStarNet.com>
+1996-07-15  David Mosberger-Tang  <davidm@AZStarNet.com>
 
 	* cvtmail.c, sorted-doc.c, yow.c: [__GNU_LIBRARY__]: Use <string.h>.
 	* emacsserver.c (main) [__GNU_LIBRARY__]: Use size_t for fromlen.
@@ -2468,11 +2472,11 @@
 	(Pascal_functions): Increase linecharno by the correct number of
 	chars, inline the GET_NEW_LINE macro and delete its definition.
 
-1996-05-03  Andrew Innes <andrewi@harlequin.co.uk>
+1996-05-03  Andrew Innes  <andrewi@harlequin.co.uk>
 
 	* makefile.nt (OBJDIR, BLD): Remove macro definitions.
 
-1996-05-03  Andrew Innes <andrewi@harlequin.co.uk>
+1996-05-03  Andrew Innes  <andrewi@harlequin.co.uk>
 
 	* makefile.nt (LOCAL_FLAGS): Include path to NT shadow includes.
 	(movemail.exe, fakemail.exe): Now built under Win32.o
@@ -2706,7 +2710,7 @@
 	(C_entries): Consider // as a comment start even in plain C for
 	the sake of Objective C parsing.
 
-1995-12-04  Francesco Potorti` <pot@cnuce.cnr.it>
+1995-12-04  Francesco Potorti`  <pot@cnuce.cnr.it>
 
 	* Makefile.in (ctags): depend on etags only for simplicity;
  	compile with regexp support enabled.
@@ -3423,7 +3427,7 @@
 	defined, use simple 32-bit versions of these macros.
 	(main) [HAVE_SOCKETS & !HAVE_SYSVIPC]: Use these macros.
 
-1994-09-16  Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+1994-09-16  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
 	* etags.c (etags_getcwd): Use getcwd if available.
 
@@ -3804,9 +3808,9 @@
 	* profile.c: New file.
 
 1994-01-16  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
-	
+
 	* make-docfile.c: Make the argument list output look more like the
-	Lisp docstrings do.  
+	Lisp docstrings do.
 	(write_c_args): Take new arg FUNC.  Make output
 	look like lisp call prototypes: (function ARG1 ARG2), upcasing args.
 	(scan_c_file): Pass BUF to write_c_args for FUNC arg.
--- a/lib-src/Makefile.in	Fri Jan 31 15:05:24 2003 +0000
+++ b/lib-src/Makefile.in	Fri Jan 31 15:24:20 2003 +0000
@@ -100,15 +100,15 @@
 
 # Things that a user might actually run,
 # which should be installed in bindir.
-INSTALLABLES = etags ctags emacsclient b2m ebrowse
+INSTALLABLES = etags@EXEEXT@ ctags@EXEEXT@ emacsclient@EXEEXT@ b2m@EXEEXT@ ebrowse@EXEEXT@
 INSTALLABLE_SCRIPTS = rcs-checkin grep-changelog
 
 # Things that Emacs runs internally, or during the build process,
 #  which should not be installed in bindir.
-UTILITIES=  profile digest-doc sorted-doc movemail cvtmail fakemail \
-            yow hexl update-game-score
+UTILITIES=  profile@EXEEXT@ digest-doc@EXEEXT@ sorted-doc@EXEEXT@ movemail@EXEEXT@ cvtmail@EXEEXT@ fakemail@EXEEXT@ \
+            yow@EXEEXT@ hexl@EXEEXT@ update-game-score@EXEEXT@
 
-DONT_INSTALL= test-distrib make-docfile
+DONT_INSTALL= test-distrib@EXEEXT@ make-docfile@EXEEXT@
 
 # Like UTILITIES, but they're not system-dependent, and should not be
 #  deleted by the distclean target.
@@ -286,12 +286,12 @@
 maybe-blessmail: BLESSMAIL
 #ifdef MOVEMAIL_NEEDS_BLESSING
 /* Don\'t charge ahead and do it!  Let the installer decide.
-	  ./blessmail ${archlibdir}/movemail  */
+	  ./blessmail ${archlibdir}/movemail@EXEEXT@  */
 	@if [ `wc -l <blessmail` != 2 ] ; then \
 	  dir=`sed -n -e 's/echo mail directory = \(.*\)/\1/p' blessmail`; \
 	  echo Assuming $$dir is really the mail spool directory, you should; \
-	  echo run  lib-src/blessmail ${archlibdir}/movemail; \
-	  echo as root, to give  movemail  appropriate permissions.; \
+	  echo run  lib-src/blessmail ${archlibdir}/movemail@EXEEXT@; \
+	  echo as root, to give  movemail@EXEEXT@  appropriate permissions.; \
 	  echo Do that after running  make install.; \
 	fi
 #endif
@@ -372,14 +372,14 @@
 	@echo "We don't have any tests for GNU Emacs yet."
 
 tags: TAGS
-TAGS: etags
+TAGS: etags@EXEEXT@
 	etags *.[ch]
 
 /* This verifies that the non-ASCII characters in the file \`testfile\'
    have not been clobbered by whatever means were used to copy and
    distribute Emacs.  If they were clobbered, all the .elc files were
    clobbered too.  */
-test-distrib: ${srcdir}/test-distrib.c
+test-distrib@EXEEXT@: ${srcdir}/test-distrib.c
 	$(CC) ${ALL_CFLAGS} -o test-distrib ${srcdir}/test-distrib.c
 	./test-distrib ${srcdir}/testfile
 
@@ -403,34 +403,34 @@
 regex.o: $(srcdir)/../src/regex.c $(srcdir)/../src/regex.h ../src/config.h
 	${CC} -c ${BASE_CFLAGS} -DCONFIG_BROKETS -DINHIBIT_STRING_HEADER ${srcdir}/../src/regex.c
 
-etags: ${srcdir}/etags.c $(GETOPTDEPS) $(REGEXPDEPS) ../src/config.h
+etags@EXEEXT@: ${srcdir}/etags.c $(GETOPTDEPS) $(REGEXPDEPS) ../src/config.h
 	$(CC) ${ALL_CFLAGS} -DVERSION="\"${version}\"" ${srcdir}/etags.c $(GETOPTOBJS) $(REGEXPOBJ) $(LOADLIBES) -o etags
 
-ebrowse: ${srcdir}/ebrowse.c $(GETOPTDEPS) ../src/config.h
+ebrowse@EXEEXT@: ${srcdir}/ebrowse.c $(GETOPTDEPS) ../src/config.h
 	$(CC) ${ALL_CFLAGS} -DVERSION="\"${version}\"" ${srcdir}/ebrowse.c $(GETOPTOBJS) $(LOADLIBES) -o ebrowse
 
 /* We depend on etags to assure that parallel makes don\'t write two
    etags.o files on top of each other.  */
-ctags: etags
+ctags@EXEEXT@: etags@EXEEXT@
 	$(CC) ${ALL_CFLAGS} -DCTAGS -DVERSION="\"${version}\"" ${srcdir}/etags.c $(GETOPTOBJS) $(REGEXPOBJ) $(LOADLIBES) -o ctags
 
-profile: ${srcdir}/profile.c ../src/config.h
+profile@EXEEXT@: ${srcdir}/profile.c ../src/config.h
 	$(CC) ${ALL_CFLAGS} ${srcdir}/profile.c $(LOADLIBES) -o profile
 
-make-docfile: ${srcdir}/make-docfile.c ../src/config.h
+make-docfile@EXEEXT@: ${srcdir}/make-docfile.c ../src/config.h
 	$(CC) ${ALL_CFLAGS} ${srcdir}/make-docfile.c $(LOADLIBES) -o make-docfile
 
-digest-doc: ${srcdir}/digest-doc.c
-	$(CC) ${ALL_CFLAGS} ${srcdir}/digest-doc.c $(LOADLIBES) -o digest-doc 
+digest-doc@EXEEXT@: ${srcdir}/digest-doc.c
+	$(CC) ${ALL_CFLAGS} ${srcdir}/digest-doc.c $(LOADLIBES) -o digest-doc
 
-sorted-doc: ${srcdir}/sorted-doc.c ${ALLOCA}
+sorted-doc@EXEEXT@: ${srcdir}/sorted-doc.c ${ALLOCA}
 	$(CC) ${ALL_CFLAGS} ${srcdir}/sorted-doc.c ${ALLOCA} $(LOADLIBES) -o sorted-doc
 
-b2m: ${srcdir}/b2m.c ../src/config.h $(GETOPTDEPS)
+b2m@EXEEXT@: ${srcdir}/b2m.c ../src/config.h $(GETOPTDEPS)
 	$(CC) ${ALL_CFLAGS} ${srcdir}/b2m.c  -DVERSION="\"${version}\"" \
-	   $(GETOPTOBJS) $(LOADLIBES) -o b2m 
+	   $(GETOPTOBJS) $(LOADLIBES) -o b2m
 
-movemail: movemail.o pop.o $(GETOPTDEPS)
+movemail@EXEEXT@: movemail.o pop.o $(GETOPTDEPS)
 	$(CC) ${LINK_CFLAGS} ${MOVE_FLAGS} movemail.o pop.o $(GETOPTOBJS) $(LOADLIBES) $(LIBS_MAIL) $(LIBS_MOVE) -o movemail
 
 movemail.o: ${srcdir}/movemail.c ../src/config.h
@@ -439,45 +439,45 @@
 pop.o: ${srcdir}/pop.c  ../src/config.h
 	$(CC) -c ${CPP_CFLAGS} ${MOVE_FLAGS} ${srcdir}/pop.c
 
-cvtmail: ${srcdir}/cvtmail.c
+cvtmail@EXEEXT@: ${srcdir}/cvtmail.c
 	$(CC) ${ALL_CFLAGS} ${srcdir}/cvtmail.c $(LOADLIBES) -o cvtmail
 
-fakemail: ${srcdir}/fakemail.c ../src/config.h
+fakemail@EXEEXT@: ${srcdir}/fakemail.c ../src/config.h
 	$(CC) ${ALL_CFLAGS} ${srcdir}/fakemail.c $(LOADLIBES) -o fakemail
 
-yow: ${srcdir}/yow.c ../src/epaths.h
+yow@EXEEXT@: ${srcdir}/yow.c ../src/epaths.h
 	$(CC) ${ALL_CFLAGS} ${srcdir}/yow.c $(LOADLIBES) -o yow
 
-emacsclient: ${srcdir}/emacsclient.c ../src/config.h $(GETOPTDEPS)
+emacsclient@EXEEXT@: ${srcdir}/emacsclient.c ../src/config.h $(GETOPTDEPS)
 	$(CC) ${ALL_CFLAGS} ${srcdir}/emacsclient.c $(GETOPTOBJS)  \
 	   -DVERSION=`sed -n -e '/(defconst emacs-version/ s/^[^"]*\("[^"]*"\).*/\1/p' ${srcdir}/../lisp/version.el` \
 	   $(LOADLIBES) -o emacsclient
 
-hexl: ${srcdir}/hexl.c ../src/config.h
+hexl@EXEEXT@: ${srcdir}/hexl.c ../src/config.h
 	$(CC) ${ALL_CFLAGS} ${srcdir}/hexl.c $(LOADLIBES) -o hexl
 
-update-game-score: ${srcdir}/update-game-score.c ../src/config.h
+update-game-score@EXEEXT@: ${srcdir}/update-game-score.c ../src/config.h
 	$(CC) ${ALL_CFLAGS} ${srcdir}/update-game-score.c \
 	  -DHAVE_SHARED_GAME_DIR="\"$(gamedir)\"" \
 	  $(LOADLIBES) -o update-game-score
 
 /* These are NOT included in INSTALLABLES or UTILITIES.
    See ../src/Makefile.in.  */
-emacstool: ${srcdir}/emacstool.c
+emacstool@EXEEXT@: ${srcdir}/emacstool.c
 	$(CC) ${srcdir}/emacstool.c -o emacstool ${ALL_CFLAGS} \
 	  -lsuntool -lsunwindow -lpixrect $(LOADLIBES)
 
 /* For SUN Japanese Language Environment.  */
-nemacstool: ${srcdir}/emacstool.c
+nemacstool@EXEEXT@: ${srcdir}/emacstool.c
 	$(CC) -o nemacstool -DJLE ${ALL_CFLAGS} ${srcdir}/emacstool.c \
 	  -lsuntool -lmle -lsunwindow -lpixrect $(LOADLIBES)
 
-xvetool: ${srcdir}/emacstool.c
+xvetool@EXEEXT@: ${srcdir}/emacstool.c
 	$(CC) -o xvetool -DXVIEW ${ALL_CFLAGS} ${srcdir}/emacstool.c \
 	  -lxview -lX -I$(OPENWINHOME)/include -L$(OPENWINHOME)/lib \
 	  $(LOADLIBES)
 
-xveterm: ${srcdir}/emacstool.c
+xveterm@EXEEXT@: ${srcdir}/emacstool.c
 	$(CC) -o xveterm -DXVIEW -DTTERM ${ALL_CFLAGS} ${srcdir}/emacstool.c \
 	  -lxview -lolgx -lX  -I$(OPENWINHOME)/include -L$(OPENWINHOME)/lib \
 	  $(LOADLIBES)
--- a/lisp/ChangeLog	Fri Jan 31 15:05:24 2003 +0000
+++ b/lisp/ChangeLog	Fri Jan 31 15:24:20 2003 +0000
@@ -1,3 +1,21 @@
+2003-01-31  Joe Buehler  <jhpb@draco.hekimian.com>
+
+	* comint.el:
+	* dired-aux.el:
+	* dired.el:
+	* dirtrack.el:
+	* dos-w32.el:
+	* fast-lock.el:
+	* filecache.el:
+	* files.el:
+	* hippie-exp.el:
+	* international/mule.el:
+	* net/browse-url.el:
+	* pcomplete.el:
+	* recentf.el:
+	* shell.el:
+	* woman.el: Added cygwin to system-type comparisons.
+
 2003-01-31  Francesco Potort,Al(B  <pot@gnu.org>
 
 	* mail/undigest.el (rmail-forward-separator-regex): New custom
--- a/lisp/comint.el	Fri Jan 31 15:05:24 2003 +0000
+++ b/lisp/comint.el	Fri Jan 31 15:24:20 2003 +0000
@@ -2536,7 +2536,7 @@
 directory tracking functions.")
 
 (defvar comint-file-name-chars
-  (if (memq system-type '(ms-dos windows-nt))
+  (if (memq system-type '(ms-dos windows-nt cygwin))
       "~/A-Za-z0-9_^$!#%&{}@`'.,:()-"
     "~/A-Za-z0-9+@:_.$#%,={}-")
   "String of characters valid in a file name.
@@ -2661,7 +2661,7 @@
 (defun comint-dynamic-complete-as-filename ()
   "Dynamically complete at point as a filename.
 See `comint-dynamic-complete-filename'.  Returns t if successful."
-  (let* ((completion-ignore-case (memq system-type '(ms-dos windows-nt)))
+  (let* ((completion-ignore-case (memq system-type '(ms-dos windows-nt cygwin)))
 	 (completion-ignored-extensions comint-completion-fignore)
 	 ;; If we bind this, it breaks remote directory tracking in rlogin.el.
 	 ;; I think it was originally bound to solve file completion problems,
@@ -2750,7 +2750,7 @@
 Returns `listed' if a completion listing was shown.
 
 See also `comint-dynamic-complete-filename'."
-  (let* ((completion-ignore-case (memq system-type '(ms-dos windows-nt)))
+  (let* ((completion-ignore-case (memq system-type '(ms-dos windows-nt cygwin)))
 	 (suffix (cond ((not comint-completion-addsuffix) "")
 		       ((not (consp comint-completion-addsuffix)) " ")
 		       (t (cdr comint-completion-addsuffix))))
@@ -2791,7 +2791,7 @@
 (defun comint-dynamic-list-filename-completions ()
   "List in help buffer possible completions of the filename at point."
   (interactive)
-  (let* ((completion-ignore-case (memq system-type '(ms-dos windows-nt)))
+  (let* ((completion-ignore-case (memq system-type '(ms-dos windows-nt cygwin)))
 	 ;; If we bind this, it breaks remote directory tracking in rlogin.el.
 	 ;; I think it was originally bound to solve file completion problems,
 	 ;; but subsequent changes may have made this unnecessary.  sm.
--- a/lisp/dired-aux.el	Fri Jan 31 15:05:24 2003 +0000
+++ b/lisp/dired-aux.el	Fri Jan 31 15:24:20 2003 +0000
@@ -1258,7 +1258,7 @@
 			  ;; will return t because the filesystem is
 			  ;; case-insensitive, and Emacs will try to move
 			  ;; foo -> foo/foo, which fails.
-			  (if (and (memq system-type '(ms-dos windows-nt))
+			  (if (and (memq system-type '(ms-dos windows-nt cygwin))
 				   (eq op-symbol 'move)
 				   dired-one-file
 				   (string= (downcase
--- a/lisp/dired.el	Fri Jan 31 15:05:24 2003 +0000
+++ b/lisp/dired.el	Fri Jan 31 15:24:20 2003 +0000
@@ -65,7 +65,7 @@
 
 ;;;###autoload
 (defvar dired-chown-program
-  (if (memq system-type '(hpux dgux usg-unix-v irix linux gnu/linux))
+  (if (memq system-type '(hpux dgux usg-unix-v irix linux gnu/linux cygwin))
       "chown"
     (if (file-exists-p "/usr/sbin/chown")
 	"/usr/sbin/chown"
@@ -299,7 +299,7 @@
 	 '(".+" (dired-move-to-filename) nil (0 font-lock-function-name-face)))
    ;;
    ;; Symbolic links.
-   (list dired-re-sym 
+   (list dired-re-sym
 	 '(".+" (dired-move-to-filename) nil (0 font-lock-keyword-face)))
    ;;
    ;; Files suffixed with `completion-ignored-extensions'.
@@ -530,11 +530,11 @@
 	  (setq buffer (create-file-buffer (directory-file-name dirname)))))
     (set-buffer buffer)
     (if (not new-buffer-p)     ; existing buffer ...
-	(cond (switches        ; ... but new switches     
+	(cond (switches        ; ... but new switches
 	       ;; file list may have changed
 	       (setq dired-directory dir-or-list)
 	       ;; this calls dired-revert
-	       (dired-sort-other switches))  
+	       (dired-sort-other switches))
 	      ;; If directory has changed on disk, offer to revert.
 	      ((if (let ((attributes (file-attributes dirname))
 			 (modtime (visited-file-modtime)))
@@ -1769,7 +1769,7 @@
 	     (substring pattern matched-in-pattern))
 	    "\\'")))
 
-		 
+
 
 (defun dired-advertise ()
   ;;"Advertise in variable `dired-buffers' that we dired `default-directory'."
@@ -2053,7 +2053,7 @@
 		 (const :tag "Confirm for each top directory only" top))
   :group 'dired)
 
-;; Match anything but `.' and `..'. 
+;; Match anything but `.' and `..'.
 (defvar dired-re-no-dot "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*")
 
 ;; Delete file, possibly delete a directory and all its files.
@@ -2174,7 +2174,7 @@
 	    (setq success-list (cons (buffer-name buf) success-list)))))
     success-list))
 
-;; Delete the entry for FILE from 
+;; Delete the entry for FILE from
 (defun dired-delete-entry (file)
   (save-excursion
     (and (dired-goto-file file)
@@ -2572,7 +2572,7 @@
 (defvar dired-garbage-files-regexp
   (concat (regexp-opt
 	   '(".log" ".toc" ".dvi" ".bak" ".orig" ".rej" ".aux"))
-	  "\\'") 
+	  "\\'")
   "*Regular expression to match \"garbage\" files for `dired-flag-garbage-files'.")
 
 (defun dired-flag-garbage-files ()
@@ -2632,7 +2632,7 @@
 
 (defun dired-unmark-all-files (mark &optional arg)
   "Remove a specific mark (or any mark) from every file.
-After this command, type the mark character to remove, 
+After this command, type the mark character to remove,
 or type RET to remove all marks.
 With prefix arg, query for each marked file.
 Type \\[help-command] at that time for help."
@@ -2683,7 +2683,7 @@
   ;; Log a message or the contents of a buffer.
   ;; If LOG is a string and there are more args, it is formatted with
   ;; those ARGS.  Usually the LOG string ends with a \n.
-  ;; End each bunch of errors with (dired-log t): 
+  ;; End each bunch of errors with (dired-log t):
   ;; this inserts the current time and buffer at the start of the page,
   ;; and \f (formfeed) at the end.
   (let ((obuf (current-buffer)))
@@ -3076,7 +3076,7 @@
 (autoload 'dired-show-file-type "dired-aux"
   "Print the type of FILE, according to the `file' command.
 If FILE is a symbolic link and the optional argument DEREF-SYMLINKS is
-true then the type of the file linked to by FILE is printed instead." 
+true then the type of the file linked to by FILE is printed instead."
   t)
 
 (autoload 'dired-run-shell-command "dired-aux")
--- a/lisp/dirtrack.el	Fri Jan 31 15:05:24 2003 +0000
+++ b/lisp/dirtrack.el	Fri Jan 31 15:24:20 2003 +0000
@@ -5,7 +5,7 @@
 ;; Author: Peter Breton <pbreton@cs.umb.edu>
 ;; Created: Sun Nov 17 1996
 ;; Keywords: processes
-;; Time-stamp: <1999-02-21 01:27:24 pbreton>
+;; Time-stamp: <2003-01-31 16:15:05 jbarranquero>
 
 ;; This file is part of GNU Emacs.
 
@@ -42,8 +42,8 @@
 ;; 1) Set your shell's prompt to contain the current working directory.
 ;; You may need to consult your shell's documentation to find out how to
 ;; do this.
-;; 
-;; Note that directory tracking is done by matching regular expressions, 
+;;
+;; Note that directory tracking is done by matching regular expressions,
 ;; therefore it is *VERY IMPORTANT* for your prompt to be easily
 ;; distinguishable from other output. If your prompt regexp is too general,
 ;; you will see error messages from the dirtrack filter as it attempts to cd
@@ -52,16 +52,16 @@
 ;; 2) Set the variable `dirtrack-list' to an appropriate value. This
 ;; should be a list of two elements: the first is a regular expression
 ;; which matches your prompt up to and including the pathname part.
-;; The second is a number which tells which regular expression group to 
+;; The second is a number which tells which regular expression group to
 ;; match to extract only the pathname. If you use a multi-line prompt,
 ;; add 't' as a third element. Note that some of the functions in
 ;; 'comint.el' assume a single-line prompt (eg, comint-bol).
-;; 
+;;
 ;; Determining this information may take some experimentation. Setting
 ;; the variable `dirtrack-debug' may help; it causes the directory-tracking
 ;; filter to log messages to the buffer `dirtrack-debug-buffer'. You can easily
 ;; toggle this setting with the `dirtrack-debug-toggle' function.
-;; 
+;;
 ;; 3) Add a hook to shell-mode to enable the directory tracking:
 ;;
 ;; (add-hook 'shell-mode-hook
@@ -83,26 +83,26 @@
 ;;    'dirtrack-list' is set to (list "^\\([/~].*\\)\nemacs@[^%]+% *" 1 t)
 ;;
 ;; I'd appreciate other examples from people who use this package.
-;; 
+;;
 ;; Here's one from Stephen Eglen:
 ;;
 ;;   Running under tcsh:
 ;;   (setq-default dirtrack-list '("^%E \\([^ ]+\\)" 1))
-;;   
+;;
 ;;   It might be worth mentioning in your file that emacs sources start up
 ;;   files of the form: ~/.emacs_<SHELL> where <SHELL> is the name of the
 ;;   shell.  So for example, I have the following in ~/.emacs_tcsh:
-;;   
+;;
 ;;   set prompt = "%%E %~ %h% "
-;;   
+;;
 ;;   This produces a prompt of the form:
-;;   %E /var/spool 10% 
-;;   
+;;   %E /var/spool 10%
+;;
 ;;   This saves me from having to use the %E prefix in other non-emacs
 ;;   shells.
 ;;
 ;; A final note:
-;; 
+;;
 ;;   I run LOTS of shell buffers through Emacs, sometimes as different users
 ;;   (eg, when logged in as myself, I'll run a root shell in the same Emacs).
 ;;   If you do this, and the shell prompt contains a ~, Emacs will interpret
@@ -134,11 +134,11 @@
 (defcustom dirtrack-list (list "^emacs \\([a-zA-Z]:.*\\)>" 1)
   "*List for directory tracking.
 First item is a regexp that describes where to find the path in a prompt.
-Second is a number, the regexp group to match. Optional third item is 
-whether the prompt is multi-line. If nil or omitted, prompt is assumed to 
+Second is a number, the regexp group to match. Optional third item is
+whether the prompt is multi-line. If nil or omitted, prompt is assumed to
 be on a single line."
   :group 'dirtrack
-  :type  '(sexp (regexp  :tag "Prompt Expression") 
+  :type  '(sexp (regexp  :tag "Prompt Expression")
 		(integer :tag "Regexp Group")
 		(boolean :tag "Multiline Prompt")
 		)
@@ -166,8 +166,8 @@
 
 (make-variable-buffer-local 'dirtrackp)
 
-(defcustom dirtrack-directory-function 
-  (if (memq system-type (list 'ms-dos 'windows-nt))
+(defcustom dirtrack-directory-function
+  (if (memq system-type (list 'ms-dos 'windows-nt 'cygwin))
       'dirtrack-windows-directory-function
     'dirtrack-default-directory-function)
   "*Function to apply to the prompt directory for comparison purposes."
@@ -175,8 +175,8 @@
   :type  'function
   )
 
-(defcustom dirtrack-canonicalize-function  
-  (if (memq system-type (list 'ms-dos 'windows-nt))
+(defcustom dirtrack-canonicalize-function
+  (if (memq system-type (list 'ms-dos 'windows-nt 'cygwin))
       'downcase 'identity)
   "*Function to apply to the default directory for comparison purposes."
   :group 'dirtrack
@@ -204,7 +204,7 @@
 
 (defun dirtrack-windows-directory-function (dir)
   "Return a canonical directory for comparison purposes.
-Such a directory is all lowercase, has forward-slashes as delimiters, 
+Such a directory is all lowercase, has forward-slashes as delimiters,
 and ends with a forward slash."
   (let ((directory dir))
     (setq directory (downcase (dirtrack-replace-slash directory t)))
@@ -217,13 +217,13 @@
 
 (defun dirtrack-replace-slash (string &optional opposite)
   "Replace forward slashes with backwards ones.
-If additional argument is non-nil, replace backwards slashes with 
+If additional argument is non-nil, replace backwards slashes with
 forward ones."
-  (let ((orig     (if opposite 
-		      dirtrack-backward-slash 
+  (let ((orig     (if opposite
+		      dirtrack-backward-slash
 		    dirtrack-forward-slash))
-	(replace  (if opposite 
-		      dirtrack-forward-slash 
+	(replace  (if opposite
+		      dirtrack-forward-slash
 		    dirtrack-backward-slash))
 	(newstring string)
 	)
@@ -266,7 +266,7 @@
 If directory tracking does not seem to be working, you can use the
 function `dirtrack-debug-toggle' to turn on debugging output.
 
-You can enable directory tracking by adding this function to 
+You can enable directory tracking by adding this function to
 `comint-output-filter-functions'.
 "
   (if (null dirtrackp)
@@ -286,33 +286,33 @@
 	  ;; No match
 	  (if (null matched)
 	      (and dirtrack-debug
-		   (dirtrack-debug-message 
-		    (format 
-		     "Input `%s' failed to match regexp: %s" 
+		   (dirtrack-debug-message
+		    (format
+		     "Input `%s' failed to match regexp: %s"
 		    input dirtrack-regexp)))
-	    (setq prompt-path 
+	    (setq prompt-path
 		  (substring input
 		   (match-beginning match-num) (match-end match-num)))
 	    ;; Empty string
 	    (if (not (> (length prompt-path) 0))
 		(and dirtrack-debug
-		     (dirtrack-debug-message "Match is empty string")) 
+		     (dirtrack-debug-message "Match is empty string"))
 	      ;; Transform prompts into canonical forms
 	      (setq prompt-path (funcall dirtrack-directory-function
 					 prompt-path))
 	      (setq current-dir (funcall dirtrack-canonicalize-function
 					 current-dir))
 	      (and dirtrack-debug
-		   (dirtrack-debug-message 
+		   (dirtrack-debug-message
 		    (format
 		     "Prompt is %s\nCurrent directory is %s"
-		     prompt-path current-dir))) 
+		     prompt-path current-dir)))
 	      ;; Compare them
 	      (if (or (string= current-dir prompt-path)
-		      (string= current-dir 
+		      (string= current-dir
 			       (abbreviate-file-name prompt-path)))
 		  (and dirtrack-debug
-		       (dirtrack-debug-message 
+		       (dirtrack-debug-message
 			(format "Not changing directory")))
 		;; It's possible that Emacs will think the directory
 		;; won't exist (eg, rlogin buffers)
@@ -321,7 +321,7 @@
 		    (and (shell-process-cd prompt-path)
 			 (run-hooks 'dirtrack-directory-change-hook)
 			 dirtrack-debug
-			 (dirtrack-debug-message 
+			 (dirtrack-debug-message
 			  (format "Changing directory to %s" prompt-path)))
 		  (error "Directory %s does not exist" prompt-path)))
 	      )))))
--- a/lisp/dos-w32.el	Fri Jan 31 15:05:24 2003 +0000
+++ b/lisp/dos-w32.el	Fri Jan 31 15:24:20 2003 +0000
@@ -197,7 +197,7 @@
 (defun untranslated-canonical-name (filename)
   "Return FILENAME in a canonicalized form for use with the functions
 dealing with untranslated filesystems."
-  (if (memq system-type '(ms-dos windows-nt))
+  (if (memq system-type '(ms-dos windows-nt cygwin))
       ;; The canonical form for DOS/W32 is with A-Z downcased and all
       ;; directory separators changed to directory-sep-char.
       (let ((name nil))
--- a/lisp/fast-lock.el	Fri Jan 31 15:05:24 2003 +0000
+++ b/lisp/fast-lock.el	Fri Jan 31 15:24:20 2003 +0000
@@ -34,7 +34,7 @@
 ;; See also the lazy-lock package.  (But don't use the two at the same time!)
 
 ;; Installation:
-;; 
+;;
 ;; Put in your ~/.emacs:
 ;;
 ;; (setq font-lock-support-mode 'fast-lock-mode)
@@ -67,7 +67,7 @@
 ;; 1.01--2.00: complete rewrite---not worth the space to document
 ;; - Changed structure of text properties cache and threw out file mod checks
 ;; 2.00--2.01:
-;; - Made `condition-case' forms understand `quit'. 
+;; - Made `condition-case' forms understand `quit'.
 ;; - Made `fast-lock' require `font-lock'
 ;; - Made `fast-lock-cache-name' chase links (from Ben Liblit)
 ;; 2.01--3.00:
@@ -230,7 +230,7 @@
  ;;
  ;; We use this for compatibility with a future Emacs.
  (or (fboundp 'defcustom)
-     (defmacro defcustom (symbol value doc &rest args) 
+     (defmacro defcustom (symbol value doc &rest args)
        `(defvar ,symbol ,value ,doc))))
 
 ;(defun fast-lock-submit-bug-report ()
@@ -553,7 +553,7 @@
       (concat buffer-file-name ".flc")
     (let* ((bufile (expand-file-name buffer-file-truename))
 	   (chars-alist
-	    (if (memq system-type '(emx windows-nt))
+	    (if (memq system-type '(emx windows-nt cygwin))
 		'((?/ . (?#)) (?# . (?# ?#)) (?: . (?\;)) (?\; . (?\; ?\;)))
 	      '((?/ . (?#)) (?# . (?# ?#)))))
 	   (mapchars
@@ -807,7 +807,7 @@
 	    (font-lock-set-face (nth 0 regions) (nth 1 regions) face)
 	    (setq regions (nthcdr 2 regions)))
 	  (setq face-properties (cdr face-properties))))
-      ;; XEmacs does not support the `syntax-table' text property.      
+      ;; XEmacs does not support the `syntax-table' text property.
       ))
   ;;
   ;; XEmacs 19.12 font-lock.el's `font-lock-fontify-buffer' runs a hook.
--- a/lisp/filecache.el	Fri Jan 31 15:05:24 2003 +0000
+++ b/lisp/filecache.el	Fri Jan 31 15:24:20 2003 +0000
@@ -187,7 +187,7 @@
   :group 'file-cache)
 
 (defcustom file-cache-completion-ignore-case
-   (if (memq system-type (list 'ms-dos 'windows-nt))
+   (if (memq system-type (list 'ms-dos 'windows-nt 'cygwin))
       t
      completion-ignore-case)
   "If non-nil, file-cache completion should ignore case.
@@ -197,7 +197,7 @@
   )
 
 (defcustom file-cache-case-fold-search
-  (if (memq system-type (list 'ms-dos 'windows-nt))
+  (if (memq system-type (list 'ms-dos 'windows-nt 'cygwin))
       t
     case-fold-search)
   "If non-nil, file-cache completion should ignore case.
@@ -207,7 +207,7 @@
   )
 
 (defcustom file-cache-assoc-function
-  (if (memq system-type (list 'ms-dos 'windows-nt))
+  (if (memq system-type (list 'ms-dos 'windows-nt 'cygwin))
       'assoc-ignore-case
     'assoc)
   "Function to use to check completions in the file cache.
--- a/lisp/files.el	Fri Jan 31 15:05:24 2003 +0000
+++ b/lisp/files.el	Fri Jan 31 15:24:20 2003 +0000
@@ -215,7 +215,7 @@
 		 "[\000-\031]\\|"		  ; control characters
 		 "\\(/\\.\\.?[^/]\\)\\|"	  ; leading dots
 		 "\\(/[^/.]+\\.[^/.]*\\.\\)"))	  ; more than a single dot
-	((memq system-type '(ms-dos windows-nt))
+	((memq system-type '(ms-dos windows-nt cygwin))
 	 (concat "^\\([^A-Z[-`a-z]\\|..+\\)?:\\|" ; colon except after drive
 		 "[|<>\"?*\000-\031]"))		  ; invalid characters
 	(t "[\000]"))
@@ -1028,6 +1028,7 @@
 	     ;; MS-DOS root directories can come with a drive letter;
 	     ;; Novell Netware allows drive letters beyond `Z:'.
 	     (not (and (or (eq system-type 'ms-dos)
+			   (eq system-type 'cygwin)
 			   (eq system-type 'windows-nt))
 		       (save-match-data
 			 (string-match "^[a-zA-`]:/$" filename)))))
@@ -1774,7 +1775,7 @@
 		  (mode nil))
 	      ;; Find first matching alist entry.
 	      (let ((case-fold-search
-		     (memq system-type '(vax-vms windows-nt))))
+		     (memq system-type '(vax-vms windows-nt cygwin))))
 		(while (and (not mode) alist)
 		  (if (string-match (car (car alist)) name)
 		      (if (and (consp (cdr (car alist)))
@@ -2615,7 +2616,7 @@
 	file
       (if (file-name-absolute-p backup-directory)
 	  (progn
-	    (when (memq system-type '(windows-nt ms-dos))
+	    (when (memq system-type '(windows-nt ms-dos cygwin))
 	      ;; Normalize DOSish file names: downcase the drive
 	      ;; letter, if any, and replace the leading "x:" with
 	      ;; "/drive_x".
@@ -2737,6 +2738,7 @@
       ;; On Microsoft OSes, if FILENAME and DIRECTORY have different
       ;; drive names, they can't be relative, so return the absolute name.
       (if (and (or (eq system-type 'ms-dos)
+		   (eq system-type 'cygwin)
 		   (eq system-type 'windows-nt))
 	       (not (string-equal (substring fname  0 2)
 				  (substring directory 0 2))))
@@ -3136,7 +3138,7 @@
 With arg, set read-only iff arg is positive.
 If visiting file read-only and `view-read-only' is non-nil, enter view mode."
   (interactive "P")
-  (if (and arg 
+  (if (and arg
            (if (> (prefix-numeric-value arg) 0) buffer-read-only
              (not buffer-read-only)))  ; If buffer-read-only is set correctly,
       nil			       ; do nothing.
@@ -3881,7 +3883,7 @@
 PATTERN that already quotes some of the special characters."
   (save-match-data
     (cond
-     ((memq system-type '(ms-dos windows-nt))
+     ((memq system-type '(ms-dos windows-nt cygwin))
       ;; DOS/Windows don't allow `"' in file names.  So if the
       ;; argument has quotes, we can safely assume it is already
       ;; quoted by the caller.
@@ -4022,7 +4024,7 @@
 		 ;; bunch by one to preserve that property.
 		 (coding-system-for-read 'no-conversion)
 		 ;; This is to control encoding the arguments in call-process.
-		 (coding-system-for-write 
+		 (coding-system-for-write
 		  (and enable-multibyte-characters
 		       (or file-name-coding-system
 			   default-file-name-coding-system))))
--- a/lisp/gnus/ChangeLog	Fri Jan 31 15:05:24 2003 +0000
+++ b/lisp/gnus/ChangeLog	Fri Jan 31 15:24:20 2003 +0000
@@ -1,3 +1,7 @@
+2003-01-31  Joe Buehler  <jhpb@draco.hekimian.com>
+
+	* nnheader.el: Added cygwin to system-type comparisons.
+
 2003-01-27  Juanma Barranquero  <lektu@terra.es>
 
 	* imap.el (imap-mailbox-status): Fix typo.
--- a/lisp/gnus/nnheader.el	Fri Jan 31 15:05:24 2003 +0000
+++ b/lisp/gnus/nnheader.el	Fri Jan 31 15:24:20 2003 +0000
@@ -47,7 +47,7 @@
 (defvar nnheader-head-chop-length 2048
   "*Length of each read operation when trying to fetch HEAD headers.")
 
-(defvar nnheader-file-name-translation-alist 
+(defvar nnheader-file-name-translation-alist
   (let ((case-fold-search t))
     (cond
      ((string-match "windows-nt\\|os/2\\|emx\\|cygwin32"
@@ -653,12 +653,12 @@
 	;; We translate -- but only the file name.  We leave the directory
 	;; alone.
 	(if (and (featurep 'xemacs)
-		 (memq system-type '(win32 w32 mswindows windows-nt)))
+		 (memq system-type '(win32 w32 mswindows windows-nt cygwin)))
 	    ;; This is needed on NT and stuff, because
 	    ;; file-name-nondirectory is not enough to split
 	    ;; file names, containing ':', e.g.
 	    ;; "d:\\Work\\News\\nntp+news.fido7.ru:fido7.ru.gnu.SCORE"
-	    ;; 
+	    ;;
 	    ;; we are trying to correctly split such names:
 	    ;; "d:file.name" -> "a:" "file.name"
 	    ;; "aaa:bbb.ccc" -> "" "aaa:bbb.ccc"
--- a/lisp/hippie-exp.el	Fri Jan 31 15:05:24 2003 +0000
+++ b/lisp/hippie-exp.el	Fri Jan 31 15:24:20 2003 +0000
@@ -28,7 +28,7 @@
 
 ;;  `hippie-expand' is a single function for a lot of different kinds
 ;;  of completions and expansions.  Called repeatedly it tries all
-;;  possible completions in succession. 
+;;  possible completions in succession.
 ;;  Which kinds of completions to try, and in which order, is
 ;;  determined by the contents of `hippie-expand-try-functions-list'.
 ;;  Much customization of `hippie-expand' can be made by changing the
@@ -61,7 +61,7 @@
 ;;  characters of syntax '_' is considered part of the words to expand
 ;;  dynamically.
 ;;  See also the macro `make-hippie-expand-function' below.
-;;  
+;;
 ;;  A short description of the current try-functions in this file:
 ;;    `try-complete-file-name' : very convenient to have in any buffer,
 ;;      and not just in the minibuffer or (some) shell-mode.  It goes
@@ -72,9 +72,9 @@
 ;;      a file name completed only as many characters as is unique.
 ;;    `try-expand-all-abbrevs' : can be removed if you don't use abbrevs.
 ;;      Otherwise it looks through all abbrev-tables, starting with
-;;      the local followed by the global. 
-;;    `try-expand-line' : Searches the buffer for an entire line that 
-;;      begins exactly as the current line.  Convenient sometimes, for 
+;;      the local followed by the global.
+;;    `try-expand-line' : Searches the buffer for an entire line that
+;;      begins exactly as the current line.  Convenient sometimes, for
 ;;      example as a substitute for (or complement to) the history
 ;;      list in shell-like buffers.  At other times, only confusing.
 ;;    `try-expand-line-all-buffers' : Like `try-expand-line' but searches
@@ -83,14 +83,14 @@
 ;;    `try-expand-list' : Tries to expand the text back to the nearest
 ;;      open delimiter, to a whole list from the buffer. Convenient for
 ;;      example when writing lisp or TeX.
-;;    `try-expand-list-all-buffers' : Like `try-expand-list' but searches 
-;;      in all buffers (except the current).  
+;;    `try-expand-list-all-buffers' : Like `try-expand-list' but searches
+;;      in all buffers (except the current).
 ;;    `try-expand-dabbrev' : works exactly as dabbrev-expand (but of
 ;;      course in a way compatible with the other try-functions).
 ;;    `try-expand-dabbrev-all-buffers' : perhaps the most useful of them,
 ;;      like `dabbrev-expand' but searches all Emacs buffers (except the
 ;;      current) for matching words.  (No, I don't find this one
-;;      particularly slow.) 
+;;      particularly slow.)
 ;;    `try-expand-dabbrev-visible': Searches the currently visible parts of
 ;;      all windows.  Can be put before `try-expand-dabbrev-all-buffers' to
 ;;      first try the expansions you can see.
@@ -108,7 +108,7 @@
 ;;      already has a key of its own, you might want to remove this.
 ;;    `try-complete-lisp-symbol-partially' : To insert in the list just
 ;;      before `try-complete-lisp-symbol' for those who first want to get
-;;      completion of what is unique in the name.  
+;;      completion of what is unique in the name.
 ;;
 ;;  Not all of the above functions are by default in
 ;;  `hippie-expand-try-functions-list'.  This variable is better set
@@ -143,14 +143,14 @@
 ;;    `he-reset-string' : Resets the initialized region to its original
 ;;      contents.
 ;;  There is also a variable: `he-tried-table' which is meant to contain
-;;  all tried expansions so far.  The try-function can check this 
+;;  all tried expansions so far.  The try-function can check this
 ;;  variable to see whether an expansion has already been tried
 ;;  (hint: `he-string-member').
 ;;
 ;;  Known bugs
 ;;
 ;;  It may happen that some completion suggestion occurs twice, in
-;;  spite of the use of `he-tried-table' to prevent that.  This is 
+;;  spite of the use of `he-tried-table' to prevent that.  This is
 ;;  because different try-functions may try to complete different
 ;;  lengths of text, and thus put different amounts of the
 ;;  text in `he-tried-table'.  Anyway this seems to occur seldom enough
@@ -274,12 +274,12 @@
 The expansion functions in `hippie-expand-try-functions-list' are
 tried in order, until a possible expansion is found.  Repeated
 application of `hippie-expand' inserts successively possible
-expansions.  
+expansions.
 With a positive numeric argument, jumps directly to the ARG next
-function in this list.  With a negative argument or just \\[universal-argument], 
-undoes the expansion." 
+function in this list.  With a negative argument or just \\[universal-argument],
+undoes the expansion."
   (interactive "P")
-  (if (or (not arg) 
+  (if (or (not arg)
 	  (and (integerp arg) (> arg 0)))
       (let ((first (or (= he-num -1)
 		       (not (equal this-command last-command)))))
@@ -292,7 +292,7 @@
 	    (setq arg 0))
 	(let ((i (max (+ he-num arg) 0)))
 	  (while (not (or (>= i (length hippie-expand-try-functions-list))
-			  (apply (nth i hippie-expand-try-functions-list) 
+			  (apply (nth i hippie-expand-try-functions-list)
 				 (list (= he-num i)))))
 	    (setq i (1+ i)))
 	  (setq he-num i))
@@ -331,7 +331,7 @@
     (goto-char newpos)))
 
 ;; Substitutes an expansion STR into the correct region (the region
-;; initialized with `he-init-string'). 
+;; initialized with `he-init-string').
 ;; An optional argument TRANS-CASE means that it is ok to transfer case
 ;; from the abbreviation to the expansion if that is possible, and is
 ;; enabled in the buffer.
@@ -413,14 +413,14 @@
 ;;    (fset 'my-complete-line (make-hippie-expand-function
 ;;                             '(try-expand-line
 ;;                               try-expand-line-all-buffers)))
-;;  
+;;
 ;;;###autoload
 (defmacro make-hippie-expand-function (try-list &optional verbose)
   "Construct a function similar to `hippie-expand'.
 Make it use the expansion functions in TRY-LIST.  An optional second
 argument VERBOSE non-nil makes the function verbose."
   `(function (lambda (arg)
-    ,(concat 
+    ,(concat
       "Try to expand text before point, using the following functions: \n"
       (mapconcat 'prin1-to-string (eval try-list) ", "))
     (interactive "P")
@@ -438,7 +438,7 @@
 for subsequent calls (for further possible completions of the same
 string).  It returns t if a new completion is found, nil otherwise."
   (if (not old)
-      (progn 
+      (progn
 	(he-init-string (he-file-name-beg) (point))
 	(let ((name-part (he-file-name-nondirectory he-search-string))
 	      (dir-part (expand-file-name (or (he-file-name-directory
@@ -447,7 +447,7 @@
 	      (setq he-tried-table (cons name-part he-tried-table)))
 	  (if (and (not (equal he-search-string ""))
 		   (he-file-directory-p dir-part))
-	      (setq he-expand-list (sort (file-name-all-completions 
+	      (setq he-expand-list (sort (file-name-all-completions
 					  name-part
 					  dir-part)
 					 'string-lessp))
@@ -471,11 +471,11 @@
 (defun try-complete-file-name-partially (old)
   "Try to complete text as a file name, as many characters as unique.
 The argument OLD has to be nil the first call of this function.  It
-returns t if a unique, possibly partial, completion is found, nil 
+returns t if a unique, possibly partial, completion is found, nil
 otherwise."
   (let ((expansion ()))
     (if (not old)
-	(progn 
+	(progn
 	  (he-init-string (he-file-name-beg) (point))
 	  (let ((name-part (he-file-name-nondirectory he-search-string))
 		(dir-part (expand-file-name (or (he-file-name-directory
@@ -503,7 +503,7 @@
 (defvar he-file-name-chars
   (cond ((memq system-type '(vax-vms axp-vms))
 	 "-a-zA-Z0-9_/.,~^#$+=:\\[\\]")
-	((memq system-type '(ms-dos windows-nt))
+	((memq system-type '(ms-dos windows-nt cygwin))
 	 "-a-zA-Z0-9_/.,~^#$+=:\\\\")
 	(t			    ;; More strange file formats ?
 	 "-a-zA-Z0-9_/.,~^#$+="))
@@ -518,7 +518,7 @@
 	(point)))))
 
 ;; Thanks go to Richard Levitte <levitte@e.kth.se> who helped to make these
-;; work under VMS, and to David Hughes <ukchugd@ukpmr.cs.philips.nl> who 
+;; work under VMS, and to David Hughes <ukchugd@ukpmr.cs.philips.nl> who
 ;; helped to make it work on PC.
 (defun he-file-name-nondirectory (file)
   "Fix to make `file-name-nondirectory' work for hippie-expand under VMS."
@@ -545,7 +545,7 @@
       (or (file-directory-p file)
 	  (file-directory-p (concat file "[000000]")))
     (file-directory-p file)))
-  
+
 (defun he-concat-directory-file-name (dir-part name-part)
   "Try to slam together two parts of a file specification, system dependently."
   (cond ((null dir-part) name-part)
@@ -560,20 +560,20 @@
 		  (= (aref name-part (1- (length name-part))) ?/))
 	     (aset name-part (1- (length name-part)) ?\\))
 	 (concat dir-part name-part))
-	(t 
+	(t
 	 (concat dir-part name-part))))
-			
+
 (defun try-complete-lisp-symbol (old)
   "Try to complete word as an Emacs Lisp symbol.
 The argument OLD has to be nil the first call of this function, and t
 for subsequent calls (for further possible completions of the same
 string).  It returns t if a new completion is found, nil otherwise."
   (if (not old)
-      (progn 
+      (progn
 	(he-init-string (he-lisp-symbol-beg) (point))
 	(if (not (he-string-member he-search-string he-tried-table))
 	    (setq he-tried-table (cons he-search-string he-tried-table)))
-	(setq he-expand-list 
+	(setq he-expand-list
 	      (and (not (equal he-search-string ""))
 		   (sort (all-completions he-search-string obarray
 					  (function (lambda (sym)
@@ -596,14 +596,14 @@
 (defun try-complete-lisp-symbol-partially (old)
   "Try to complete as an Emacs Lisp symbol, as many characters as unique.
 The argument OLD has to be nil the first call of this function.  It
-returns t if a unique, possibly partial, completion is found, nil 
+returns t if a unique, possibly partial, completion is found, nil
 otherwise."
   (let ((expansion ()))
     (if (not old)
-	(progn 
+	(progn
 	  (he-init-string (he-lisp-symbol-beg) (point))
 	  (if (not (string= he-search-string ""))
-	      (setq expansion 
+	      (setq expansion
 		    (try-completion he-search-string obarray
 				    (function (lambda (sym)
 				      (or (boundp sym)
@@ -649,7 +649,7 @@
 		(widen))
 	    ;; Try looking backward unless inhibited.
 	    (if he-search-bw
-		(progn 
+		(progn
 		  (goto-char he-search-loc)
 		  (setq expansion (he-line-search he-search-string
 						  strip-prompt t))
@@ -660,9 +660,9 @@
 			(setq he-search-bw ())))))
 
 	    (if (not expansion) ; Then look forward.
-		(progn 
+		(progn
 		  (goto-char he-search-loc)
-		  (setq expansion (he-line-search he-search-string 
+		  (setq expansion (he-line-search he-search-string
 						  strip-prompt nil))
 		  (set-marker he-search-loc (point)))))))
 
@@ -693,7 +693,7 @@
 	  (set-marker he-search-loc 1 (car he-search-bufs))))
 
     (if (not (equal he-search-string ""))
-	(while (and he-search-bufs 
+	(while (and he-search-bufs
 		    (not expansion)
 		    (or (not hippie-expand-max-buffers)
 			(< he-searched-n-bufs hippie-expand-max-buffers)))
@@ -710,7 +710,7 @@
 		  (setq strip-prompt (and (get-buffer-process (current-buffer))
 					  comint-use-prompt-regexp-instead-of-fields
 					  comint-prompt-regexp))
-		  (setq expansion 
+		  (setq expansion
 			(let ((case-fold-search orig-case-fold-search))
 			  (he-line-search he-search-string
 					  strip-prompt nil)))
@@ -732,11 +732,11 @@
 	  (he-substitute-string expansion t)
 	  t))))
 
-(defun he-line-search (str strip-prompt reverse) 
+(defun he-line-search (str strip-prompt reverse)
   (let ((result ()))
     (while (and (not result)
 		(if reverse
-		    (re-search-backward 
+		    (re-search-backward
 		     (he-line-search-regexp str strip-prompt)
 		     nil t)
 		    (re-search-forward
@@ -750,7 +750,7 @@
 
 (defun he-line-beg (strip-prompt)
   (save-excursion
-    (if (re-search-backward (he-line-search-regexp "" strip-prompt) 
+    (if (re-search-backward (he-line-search-regexp "" strip-prompt)
 			    (save-excursion (beginning-of-line)
 					    (point)) t)
 	(match-beginning 2)
@@ -761,7 +761,7 @@
       (concat "\\(" comint-prompt-regexp "\\|^\\s-*\\)\\("
 	      (regexp-quote pat)
 	      "[^\n]*[^ \t\n]\\)")
-      (concat "^\\(\\s-*\\)\\(" 
+      (concat "^\\(\\s-*\\)\\("
 	      (regexp-quote pat)
 	      "[^\n]*[^ \t\n]\\)")))
 
@@ -784,7 +784,7 @@
 		(widen))
 	    ;; Try looking backward unless inhibited.
 	    (if he-search-bw
-		(progn 
+		(progn
 		  (goto-char he-search-loc)
 		  (setq expansion (he-list-search he-search-string t))
 		  (set-marker he-search-loc (point))
@@ -794,7 +794,7 @@
 			(setq he-search-bw ())))))
 
 	    (if (not expansion) ; Then look forward.
-		(progn 
+		(progn
 		  (goto-char he-search-loc)
 		  (setq expansion (he-list-search he-search-string nil))
 		  (set-marker he-search-loc (point)))))))
@@ -823,7 +823,7 @@
 	  (set-marker he-search-loc 1 (car he-search-bufs))))
 
     (if (not (equal he-search-string ""))
-	(while (and he-search-bufs 
+	(while (and he-search-bufs
 		    (not expansion)
 		    (or (not hippie-expand-max-buffers)
 			(< he-searched-n-bufs hippie-expand-max-buffers)))
@@ -837,7 +837,7 @@
 		  (if hippie-expand-no-restriction
 		      (widen))
 		  (goto-char he-search-loc)
-		  (setq expansion 
+		  (setq expansion
 			(let ((case-fold-search orig-case-fold-search))
 			  (he-list-search he-search-string nil)))
 		  (set-marker he-search-loc (point))
@@ -858,7 +858,7 @@
 	  (he-substitute-string expansion t)
 	  t))))
 
-(defun he-list-search (str reverse) 
+(defun he-list-search (str reverse)
   (let ((result ())
 	beg pos err)
     (while (and (not result)
@@ -872,7 +872,7 @@
       (condition-case ()
 	  (forward-list 1)
 	(error (setq err t)))
-      (if (and reverse 
+      (if (and reverse
 	       (> (point) he-string-beg))
 	  (setq err t))
       (if (not err)
@@ -898,13 +898,13 @@
   (if (not old)
       (progn
 	(he-init-string (he-dabbrev-beg) (point))
-	(setq he-expand-list 
+	(setq he-expand-list
 	      (and (not (equal he-search-string ""))
 		   (mapcar (function (lambda (sym)
 			     (if (and (boundp sym) (vectorp (eval sym)))
 				 (abbrev-expansion (downcase he-search-string)
 						   (eval sym)))))
-			   (append '(local-abbrev-table 
+			   (append '(local-abbrev-table
 				     global-abbrev-table)
 				   abbrev-table-name-list))))))
   (while (and he-expand-list
@@ -939,7 +939,7 @@
 		(widen))
 	    ;; Try looking backward unless inhibited.
 	    (if he-search-bw
-		(progn 
+		(progn
 		  (goto-char he-search-loc)
 		  (setq expansion (he-dabbrev-search he-search-string t))
 		  (set-marker he-search-loc (point))
@@ -949,11 +949,11 @@
 			(setq he-search-bw ())))))
 
 	    (if (not expansion) ; Then look forward.
-		(progn 
+		(progn
 		  (goto-char he-search-loc)
 		  (setq expansion (he-dabbrev-search he-search-string nil))
 		  (set-marker he-search-loc (point)))))))
-	
+
     (if (not expansion)
 	(progn
 	  (if old (he-reset-string))
@@ -978,7 +978,7 @@
 	  (set-marker he-search-loc 1 (car he-search-bufs))))
 
     (if (not (equal he-search-string ""))
-	(while (and he-search-bufs 
+	(while (and he-search-bufs
 		    (not expansion)
 		    (or (not hippie-expand-max-buffers)
 			(< he-searched-n-bufs hippie-expand-max-buffers)))
@@ -1047,13 +1047,13 @@
 					       (window-end he-search-window))))
 	(set-marker he-search-loc (point) (current-buffer)))
       (if (not expansion)
-	  (progn 
+	  (progn
 	    (setq he-search-window (next-window he-search-window nil flag))
 	    (if (eq he-search-window (selected-window))
 		(set-marker he-search-loc nil)
 	      (set-marker he-search-loc (window-start he-search-window)
 			  (window-buffer he-search-window))))))
-    
+
     (set-buffer buf)
     (if (not expansion)
 	(progn
@@ -1072,7 +1072,7 @@
 		      (t
 		       (concat "\\<" (regexp-quote pattern)
 			       "\\(\\sw\\|\\s_\\)+")))))
-    (while (and (not result) 
+    (while (and (not result)
 		(if reverse
 		     (re-search-backward regpat limit t)
 		     (re-search-forward regpat limit t)))
@@ -1104,7 +1104,7 @@
 string).  It returns t if a new completion is found, nil otherwise."
   (let ((expansion ()))
     (if (not old)
-	(progn 
+	(progn
 	  (he-init-string (he-dabbrev-beg) (point))
 	  (setq he-expand-list
 		(if (not (equal he-search-string ""))
@@ -1130,7 +1130,7 @@
 		       (concat "\\<" (regexp-quote pattern)
 			       "\\(\\sw\\|\\s_\\)+"))))
 	(killstr (car he-expand-list)))
-    (while (and (not result) 
+    (while (and (not result)
 		he-expand-list)
       (while (and (not result)
 		  (string-match regpat killstr he-search-loc2))
@@ -1143,10 +1143,10 @@
 			   '(?_ ?w)))
 		(he-string-member result he-tried-table t))
 	    (setq result nil)))     ; ignore if bad prefix or already in table
-      (if (and (not result) 
+      (if (and (not result)
 		he-expand-list)
 	  (progn
-	    (setq he-expand-list (cdr he-expand-list)) 
+	    (setq he-expand-list (cdr he-expand-list))
 	    (setq killstr (car he-expand-list))
 	    (setq he-search-loc2 0))))
     result))
@@ -1158,11 +1158,11 @@
 string).  It returns t if a new completion is found, nil otherwise."
   (let ((expansion ()))
     (if (not old)
-	(progn 
+	(progn
 	  (he-init-string (he-kill-beg) (point))
 	  (if (not (he-string-member he-search-string he-tried-table))
 	      (setq he-tried-table (cons he-search-string he-tried-table)))
-	  (setq he-expand-list 
+	  (setq he-expand-list
 		(if (not (equal he-search-string ""))
 		    kill-ring))
 	  (setq he-search-loc2 ())))
@@ -1206,7 +1206,7 @@
       (if (and (not result)
 		he-expand-list)
 	  (progn
-	    (setq he-expand-list (cdr he-expand-list)) 
+	    (setq he-expand-list (cdr he-expand-list))
 	    (setq killstr (car he-expand-list))
 	    (setq pos -1))))
     result))
--- a/lisp/international/mule.el	Fri Jan 31 15:05:24 2003 +0000
+++ b/lisp/international/mule.el	Fri Jan 31 15:24:20 2003 +0000
@@ -1631,7 +1631,7 @@
 (defun auto-coding-alist-lookup (filename)
   "Return the coding system specified by `auto-coding-alist' for FILENAME."
   (let ((alist auto-coding-alist)
-	(case-fold-search (memq system-type '(vax-vms windows-nt ms-dos)))
+	(case-fold-search (memq system-type '(vax-vms windows-nt ms-dos cygwin)))
 	coding-system)
     (while (and alist (not coding-system))
       (if (string-match (car (car alist)) filename)
--- a/lisp/net/browse-url.el	Fri Jan 31 15:05:24 2003 +0000
+++ b/lisp/net/browse-url.el	Fri Jan 31 15:24:20 2003 +0000
@@ -227,7 +227,7 @@
 
 ;;;###autoload
 (defcustom browse-url-browser-function
-  (if (memq system-type '(windows-nt ms-dos))
+  (if (memq system-type '(windows-nt ms-dos cygwin))
       'browse-url-default-windows-browser
     'browse-url-default-browser)
   "*Function to display the current buffer in a WWW browser.
@@ -381,7 +381,7 @@
     ;; it in anonymous cases.  If it's not anonymous the next regexp
     ;; applies.
     ("^/\\([^:@]+@\\)?\\([^:]+\\):/*" . "ftp://\\1\\2/")
-    (,@ (if (memq system-type '(windows-nt ms-dos))
+    (,@ (if (memq system-type '(windows-nt ms-dos cygwin))
 	    '(("^\\([a-zA-Z]:\\)[\\/]" . "file:\\1/")
               ("^[\\/][\\/]+" . "file://"))))
     ("^/+" . "file:/")))
@@ -972,7 +972,7 @@
 
 When called non-interactively, optional second argument NEW-WINDOW is
 used instead of `browse-url-new-window-flag'."
-  (interactive (browse-url-interactive-arg "URL: "))  
+  (interactive (browse-url-interactive-arg "URL: "))
   (apply 'start-process (concat "gnome-moz-remote " url)
 	 nil
 	 "gnome-moz-remote"
--- a/lisp/pcomplete.el	Fri Jan 31 15:05:24 2003 +0000
+++ b/lisp/pcomplete.el	Fri Jan 31 15:24:20 2003 +0000
@@ -139,7 +139,7 @@
   :type '(choice regexp (const :tag "None" nil))
   :group 'pcomplete)
 
-(defcustom pcomplete-ignore-case (memq system-type '(ms-dos windows-nt))
+(defcustom pcomplete-ignore-case (memq system-type '(ms-dos windows-nt cygwin))
   "*If non-nil, ignore case when doing filename completion."
   :type 'boolean
   :group 'pcomplete)
--- a/lisp/recentf.el	Fri Jan 31 15:05:24 2003 +0000
+++ b/lisp/recentf.el	Fri Jan 31 15:24:20 2003 +0000
@@ -156,7 +156,7 @@
 used to build the menu and must return a new list of menu elements (see
 `recentf-make-menu-element' for menu element form)."
   :group 'recentf
-  :type '(radio (const nil) 
+  :type '(radio (const nil)
 		(function-item recentf-sort-ascending)
 		(function-item recentf-sort-descending)
 		(function-item recentf-sort-basenames-ascending)
@@ -201,7 +201,7 @@
 ;;;; Common functions
 ;;;;
 (defconst recentf-case-fold-search
-  (memq system-type '(vax-vms windows-nt))
+  (memq system-type '(vax-vms windows-nt cygwin))
   "Non-nil if recentf searches and matches should ignore case.")
 
 (defun recentf-include-p (filename)
@@ -676,7 +676,7 @@
     ;; It is important to preserve auto-mode-alist order
     ;; to ensure the right file <-> mode association
     (nreverse rules)))
-         
+
 (defun recentf-arrange-by-mode (l)
   "Filter the list of menu-elements L to build sub-menus for each major mode."
   (let ((recentf-arrange-rules (recentf-build-mode-rules))
@@ -765,7 +765,7 @@
                (setq filters (cdr filters)))))
     (if (consp filters)
         (car filters))))
-        
+
 (defun recentf-filter-changer (l)
   "Manage a ring of filters.
 `recentf-filter-changer-alist' defines the filters in the ring.
@@ -888,7 +888,7 @@
         (setq recentf-edit-selected-items
               (nconc (list value) recentf-edit-selected-items))
         (message "%s added to selection." value)))))
-  
+
 ;;;###autoload
 (defun recentf-edit-list ()
   "Allow the user to edit the files that are kept in the recent list."
--- a/lisp/shell.el	Fri Jan 31 15:05:24 2003 +0000
+++ b/lisp/shell.el	Fri Jan 31 15:24:20 2003 +0000
@@ -165,7 +165,7 @@
 This is a fine thing to set in your `.emacs' file.")
 
 (defvar shell-file-name-chars
-  (if (memq system-type '(ms-dos windows-nt))
+  (if (memq system-type '(ms-dos windows-nt cygwin))
       "~/A-Za-z0-9_^$!#%&{}@`'.,:()-"
     "~/A-Za-z0-9+@:_.$#%,={}-")
   "String of characters valid in a file name.
--- a/lisp/woman.el	Fri Jan 31 15:05:24 2003 +0000
+++ b/lisp/woman.el	Fri Jan 31 15:24:20 2003 +0000
@@ -1347,7 +1347,7 @@
   ;; including `.' and `..', so remove any trailing / !!!
   (if (string= (substring dir -1) "/")
       (setq dir (substring dir 0 -1)))
-  (if (memq system-type '(windows-nt ms-dos)) ; what else?
+  (if (memq system-type '(windows-nt ms-dos cygwin)) ; what else?
       ;; Match capitalization used by `file-name-directory':
       (setq dir (concat (file-name-directory dir)
 			(file-name-nondirectory dir))))
--- a/lispref/ChangeLog	Fri Jan 31 15:05:24 2003 +0000
+++ b/lispref/ChangeLog	Fri Jan 31 15:24:20 2003 +0000
@@ -1,3 +1,7 @@
+2003-01-31  Joe Buehler  <jhpb@draco.hekimian.com>
+
+	* os.texi (System Environment): Added cygwin system-type.
+
 2003-01-25  Richard M. Stallman  <rms@gnu.org>
 
 	* keymaps.texi: Document that a symbol can act as a keymap.
@@ -24,6 +28,7 @@
 	* variables.texi (File Local Variables): Fix typo.
 
 2002-10-23  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
 	From Michael Albinus <Michael.Albinus@alcatel.de>.
 
 	* README: Target for Info file is `make info'.
--- a/lispref/os.texi	Fri Jan 31 15:05:24 2003 +0000
+++ b/lispref/os.texi	Fri Jan 31 15:24:20 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/os
 @node System Interface, Antinews, Calendar, Top
@@ -90,13 +90,13 @@
 @file{site-start.el}.
 @cindex @file{site-start.el}
 
-@item 
+@item
 It loads your init file (usually @file{~/.emacs}), unless @samp{-q},
 @samp{-no-init-file}, or @samp{-batch} was specified on the command line.
 The @samp{-u} option can specify another user whose home directory
 should be used instead of @file{~}.
 
-@item 
+@item
 It loads the library @file{default}, unless @code{inhibit-default-init}
 is non-@code{nil}.  (This is not done in @samp{-batch} mode or if
 @samp{-q} was specified on the command line.)  The library's file name
@@ -111,7 +111,7 @@
 the buffer @samp{*scratch*} is still current and still in Fundamental
 mode.
 
-@item 
+@item
 It loads the terminal-specific Lisp file, if any, except when in batch
 mode or using a window system.
 
@@ -119,10 +119,10 @@
 It displays the initial echo area message, unless you have suppressed
 that with @code{inhibit-startup-echo-area-message}.
 
-@item 
+@item
 It processes the action arguments from the command line.
 
-@item 
+@item
 It runs @code{emacs-startup-hook} and then @code{term-setup-hook}.
 
 @item
@@ -130,10 +130,10 @@
 parameters of the selected frame according to whatever the init files
 specify.
 
-@item 
+@item
 It runs @code{window-setup-hook}.  @xref{Window Systems}.
 
-@item 
+@item
 It displays copyleft, nonwarranty, and basic use information, provided
 there were no remaining command-line arguments (a few steps above),
 the value of @code{inhibit-startup-message} is @code{nil}, and the
@@ -311,7 +311,7 @@
 uses @samp{internal} as the terminal type.
 @end defvar
 
-@defvar term-setup-hook 
+@defvar term-setup-hook
 This variable is a normal hook that Emacs runs after loading your
 init file, the default initialization file (if any) and the
 terminal-specific Lisp file.
@@ -381,7 +381,7 @@
 -@var{option}
 @end example
 
-The elements of the @code{command-switch-alist} look like this: 
+The elements of the @code{command-switch-alist} look like this:
 
 @example
 (@var{option} . @var{handler-function})
@@ -613,6 +613,9 @@
 @item berkeley-unix
 Berkeley BSD.
 
+@item cygwin
+Cygwin.
+
 @item dgux
 Data General DGUX operating system.
 
@@ -732,10 +735,10 @@
 process-environment
 @result{} ("l=/usr/stanford/lib/gnuemacs/lisp"
     "PATH=.:/user/lewis/bin:/usr/class:/nfsusr/local/bin"
-    "USER=lewis" 
+    "USER=lewis"
 @end group
 @group
-    "TERM=ibmapa16" 
+    "TERM=ibmapa16"
     "SHELL=/bin/csh"
     "HOME=/user/lewis")
 @end group
@@ -925,7 +928,7 @@
 @end defun
 
 @defun user-uid
-This function returns the effective @sc{uid} of the user.  
+This function returns the effective @sc{uid} of the user.
 @end defun
 
 @node Time of Day
@@ -1858,11 +1861,11 @@
 This variable's value should be an alist with one element for each
 system-specific keysym.  Each element has the form @code{(@var{code}
 . @var{symbol})}, where @var{code} is the numeric keysym code (not
-including the ``vendor specific'' bit, 
+including the ``vendor specific'' bit,
 @ifnottex
 -2**28),
 @end ifnottex
-@tex 
+@tex
 $-2^{28}$),
 @end tex
 and @var{symbol} is the name for the function key.
@@ -1872,7 +1875,7 @@
 @ifnottex
 -2**28
 @end ifnottex
-@tex 
+@tex
 $-2^{28}$
 @end tex
 + 168.
--- a/src/ChangeLog	Fri Jan 31 15:05:24 2003 +0000
+++ b/src/ChangeLog	Fri Jan 31 15:24:20 2003 +0000
@@ -1,3 +1,16 @@
+2003-01-31  Joe Buehler  <jhpb@draco.hekimian.com>
+
+	* fileio.c: Support // at start of name for Cygwin (just added proper
+	preprocessor tests).
+
+	* keyboard.c: Port to Cygwin (just added proper preprocessor tests).
+
+	* Makefile.in: Use @EXEEXT@ for Cygwin.
+
+	* mem-limits.h: Added ifdef to define BSD4_2 for Cygwin.
+
+	* s/cygwin.h: Added for Cygwin port.
+
 2003-01-31  Juanma Barranquero  <lektu@terra.es>
 
 	* w32fns.c (DrawText): Kludge to avoid a redefinition on Windows
--- a/src/Makefile.in	Fri Jan 31 15:05:24 2003 +0000
+++ b/src/Makefile.in	Fri Jan 31 15:24:20 2003 +0000
@@ -525,7 +525,7 @@
 #endif /* not ORDINARY_LINK */
 
 /* Flags to pass to LD only for temacs.  */
-/* Don't split this line with a backslash.  That can cause trouble with 
+/* Don't split this line with a backslash.  That can cause trouble with
    some cpps.  */
 TEMACS_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_MACHINE LD_SWITCH_MACHINE_TEMACS LD_SWITCH_SITE
 
@@ -887,12 +887,12 @@
 #define OBJECTS_MACHINE
 #endif
 
-all: emacs OTHER_FILES
+all: emacs@EXEEXT@ OTHER_FILES
 
-emacs: temacs ${etc}DOC ${lisp}
+emacs@EXEEXT@: temacs@EXEEXT@ ${etc}DOC ${lisp}
 #ifdef CANNOT_DUMP
-	rm -f emacs
-	ln temacs emacs
+	rm -f emacs@EXEEXT@
+	ln temacs@EXEEXT@ emacs@EXEEXT@
 #else
 #ifdef HAVE_SHM
 	LC_ALL=C ./temacs -nl -batch -l loadup dump
@@ -915,15 +915,15 @@
 	${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
 	${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
 
-${libsrc}make-docfile:
-	cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile
+${libsrc}make-docfile@EXEEXT@:
+	cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile@EXEEXT@
 
 /* Some systems define this to cause parallel Make-ing.  */
 #ifndef MAKE_PARALLEL
 #define MAKE_PARALLEL
 #endif
 
-temacs: MAKE_PARALLEL $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj} OBJECTS_MACHINE prefix-args
+temacs@EXEEXT@: MAKE_PARALLEL $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj} OBJECTS_MACHINE prefix-args@EXEEXT@
 	$(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${TEMACS_LDFLAGS}) $(LDFLAGS) \
     -o temacs ${STARTFILES} ${obj} ${otherobj}  \
     OBJECTS_MACHINE ${LIBES}
@@ -931,7 +931,7 @@
 /* We don't use ALL_LDFLAGS because LD_SWITCH_SYSTEM and LD_SWITCH_MACHINE
    often contain options that have to do with using Emacs's crt0,
    which are only good with temacs.  */
-prefix-args: prefix-args.c $(config_h)
+prefix-args@EXEEXT@: prefix-args.c $(config_h)
 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) ${srcdir}/prefix-args.c -o prefix-args
 
 /* Don't lose if this was not defined.  */
@@ -950,7 +950,7 @@
    to both ensure that lwlib gets remade based on its dependencies
    in its own makefile,
    and remake temacs if lwlib gets changed by this.  */
-stamp-oldxmenu: ${OLDXMENU} ../src/$(OLDXMENU) 
+stamp-oldxmenu: ${OLDXMENU} ../src/$(OLDXMENU)
 	touch stamp-oldxmenu
 /* Supply an ordering for parallel make.  */
 ../src/$(OLDXMENU): ${OLDXMENU}
@@ -1253,25 +1253,25 @@
 	${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings
 macosx-app: macosx-bundle ${emacsapp}Contents/MacOS/Emacs \
   ${emacsapp}Contents/Resources/Emacs.rsrc
-${emacsapp}Contents/MacOS/Emacs: emacs
+${emacsapp}Contents/MacOS/Emacs: emacs@EXEEXT@
 	mkdir -p ${emacsapp}Contents/MacOS/;
-	cd ${emacsapp}Contents/MacOS/; cp ../../../../src/emacs Emacs
+	cd ${emacsapp}Contents/MacOS/; cp ../../../../src/emacs@EXEEXT@ Emacs@EXEEXT@
 ${emacsapp}Contents/Resources/Emacs.rsrc: ../mac/src/Emacs.r
 	/Developer/Tools/Rez -useDF \
 	-o ${emacsapp}Contents/Resources/Emacs.rsrc \
 	/System/Library/Frameworks/Carbon.framework/Headers/Carbon.r $<
 #endif
 
-${libsrc}emacstool: ${libsrc}emacstool.c
-	cd ${libsrc}; ${MAKE} ${MFLAGS} emacstool
+${libsrc}emacstool@EXEEXT@: ${libsrc}emacstool.c
+	cd ${libsrc}; ${MAKE} ${MFLAGS} emacstool@EXEEXT@
 bootstrapclean:
-	rm -f bootstrap-emacs
+	rm -f bootstrap-emacs@EXEEXT@
 mostlyclean:
-	rm -f temacs prefix-args core *.core \#* *.o libXMenu11.a liblw.a
+	rm -f temacs@EXEEXT@ prefix-args@EXEEXT@ core *.core \#* *.o libXMenu11.a liblw.a
 	rm -f ../etc/DOC
-	rm -f bootstrap-emacs
+	rm -f bootstrap-emacs@EXEEXT@
 clean: mostlyclean
-	rm -f emacs-* emacs
+	rm -f emacs-*@EXEEXT@ emacs@EXEEXT@
 /**/# This is used in making a distribution.
 /**/# Do not use it on development directories!
 distclean: clean
@@ -1284,7 +1284,7 @@
 	@echo "it deletes files that may require special tools to rebuild."
 	rm -f TAGS
 versionclean:
-	-rm -f emacs emacs-* ../etc/DOC*
+	-rm -f emacs@EXEEXT@ emacs-* ../etc/DOC*
 extraclean: distclean
 	-rm -f *~ \#* m/?*~ s/?*~
 
@@ -1302,7 +1302,7 @@
 /* Arrange to make a tags table TAGS-LISP for ../lisp,
    plus TAGS for the C files, which includes ../lisp/TAGS by reference.  */
 
-ctagsfiles1 = [xyzXYZ]*.[hc] 
+ctagsfiles1 = [xyzXYZ]*.[hc]
 ctagsfiles2 = [a-wA-W]*.[hc]
 
 TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
@@ -1322,20 +1322,20 @@
 
 /* Bootstrapping.  */
 
-bootstrap: bootstrap-emacs
+bootstrap: bootstrap-emacs@EXEEXT@
 
-/* Dump an Emacs executable named bootstrap-emacs containing the 
+/* Dump an Emacs executable named bootstrap-emacs containing the
    files from loadup.el in source form.  */
 
-bootstrap-emacs: temacs
+bootstrap-emacs@EXEEXT@: temacs@EXEEXT@
 #ifdef CANNOT_DUMP
-	ln temacs bootstrap-emacs
+	ln temacs@EXEEXT@ bootstrap-emacs@EXEEXT@
 #else
 #ifdef HAVE_SHM
 	./temacs -nl -batch -l loadup bootstrap
 #else /* ! defined (HAVE_SHM) */
 	./temacs --batch --load loadup bootstrap
 #endif /* ! defined (HAVE_SHM) */
+	mv -f emacs@EXEEXT@ bootstrap-emacs@EXEEXT@
 #endif /* ! defined (CANNOT_DUMP) */
-	mv -f emacs bootstrap-emacs
 
--- a/src/fileio.c	Fri Jan 31 15:05:24 2003 +0000
+++ b/src/fileio.c	Fri Jan 31 15:24:20 2003 +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;
@@ -6116,7 +6116,7 @@
 	    (NILP (predicate) ? Qfile_exists_p : predicate));
 
   GCPRO2 (insdef, default_filename);
-  
+
 #if defined (USE_MOTIF) || defined (HAVE_NTGUI) || defined (USE_GTK)
   if ((NILP (last_nonmenu_event) || CONSP (last_nonmenu_event))
       && use_dialog_box
--- a/src/keyboard.c	Fri Jan 31 15:05:24 2003 +0000
+++ b/src/keyboard.c	Fri Jan 31 15:24:20 2003 +0000
@@ -741,7 +741,7 @@
       Lisp_Object echo_string;
 
       echo_string = current_kboard->echo_string;
-      
+
       /* If someone has passed us a composite event, use its head symbol.  */
       c = EVENT_HEAD (c);
 
@@ -753,7 +753,7 @@
 	{
 	  Lisp_Object name = SYMBOL_NAME (c);
 	  int nbytes = SBYTES (name);
-	  
+
 	  if (size - (ptr - buffer) < nbytes)
 	    {
 	      int offset = ptr - buffer;
@@ -771,7 +771,7 @@
 	{
 	  const char *text = " (Type ? for further options)";
 	  int len = strlen (text);
-	  
+
 	  if (size - (ptr - buffer) < len)
 	    {
 	      int offset = ptr - buffer;
@@ -820,12 +820,12 @@
   if (!current_kboard->immediate_echo
       && SCHARS (current_kboard->echo_string) == 0)
     return;
-      
+
   /* Do nothing if we just printed a prompt.  */
   if (current_kboard->echo_after_prompt
       == SCHARS (current_kboard->echo_string))
     return;
-      
+
   /* Put a dash at the end of the buffer temporarily,
      but make it go away when the next character is added.  */
   current_kboard->echo_string = concat2 (current_kboard->echo_string,
@@ -1032,12 +1032,12 @@
 {
   if (BUFFERP (XCAR (info)))
     Fset_buffer (XCAR (info));
-  
+
   if (NILP (XCDR (info)))
     any_kboard_state ();
   else
     single_kboard_state ();
-      
+
   command_loop_level--;
   update_mode_lines = 1;
   return Qnil;
@@ -1214,7 +1214,7 @@
      since they are asyncronous.  */
   if (EQ (XCAR (data), Qquit))
     Vsignaling_function = Qnil;
-  
+
   print_error_message (data, stream, context, Vsignaling_function);
 
   Vsignaling_function = Qnil;
@@ -1557,7 +1557,7 @@
 	 if the symbol is a local variable.  */
       if (!NILP (Vpre_command_hook) && !NILP (Vrun_hooks))
 	safe_run_hooks (Qpre_command_hook);
-      
+
       already_adjusted = 0;
 
       if (NILP (Vthis_command))
@@ -1663,7 +1663,7 @@
 			}
 		      nonundocount++;
 		    }
-		  
+
 		  lose = ((XFASTINT (XWINDOW (selected_window)->last_modified)
 			   < MODIFF)
 			  || (XFASTINT (XWINDOW (selected_window)->last_overlay_modified)
@@ -1676,7 +1676,7 @@
 			  || detect_input_pending ()
 			  || !NILP (XWINDOW (selected_window)->column_number_displayed)
 			  || !NILP (Vexecuting_macro));
-		  
+
 		  value = internal_self_insert (c, 0);
 
 		  if (value == 2)
@@ -1887,7 +1887,7 @@
 		(make_number (beg), Qinvisible, Qnil, Qnil);
 	      beg = NATNUMP (tmp) ? XFASTINT (tmp) : BEGV;
 	    }
-	  
+
 	  /* Move away from the inside area.  */
 	  if (beg < PT && end > PT)
 	    {
@@ -2011,7 +2011,7 @@
       /* Turn alarm handling on unconditionally.  It might have
 	 been turned off in process.c.  */
       turn_on_atimers (1);
-      
+
       /* If poll timer doesn't exist, are we need one with
 	 a different interval, start a new one.  */
       if (poll_timer == NULL
@@ -2021,7 +2021,7 @@
 
 	  if (poll_timer)
 	    cancel_atimer (poll_timer);
-      
+
 	  EMACS_SET_SECS_USECS (interval, polling_period, 0);
 	  poll_timer = start_atimer (ATIMER_CONTINUOUS, interval,
 				     poll_for_input, NULL);
@@ -2182,7 +2182,7 @@
 	}
       else
 	help = safe_eval (help);
-      
+
       if (!STRINGP (help))
 	return;
     }
@@ -2205,7 +2205,7 @@
 
 	      if (!help_echo_showing_p)
 		Vpre_help_message = current_message ();
-	      
+
 	      specbind (Qmessage_truncate_lines, Qt);
 	      message3_nolog (help, SBYTES (help),
 			      STRING_MULTIBYTE (help));
@@ -2221,7 +2221,7 @@
 	  else
 	    message (0);
 	}
-      
+
       help_echo_showing_p = STRINGP (help);
     }
 }
@@ -2336,13 +2336,13 @@
 	  && EQ (XCDR (c), Qdisabled)
 	  && (SYMBOLP (XCAR (c)) || INTEGERP (XCAR (c))))
 	c = XCAR (c);
-      
+
       /* If the queued event is something that used the mouse,
          set used_mouse_menu accordingly.  */
       if (used_mouse_menu
 	  && (EQ (c, Qtool_bar) || EQ (c, Qmenu_bar)))
 	*used_mouse_menu = 1;
-      
+
       reread = 1;
       goto reread_for_input_method;
     }
@@ -2439,7 +2439,7 @@
     }
 
   /* Message turns off echoing unless more keystrokes turn it on again.
-     
+
      The code in 20.x for the condition was
 
      1. echo_area_glyphs && *echo_area_glyphs
@@ -2447,10 +2447,10 @@
      3. && ok_to_echo_at_next_pause != echo_area_glyphs
 
      (1) means there's a current message displayed
-     
+
      (2) means it's not the message from echoing from the current
      kboard.
-     
+
      (3) There's only one place in 20.x where ok_to_echo_at_next_pause
      is set to a non-null value.  This is done in read_char and it is
      set to echo_area_glyphs after a call to echo_char.  That means
@@ -2462,7 +2462,7 @@
      must be either null, or the current message isn't from echoing at
      all, or it's from echoing from a different kboard than the
      current one.  */
-  
+
   if (/* There currently is something in the echo area.  */
       !NILP (echo_area_buffer[0])
       && (/* And it's either not from echoing.  */
@@ -2474,7 +2474,7 @@
     cancel_echoing ();
   else
     echo_dash ();
-      
+
   /* Try reading a character via menu prompting in the minibuf.
      Try this before the sit-for, because the sit-for
      would do the wrong thing if we are supposed to do
@@ -2549,7 +2549,7 @@
   /* If in middle of key sequence and minibuffer not active,
      start echoing if enough time elapses.  */
 
-  if (minibuf_level == 0 
+  if (minibuf_level == 0
       && !current_kboard->immediate_echo
       && this_command_key_count > 0
       && ! noninteractive
@@ -2566,7 +2566,7 @@
 	  || (!echo_kboard && ok_to_echo_at_next_pause)))
     {
       Lisp_Object tem0;
-      
+
       /* After a mouse event, start echoing right away.
 	 This is because we are probably about to display a menu,
 	 and we don't want to delay before doing so.  */
@@ -2930,7 +2930,7 @@
       && (unsigned) XINT (c) != 127
       && (unsigned) XINT (c) < 256)
     {
-      Lisp_Object keys; 
+      Lisp_Object keys;
       int key_count;
       struct gcpro gcpro1;
       int count = SPECPDL_INDEX ();
@@ -3030,7 +3030,7 @@
       timer_idleness_start_time = last_idle_start;
       goto retry;
     }
-  
+
   if (this_command_key_count == 0 || ! reread)
     {
       before_command_key_count = this_command_key_count;
@@ -3162,19 +3162,19 @@
 
       Lisp_Object ev1, ev2, ev3;
       int ix1, ix2, ix3;
-      
+
       if ((ix1 = recent_keys_index - 1) < 0)
 	ix1 = NUM_RECENT_KEYS - 1;
       ev1 = AREF (recent_keys, ix1);
-      
+
       if ((ix2 = ix1 - 1) < 0)
 	ix2 = NUM_RECENT_KEYS - 1;
       ev2 = AREF (recent_keys, ix2);
-      
+
       if ((ix3 = ix2 - 1) < 0)
 	ix3 = NUM_RECENT_KEYS - 1;
       ev3 = AREF (recent_keys, ix3);
-     
+
       if (EQ (XCAR (c), Qhelp_echo))
 	{
 	  /* Don't record `help-echo' in recent_keys unless it shows some help
@@ -3245,7 +3245,7 @@
     }
 
   num_nonmacro_input_events++;
-      
+
   /* Write c to the dribble file.  If c is a lispy event, write
      the event's symbol to the dribble file, in <brackets>.  Bleaugh.
      If you, dear reader, have a better idea, you've got the source.  :-) */
@@ -3560,7 +3560,7 @@
   if (kbd_fetch_ptr - 1 != kbd_store_ptr)
     {
       int idx;
-      
+
 #if 0 /* The SELECTION_REQUEST_EVENT case looks bogus, and it's error
 	 prone to assign individual members for other events, in case
 	 the input_event structure is changed.  --2000-07-13, gerd.  */
@@ -3684,7 +3684,7 @@
      int discard;
 {
   struct input_event *sp;
-  
+
   for (sp = kbd_fetch_ptr;
        sp != kbd_store_ptr && sp->kind == NO_EVENT;
        ++sp)
@@ -3987,7 +3987,7 @@
 	  if (NILP (obj))
 	    {
 	      obj = make_lispy_event (event);
-	      
+
 #if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) || defined(MAC_OS) \
     || defined (USE_GTK)
 	      /* If this was a menu selection, then set the flag to inhibit
@@ -4318,7 +4318,7 @@
 	  difference = idle_timer_difference;
 	}
       vector = XVECTOR (chosen_timer)->contents;
-	
+
       /* If timer is ripe, run it if it hasn't been run.  */
       if (EMACS_TIME_NEG_P (difference)
 	  || (EMACS_SECS (difference) == 0
@@ -4335,7 +4335,7 @@
 	      vector[0] = Qt;
 
 	      specbind (Qinhibit_quit, Qt);
-	      
+
 	      call1 (Qtimer_event_handler, chosen_timer);
 	      Vdeactivate_mark = old_deactivate_mark;
 	      timers_run++;
@@ -4513,36 +4513,36 @@
 char *lispy_function_keys[] =
   {
     0,                /* 0                      */
-    
+
     0,                /* VK_LBUTTON        0x01 */
     0,                /* VK_RBUTTON        0x02 */
     "cancel",         /* VK_CANCEL         0x03 */
     0,                /* VK_MBUTTON        0x04 */
-    
+
     0, 0, 0,          /*    0x05 .. 0x07        */
-    
+
     "backspace",      /* VK_BACK           0x08 */
     "tab",            /* VK_TAB            0x09 */
-    
+
     0, 0,             /*    0x0A .. 0x0B        */
-    
+
     "clear",          /* VK_CLEAR          0x0C */
     "return",         /* VK_RETURN         0x0D */
-    
+
     0, 0,             /*    0x0E .. 0x0F        */
-  
+
     0,                /* VK_SHIFT          0x10 */
     0,                /* VK_CONTROL        0x11 */
     0,                /* VK_MENU           0x12 */
     "pause",          /* VK_PAUSE          0x13 */
     "capslock",       /* VK_CAPITAL        0x14 */
-    
+
     0, 0, 0, 0, 0, 0, /*    0x15 .. 0x1A        */
-    
+
     "escape",         /* VK_ESCAPE         0x1B */
-    
+
     0, 0, 0, 0,       /*    0x1C .. 0x1F        */
-    
+
     0,                /* VK_SPACE          0x20 */
     "prior",          /* VK_PRIOR          0x21 */
     "next",           /* VK_NEXT           0x22 */
@@ -4559,25 +4559,25 @@
     "insert",         /* VK_INSERT         0x2D */
     "delete",         /* VK_DELETE         0x2E */
     "help",           /* VK_HELP           0x2F */
-  
+
     /* VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39) */
-    
+
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    
+
     0, 0, 0, 0, 0, 0, 0, /* 0x3A .. 0x40       */
-    
+
     /* VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) */
-    
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 
+
+    0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0,
-    
+
     "lwindow",       /* VK_LWIN           0x5B */
     "rwindow",       /* VK_RWIN           0x5C */
     "apps",          /* VK_APPS           0x5D */
-    
+
     0, 0,            /*    0x5E .. 0x5F        */
-    
+
     "kp-0",          /* VK_NUMPAD0        0x60 */
     "kp-1",          /* VK_NUMPAD1        0x61 */
     "kp-2",          /* VK_NUMPAD2        0x62 */
@@ -4618,13 +4618,13 @@
     "f22",           /* VK_F22            0x85 */
     "f23",           /* VK_F23            0x86 */
     "f24",           /* VK_F24            0x87 */
-    
+
     0, 0, 0, 0,      /*    0x88 .. 0x8B        */
     0, 0, 0, 0,      /*    0x8C .. 0x8F        */
-    
+
     "kp-numlock",    /* VK_NUMLOCK        0x90 */
     "scroll",        /* VK_SCROLL         0x91 */
-    
+
     "kp-space",	     /* VK_NUMPAD_CLEAR   0x92 */
     "kp-enter",	     /* VK_NUMPAD_ENTER   0x93 */
     "kp-prior",	     /* VK_NUMPAD_PRIOR   0x94 */
@@ -4646,17 +4646,17 @@
      * No other API or message will distinguish left and right keys this way.
      */
     /* 0xA0 .. 0xEF */
-    
+
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    
+
     /* 0xF0 .. 0xF5 */
-    
+
     0, 0, 0, 0, 0, 0,
-    
+
     "attn",          /* VK_ATTN           0xF6 */
     "crsel",         /* VK_CRSEL          0xF7 */
     "exsel",         /* VK_EXSEL          0xF8 */
@@ -4689,7 +4689,7 @@
     0,0,0,0,0,0,0,0,0,0,0,0,0,0,"overline",0,
     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,	/* 0x480 .. 0x48f */
     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,	/* 0x490 .. 0x49f */
-    0, "kana-fullstop", "kana-openingbracket", "kana-closingbracket", 
+    0, "kana-fullstop", "kana-openingbracket", "kana-closingbracket",
     "kana-comma", "kana-conjunctive", "kana-WO", "kana-a",
     "kana-i", "kana-u", "kana-e", "kana-o",
     "kana-ya", "kana-yu", "kana-yo", "kana-tsu",
@@ -4808,9 +4808,9 @@
     0, 0, 0, 0, 0, 0, 0, 0,	/* 0xfe10 */
     0, 0, 0, 0, 0, 0, 0, 0,	/* 0xfe18 */
     "iso-lefttab",		/* 0xfe20 */
-    "iso-move-line-up", "iso-move-line-down", 
-    "iso-partial-line-up", "iso-partial-line-down", 
-    "iso-partial-space-left", "iso-partial-space-right", 
+    "iso-move-line-up", "iso-move-line-down",
+    "iso-partial-line-up", "iso-partial-line-down",
+    "iso-partial-space-left", "iso-partial-space-right",
     "iso-set-margin-left", "iso-set-margin-right", /* 0xffe27, 28 */
     "iso-release-margin-left", "iso-release-margin-right",
     "iso-release-both-margins",
@@ -4832,7 +4832,7 @@
    which they operate, and a delta corresponding to the amount and
    direction that the wheel is rotated.  Clicking the mouse-wheel
    generates a mouse-2 event.  */
-static char *lispy_mouse_wheel_names[] = 
+static char *lispy_mouse_wheel_names[] =
 {
   "mouse-wheel"
 };
@@ -5138,7 +5138,7 @@
 		       the mouse that may have a `local-map' property.  */
 		    Lisp_Object string;
 		    int charpos;
-		    
+
 		    posn = part == 1 ? Qmode_line : Qheader_line;
 		    string = mode_line_string (w, wx, wy, part == 1, &charpos);
 		    if (STRINGP (string))
@@ -5203,7 +5203,7 @@
 						  button + 1, Qnil);
 	    mouse_syms = larger_vector (mouse_syms, button + 1, Qnil);
 	  }
-	
+
 	start_pos_ptr = &AREF (button_down_location, button);
 	start_pos = *start_pos_ptr;
 	*start_pos_ptr = Qnil;
@@ -5236,7 +5236,7 @@
 			       && ((int)(event->timestamp - button_down_time)
 				   < XINT (Vdouble_click_time)))));
 	}
-	
+
 	last_mouse_button = button;
 	last_mouse_x = XINT (event->x);
 	last_mouse_y = XINT (event->y);
@@ -5301,7 +5301,7 @@
 		    button_down_time = 0;
 		    event->modifiers |= drag_modifier;
 		  }
-		
+
 		/* Don't check is_double; treat this as multiple
 		   if the down-event was multiple.  */
 		if (double_click_count > 1)
@@ -5360,7 +5360,7 @@
 	 The incoming input_event contains in its `part' member an
 	 index of type `enum scroll_bar_part' which we can use as an
 	 index in scroll_bar_parts to get the appropriate symbol.  */
-	 
+
     case SCROLL_BAR_CLICK_EVENT:
       {
 	Lisp_Object position, head, window, portion_whole, part;
@@ -5389,7 +5389,7 @@
 				    XVECTOR (mouse_syms)->size);
 	return Fcons (head, Fcons (position, Qnil));
       }
-      
+
 #endif /* USE_TOOLKIT_SCROLL_BARS */
 
 #ifdef WINDOWSNT
@@ -5427,7 +5427,7 @@
 
 	  head = modify_event_symbol (button,
 				      event->modifiers,
-				      Qmouse_click, 
+				      Qmouse_click,
 				      Vlispy_mouse_stem,
 				      NULL, &mouse_syms,
 				      XVECTOR (mouse_syms)->size);
@@ -5617,10 +5617,10 @@
     case USER_SIGNAL_EVENT:
       /* A user signal.  */
       return *lispy_user_signals[event->code];
-      
+
     case SAVE_SESSION_EVENT:
       return Qsave_session;
-      
+
       /* The 'kind' field of the event is something we don't recognize.  */
     default:
       abort ();
@@ -5670,13 +5670,13 @@
 	{
 	  struct window *w = XWINDOW (window);
 	  int wx, wy;
-	  
+
 	  /* Get window relative coordinates.  */
 	  wx = FRAME_TO_WINDOW_PIXEL_X (w, XINT (x));
 	  wy = FRAME_TO_WINDOW_PIXEL_Y (w, XINT (y));
 	  XSETINT (x, wx);
 	  XSETINT (y, wy);
-	  
+
 	  if (area == 1)
 	    posn = Qmode_line;
 	  else if (area == 2)
@@ -6518,7 +6518,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);
@@ -6575,9 +6575,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++)
 	{
@@ -6963,7 +6963,7 @@
   return Qnil;
 }
 
-/* Evaluate an expression and return the result (or nil if something 
+/* Evaluate an expression and return the result (or nil if something
    went wrong).  Used to evaluate dynamic parts of menu items.  */
 Lisp_Object
 menu_item_eval_property (sexpr)
@@ -7016,7 +7016,7 @@
   for (i = ITEM_PROPERTY_DEF; i < ITEM_PROPERTY_ENABLE; i++)
     AREF (item_properties, i) = Qnil;
   AREF (item_properties, ITEM_PROPERTY_ENABLE) = Qt;
-	 
+
   /* Save the item here to protect it from GC.  */
   AREF (item_properties, ITEM_PROPERTY_ITEM) = item;
 
@@ -7036,7 +7036,7 @@
 	  start = item;
 	  item = XCDR (item);
 	}
-	  
+
       /* Maybe key binding cache.  */
       if (CONSP (item) && CONSP (XCAR (item))
 	  && (NILP (XCAR (XCAR (item)))
@@ -7045,7 +7045,7 @@
 	  cachelist = XCAR (item);
 	  item = XCDR (item);
 	}
-      
+
       /* This is the real definition--the function to run.  */
       AREF (item_properties, ITEM_PROPERTY_DEF) = item;
 
@@ -7141,7 +7141,7 @@
 	return 0;
       AREF (item_properties, ITEM_PROPERTY_NAME) = item_string;
     }
-     
+
   /* If got a filter apply it on definition.  */
   def = AREF (item_properties, ITEM_PROPERTY_DEF);
   if (!NILP (filter))
@@ -7169,7 +7169,7 @@
      is OK in a submenu but not in the menubar.  */
   if (NILP (def))
     return (inmenubar ? 0 : 1);
- 
+
   /* See if this is a separate pane or a submenu.  */
   def = AREF (item_properties, ITEM_PROPERTY_DEF);
   tem = get_keymap (def, 0, 1);
@@ -7180,7 +7180,7 @@
       AREF (item_properties, ITEM_PROPERTY_DEF) = tem;
       return 1;
     }
-  
+
   /* At the top level in the menu bar, do likewise for commands also.
      The menu bar does not display equivalent key bindings anyway.
      ITEM_PROPERTY_DEF is already set up properly.  */
@@ -7207,7 +7207,7 @@
 	  XSETCAR (cachelist, Qt);
 	}
     }
-  
+
   tem = XCAR (cachelist);
   if (!EQ (tem, Qt))
     {
@@ -7315,7 +7315,7 @@
     }
   */
 
-  /* Handle radio buttons or toggle boxes.  */ 
+  /* Handle radio buttons or toggle boxes.  */
   tem = AREF (item_properties, ITEM_PROPERTY_SELECTED);
   if (!NILP (tem))
     AREF (item_properties, ITEM_PROPERTY_SELECTED)
@@ -7382,13 +7382,13 @@
      avoids risk of specpdl overflow.  */
   oquit = Vinhibit_quit;
   Vinhibit_quit = Qt;
-  
+
   /* Initialize tool_bar_items_vector and protect it from GC.  */
   init_tool_bar_items (reuse);
 
   /* Build list of keymaps in maps.  Set nmaps to the number of maps
      to process.  */
-  
+
   /* Should overriding-terminal-local-map and overriding-local-map apply?  */
   if (!NILP (Voverriding_local_map_menu_flag))
     {
@@ -7433,7 +7433,7 @@
 	if (CONSP (keymap))
 	  {
 	    Lisp_Object tail;
-	    
+
 	    /* KEYMAP is a list `(keymap (KEY . BINDING) ...)'.  */
 	    for (tail = keymap; CONSP (tail); tail = XCDR (tail))
 	      {
@@ -7471,7 +7471,7 @@
       for (i = 0; i < ntool_bar_items; i += TOOL_BAR_ITEM_NSLOTS)
 	{
 	  Lisp_Object *v = XVECTOR (tool_bar_items_vector)->contents + i;
-	  
+
 	  if (EQ (key, v[TOOL_BAR_ITEM_KEY]))
 	    {
 	      if (ntool_bar_items > i + TOOL_BAR_ITEM_NSLOTS)
@@ -7497,41 +7497,41 @@
    invalid.
 
    ITEM is a list `(menu-item CAPTION BINDING PROPS...)'.
-   
+
    CAPTION is the caption of the item,  If it's not a string, it is
    evaluated to get a string.
-   
+
    BINDING is the tool bar item's binding.  Tool-bar items with keymaps
    as binding are currently ignored.
 
    The following properties are recognized:
 
    - `:enable FORM'.
-   
+
    FORM is evaluated and specifies whether the tool bar item is
    enabled or disabled.
-   
+
    - `:visible FORM'
-   
+
    FORM is evaluated and specifies whether the tool bar item is visible.
-   
+
    - `:filter FUNCTION'
 
    FUNCTION is invoked with one parameter `(quote BINDING)'.  Its
    result is stored as the new binding.
-   
+
    - `:button (TYPE SELECTED)'
 
    TYPE must be one of `:radio' or `:toggle'.  SELECTED is evaluated
    and specifies whether the button is selected (pressed) or not.
-   
+
    - `:image IMAGES'
 
    IMAGES is either a single image specification or a vector of four
    image specifications.  See enum tool_bar_item_images.
-   
+
    - `:help HELP-STRING'.
-   
+
    Gives a help string to display for the tool bar item.  */
 
 static int
@@ -7565,11 +7565,11 @@
   else
     tool_bar_item_properties
       = Fmake_vector (make_number (TOOL_BAR_ITEM_NSLOTS), Qnil);
-  
+
   /* Set defaults.  */
   PROP (TOOL_BAR_ITEM_KEY) = key;
   PROP (TOOL_BAR_ITEM_ENABLED_P) = Qt;
-	 
+
   /* Get the caption of the item.  If the caption is not a string,
      evaluate it to get a string.  If we don't get a string, skip this
      item.  */
@@ -7656,13 +7656,13 @@
     PROP (TOOL_BAR_ITEM_ENABLED_P)
       = menu_item_eval_property (PROP (TOOL_BAR_ITEM_ENABLED_P));
 
-  /* Handle radio buttons or toggle boxes.  */ 
+  /* Handle radio buttons or toggle boxes.  */
   if (!NILP (PROP (TOOL_BAR_ITEM_SELECTED_P)))
     PROP (TOOL_BAR_ITEM_SELECTED_P)
       = menu_item_eval_property (PROP (TOOL_BAR_ITEM_SELECTED_P));
 
   return 1;
-  
+
 #undef PROP
 }
 
@@ -7689,7 +7689,7 @@
 append_tool_bar_item ()
 {
   Lisp_Object *to, *from;
-  
+
   /* Enlarge tool_bar_items_vector if necessary.  */
   if (ntool_bar_items + TOOL_BAR_ITEM_NSLOTS
       >= XVECTOR (tool_bar_items_vector)->size)
@@ -7991,7 +7991,7 @@
 			tem = build_string (NILP (selected) ? "[X] " : "[ ] ");
 		      s = concat2 (tem, s);
 		    }
-		  
+
 
 		  /* If we have room for the prompt string, add it to this line.
 		     If this is the first on the line, always add it.  */
@@ -8054,7 +8054,7 @@
 	}
 
       /* Prompt with that and read response.  */
-      message2_nolog (menu, strlen (menu), 
+      message2_nolog (menu, strlen (menu),
 		      ! NILP (current_buffer->enable_multibyte_characters));
 
       /* Make believe its not a keyboard macro in case the help char
@@ -8691,7 +8691,7 @@
 		  orig_keymap = get_local_map (PT, current_buffer, Qkeymap);
 		  goto replay_sequence;
 		}
-	      
+
 	      /* For a mouse click, get the local text-property keymap
 		 of the place clicked on, rather than point.  */
 	      if (last_real_key_start == 0
@@ -8702,7 +8702,7 @@
 
 		  localized_local_map = 1;
 		  start = EVENT_START (key);
-		  
+
 		  if (CONSP (start) && CONSP (XCDR (start)))
 		    {
 		      pos = POSN_BUFFER_POSN (start);
@@ -8741,7 +8741,7 @@
 		{
 		  if (t + 1 >= bufsize)
 		    error ("Key sequence too long");
-		  
+
 		  keybuf[t]     = posn;
 		  keybuf[t + 1] = key;
 		  mock_input    = t + 2;
@@ -8863,7 +8863,7 @@
       else
 	{
 	  Lisp_Object head;
-	  
+
 	  /* Remember the position to put an upper bound on fkey.start.  */
 	  first_unbound = min (t, first_unbound);
 
@@ -9141,7 +9141,7 @@
 		&& (!NILP (Farrayp (XSYMBOL (next)->function))
 		    || KEYMAPP (XSYMBOL (next)->function)))
 	      next = XSYMBOL (next)->function;
-	    
+
 	    /* If the key translation map gives a function, not an
 	       array, then call the function with one arg and use
 	       its value instead.  */
@@ -9305,7 +9305,7 @@
       add_command_key (keybuf[t]);
     }
 
-  
+
 
   UNGCPRO;
   return t;
@@ -9899,7 +9899,7 @@
      Lisp_Object keep_record;
 {
   int i;
-  
+
   this_command_key_count = 0;
 
   if (NILP (keep_record))
@@ -10048,25 +10048,25 @@
 	stuff_char (*p++);
       stuff_char ('\n');
     }
-  
+
   /* Anything we have read ahead, put back for the shell to read.  */
   /* ?? What should this do when we have multiple keyboards??
      Should we ignore anything that was typed in at the "wrong" kboard?  */
   for (; kbd_fetch_ptr != kbd_store_ptr; kbd_fetch_ptr++)
     {
       int idx;
-      
+
       if (kbd_fetch_ptr == kbd_buffer + KBD_BUFFER_SIZE)
 	kbd_fetch_ptr = kbd_buffer;
       if (kbd_fetch_ptr->kind == ASCII_KEYSTROKE_EVENT)
 	stuff_char (kbd_fetch_ptr->code);
-      
+
       kbd_fetch_ptr->kind = NO_EVENT;
       idx = 2 * (kbd_fetch_ptr - kbd_buffer);
       ASET (kbd_buffer_gcpro, idx, Qnil);
       ASET (kbd_buffer_gcpro, idx + 1, Qnil);
     }
-  
+
   input_pending = 0;
 #endif
 #endif /* BSD_SYSTEM and not BSD4_1 */
@@ -10096,7 +10096,7 @@
 }
 
 /* This routine is called at interrupt level in response to C-g.
-   
+
    If interrupt_input, this is the handler for SIGINT.  Otherwise, it
    is called from kbd_buffer_store_event, in handling SIGIO or
    SIGTINT.
@@ -10186,7 +10186,7 @@
 	    }
 	  while (c != '\n') c = getchar ();
 	}
-      else 
+      else
 	{
 	  /* During GC, it must be safe to reenable quitting again.  */
 	  Vinhibit_quit = Qnil;
@@ -10428,7 +10428,7 @@
      KBOARD *kb;
 {
   KBOARD **kbp;
-  
+
   for (kbp = &all_kboards; *kbp != kb; kbp = &(*kbp)->next_kboard)
     if (*kbp == NULL)
       abort ();
@@ -10443,7 +10443,7 @@
       if (current_kboard == kb)
 	abort ();
     }
-  
+
   wipe_kboard (kb);
   xfree (kb);
 }
@@ -10545,7 +10545,7 @@
 {
   Vpre_help_message = Qnil;
   staticpro (&Vpre_help_message);
-  
+
   Vlispy_mouse_stem = build_string ("mouse");
   staticpro (&Vlispy_mouse_stem);
 
@@ -10620,7 +10620,7 @@
 
   Qsave_session = intern ("save-session");
   staticpro(&Qsave_session);
-  
+
   Qusr1_signal = intern ("usr1-signal");
   staticpro (&Qusr1_signal);
   Qusr2_signal = intern ("usr2-signal");
@@ -10918,7 +10918,7 @@
 This variable is also the threshold for motion of the mouse
 to count as a drag.  */);
   double_click_fuzz = 3;
-  
+
   DEFVAR_BOOL ("inhibit-local-menu-bar-menus", &inhibit_local_menu_bar_menus,
 	       doc: /* *Non-nil means inhibit local map menu bar menus.  */);
   inhibit_local_menu_bar_menus = 0;
--- a/src/mem-limits.h	Fri Jan 31 15:05:24 2003 +0000
+++ b/src/mem-limits.h	Fri Jan 31 15:24:20 2003 +0000
@@ -46,6 +46,10 @@
 #define BSD4_2
 #endif
 
+#ifdef CYGWIN
+#define BSD4_2
+#endif
+
 #ifndef BSD4_2
 #ifndef USG
 #ifndef MSDOS