aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--Makefile.in14
-rwxr-xr-xconfigure1
-rw-r--r--configure.in1
-rw-r--r--etc/ChangeLog4
-rw-r--r--etc/MACHINES50
-rw-r--r--etc/NEWS12
-rw-r--r--lib-src/ChangeLog28
-rw-r--r--lib-src/Makefile.in60
-rw-r--r--lisp/ChangeLog18
-rw-r--r--lisp/comint.el8
-rw-r--r--lisp/dired-aux.el2
-rw-r--r--lisp/dired.el22
-rw-r--r--lisp/dirtrack.el74
-rw-r--r--lisp/dos-w32.el2
-rw-r--r--lisp/fast-lock.el10
-rw-r--r--lisp/filecache.el6
-rw-r--r--lisp/files.el14
-rw-r--r--lisp/gnus/ChangeLog4
-rw-r--r--lisp/gnus/nnheader.el6
-rw-r--r--lisp/hippie-exp.el128
-rw-r--r--lisp/international/mule.el2
-rw-r--r--lisp/net/browse-url.el6
-rw-r--r--lisp/pcomplete.el2
-rw-r--r--lisp/recentf.el10
-rw-r--r--lisp/shell.el2
-rw-r--r--lisp/woman.el2
-rw-r--r--lispref/ChangeLog5
-rw-r--r--lispref/os.texi35
-rw-r--r--src/ChangeLog13
-rw-r--r--src/Makefile.in50
-rw-r--r--src/fileio.c18
-rw-r--r--src/keyboard.c266
-rw-r--r--src/mem-limits.h4
34 files changed, 479 insertions, 408 deletions
diff --git a/ChangeLog b/ChangeLog
index df201e43f58..a6a987163e7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
12003-01-31 Joe Buehler <jhpb@draco.hekimian.com>
2
3 * Makefile.in: Use @EXEEXT@ for Cygwin.
4 Use USERNAME if LOGNAME is not set (for Cygwin).
5
6 * configure.in:
7 * configure: Add opsys=cygwin.
8
12003-01-29 Kim F. Storm <storm@cua.dk> 92003-01-29 Kim F. Storm <storm@cua.dk>
2 10
3 * AUTHORS: Regenerated using new format (after fixing numerous 11 * AUTHORS: Regenerated using new format (after fixing numerous
diff --git a/Makefile.in b/Makefile.in
index b4abc856c40..32168dff55e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -215,8 +215,8 @@ INSTALL_STRIP =
215TRANSFORM = @program_transform_name@ 215TRANSFORM = @program_transform_name@
216 216
217# What emacs should be called when installed. 217# What emacs should be called when installed.
218EMACS = `echo emacs | sed '$(TRANSFORM)'` 218EMACS = `echo emacs@EXEEXT@ | sed '$(TRANSFORM)'`
219EMACSFULL = `echo emacs-${version} | sed '$(TRANSFORM)'` 219EMACSFULL = `echo emacs-${version}@EXEEXT@ | sed '$(TRANSFORM)'`
220 220
221# Subdirectories to make recursively. `lisp' is not included 221# Subdirectories to make recursively. `lisp' is not included
222# because the compiled lisp files are part of the distribution. 222# because the compiled lisp files are part of the distribution.
@@ -358,7 +358,7 @@ install-arch-dep: mkdir
358 exec_prefix=${exec_prefix} bindir=${bindir} \ 358 exec_prefix=${exec_prefix} bindir=${bindir} \
359 libexecdir=${libexecdir} archlibdir=${archlibdir} \ 359 libexecdir=${libexecdir} archlibdir=${archlibdir} \
360 INSTALL_STRIP=${INSTALL_STRIP}) 360 INSTALL_STRIP=${INSTALL_STRIP})
361 ${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs ${bindir}/$(EMACSFULL) 361 ${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs@EXEEXT@ ${bindir}/$(EMACSFULL)
362 -chmod 1755 ${bindir}/$(EMACSFULL) 362 -chmod 1755 ${bindir}/$(EMACSFULL)
363 rm -f ${bindir}/$(EMACS) 363 rm -f ${bindir}/$(EMACS)
364 -ln ${bindir}/$(EMACSFULL) ${bindir}/$(EMACS) 364 -ln ${bindir}/$(EMACSFULL) ${bindir}/$(EMACS)
@@ -406,7 +406,7 @@ install-arch-indep: mkdir info
406 (cd $${dir}; tar -chf - . ) \ 406 (cd $${dir}; tar -chf - . ) \
407 | (cd $${dest}; umask 022; \ 407 | (cd $${dest}; umask 022; \
408 tar -xvf - && cat > /dev/null) || exit 1; \ 408 tar -xvf - && cat > /dev/null) || exit 1; \
409 find $${dest} -exec chown $$LOGNAME {} ';' ;\ 409 find $${dest} -exec chown $${LOGNAME:-$$USERNAME} {} ';' ;\
410 for subdir in `find $${dest} -type d ! -name RCS ! -name CVS -print` ; do \ 410 for subdir in `find $${dest} -type d ! -name RCS ! -name CVS -print` ; do \
411 chmod a+rx $${subdir} ; \ 411 chmod a+rx $${subdir} ; \
412 rm -rf $${subdir}/RCS ; \ 412 rm -rf $${subdir}/RCS ; \
@@ -445,7 +445,7 @@ install-arch-indep: mkdir info
445 echo "Copying etc/DOC-* to ${docdir} ..." ; \ 445 echo "Copying etc/DOC-* to ${docdir} ..." ; \
446 (cd ./etc; tar -chf - DOC*) \ 446 (cd ./etc; tar -chf - DOC*) \
447 |(cd ${docdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \ 447 |(cd ${docdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \
448 (cd $(docdir); chown $${LOGNAME} DOC*; chmod a+r DOC*; \ 448 (cd $(docdir); chown $${LOGNAME:-$$USERNAME} DOC*; chmod a+r DOC*; \
449 if test "`echo DOC-*`" != "DOC-*"; then rm DOC; fi); \ 449 if test "`echo DOC-*`" != "DOC-*"; then rm DOC; fi); \
450 else true; fi 450 else true; fi
451 -unset CDPATH; \ 451 -unset CDPATH; \
@@ -457,7 +457,7 @@ install-arch-indep: mkdir info
457 echo "Copying lisp/*.el and lisp/*.elc to ${lispdir} ..." ; \ 457 echo "Copying lisp/*.el and lisp/*.elc to ${lispdir} ..." ; \
458 (cd lisp; tar -chf - *.el *.elc) \ 458 (cd lisp; tar -chf - *.el *.elc) \
459 |(cd ${lispdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \ 459 |(cd ${lispdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \
460 (cd ${lispdir}; find . -exec chown $${LOGNAME} {} ';') ; \ 460 (cd ${lispdir}; find . -exec chown $${LOGNAME:-$$USERNAME} {} ';') ; \
461 else true; fi 461 else true; fi
462 -unset CDPATH; \ 462 -unset CDPATH; \
463 thisdir=`/bin/pwd`; \ 463 thisdir=`/bin/pwd`; \
@@ -735,7 +735,7 @@ maybe_bootstrap:
735bootstrap: bootstrap-clean-before info FRC 735bootstrap: bootstrap-clean-before info FRC
736 (cd lisp; $(MAKE) $(MFLAGS) bootstrap-clean) 736 (cd lisp; $(MAKE) $(MFLAGS) bootstrap-clean)
737 (cd src; $(MAKE) $(MFLAGS) bootstrap) 737 (cd src; $(MAKE) $(MFLAGS) bootstrap)
738 (cd lisp; $(MAKE) $(MFLAGS) bootstrap EMACS=../src/bootstrap-emacs) 738 (cd lisp; $(MAKE) $(MFLAGS) bootstrap EMACS=../src/bootstrap-emacs@EXEEXT@)
739 (cd src; $(MAKE) $(MFLAGS) mostlyclean) 739 (cd src; $(MAKE) $(MFLAGS) mostlyclean)
740 $(MAKE) $(MFLAGS) all 740 $(MAKE) $(MFLAGS) all
741 (cd lisp; $(MAKE) $(MFLAGS) bootstrap-after) 741 (cd lisp; $(MAKE) $(MFLAGS) bootstrap-after)
diff --git a/configure b/configure
index 8264168b6f8..77b1741c96c 100755
--- a/configure
+++ b/configure
@@ -2493,6 +2493,7 @@ case "${canonical}" in
2493 i[3456]86-*-* ) 2493 i[3456]86-*-* )
2494 machine=intel386 2494 machine=intel386
2495 case "${canonical}" in 2495 case "${canonical}" in
2496 *-cygwin ) opsys=cygwin ;;
2496 *-lynxos* ) opsys=lynxos ;; 2497 *-lynxos* ) opsys=lynxos ;;
2497 *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;; 2498 *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;;
2498 *-isc2.2* ) opsys=isc2-2 ;; 2499 *-isc2.2* ) opsys=isc2-2 ;;
diff --git a/configure.in b/configure.in
index 01522660caf..ed53769c4d3 100644
--- a/configure.in
+++ b/configure.in
@@ -1053,6 +1053,7 @@ case "${canonical}" in
1053 i[3456]86-*-* ) 1053 i[3456]86-*-* )
1054 machine=intel386 1054 machine=intel386
1055 case "${canonical}" in 1055 case "${canonical}" in
1056 *-cygwin ) opsys=cygwin ;;
1056 *-lynxos* ) opsys=lynxos ;; 1057 *-lynxos* ) opsys=lynxos ;;
1057 *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;; 1058 *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;;
1058 *-isc2.2* ) opsys=isc2-2 ;; 1059 *-isc2.2* ) opsys=isc2-2 ;;
diff --git a/etc/ChangeLog b/etc/ChangeLog
index f3f109098df..83f57c004d5 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,7 @@
12003-01-31 Joe Buehler <jhpb@draco.hekimian.com>
2
3 * MACHINES: Added Cygwin.
4
12003-01-27 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 52003-01-27 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2 6
3 * DEBUG: Added note about xmon. 7 * DEBUG: Added note about xmon.
diff --git a/etc/MACHINES b/etc/MACHINES
index 4a20484357f..26bd84d4ed0 100644
--- a/etc/MACHINES
+++ b/etc/MACHINES
@@ -109,7 +109,7 @@ Amdahl UTS (580-amdahl-sysv)
109 109
110Apple Macintosh running Mac OS X 110Apple Macintosh running Mac OS X
111 111
112 For installtion on all versions of the Mac OS platform, see the file 112 For installtion on all versions of the Mac OS platform, see the file
113 mac/INSTALL. 113 mac/INSTALL.
114 114
115Apple PowerPC Macintosh running GNU/Linux 115Apple PowerPC Macintosh running GNU/Linux
@@ -163,8 +163,8 @@ Apollo running X Windows (m68k-apollo-bsd)
163 relocation." This means you are linking with some code that has compressed 163 relocation." This means you are linking with some code that has compressed
164 data sections. In some cases this comes from linking with X libraries. Try 164 data sections. In some cases this comes from linking with X libraries. Try
165 using shared X libraries instead. With some versions of Domain/OS this is 165 using shared X libraries instead. With some versions of Domain/OS this is
166 as simple as removing the "-lX11" from the LIBX line in src/Makefile. 166 as simple as removing the "-lX11" from the LIBX line in src/Makefile.
167 167
168 When running the configure script, use the configuration name 168 When running the configure script, use the configuration name
169 "m68k-apollo-bsd". You will also need to use the "-with-gcc=no" and 169 "m68k-apollo-bsd". You will also need to use the "-with-gcc=no" and
170 "-with-x" options. Depending upon your site configuration, you may have to 170 "-with-x" options. Depending upon your site configuration, you may have to
@@ -180,9 +180,9 @@ Apollo running X Windows (m68k-apollo-bsd)
180 180
181AT&T 3b2, 3b5, 3b15, 3b20 (we32k-att-sysv) 181AT&T 3b2, 3b5, 3b15, 3b20 (we32k-att-sysv)
182 182
183 Emacs will probably not work with certain kernel constants too small. 183 Emacs will probably not work with certain kernel constants too small.
184 184
185 In param.h CDLIMIT should be at least (1L << 12) in order to allow 185 In param.h CDLIMIT should be at least (1L << 12) in order to allow
186 processes to write up to 2 Mbyte files. This parameter is configurable 186 processes to write up to 2 Mbyte files. This parameter is configurable
187 by normal means in /etc/master.d/kernel; examine that file for the 187 by normal means in /etc/master.d/kernel; examine that file for the
188 symbol CDLIMIT or ULIMIT, and raise it by several powers of 2. Then 188 symbol CDLIMIT or ULIMIT, and raise it by several powers of 2. Then
@@ -220,7 +220,7 @@ Bull DPX/2 models 2nn or 3nn (m68k-bull-sysv3)
220 _POSIX_SOURCE, _XOPEN_SOURCE and _BULL_SOURCE. 220 _POSIX_SOURCE, _XOPEN_SOURCE and _BULL_SOURCE.
221 221
222 On bos2.00.45 there is a bug that makes the F_SETOWN fcntl 222 On bos2.00.45 there is a bug that makes the F_SETOWN fcntl
223 call enters in an infinite loop. F_SETOWN_BUG has been defined to avoid 223 call enters in an infinite loop. F_SETOWN_BUG has been defined to avoid
224 calling it. 224 calling it.
225 225
226Bull DPX/20 (rs6000-bull-bosx) 226Bull DPX/20 (rs6000-bull-bosx)
@@ -274,7 +274,7 @@ Data General Aviion (m88k-dg-dgux)
274 System versions other than DGUX 5.4R3.00 have not been tested. 274 System versions other than DGUX 5.4R3.00 have not been tested.
275 275
276 DGUX 5.4R3.10 works with 19.29 and 19.30. 276 DGUX 5.4R3.10 works with 19.29 and 19.30.
277 277
278 DGUX R4.11 contains changes to the stdio internals and it doesn't work 278 DGUX R4.11 contains changes to the stdio internals and it doesn't work
279 with versions before 20.2 without patches. 20.2 works in interactive 279 with versions before 20.2 without patches. 20.2 works in interactive
280 mode but usually fails in batch mode. The problem is that using 280 mode but usually fails in batch mode. The problem is that using
@@ -324,7 +324,7 @@ Motorola Delta 187 (m88k-motorola-sysv,
324 One fix is to edit those files to protect against multiple inclusion. 324 One fix is to edit those files to protect against multiple inclusion.
325 325
326 As of version 19.13, Emacs was reported to run under SYSVr3 and SYSVr4. 326 As of version 19.13, Emacs was reported to run under SYSVr3 and SYSVr4.
327 327
328Dual running System V (m68k-dual-sysv) 328Dual running System V (m68k-dual-sysv)
329 329
330 As of 17.46, this worked except for a few changes 330 As of 17.46, this worked except for a few changes
@@ -373,7 +373,7 @@ Gould Power Node (pn-gould-bsd4.2 or pn-gould-bsd4.3)
373 compiling `lib-src/sorted-doc' tickles a compiler bug: remove the -g 373 compiling `lib-src/sorted-doc' tickles a compiler bug: remove the -g
374 flag to cc in the makefile. 374 flag to cc in the makefile.
375 375
376 UTX/32 1.3 has a bug in the bcopy library routine. Fix it by 376 UTX/32 1.3 has a bug in the bcopy library routine. Fix it by
377 #undef BSTRING in `src/m/gould.h'. 377 #undef BSTRING in `src/m/gould.h'.
378 378
379 Version 19 incorporates support for releases 2.1 and later of UTX/32. 379 Version 19 incorporates support for releases 2.1 and later of UTX/32.
@@ -421,7 +421,7 @@ Hewlett-Packard 9000 series 200 or 300 (m68k-hp-bsd or m68k-hp-hpux
421 some problems on 10.10 which have not been resolved. Emacs 19.34 421 some problems on 10.10 which have not been resolved. Emacs 19.34
422 works on HPUX 10.20 provided you compile with GCC; with the HP C 422 works on HPUX 10.20 provided you compile with GCC; with the HP C
423 compiler, subprocess commands do not work. 423 compiler, subprocess commands do not work.
424 424
425 On HPUX 9, Emacs sometimes crashes with SIGBUS or SIGSEGV after you 425 On HPUX 9, Emacs sometimes crashes with SIGBUS or SIGSEGV after you
426 delete a frame. We think this is due to a bug in the X libraries 426 delete a frame. We think this is due to a bug in the X libraries
427 provided by HP. With the alternative X libraries in 427 provided by HP. With the alternative X libraries in
@@ -488,7 +488,7 @@ HP 9000 series 700 or 800 (Spectrum) (hppa1.0-hp-hpux or hppa1.1-hp-hpux
488 Some people report trouble using the GNU memory allocator under 488 Some people report trouble using the GNU memory allocator under
489 HP/UX version 9. The problems often manifest as lots of ^@'s in the 489 HP/UX version 9. The problems often manifest as lots of ^@'s in the
490 buffer. 490 buffer.
491 491
492 We are told that these problems go away if you obtain the latest 492 We are told that these problems go away if you obtain the latest
493 patches for the HP/UX C compiler. James J Dempsey 493 patches for the HP/UX C compiler. James J Dempsey
494 <jjd@spserv.bbn.com> says that this set of versions works for him: 494 <jjd@spserv.bbn.com> says that this set of versions works for him:
@@ -544,17 +544,17 @@ HITACHI SR2001/SR2201 series (hppa1.1-hitachi-hiuxwe2)
544 544
545 These machines are based on PA architecture running HI-UX/MPP 545 These machines are based on PA architecture running HI-UX/MPP
546 (based on OSF1. `MPP' stands for `Massively Parallel Processor'). 546 (based on OSF1. `MPP' stands for `Massively Parallel Processor').
547 547
548 Emacs 19.34 is believed to work; its pretest was tested 548 Emacs 19.34 is believed to work; its pretest was tested
549 both on SR2001 (output of `uname -rv' is `00-01-BB 0') and 549 both on SR2001 (output of `uname -rv' is `00-01-BB 0') and
550 SR2201 (`02-00 0'). 550 SR2201 (`02-00 0').
551 551
552 Emacs 20.7 was reported to build on a system whose `uname -rs' 552 Emacs 20.7 was reported to build on a system whose `uname -rs'
553 output is `HI-UX/MPP 03-04'. 553 output is `HI-UX/MPP 03-04'.
554 554
555 The machine description file is `src/m/sr2k.h' is based on 555 The machine description file is `src/m/sr2k.h' is based on
556 `src/m/hp800.h'. The system description file is `src/s/hiuxwe2.h' 556 `src/m/hp800.h'. The system description file is `src/s/hiuxwe2.h'
557 based on `src/s/osf1.h'. Note that this system doesn't use COFF. 557 based on `src/s/osf1.h'. Note that this system doesn't use COFF.
558 558
559IBM PS/2 (i386-ibm-aix1.1 or i386-ibm-aix1.2) 559IBM PS/2 (i386-ibm-aix1.1 or i386-ibm-aix1.2)
560 560
@@ -624,7 +624,7 @@ Integrated Solutions `Optimum V' (m68k-isi-bsd4.2 or -bsd4.3)
624 BSD 4.2 (3.05e) system). 18.42 is reported to work on 624 BSD 4.2 (3.05e) system). 18.42 is reported to work on
625 a Qbus 68010 system. Has not been tried on `WorkStation' `Cluster 625 a Qbus 68010 system. Has not been tried on `WorkStation' `Cluster
626 Compute Node' `Cluster WorkStation' or `Server Node' (Love the 626 Compute Node' `Cluster WorkStation' or `Server Node' (Love the
627 StudLYCaps) 627 StudLYCaps)
628 628
629 Compilation with -O is rumored to break something. 629 Compilation with -O is rumored to break something.
630 630
@@ -637,7 +637,7 @@ Intel 386 (i386-*-isc, i386-*-esix, i386-*-bsdi2,
637 i386-*-xenix, i386-*-freebsd, i386-*-linux-gnu, 637 i386-*-xenix, i386-*-freebsd, i386-*-linux-gnu,
638 i386-*-sol2.4, i386-*-sysv3, i386-intsys-sysv, 638 i386-*-sol2.4, i386-*-sysv3, i386-intsys-sysv,
639 i386-*-sysv4, i386-*-sysv4.2, 639 i386-*-sysv4, i386-*-sysv4.2,
640 i386-*-sysv5.3, i386-*-bsd4.2, 640 i386-*-sysv5.3, i386-*-bsd4.2, i386-*-cygwin,
641 i386-*-sco3.2v4, i386-*-bsd386, i386-*-386bsd, 641 i386-*-sco3.2v4, i386-*-bsd386, i386-*-386bsd,
642 i386-*-msdos, i386-*-windowsnt. 642 i386-*-msdos, i386-*-windowsnt.
643 i386... can be replaced with i486... or i586...) 643 i386... can be replaced with i486... or i586...)
@@ -651,6 +651,8 @@ Intel 386 (i386-*-isc, i386-*-esix, i386-*-bsdi2,
651 i386-unknown-isc3.0 as your configuration name. 651 i386-unknown-isc3.0 as your configuration name.
652 Use i386-*-esix for Esix; Emacs runs as of version 19.6. 652 Use i386-*-esix for Esix; Emacs runs as of version 19.6.
653 Use i386-*-linux-gnu for GNU/Linux systems; Emacs runs as of version 19.26. 653 Use i386-*-linux-gnu for GNU/Linux systems; Emacs runs as of version 19.26.
654 Use i386-*-cygwin for Cygwin; Emacs builds as of version 21.4, in both X11
655 and non-X11 modes. (The Cygwin site has source and binaries for 21.2.)
654 Use i386-intsys-sysv for Integrated Solutions 386 machines. 656 Use i386-intsys-sysv for Integrated Solutions 386 machines.
655 It may also be correct for Microport systems. 657 It may also be correct for Microport systems.
656 Use i386-*-sco3.2v4 for SCO 3.2v4; Emacs runs as of version 19.26. 658 Use i386-*-sco3.2v4 for SCO 3.2v4; Emacs runs as of version 19.26.
@@ -698,7 +700,7 @@ Intel 386 (i386-*-isc, i386-*-esix, i386-*-bsdi2,
698 puts spurious spaces in `src/xmakefile'. If that happens, 700 puts spurious spaces in `src/xmakefile'. If that happens,
699 specify CPP=/lib/cpp as an option when you run make. 701 specify CPP=/lib/cpp as an option when you run make.
700 There is no problem if you compile with GCC. 702 There is no problem if you compile with GCC.
701 703
702 Note that use of Linux with GCC 2.4 and the DLL 4.4 libraries 704 Note that use of Linux with GCC 2.4 and the DLL 4.4 libraries
703 requires the experimental "net 2" network patches (no relation to 705 requires the experimental "net 2" network patches (no relation to
704 Berkeley Net 2). There is a report that (some version of) Linux 706 Berkeley Net 2). There is a report that (some version of) Linux
@@ -803,7 +805,7 @@ Masscomp (m68k-masscomp-rtu)
803 was reported for 18.36 on a Masscomp (model and version unknown but probably 805 was reported for 18.36 on a Masscomp (model and version unknown but probably
804 a 68020 system). The report sounds like a compiler bug. 806 a 68020 system). The report sounds like a compiler bug.
805 807
806 A compiler bug affecting statements like 808 A compiler bug affecting statements like
807 unsigned char k; unsigned char *p;... x = p[k]; 809 unsigned char k; unsigned char *p;... x = p[k];
808 has been reported for "C version 1.2 under RTU 3.1". We do not wish 810 has been reported for "C version 1.2 under RTU 3.1". We do not wish
809 to take the time to install the numerous workarounds required to 811 to take the time to install the numerous workarounds required to
@@ -941,7 +943,7 @@ Pyramid (pyramid-pyramid-bsd)
941 943
942 You need to build Emacs in the Berkeley universe with 944 You need to build Emacs in the Berkeley universe with
943 the `ucb' command, as in `ucb make' or `ucb build-install'. 945 the `ucb' command, as in `ucb make' or `ucb build-install'.
944 946
945 In OSx 4.0, it seems necessary to add the following two lines 947 In OSx 4.0, it seems necessary to add the following two lines
946 to `src/m/pyramid.h': 948 to `src/m/pyramid.h':
947 #define _longjmp longjmp 949 #define _longjmp longjmp
@@ -1079,8 +1081,8 @@ Sun 3, Sun 4 (sparc), Sun 386 (m68k-sun-sunos, sparc-sun-sunos, i386-sun-sunos,
1079 19.32 works on Solaris 2.4 and 2.5. On Solaris 2.5 1081 19.32 works on Solaris 2.4 and 2.5. On Solaris 2.5
1080 you may need one of these patches to prevent Emacs from crashing 1082 you may need one of these patches to prevent Emacs from crashing
1081 when it starts up: 1083 when it starts up:
1082 103093-03: [README] SunOS 5.5: kernel patch (2140557 bytes) 1084 103093-03: [README] SunOS 5.5: kernel patch (2140557 bytes)
1083 102832-01: [README] OpenWindows 3.5: Xview Jumbo Patch (4181613 bytes) 1085 102832-01: [README] OpenWindows 3.5: Xview Jumbo Patch (4181613 bytes)
1084 103242-04: [README] SunOS 5.5: linker patch (595363 bytes) 1086 103242-04: [README] SunOS 5.5: linker patch (595363 bytes)
1085 1087
1086 There are reports that using SunSoft cc with -xO4 -xdepend produces 1088 There are reports that using SunSoft cc with -xO4 -xdepend produces
@@ -1107,7 +1109,7 @@ Sun 3, Sun 4 (sparc), Sun 386 (m68k-sun-sunos, sparc-sun-sunos, i386-sun-sunos,
1107 `sparc-sun-sunos4.1'. For SunOS release 4.1.3 on a Sparc, use 1109 `sparc-sun-sunos4.1'. For SunOS release 4.1.3 on a Sparc, use
1108 `sparc-sun-sunos4.1.3'. Note that shared libraries are now 1110 `sparc-sun-sunos4.1.3'. Note that shared libraries are now
1109 used by default on SunOS 4.1. 1111 used by default on SunOS 4.1.
1110 1112
1111 A user reported irreproducible segmentation faults when using 19.29 1113 A user reported irreproducible segmentation faults when using 19.29
1112 on Solaris 2.3 and 2.4 after compiling it with the Sun compiler. 1114 on Solaris 2.3 and 2.4 after compiling it with the Sun compiler.
1113 The problem went away when GCC 2.7.0 was used instead. We do not know 1115 The problem went away when GCC 2.7.0 was used instead. We do not know
diff --git a/etc/NEWS b/etc/NEWS
index feed33221dc..45650c21f45 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -58,6 +58,8 @@ together with the Emacs User Manual, into the Info directory. A menu
58item was added to the menu bar that makes it easy accessible 58item was added to the menu bar that makes it easy accessible
59(Help->More Manuals->Introduction to Emacs Lisp). 59(Help->More Manuals->Introduction to Emacs Lisp).
60 60
61** Support for Cygwin was added.
62
61--- 63---
62** Support for AIX 5.1 was added. 64** Support for AIX 5.1 was added.
63 65
@@ -686,7 +688,7 @@ appears in.
686 688
687** The variable `cursor-in-non-selected-windows' can now be set to any 689** The variable `cursor-in-non-selected-windows' can now be set to any
688of the recognized cursor types. 690of the recognized cursor types.
689 691
690+++ 692+++
691** The default values of `tooltip-delay' and `tooltip-hide-delay' 693** The default values of `tooltip-delay' and `tooltip-hide-delay'
692were changed. 694were changed.
@@ -1189,7 +1191,7 @@ second case, using `foo' as a variable won't produce a warning if it's
1189unbound. The test must be in exactly one of the above forms (after 1191unbound. The test must be in exactly one of the above forms (after
1190macro expansion), but such tests may be nested. Note that `when' and 1192macro expansion), but such tests may be nested. Note that `when' and
1191`unless' expand to `if', but `cond' doesn't. 1193`unless' expand to `if', but `cond' doesn't.
1192 1194
1193** New translation table `translation-table-for-input'. 1195** New translation table `translation-table-for-input'.
1194 1196
1195+++ 1197+++
@@ -1308,7 +1310,7 @@ write-file-hooks to write-file-functions,
1308write-contents-hooks to write-contents-functions. 1310write-contents-hooks to write-contents-functions.
1309Marked local-write-file-hooks as obsolete (use the LOCAL arg of `add-hook'). 1311Marked local-write-file-hooks as obsolete (use the LOCAL arg of `add-hook').
1310 1312
1311** The new variable `delete-frame-functions' replaces `delete-frame-hook'. 1313** The new variable `delete-frame-functions' replaces `delete-frame-hook'.
1312It was renamed to follow the naming conventions for abnormal hooks. The old 1314It was renamed to follow the naming conventions for abnormal hooks. The old
1313name remains available as an alias, but has been marked obsolete. 1315name remains available as an alias, but has been marked obsolete.
1314 1316
@@ -1533,7 +1535,7 @@ responsible for removing those properties. This may be necessary
1533if FUNCTION adjusts point before or after inserting the object. 1535if FUNCTION adjusts point before or after inserting the object.
1534 If UNDO is present and non-nil, it is a function that will be called 1536 If UNDO is present and non-nil, it is a function that will be called
1535by `yank-pop' to undo the insertion of the current object. It is 1537by `yank-pop' to undo the insertion of the current object. It is
1536called with two arguments, the start and end of the current region. 1538called with two arguments, the start and end of the current region.
1537FUNCTION may set `yank-undo-function' to override the UNDO value. 1539FUNCTION may set `yank-undo-function' to override the UNDO value.
1538 1540
1539*** The functions kill-new, kill-append, and kill-region now has an 1541*** The functions kill-new, kill-append, and kill-region now has an
@@ -1573,7 +1575,7 @@ supported, but new code should use the new functions.
1573name in addition to a process id to identify the signalled process. 1575name in addition to a process id to identify the signalled process.
1574 1576
1575*** Processes now have an associated property list where programs can 1577*** Processes now have an associated property list where programs can
1576maintain process state and other per-process related information. 1578maintain process state and other per-process related information.
1577 1579
1578The new functions process-get and process-put are used to access, add, 1580The new functions process-get and process-put are used to access, add,
1579and modify elements on this property list. 1581and modify elements on this property list.
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index 0ade359d846..ad2c569670d 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,7 @@
12003-01-31 Joe Buehler <jhpb@draco.hekimian.com>
2
3 * Makefile.in: Use @EXEEXT@ for Cygwin.
4
12003-01-21 Dave Love <fx@gnu.org> 52003-01-21 Dave Love <fx@gnu.org>
2 6
3 * etags.c (Cplusplus_help, Cjava_help): Re-phrase and avoid 7 * etags.c (Cplusplus_help, Cjava_help): Re-phrase and avoid
@@ -43,7 +47,7 @@
43 47
44 * getopt.c (const): Move outside !HAVE_CONFIG_H conditional. 48 * getopt.c (const): Move outside !HAVE_CONFIG_H conditional.
45 (libintl.h): Include this if _LIBC. Otherwise include gettext.h. 49 (libintl.h): Include this if _LIBC. Otherwise include gettext.h.
46 (wchar.h): Include, maybe. 50 (wchar.h): Include, maybe.
47 (attribute_hidden): Define if not defind. 51 (attribute_hidden): Define if not defind.
48 (__getopt_initialized): Use attribute_hidden. 52 (__getopt_initialized): Use attribute_hidden.
49 (__libc_argc, __libc_argv): Renamed from original_argc, etc. 53 (__libc_argc, __libc_argv): Renamed from original_argc, etc.
@@ -204,7 +208,7 @@
204 208
205 * make-docfile.c (scan_c_file): Warn about missing `usage' info. 209 * make-docfile.c (scan_c_file): Warn about missing `usage' info.
206 210
2072002-07-05 Jonathan Kamens <jik@kamens.brookline.ma.us> 2112002-07-05 Jonathan Kamens <jik@kamens.brookline.ma.us>
208 212
209 * b2m.pl: Obey the rmail file and use the unpruned header properly. 213 * b2m.pl: Obey the rmail file and use the unpruned header properly.
210 214
@@ -1341,7 +1345,7 @@
1341 1345
1342 * movemail.c (main): Improve error message if can't create lock file. 1346 * movemail.c (main): Improve error message if can't create lock file.
1343 1347
13442000-01-28 Eric Hanchrow <offby1@blarg.net> 13482000-01-28 Eric Hanchrow <offby1@blarg.net>
1345 1349
1346 * emacsclient.c (socket_status): New function. 1350 * emacsclient.c (socket_status): New function.
1347 (main): If $LOGNAME or $USER exist and differ from our euid, look 1351 (main): If $LOGNAME or $USER exist and differ from our euid, look
@@ -1352,7 +1356,7 @@
1352 * emacsclient.c: Add option -a EDITOR and environment variable 1356 * emacsclient.c: Add option -a EDITOR and environment variable
1353 ALTERNATE_EDITOR. Exec this editor if we fail to contact Emacs. 1357 ALTERNATE_EDITOR. Exec this editor if we fail to contact Emacs.
1354 1358
13551999-12-10 Jonathan Kamens <jik@kamens.brookline.ma.us> 13591999-12-10 Jonathan Kamens <jik@kamens.brookline.ma.us>
1356 1360
1357 * movemail.c (popmail): Allow mailbox specifications of the 1361 * movemail.c (popmail): Allow mailbox specifications of the
1358 form `po:username:hostname'. 1362 form `po:username:hostname'.
@@ -1704,7 +1708,7 @@
1704 1708
1705 * makefile.nt: Do string comparision of _NMAKE_VER. 1709 * makefile.nt: Do string comparision of _NMAKE_VER.
1706 1710
17071998-11-03 Theodore Jump <tjump@cais.com> 17111998-11-03 Theodore Jump <tjump@cais.com>
1708 1712
1709 * makefile.nt: Compile multiple source files when possible. 1713 * makefile.nt: Compile multiple source files when possible.
1710 1714
@@ -2411,7 +2415,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
2411 2415
2412 * cvtmail.c, sorted-doc.c, yow.c, emacsserver.c: Undo previous change. 2416 * cvtmail.c, sorted-doc.c, yow.c, emacsserver.c: Undo previous change.
2413 2417
24141996-07-15 David Mosberger-Tang <davidm@AZStarNet.com> 24181996-07-15 David Mosberger-Tang <davidm@AZStarNet.com>
2415 2419
2416 * cvtmail.c, sorted-doc.c, yow.c: [__GNU_LIBRARY__]: Use <string.h>. 2420 * cvtmail.c, sorted-doc.c, yow.c: [__GNU_LIBRARY__]: Use <string.h>.
2417 * emacsserver.c (main) [__GNU_LIBRARY__]: Use size_t for fromlen. 2421 * emacsserver.c (main) [__GNU_LIBRARY__]: Use size_t for fromlen.
@@ -2468,11 +2472,11 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
2468 (Pascal_functions): Increase linecharno by the correct number of 2472 (Pascal_functions): Increase linecharno by the correct number of
2469 chars, inline the GET_NEW_LINE macro and delete its definition. 2473 chars, inline the GET_NEW_LINE macro and delete its definition.
2470 2474
24711996-05-03 Andrew Innes <andrewi@harlequin.co.uk> 24751996-05-03 Andrew Innes <andrewi@harlequin.co.uk>
2472 2476
2473 * makefile.nt (OBJDIR, BLD): Remove macro definitions. 2477 * makefile.nt (OBJDIR, BLD): Remove macro definitions.
2474 2478
24751996-05-03 Andrew Innes <andrewi@harlequin.co.uk> 24791996-05-03 Andrew Innes <andrewi@harlequin.co.uk>
2476 2480
2477 * makefile.nt (LOCAL_FLAGS): Include path to NT shadow includes. 2481 * makefile.nt (LOCAL_FLAGS): Include path to NT shadow includes.
2478 (movemail.exe, fakemail.exe): Now built under Win32.o 2482 (movemail.exe, fakemail.exe): Now built under Win32.o
@@ -2706,7 +2710,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
2706 (C_entries): Consider // as a comment start even in plain C for 2710 (C_entries): Consider // as a comment start even in plain C for
2707 the sake of Objective C parsing. 2711 the sake of Objective C parsing.
2708 2712
27091995-12-04 Francesco Potorti` <pot@cnuce.cnr.it> 27131995-12-04 Francesco Potorti` <pot@cnuce.cnr.it>
2710 2714
2711 * Makefile.in (ctags): depend on etags only for simplicity; 2715 * Makefile.in (ctags): depend on etags only for simplicity;
2712 compile with regexp support enabled. 2716 compile with regexp support enabled.
@@ -3423,7 +3427,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3423 defined, use simple 32-bit versions of these macros. 3427 defined, use simple 32-bit versions of these macros.
3424 (main) [HAVE_SOCKETS & !HAVE_SYSVIPC]: Use these macros. 3428 (main) [HAVE_SOCKETS & !HAVE_SYSVIPC]: Use these macros.
3425 3429
34261994-09-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 34301994-09-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
3427 3431
3428 * etags.c (etags_getcwd): Use getcwd if available. 3432 * etags.c (etags_getcwd): Use getcwd if available.
3429 3433
@@ -3804,9 +3808,9 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3804 * profile.c: New file. 3808 * profile.c: New file.
3805 3809
38061994-01-16 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 38101994-01-16 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
3807 3811
3808 * make-docfile.c: Make the argument list output look more like the 3812 * make-docfile.c: Make the argument list output look more like the
3809 Lisp docstrings do. 3813 Lisp docstrings do.
3810 (write_c_args): Take new arg FUNC. Make output 3814 (write_c_args): Take new arg FUNC. Make output
3811 look like lisp call prototypes: (function ARG1 ARG2), upcasing args. 3815 look like lisp call prototypes: (function ARG1 ARG2), upcasing args.
3812 (scan_c_file): Pass BUF to write_c_args for FUNC arg. 3816 (scan_c_file): Pass BUF to write_c_args for FUNC arg.
diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in
index 2a1d6424515..b8d853f8eac 100644
--- a/lib-src/Makefile.in
+++ b/lib-src/Makefile.in
@@ -100,15 +100,15 @@ INSTALL_STRIP =
100 100
101# Things that a user might actually run, 101# Things that a user might actually run,
102# which should be installed in bindir. 102# which should be installed in bindir.
103INSTALLABLES = etags ctags emacsclient b2m ebrowse 103INSTALLABLES = etags@EXEEXT@ ctags@EXEEXT@ emacsclient@EXEEXT@ b2m@EXEEXT@ ebrowse@EXEEXT@
104INSTALLABLE_SCRIPTS = rcs-checkin grep-changelog 104INSTALLABLE_SCRIPTS = rcs-checkin grep-changelog
105 105
106# Things that Emacs runs internally, or during the build process, 106# Things that Emacs runs internally, or during the build process,
107# which should not be installed in bindir. 107# which should not be installed in bindir.
108UTILITIES= profile digest-doc sorted-doc movemail cvtmail fakemail \ 108UTILITIES= profile@EXEEXT@ digest-doc@EXEEXT@ sorted-doc@EXEEXT@ movemail@EXEEXT@ cvtmail@EXEEXT@ fakemail@EXEEXT@ \
109 yow hexl update-game-score 109 yow@EXEEXT@ hexl@EXEEXT@ update-game-score@EXEEXT@
110 110
111DONT_INSTALL= test-distrib make-docfile 111DONT_INSTALL= test-distrib@EXEEXT@ make-docfile@EXEEXT@
112 112
113# Like UTILITIES, but they're not system-dependent, and should not be 113# Like UTILITIES, but they're not system-dependent, and should not be
114# deleted by the distclean target. 114# deleted by the distclean target.
@@ -286,12 +286,12 @@ blessmail:
286maybe-blessmail: BLESSMAIL 286maybe-blessmail: BLESSMAIL
287#ifdef MOVEMAIL_NEEDS_BLESSING 287#ifdef MOVEMAIL_NEEDS_BLESSING
288/* Don\'t charge ahead and do it! Let the installer decide. 288/* Don\'t charge ahead and do it! Let the installer decide.
289 ./blessmail ${archlibdir}/movemail */ 289 ./blessmail ${archlibdir}/movemail@EXEEXT@ */
290 @if [ `wc -l <blessmail` != 2 ] ; then \ 290 @if [ `wc -l <blessmail` != 2 ] ; then \
291 dir=`sed -n -e 's/echo mail directory = \(.*\)/\1/p' blessmail`; \ 291 dir=`sed -n -e 's/echo mail directory = \(.*\)/\1/p' blessmail`; \
292 echo Assuming $$dir is really the mail spool directory, you should; \ 292 echo Assuming $$dir is really the mail spool directory, you should; \
293 echo run lib-src/blessmail ${archlibdir}/movemail; \ 293 echo run lib-src/blessmail ${archlibdir}/movemail@EXEEXT@; \
294 echo as root, to give movemail appropriate permissions.; \ 294 echo as root, to give movemail@EXEEXT@ appropriate permissions.; \
295 echo Do that after running make install.; \ 295 echo Do that after running make install.; \
296 fi 296 fi
297#endif 297#endif
@@ -372,14 +372,14 @@ check:
372 @echo "We don't have any tests for GNU Emacs yet." 372 @echo "We don't have any tests for GNU Emacs yet."
373 373
374tags: TAGS 374tags: TAGS
375TAGS: etags 375TAGS: etags@EXEEXT@
376 etags *.[ch] 376 etags *.[ch]
377 377
378/* This verifies that the non-ASCII characters in the file \`testfile\' 378/* This verifies that the non-ASCII characters in the file \`testfile\'
379 have not been clobbered by whatever means were used to copy and 379 have not been clobbered by whatever means were used to copy and
380 distribute Emacs. If they were clobbered, all the .elc files were 380 distribute Emacs. If they were clobbered, all the .elc files were
381 clobbered too. */ 381 clobbered too. */
382test-distrib: ${srcdir}/test-distrib.c 382test-distrib@EXEEXT@: ${srcdir}/test-distrib.c
383 $(CC) ${ALL_CFLAGS} -o test-distrib ${srcdir}/test-distrib.c 383 $(CC) ${ALL_CFLAGS} -o test-distrib ${srcdir}/test-distrib.c
384 ./test-distrib ${srcdir}/testfile 384 ./test-distrib ${srcdir}/testfile
385 385
@@ -403,34 +403,34 @@ REGEXPDEPS = $(REGEXPOBJ) $(srcdir)/../src/regex.h
403regex.o: $(srcdir)/../src/regex.c $(srcdir)/../src/regex.h ../src/config.h 403regex.o: $(srcdir)/../src/regex.c $(srcdir)/../src/regex.h ../src/config.h
404 ${CC} -c ${BASE_CFLAGS} -DCONFIG_BROKETS -DINHIBIT_STRING_HEADER ${srcdir}/../src/regex.c 404 ${CC} -c ${BASE_CFLAGS} -DCONFIG_BROKETS -DINHIBIT_STRING_HEADER ${srcdir}/../src/regex.c
405 405
406etags: ${srcdir}/etags.c $(GETOPTDEPS) $(REGEXPDEPS) ../src/config.h 406etags@EXEEXT@: ${srcdir}/etags.c $(GETOPTDEPS) $(REGEXPDEPS) ../src/config.h
407 $(CC) ${ALL_CFLAGS} -DVERSION="\"${version}\"" ${srcdir}/etags.c $(GETOPTOBJS) $(REGEXPOBJ) $(LOADLIBES) -o etags 407 $(CC) ${ALL_CFLAGS} -DVERSION="\"${version}\"" ${srcdir}/etags.c $(GETOPTOBJS) $(REGEXPOBJ) $(LOADLIBES) -o etags
408 408
409ebrowse: ${srcdir}/ebrowse.c $(GETOPTDEPS) ../src/config.h 409ebrowse@EXEEXT@: ${srcdir}/ebrowse.c $(GETOPTDEPS) ../src/config.h
410 $(CC) ${ALL_CFLAGS} -DVERSION="\"${version}\"" ${srcdir}/ebrowse.c $(GETOPTOBJS) $(LOADLIBES) -o ebrowse 410 $(CC) ${ALL_CFLAGS} -DVERSION="\"${version}\"" ${srcdir}/ebrowse.c $(GETOPTOBJS) $(LOADLIBES) -o ebrowse
411 411
412/* We depend on etags to assure that parallel makes don\'t write two 412/* We depend on etags to assure that parallel makes don\'t write two
413 etags.o files on top of each other. */ 413 etags.o files on top of each other. */
414ctags: etags 414ctags@EXEEXT@: etags@EXEEXT@
415 $(CC) ${ALL_CFLAGS} -DCTAGS -DVERSION="\"${version}\"" ${srcdir}/etags.c $(GETOPTOBJS) $(REGEXPOBJ) $(LOADLIBES) -o ctags 415 $(CC) ${ALL_CFLAGS} -DCTAGS -DVERSION="\"${version}\"" ${srcdir}/etags.c $(GETOPTOBJS) $(REGEXPOBJ) $(LOADLIBES) -o ctags
416 416
417profile: ${srcdir}/profile.c ../src/config.h 417profile@EXEEXT@: ${srcdir}/profile.c ../src/config.h
418 $(CC) ${ALL_CFLAGS} ${srcdir}/profile.c $(LOADLIBES) -o profile 418 $(CC) ${ALL_CFLAGS} ${srcdir}/profile.c $(LOADLIBES) -o profile
419 419
420make-docfile: ${srcdir}/make-docfile.c ../src/config.h 420make-docfile@EXEEXT@: ${srcdir}/make-docfile.c ../src/config.h
421 $(CC) ${ALL_CFLAGS} ${srcdir}/make-docfile.c $(LOADLIBES) -o make-docfile 421 $(CC) ${ALL_CFLAGS} ${srcdir}/make-docfile.c $(LOADLIBES) -o make-docfile
422 422
423digest-doc: ${srcdir}/digest-doc.c 423digest-doc@EXEEXT@: ${srcdir}/digest-doc.c
424 $(CC) ${ALL_CFLAGS} ${srcdir}/digest-doc.c $(LOADLIBES) -o digest-doc 424 $(CC) ${ALL_CFLAGS} ${srcdir}/digest-doc.c $(LOADLIBES) -o digest-doc
425 425
426sorted-doc: ${srcdir}/sorted-doc.c ${ALLOCA} 426sorted-doc@EXEEXT@: ${srcdir}/sorted-doc.c ${ALLOCA}
427 $(CC) ${ALL_CFLAGS} ${srcdir}/sorted-doc.c ${ALLOCA} $(LOADLIBES) -o sorted-doc 427 $(CC) ${ALL_CFLAGS} ${srcdir}/sorted-doc.c ${ALLOCA} $(LOADLIBES) -o sorted-doc
428 428
429b2m: ${srcdir}/b2m.c ../src/config.h $(GETOPTDEPS) 429b2m@EXEEXT@: ${srcdir}/b2m.c ../src/config.h $(GETOPTDEPS)
430 $(CC) ${ALL_CFLAGS} ${srcdir}/b2m.c -DVERSION="\"${version}\"" \ 430 $(CC) ${ALL_CFLAGS} ${srcdir}/b2m.c -DVERSION="\"${version}\"" \
431 $(GETOPTOBJS) $(LOADLIBES) -o b2m 431 $(GETOPTOBJS) $(LOADLIBES) -o b2m
432 432
433movemail: movemail.o pop.o $(GETOPTDEPS) 433movemail@EXEEXT@: movemail.o pop.o $(GETOPTDEPS)
434 $(CC) ${LINK_CFLAGS} ${MOVE_FLAGS} movemail.o pop.o $(GETOPTOBJS) $(LOADLIBES) $(LIBS_MAIL) $(LIBS_MOVE) -o movemail 434 $(CC) ${LINK_CFLAGS} ${MOVE_FLAGS} movemail.o pop.o $(GETOPTOBJS) $(LOADLIBES) $(LIBS_MAIL) $(LIBS_MOVE) -o movemail
435 435
436movemail.o: ${srcdir}/movemail.c ../src/config.h 436movemail.o: ${srcdir}/movemail.c ../src/config.h
@@ -439,45 +439,45 @@ movemail.o: ${srcdir}/movemail.c ../src/config.h
439pop.o: ${srcdir}/pop.c ../src/config.h 439pop.o: ${srcdir}/pop.c ../src/config.h
440 $(CC) -c ${CPP_CFLAGS} ${MOVE_FLAGS} ${srcdir}/pop.c 440 $(CC) -c ${CPP_CFLAGS} ${MOVE_FLAGS} ${srcdir}/pop.c
441 441
442cvtmail: ${srcdir}/cvtmail.c 442cvtmail@EXEEXT@: ${srcdir}/cvtmail.c
443 $(CC) ${ALL_CFLAGS} ${srcdir}/cvtmail.c $(LOADLIBES) -o cvtmail 443 $(CC) ${ALL_CFLAGS} ${srcdir}/cvtmail.c $(LOADLIBES) -o cvtmail
444 444
445fakemail: ${srcdir}/fakemail.c ../src/config.h 445fakemail@EXEEXT@: ${srcdir}/fakemail.c ../src/config.h
446 $(CC) ${ALL_CFLAGS} ${srcdir}/fakemail.c $(LOADLIBES) -o fakemail 446 $(CC) ${ALL_CFLAGS} ${srcdir}/fakemail.c $(LOADLIBES) -o fakemail
447 447
448yow: ${srcdir}/yow.c ../src/epaths.h 448yow@EXEEXT@: ${srcdir}/yow.c ../src/epaths.h
449 $(CC) ${ALL_CFLAGS} ${srcdir}/yow.c $(LOADLIBES) -o yow 449 $(CC) ${ALL_CFLAGS} ${srcdir}/yow.c $(LOADLIBES) -o yow
450 450
451emacsclient: ${srcdir}/emacsclient.c ../src/config.h $(GETOPTDEPS) 451emacsclient@EXEEXT@: ${srcdir}/emacsclient.c ../src/config.h $(GETOPTDEPS)
452 $(CC) ${ALL_CFLAGS} ${srcdir}/emacsclient.c $(GETOPTOBJS) \ 452 $(CC) ${ALL_CFLAGS} ${srcdir}/emacsclient.c $(GETOPTOBJS) \
453 -DVERSION=`sed -n -e '/(defconst emacs-version/ s/^[^"]*\("[^"]*"\).*/\1/p' ${srcdir}/../lisp/version.el` \ 453 -DVERSION=`sed -n -e '/(defconst emacs-version/ s/^[^"]*\("[^"]*"\).*/\1/p' ${srcdir}/../lisp/version.el` \
454 $(LOADLIBES) -o emacsclient 454 $(LOADLIBES) -o emacsclient
455 455
456hexl: ${srcdir}/hexl.c ../src/config.h 456hexl@EXEEXT@: ${srcdir}/hexl.c ../src/config.h
457 $(CC) ${ALL_CFLAGS} ${srcdir}/hexl.c $(LOADLIBES) -o hexl 457 $(CC) ${ALL_CFLAGS} ${srcdir}/hexl.c $(LOADLIBES) -o hexl
458 458
459update-game-score: ${srcdir}/update-game-score.c ../src/config.h 459update-game-score@EXEEXT@: ${srcdir}/update-game-score.c ../src/config.h
460 $(CC) ${ALL_CFLAGS} ${srcdir}/update-game-score.c \ 460 $(CC) ${ALL_CFLAGS} ${srcdir}/update-game-score.c \
461 -DHAVE_SHARED_GAME_DIR="\"$(gamedir)\"" \ 461 -DHAVE_SHARED_GAME_DIR="\"$(gamedir)\"" \
462 $(LOADLIBES) -o update-game-score 462 $(LOADLIBES) -o update-game-score
463 463
464/* These are NOT included in INSTALLABLES or UTILITIES. 464/* These are NOT included in INSTALLABLES or UTILITIES.
465 See ../src/Makefile.in. */ 465 See ../src/Makefile.in. */
466emacstool: ${srcdir}/emacstool.c 466emacstool@EXEEXT@: ${srcdir}/emacstool.c
467 $(CC) ${srcdir}/emacstool.c -o emacstool ${ALL_CFLAGS} \ 467 $(CC) ${srcdir}/emacstool.c -o emacstool ${ALL_CFLAGS} \
468 -lsuntool -lsunwindow -lpixrect $(LOADLIBES) 468 -lsuntool -lsunwindow -lpixrect $(LOADLIBES)
469 469
470/* For SUN Japanese Language Environment. */ 470/* For SUN Japanese Language Environment. */
471nemacstool: ${srcdir}/emacstool.c 471nemacstool@EXEEXT@: ${srcdir}/emacstool.c
472 $(CC) -o nemacstool -DJLE ${ALL_CFLAGS} ${srcdir}/emacstool.c \ 472 $(CC) -o nemacstool -DJLE ${ALL_CFLAGS} ${srcdir}/emacstool.c \
473 -lsuntool -lmle -lsunwindow -lpixrect $(LOADLIBES) 473 -lsuntool -lmle -lsunwindow -lpixrect $(LOADLIBES)
474 474
475xvetool: ${srcdir}/emacstool.c 475xvetool@EXEEXT@: ${srcdir}/emacstool.c
476 $(CC) -o xvetool -DXVIEW ${ALL_CFLAGS} ${srcdir}/emacstool.c \ 476 $(CC) -o xvetool -DXVIEW ${ALL_CFLAGS} ${srcdir}/emacstool.c \
477 -lxview -lX -I$(OPENWINHOME)/include -L$(OPENWINHOME)/lib \ 477 -lxview -lX -I$(OPENWINHOME)/include -L$(OPENWINHOME)/lib \
478 $(LOADLIBES) 478 $(LOADLIBES)
479 479
480xveterm: ${srcdir}/emacstool.c 480xveterm@EXEEXT@: ${srcdir}/emacstool.c
481 $(CC) -o xveterm -DXVIEW -DTTERM ${ALL_CFLAGS} ${srcdir}/emacstool.c \ 481 $(CC) -o xveterm -DXVIEW -DTTERM ${ALL_CFLAGS} ${srcdir}/emacstool.c \
482 -lxview -lolgx -lX -I$(OPENWINHOME)/include -L$(OPENWINHOME)/lib \ 482 -lxview -lolgx -lX -I$(OPENWINHOME)/include -L$(OPENWINHOME)/lib \
483 $(LOADLIBES) 483 $(LOADLIBES)
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 8c54bba61af..45dae9f96dd 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,21 @@
12003-01-31 Joe Buehler <jhpb@draco.hekimian.com>
2
3 * comint.el:
4 * dired-aux.el:
5 * dired.el:
6 * dirtrack.el:
7 * dos-w32.el:
8 * fast-lock.el:
9 * filecache.el:
10 * files.el:
11 * hippie-exp.el:
12 * international/mule.el:
13 * net/browse-url.el:
14 * pcomplete.el:
15 * recentf.el:
16 * shell.el:
17 * woman.el: Added cygwin to system-type comparisons.
18
12003-01-31 Francesco Potort,Al(B <pot@gnu.org> 192003-01-31 Francesco Potort,Al(B <pot@gnu.org>
2 20
3 * mail/undigest.el (rmail-forward-separator-regex): New custom 21 * mail/undigest.el (rmail-forward-separator-regex): New custom
diff --git a/lisp/comint.el b/lisp/comint.el
index 0577d96a61e..126f05b1a79 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -2536,7 +2536,7 @@ This is used by comint's and shell's completion functions, and by shell's
2536directory tracking functions.") 2536directory tracking functions.")
2537 2537
2538(defvar comint-file-name-chars 2538(defvar comint-file-name-chars
2539 (if (memq system-type '(ms-dos windows-nt)) 2539 (if (memq system-type '(ms-dos windows-nt cygwin))
2540 "~/A-Za-z0-9_^$!#%&{}@`'.,:()-" 2540 "~/A-Za-z0-9_^$!#%&{}@`'.,:()-"
2541 "~/A-Za-z0-9+@:_.$#%,={}-") 2541 "~/A-Za-z0-9+@:_.$#%,={}-")
2542 "String of characters valid in a file name. 2542 "String of characters valid in a file name.
@@ -2661,7 +2661,7 @@ Returns t if successful."
2661(defun comint-dynamic-complete-as-filename () 2661(defun comint-dynamic-complete-as-filename ()
2662 "Dynamically complete at point as a filename. 2662 "Dynamically complete at point as a filename.
2663See `comint-dynamic-complete-filename'. Returns t if successful." 2663See `comint-dynamic-complete-filename'. Returns t if successful."
2664 (let* ((completion-ignore-case (memq system-type '(ms-dos windows-nt))) 2664 (let* ((completion-ignore-case (memq system-type '(ms-dos windows-nt cygwin)))
2665 (completion-ignored-extensions comint-completion-fignore) 2665 (completion-ignored-extensions comint-completion-fignore)
2666 ;; If we bind this, it breaks remote directory tracking in rlogin.el. 2666 ;; If we bind this, it breaks remote directory tracking in rlogin.el.
2667 ;; I think it was originally bound to solve file completion problems, 2667 ;; I think it was originally bound to solve file completion problems,
@@ -2750,7 +2750,7 @@ Returns `partial' if completed as far as possible with the completion matches.
2750Returns `listed' if a completion listing was shown. 2750Returns `listed' if a completion listing was shown.
2751 2751
2752See also `comint-dynamic-complete-filename'." 2752See also `comint-dynamic-complete-filename'."
2753 (let* ((completion-ignore-case (memq system-type '(ms-dos windows-nt))) 2753 (let* ((completion-ignore-case (memq system-type '(ms-dos windows-nt cygwin)))
2754 (suffix (cond ((not comint-completion-addsuffix) "") 2754 (suffix (cond ((not comint-completion-addsuffix) "")
2755 ((not (consp comint-completion-addsuffix)) " ") 2755 ((not (consp comint-completion-addsuffix)) " ")
2756 (t (cdr comint-completion-addsuffix)))) 2756 (t (cdr comint-completion-addsuffix))))
@@ -2791,7 +2791,7 @@ See also `comint-dynamic-complete-filename'."
2791(defun comint-dynamic-list-filename-completions () 2791(defun comint-dynamic-list-filename-completions ()
2792 "List in help buffer possible completions of the filename at point." 2792 "List in help buffer possible completions of the filename at point."
2793 (interactive) 2793 (interactive)
2794 (let* ((completion-ignore-case (memq system-type '(ms-dos windows-nt))) 2794 (let* ((completion-ignore-case (memq system-type '(ms-dos windows-nt cygwin)))
2795 ;; If we bind this, it breaks remote directory tracking in rlogin.el. 2795 ;; If we bind this, it breaks remote directory tracking in rlogin.el.
2796 ;; I think it was originally bound to solve file completion problems, 2796 ;; I think it was originally bound to solve file completion problems,
2797 ;; but subsequent changes may have made this unnecessary. sm. 2797 ;; but subsequent changes may have made this unnecessary. sm.
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 70e14730bd3..ca6f12e0fc7 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -1258,7 +1258,7 @@ Optional arg HOW-TO is used to set the value of the into-dir variable
1258 ;; will return t because the filesystem is 1258 ;; will return t because the filesystem is
1259 ;; case-insensitive, and Emacs will try to move 1259 ;; case-insensitive, and Emacs will try to move
1260 ;; foo -> foo/foo, which fails. 1260 ;; foo -> foo/foo, which fails.
1261 (if (and (memq system-type '(ms-dos windows-nt)) 1261 (if (and (memq system-type '(ms-dos windows-nt cygwin))
1262 (eq op-symbol 'move) 1262 (eq op-symbol 'move)
1263 dired-one-file 1263 dired-one-file
1264 (string= (downcase 1264 (string= (downcase
diff --git a/lisp/dired.el b/lisp/dired.el
index c504e7a1185..d658960a35e 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -65,7 +65,7 @@ some of the `ls' switches are not supported; see the doc string of
65 65
66;;;###autoload 66;;;###autoload
67(defvar dired-chown-program 67(defvar dired-chown-program
68 (if (memq system-type '(hpux dgux usg-unix-v irix linux gnu/linux)) 68 (if (memq system-type '(hpux dgux usg-unix-v irix linux gnu/linux cygwin))
69 "chown" 69 "chown"
70 (if (file-exists-p "/usr/sbin/chown") 70 (if (file-exists-p "/usr/sbin/chown")
71 "/usr/sbin/chown" 71 "/usr/sbin/chown"
@@ -299,7 +299,7 @@ Subexpression 2 must end right before the \\n or \\r.")
299 '(".+" (dired-move-to-filename) nil (0 font-lock-function-name-face))) 299 '(".+" (dired-move-to-filename) nil (0 font-lock-function-name-face)))
300 ;; 300 ;;
301 ;; Symbolic links. 301 ;; Symbolic links.
302 (list dired-re-sym 302 (list dired-re-sym
303 '(".+" (dired-move-to-filename) nil (0 font-lock-keyword-face))) 303 '(".+" (dired-move-to-filename) nil (0 font-lock-keyword-face)))
304 ;; 304 ;;
305 ;; Files suffixed with `completion-ignored-extensions'. 305 ;; Files suffixed with `completion-ignored-extensions'.
@@ -530,11 +530,11 @@ If DIRNAME is already in a dired buffer, that buffer is used without refresh."
530 (setq buffer (create-file-buffer (directory-file-name dirname))))) 530 (setq buffer (create-file-buffer (directory-file-name dirname)))))
531 (set-buffer buffer) 531 (set-buffer buffer)
532 (if (not new-buffer-p) ; existing buffer ... 532 (if (not new-buffer-p) ; existing buffer ...
533 (cond (switches ; ... but new switches 533 (cond (switches ; ... but new switches
534 ;; file list may have changed 534 ;; file list may have changed
535 (setq dired-directory dir-or-list) 535 (setq dired-directory dir-or-list)
536 ;; this calls dired-revert 536 ;; this calls dired-revert
537 (dired-sort-other switches)) 537 (dired-sort-other switches))
538 ;; If directory has changed on disk, offer to revert. 538 ;; If directory has changed on disk, offer to revert.
539 ((if (let ((attributes (file-attributes dirname)) 539 ((if (let ((attributes (file-attributes dirname))
540 (modtime (visited-file-modtime))) 540 (modtime (visited-file-modtime)))
@@ -1769,7 +1769,7 @@ You can then feed the file name(s) to other commands with \\[yank]."
1769 (substring pattern matched-in-pattern)) 1769 (substring pattern matched-in-pattern))
1770 "\\'"))) 1770 "\\'")))
1771 1771
1772 1772
1773 1773
1774(defun dired-advertise () 1774(defun dired-advertise ()
1775 ;;"Advertise in variable `dired-buffers' that we dired `default-directory'." 1775 ;;"Advertise in variable `dired-buffers' that we dired `default-directory'."
@@ -2053,7 +2053,7 @@ Anything else means ask for each directory."
2053 (const :tag "Confirm for each top directory only" top)) 2053 (const :tag "Confirm for each top directory only" top))
2054 :group 'dired) 2054 :group 'dired)
2055 2055
2056;; Match anything but `.' and `..'. 2056;; Match anything but `.' and `..'.
2057(defvar dired-re-no-dot "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*") 2057(defvar dired-re-no-dot "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*")
2058 2058
2059;; Delete file, possibly delete a directory and all its files. 2059;; Delete file, possibly delete a directory and all its files.
@@ -2174,7 +2174,7 @@ if there are no flagged files."
2174 (setq success-list (cons (buffer-name buf) success-list))))) 2174 (setq success-list (cons (buffer-name buf) success-list)))))
2175 success-list)) 2175 success-list))
2176 2176
2177;; Delete the entry for FILE from 2177;; Delete the entry for FILE from
2178(defun dired-delete-entry (file) 2178(defun dired-delete-entry (file)
2179 (save-excursion 2179 (save-excursion
2180 (and (dired-goto-file file) 2180 (and (dired-goto-file file)
@@ -2572,7 +2572,7 @@ A prefix argument says to unflag those files instead."
2572(defvar dired-garbage-files-regexp 2572(defvar dired-garbage-files-regexp
2573 (concat (regexp-opt 2573 (concat (regexp-opt
2574 '(".log" ".toc" ".dvi" ".bak" ".orig" ".rej" ".aux")) 2574 '(".log" ".toc" ".dvi" ".bak" ".orig" ".rej" ".aux"))
2575 "\\'") 2575 "\\'")
2576 "*Regular expression to match \"garbage\" files for `dired-flag-garbage-files'.") 2576 "*Regular expression to match \"garbage\" files for `dired-flag-garbage-files'.")
2577 2577
2578(defun dired-flag-garbage-files () 2578(defun dired-flag-garbage-files ()
@@ -2632,7 +2632,7 @@ OLD and NEW are both characters used to mark files."
2632 2632
2633(defun dired-unmark-all-files (mark &optional arg) 2633(defun dired-unmark-all-files (mark &optional arg)
2634 "Remove a specific mark (or any mark) from every file. 2634 "Remove a specific mark (or any mark) from every file.
2635After this command, type the mark character to remove, 2635After this command, type the mark character to remove,
2636or type RET to remove all marks. 2636or type RET to remove all marks.
2637With prefix arg, query for each marked file. 2637With prefix arg, query for each marked file.
2638Type \\[help-command] at that time for help." 2638Type \\[help-command] at that time for help."
@@ -2683,7 +2683,7 @@ Thus, use \\[backward-page] to find the beginning of a group of errors."
2683 ;; Log a message or the contents of a buffer. 2683 ;; Log a message or the contents of a buffer.
2684 ;; If LOG is a string and there are more args, it is formatted with 2684 ;; If LOG is a string and there are more args, it is formatted with
2685 ;; those ARGS. Usually the LOG string ends with a \n. 2685 ;; those ARGS. Usually the LOG string ends with a \n.
2686 ;; End each bunch of errors with (dired-log t): 2686 ;; End each bunch of errors with (dired-log t):
2687 ;; this inserts the current time and buffer at the start of the page, 2687 ;; this inserts the current time and buffer at the start of the page,
2688 ;; and \f (formfeed) at the end. 2688 ;; and \f (formfeed) at the end.
2689 (let ((obuf (current-buffer))) 2689 (let ((obuf (current-buffer)))
@@ -3076,7 +3076,7 @@ Use \\[dired-hide-subdir] to (un)hide a particular subdirectory."
3076(autoload 'dired-show-file-type "dired-aux" 3076(autoload 'dired-show-file-type "dired-aux"
3077 "Print the type of FILE, according to the `file' command. 3077 "Print the type of FILE, according to the `file' command.
3078If FILE is a symbolic link and the optional argument DEREF-SYMLINKS is 3078If FILE is a symbolic link and the optional argument DEREF-SYMLINKS is
3079true then the type of the file linked to by FILE is printed instead." 3079true then the type of the file linked to by FILE is printed instead."
3080 t) 3080 t)
3081 3081
3082(autoload 'dired-run-shell-command "dired-aux") 3082(autoload 'dired-run-shell-command "dired-aux")
diff --git a/lisp/dirtrack.el b/lisp/dirtrack.el
index 572435d357b..d8590f60add 100644
--- a/lisp/dirtrack.el
+++ b/lisp/dirtrack.el
@@ -5,7 +5,7 @@
5;; Author: Peter Breton <pbreton@cs.umb.edu> 5;; Author: Peter Breton <pbreton@cs.umb.edu>
6;; Created: Sun Nov 17 1996 6;; Created: Sun Nov 17 1996
7;; Keywords: processes 7;; Keywords: processes
8;; Time-stamp: <1999-02-21 01:27:24 pbreton> 8;; Time-stamp: <2003-01-31 16:15:05 jbarranquero>
9 9
10;; This file is part of GNU Emacs. 10;; This file is part of GNU Emacs.
11 11
@@ -42,8 +42,8 @@
42;; 1) Set your shell's prompt to contain the current working directory. 42;; 1) Set your shell's prompt to contain the current working directory.
43;; You may need to consult your shell's documentation to find out how to 43;; You may need to consult your shell's documentation to find out how to
44;; do this. 44;; do this.
45;; 45;;
46;; Note that directory tracking is done by matching regular expressions, 46;; Note that directory tracking is done by matching regular expressions,
47;; therefore it is *VERY IMPORTANT* for your prompt to be easily 47;; therefore it is *VERY IMPORTANT* for your prompt to be easily
48;; distinguishable from other output. If your prompt regexp is too general, 48;; distinguishable from other output. If your prompt regexp is too general,
49;; you will see error messages from the dirtrack filter as it attempts to cd 49;; you will see error messages from the dirtrack filter as it attempts to cd
@@ -52,16 +52,16 @@
52;; 2) Set the variable `dirtrack-list' to an appropriate value. This 52;; 2) Set the variable `dirtrack-list' to an appropriate value. This
53;; should be a list of two elements: the first is a regular expression 53;; should be a list of two elements: the first is a regular expression
54;; which matches your prompt up to and including the pathname part. 54;; which matches your prompt up to and including the pathname part.
55;; The second is a number which tells which regular expression group to 55;; The second is a number which tells which regular expression group to
56;; match to extract only the pathname. If you use a multi-line prompt, 56;; match to extract only the pathname. If you use a multi-line prompt,
57;; add 't' as a third element. Note that some of the functions in 57;; add 't' as a third element. Note that some of the functions in
58;; 'comint.el' assume a single-line prompt (eg, comint-bol). 58;; 'comint.el' assume a single-line prompt (eg, comint-bol).
59;; 59;;
60;; Determining this information may take some experimentation. Setting 60;; Determining this information may take some experimentation. Setting
61;; the variable `dirtrack-debug' may help; it causes the directory-tracking 61;; the variable `dirtrack-debug' may help; it causes the directory-tracking
62;; filter to log messages to the buffer `dirtrack-debug-buffer'. You can easily 62;; filter to log messages to the buffer `dirtrack-debug-buffer'. You can easily
63;; toggle this setting with the `dirtrack-debug-toggle' function. 63;; toggle this setting with the `dirtrack-debug-toggle' function.
64;; 64;;
65;; 3) Add a hook to shell-mode to enable the directory tracking: 65;; 3) Add a hook to shell-mode to enable the directory tracking:
66;; 66;;
67;; (add-hook 'shell-mode-hook 67;; (add-hook 'shell-mode-hook
@@ -83,26 +83,26 @@
83;; 'dirtrack-list' is set to (list "^\\([/~].*\\)\nemacs@[^%]+% *" 1 t) 83;; 'dirtrack-list' is set to (list "^\\([/~].*\\)\nemacs@[^%]+% *" 1 t)
84;; 84;;
85;; I'd appreciate other examples from people who use this package. 85;; I'd appreciate other examples from people who use this package.
86;; 86;;
87;; Here's one from Stephen Eglen: 87;; Here's one from Stephen Eglen:
88;; 88;;
89;; Running under tcsh: 89;; Running under tcsh:
90;; (setq-default dirtrack-list '("^%E \\([^ ]+\\)" 1)) 90;; (setq-default dirtrack-list '("^%E \\([^ ]+\\)" 1))
91;; 91;;
92;; It might be worth mentioning in your file that emacs sources start up 92;; It might be worth mentioning in your file that emacs sources start up
93;; files of the form: ~/.emacs_<SHELL> where <SHELL> is the name of the 93;; files of the form: ~/.emacs_<SHELL> where <SHELL> is the name of the
94;; shell. So for example, I have the following in ~/.emacs_tcsh: 94;; shell. So for example, I have the following in ~/.emacs_tcsh:
95;; 95;;
96;; set prompt = "%%E %~ %h% " 96;; set prompt = "%%E %~ %h% "
97;; 97;;
98;; This produces a prompt of the form: 98;; This produces a prompt of the form:
99;; %E /var/spool 10% 99;; %E /var/spool 10%
100;; 100;;
101;; This saves me from having to use the %E prefix in other non-emacs 101;; This saves me from having to use the %E prefix in other non-emacs
102;; shells. 102;; shells.
103;; 103;;
104;; A final note: 104;; A final note:
105;; 105;;
106;; I run LOTS of shell buffers through Emacs, sometimes as different users 106;; I run LOTS of shell buffers through Emacs, sometimes as different users
107;; (eg, when logged in as myself, I'll run a root shell in the same Emacs). 107;; (eg, when logged in as myself, I'll run a root shell in the same Emacs).
108;; If you do this, and the shell prompt contains a ~, Emacs will interpret 108;; If you do this, and the shell prompt contains a ~, Emacs will interpret
@@ -134,11 +134,11 @@
134(defcustom dirtrack-list (list "^emacs \\([a-zA-Z]:.*\\)>" 1) 134(defcustom dirtrack-list (list "^emacs \\([a-zA-Z]:.*\\)>" 1)
135 "*List for directory tracking. 135 "*List for directory tracking.
136First item is a regexp that describes where to find the path in a prompt. 136First item is a regexp that describes where to find the path in a prompt.
137Second is a number, the regexp group to match. Optional third item is 137Second is a number, the regexp group to match. Optional third item is
138whether the prompt is multi-line. If nil or omitted, prompt is assumed to 138whether the prompt is multi-line. If nil or omitted, prompt is assumed to
139be on a single line." 139be on a single line."
140 :group 'dirtrack 140 :group 'dirtrack
141 :type '(sexp (regexp :tag "Prompt Expression") 141 :type '(sexp (regexp :tag "Prompt Expression")
142 (integer :tag "Regexp Group") 142 (integer :tag "Regexp Group")
143 (boolean :tag "Multiline Prompt") 143 (boolean :tag "Multiline Prompt")
144 ) 144 )
@@ -166,8 +166,8 @@ be on a single line."
166 166
167(make-variable-buffer-local 'dirtrackp) 167(make-variable-buffer-local 'dirtrackp)
168 168
169(defcustom dirtrack-directory-function 169(defcustom dirtrack-directory-function
170 (if (memq system-type (list 'ms-dos 'windows-nt)) 170 (if (memq system-type (list 'ms-dos 'windows-nt 'cygwin))
171 'dirtrack-windows-directory-function 171 'dirtrack-windows-directory-function
172 'dirtrack-default-directory-function) 172 'dirtrack-default-directory-function)
173 "*Function to apply to the prompt directory for comparison purposes." 173 "*Function to apply to the prompt directory for comparison purposes."
@@ -175,8 +175,8 @@ be on a single line."
175 :type 'function 175 :type 'function
176 ) 176 )
177 177
178(defcustom dirtrack-canonicalize-function 178(defcustom dirtrack-canonicalize-function
179 (if (memq system-type (list 'ms-dos 'windows-nt)) 179 (if (memq system-type (list 'ms-dos 'windows-nt 'cygwin))
180 'downcase 'identity) 180 'downcase 'identity)
181 "*Function to apply to the default directory for comparison purposes." 181 "*Function to apply to the default directory for comparison purposes."
182 :group 'dirtrack 182 :group 'dirtrack
@@ -204,7 +204,7 @@ Such a directory ends with a forward slash."
204 204
205(defun dirtrack-windows-directory-function (dir) 205(defun dirtrack-windows-directory-function (dir)
206 "Return a canonical directory for comparison purposes. 206 "Return a canonical directory for comparison purposes.
207Such a directory is all lowercase, has forward-slashes as delimiters, 207Such a directory is all lowercase, has forward-slashes as delimiters,
208and ends with a forward slash." 208and ends with a forward slash."
209 (let ((directory dir)) 209 (let ((directory dir))
210 (setq directory (downcase (dirtrack-replace-slash directory t))) 210 (setq directory (downcase (dirtrack-replace-slash directory t)))
@@ -217,13 +217,13 @@ and ends with a forward slash."
217 217
218(defun dirtrack-replace-slash (string &optional opposite) 218(defun dirtrack-replace-slash (string &optional opposite)
219 "Replace forward slashes with backwards ones. 219 "Replace forward slashes with backwards ones.
220If additional argument is non-nil, replace backwards slashes with 220If additional argument is non-nil, replace backwards slashes with
221forward ones." 221forward ones."
222 (let ((orig (if opposite 222 (let ((orig (if opposite
223 dirtrack-backward-slash 223 dirtrack-backward-slash
224 dirtrack-forward-slash)) 224 dirtrack-forward-slash))
225 (replace (if opposite 225 (replace (if opposite
226 dirtrack-forward-slash 226 dirtrack-forward-slash
227 dirtrack-backward-slash)) 227 dirtrack-backward-slash))
228 (newstring string) 228 (newstring string)
229 ) 229 )
@@ -266,7 +266,7 @@ You can toggle directory tracking by using the function `dirtrack-toggle'.
266If directory tracking does not seem to be working, you can use the 266If directory tracking does not seem to be working, you can use the
267function `dirtrack-debug-toggle' to turn on debugging output. 267function `dirtrack-debug-toggle' to turn on debugging output.
268 268
269You can enable directory tracking by adding this function to 269You can enable directory tracking by adding this function to
270`comint-output-filter-functions'. 270`comint-output-filter-functions'.
271" 271"
272 (if (null dirtrackp) 272 (if (null dirtrackp)
@@ -286,33 +286,33 @@ You can enable directory tracking by adding this function to
286 ;; No match 286 ;; No match
287 (if (null matched) 287 (if (null matched)
288 (and dirtrack-debug 288 (and dirtrack-debug
289 (dirtrack-debug-message 289 (dirtrack-debug-message
290 (format 290 (format
291 "Input `%s' failed to match regexp: %s" 291 "Input `%s' failed to match regexp: %s"
292 input dirtrack-regexp))) 292 input dirtrack-regexp)))
293 (setq prompt-path 293 (setq prompt-path
294 (substring input 294 (substring input
295 (match-beginning match-num) (match-end match-num))) 295 (match-beginning match-num) (match-end match-num)))
296 ;; Empty string 296 ;; Empty string
297 (if (not (> (length prompt-path) 0)) 297 (if (not (> (length prompt-path) 0))
298 (and dirtrack-debug 298 (and dirtrack-debug
299 (dirtrack-debug-message "Match is empty string")) 299 (dirtrack-debug-message "Match is empty string"))
300 ;; Transform prompts into canonical forms 300 ;; Transform prompts into canonical forms
301 (setq prompt-path (funcall dirtrack-directory-function 301 (setq prompt-path (funcall dirtrack-directory-function
302 prompt-path)) 302 prompt-path))
303 (setq current-dir (funcall dirtrack-canonicalize-function 303 (setq current-dir (funcall dirtrack-canonicalize-function
304 current-dir)) 304 current-dir))
305 (and dirtrack-debug 305 (and dirtrack-debug
306 (dirtrack-debug-message 306 (dirtrack-debug-message
307 (format 307 (format
308 "Prompt is %s\nCurrent directory is %s" 308 "Prompt is %s\nCurrent directory is %s"
309 prompt-path current-dir))) 309 prompt-path current-dir)))
310 ;; Compare them 310 ;; Compare them
311 (if (or (string= current-dir prompt-path) 311 (if (or (string= current-dir prompt-path)
312 (string= current-dir 312 (string= current-dir
313 (abbreviate-file-name prompt-path))) 313 (abbreviate-file-name prompt-path)))
314 (and dirtrack-debug 314 (and dirtrack-debug
315 (dirtrack-debug-message 315 (dirtrack-debug-message
316 (format "Not changing directory"))) 316 (format "Not changing directory")))
317 ;; It's possible that Emacs will think the directory 317 ;; It's possible that Emacs will think the directory
318 ;; won't exist (eg, rlogin buffers) 318 ;; won't exist (eg, rlogin buffers)
@@ -321,7 +321,7 @@ You can enable directory tracking by adding this function to
321 (and (shell-process-cd prompt-path) 321 (and (shell-process-cd prompt-path)
322 (run-hooks 'dirtrack-directory-change-hook) 322 (run-hooks 'dirtrack-directory-change-hook)
323 dirtrack-debug 323 dirtrack-debug
324 (dirtrack-debug-message 324 (dirtrack-debug-message
325 (format "Changing directory to %s" prompt-path))) 325 (format "Changing directory to %s" prompt-path)))
326 (error "Directory %s does not exist" prompt-path))) 326 (error "Directory %s does not exist" prompt-path)))
327 ))))) 327 )))))
diff --git a/lisp/dos-w32.el b/lisp/dos-w32.el
index 81aa9c28cd7..4768586b331 100644
--- a/lisp/dos-w32.el
+++ b/lisp/dos-w32.el
@@ -197,7 +197,7 @@ the directory prefix corresponding to the filesystem.")
197(defun untranslated-canonical-name (filename) 197(defun untranslated-canonical-name (filename)
198 "Return FILENAME in a canonicalized form for use with the functions 198 "Return FILENAME in a canonicalized form for use with the functions
199dealing with untranslated filesystems." 199dealing with untranslated filesystems."
200 (if (memq system-type '(ms-dos windows-nt)) 200 (if (memq system-type '(ms-dos windows-nt cygwin))
201 ;; The canonical form for DOS/W32 is with A-Z downcased and all 201 ;; The canonical form for DOS/W32 is with A-Z downcased and all
202 ;; directory separators changed to directory-sep-char. 202 ;; directory separators changed to directory-sep-char.
203 (let ((name nil)) 203 (let ((name nil))
diff --git a/lisp/fast-lock.el b/lisp/fast-lock.el
index 804b8df9245..c37a4adb192 100644
--- a/lisp/fast-lock.el
+++ b/lisp/fast-lock.el
@@ -34,7 +34,7 @@
34;; See also the lazy-lock package. (But don't use the two at the same time!) 34;; See also the lazy-lock package. (But don't use the two at the same time!)
35 35
36;; Installation: 36;; Installation:
37;; 37;;
38;; Put in your ~/.emacs: 38;; Put in your ~/.emacs:
39;; 39;;
40;; (setq font-lock-support-mode 'fast-lock-mode) 40;; (setq font-lock-support-mode 'fast-lock-mode)
@@ -67,7 +67,7 @@
67;; 1.01--2.00: complete rewrite---not worth the space to document 67;; 1.01--2.00: complete rewrite---not worth the space to document
68;; - Changed structure of text properties cache and threw out file mod checks 68;; - Changed structure of text properties cache and threw out file mod checks
69;; 2.00--2.01: 69;; 2.00--2.01:
70;; - Made `condition-case' forms understand `quit'. 70;; - Made `condition-case' forms understand `quit'.
71;; - Made `fast-lock' require `font-lock' 71;; - Made `fast-lock' require `font-lock'
72;; - Made `fast-lock-cache-name' chase links (from Ben Liblit) 72;; - Made `fast-lock-cache-name' chase links (from Ben Liblit)
73;; 2.01--3.00: 73;; 2.01--3.00:
@@ -230,7 +230,7 @@
230 ;; 230 ;;
231 ;; We use this for compatibility with a future Emacs. 231 ;; We use this for compatibility with a future Emacs.
232 (or (fboundp 'defcustom) 232 (or (fboundp 'defcustom)
233 (defmacro defcustom (symbol value doc &rest args) 233 (defmacro defcustom (symbol value doc &rest args)
234 `(defvar ,symbol ,value ,doc)))) 234 `(defvar ,symbol ,value ,doc))))
235 235
236;(defun fast-lock-submit-bug-report () 236;(defun fast-lock-submit-bug-report ()
@@ -553,7 +553,7 @@ See `fast-lock-cache-directory'."
553 (concat buffer-file-name ".flc") 553 (concat buffer-file-name ".flc")
554 (let* ((bufile (expand-file-name buffer-file-truename)) 554 (let* ((bufile (expand-file-name buffer-file-truename))
555 (chars-alist 555 (chars-alist
556 (if (memq system-type '(emx windows-nt)) 556 (if (memq system-type '(emx windows-nt cygwin))
557 '((?/ . (?#)) (?# . (?# ?#)) (?: . (?\;)) (?\; . (?\; ?\;))) 557 '((?/ . (?#)) (?# . (?# ?#)) (?: . (?\;)) (?\; . (?\; ?\;)))
558 '((?/ . (?#)) (?# . (?# ?#))))) 558 '((?/ . (?#)) (?# . (?# ?#)))))
559 (mapchars 559 (mapchars
@@ -807,7 +807,7 @@ See `fast-lock-get-face-properties'."
807 (font-lock-set-face (nth 0 regions) (nth 1 regions) face) 807 (font-lock-set-face (nth 0 regions) (nth 1 regions) face)
808 (setq regions (nthcdr 2 regions))) 808 (setq regions (nthcdr 2 regions)))
809 (setq face-properties (cdr face-properties)))) 809 (setq face-properties (cdr face-properties))))
810 ;; XEmacs does not support the `syntax-table' text property. 810 ;; XEmacs does not support the `syntax-table' text property.
811 )) 811 ))
812 ;; 812 ;;
813 ;; XEmacs 19.12 font-lock.el's `font-lock-fontify-buffer' runs a hook. 813 ;; XEmacs 19.12 font-lock.el's `font-lock-fontify-buffer' runs a hook.
diff --git a/lisp/filecache.el b/lisp/filecache.el
index 72ef62fc650..4cc259bf9f6 100644
--- a/lisp/filecache.el
+++ b/lisp/filecache.el
@@ -187,7 +187,7 @@ do not use this variable."
187 :group 'file-cache) 187 :group 'file-cache)
188 188
189(defcustom file-cache-completion-ignore-case 189(defcustom file-cache-completion-ignore-case
190 (if (memq system-type (list 'ms-dos 'windows-nt)) 190 (if (memq system-type (list 'ms-dos 'windows-nt 'cygwin))
191 t 191 t
192 completion-ignore-case) 192 completion-ignore-case)
193 "If non-nil, file-cache completion should ignore case. 193 "If non-nil, file-cache completion should ignore case.
@@ -197,7 +197,7 @@ Defaults to the value of `completion-ignore-case'."
197 ) 197 )
198 198
199(defcustom file-cache-case-fold-search 199(defcustom file-cache-case-fold-search
200 (if (memq system-type (list 'ms-dos 'windows-nt)) 200 (if (memq system-type (list 'ms-dos 'windows-nt 'cygwin))
201 t 201 t
202 case-fold-search) 202 case-fold-search)
203 "If non-nil, file-cache completion should ignore case. 203 "If non-nil, file-cache completion should ignore case.
@@ -207,7 +207,7 @@ Defaults to the value of `case-fold-search'."
207 ) 207 )
208 208
209(defcustom file-cache-assoc-function 209(defcustom file-cache-assoc-function
210 (if (memq system-type (list 'ms-dos 'windows-nt)) 210 (if (memq system-type (list 'ms-dos 'windows-nt 'cygwin))
211 'assoc-ignore-case 211 'assoc-ignore-case
212 'assoc) 212 'assoc)
213 "Function to use to check completions in the file cache. 213 "Function to use to check completions in the file cache.
diff --git a/lisp/files.el b/lisp/files.el
index 8a801a3d530..cb1e0156ed3 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -215,7 +215,7 @@ have fast storage with limited space, such as a RAM disk."
215 "[\000-\031]\\|" ; control characters 215 "[\000-\031]\\|" ; control characters
216 "\\(/\\.\\.?[^/]\\)\\|" ; leading dots 216 "\\(/\\.\\.?[^/]\\)\\|" ; leading dots
217 "\\(/[^/.]+\\.[^/.]*\\.\\)")) ; more than a single dot 217 "\\(/[^/.]+\\.[^/.]*\\.\\)")) ; more than a single dot
218 ((memq system-type '(ms-dos windows-nt)) 218 ((memq system-type '(ms-dos windows-nt cygwin))
219 (concat "^\\([^A-Z[-`a-z]\\|..+\\)?:\\|" ; colon except after drive 219 (concat "^\\([^A-Z[-`a-z]\\|..+\\)?:\\|" ; colon except after drive
220 "[|<>\"?*\000-\031]")) ; invalid characters 220 "[|<>\"?*\000-\031]")) ; invalid characters
221 (t "[\000]")) 221 (t "[\000]"))
@@ -1028,6 +1028,7 @@ Type \\[describe-variable] directory-abbrev-alist RET for more information."
1028 ;; MS-DOS root directories can come with a drive letter; 1028 ;; MS-DOS root directories can come with a drive letter;
1029 ;; Novell Netware allows drive letters beyond `Z:'. 1029 ;; Novell Netware allows drive letters beyond `Z:'.
1030 (not (and (or (eq system-type 'ms-dos) 1030 (not (and (or (eq system-type 'ms-dos)
1031 (eq system-type 'cygwin)
1031 (eq system-type 'windows-nt)) 1032 (eq system-type 'windows-nt))
1032 (save-match-data 1033 (save-match-data
1033 (string-match "^[a-zA-`]:/$" filename))))) 1034 (string-match "^[a-zA-`]:/$" filename)))))
@@ -1774,7 +1775,7 @@ and we don't even do that unless it would come from the file name."
1774 (mode nil)) 1775 (mode nil))
1775 ;; Find first matching alist entry. 1776 ;; Find first matching alist entry.
1776 (let ((case-fold-search 1777 (let ((case-fold-search
1777 (memq system-type '(vax-vms windows-nt)))) 1778 (memq system-type '(vax-vms windows-nt cygwin))))
1778 (while (and (not mode) alist) 1779 (while (and (not mode) alist)
1779 (if (string-match (car (car alist)) name) 1780 (if (string-match (car (car alist)) name)
1780 (if (and (consp (cdr (car alist))) 1781 (if (and (consp (cdr (car alist)))
@@ -2615,7 +2616,7 @@ doesn't exist, it is created."
2615 file 2616 file
2616 (if (file-name-absolute-p backup-directory) 2617 (if (file-name-absolute-p backup-directory)
2617 (progn 2618 (progn
2618 (when (memq system-type '(windows-nt ms-dos)) 2619 (when (memq system-type '(windows-nt ms-dos cygwin))
2619 ;; Normalize DOSish file names: downcase the drive 2620 ;; Normalize DOSish file names: downcase the drive
2620 ;; letter, if any, and replace the leading "x:" with 2621 ;; letter, if any, and replace the leading "x:" with
2621 ;; "/drive_x". 2622 ;; "/drive_x".
@@ -2737,6 +2738,7 @@ then it returns FILENAME."
2737 ;; On Microsoft OSes, if FILENAME and DIRECTORY have different 2738 ;; On Microsoft OSes, if FILENAME and DIRECTORY have different
2738 ;; drive names, they can't be relative, so return the absolute name. 2739 ;; drive names, they can't be relative, so return the absolute name.
2739 (if (and (or (eq system-type 'ms-dos) 2740 (if (and (or (eq system-type 'ms-dos)
2741 (eq system-type 'cygwin)
2740 (eq system-type 'windows-nt)) 2742 (eq system-type 'windows-nt))
2741 (not (string-equal (substring fname 0 2) 2743 (not (string-equal (substring fname 0 2)
2742 (substring directory 0 2)))) 2744 (substring directory 0 2))))
@@ -3136,7 +3138,7 @@ prints a message in the minibuffer. Instead, use `set-buffer-modified-p'."
3136With arg, set read-only iff arg is positive. 3138With arg, set read-only iff arg is positive.
3137If visiting file read-only and `view-read-only' is non-nil, enter view mode." 3139If visiting file read-only and `view-read-only' is non-nil, enter view mode."
3138 (interactive "P") 3140 (interactive "P")
3139 (if (and arg 3141 (if (and arg
3140 (if (> (prefix-numeric-value arg) 0) buffer-read-only 3142 (if (> (prefix-numeric-value arg) 0) buffer-read-only
3141 (not buffer-read-only))) ; If buffer-read-only is set correctly, 3143 (not buffer-read-only))) ; If buffer-read-only is set correctly,
3142 nil ; do nothing. 3144 nil ; do nothing.
@@ -3881,7 +3883,7 @@ Existing quote characters in PATTERN are left alone, so you can pass
3881PATTERN that already quotes some of the special characters." 3883PATTERN that already quotes some of the special characters."
3882 (save-match-data 3884 (save-match-data
3883 (cond 3885 (cond
3884 ((memq system-type '(ms-dos windows-nt)) 3886 ((memq system-type '(ms-dos windows-nt cygwin))
3885 ;; DOS/Windows don't allow `"' in file names. So if the 3887 ;; DOS/Windows don't allow `"' in file names. So if the
3886 ;; argument has quotes, we can safely assume it is already 3888 ;; argument has quotes, we can safely assume it is already
3887 ;; quoted by the caller. 3889 ;; quoted by the caller.
@@ -4022,7 +4024,7 @@ If WILDCARD, it also runs the shell specified by `shell-file-name'."
4022 ;; bunch by one to preserve that property. 4024 ;; bunch by one to preserve that property.
4023 (coding-system-for-read 'no-conversion) 4025 (coding-system-for-read 'no-conversion)
4024 ;; This is to control encoding the arguments in call-process. 4026 ;; This is to control encoding the arguments in call-process.
4025 (coding-system-for-write 4027 (coding-system-for-write
4026 (and enable-multibyte-characters 4028 (and enable-multibyte-characters
4027 (or file-name-coding-system 4029 (or file-name-coding-system
4028 default-file-name-coding-system)))) 4030 default-file-name-coding-system))))
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index e57878b6e66..f5198d5eea1 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,7 @@
12003-01-31 Joe Buehler <jhpb@draco.hekimian.com>
2
3 * nnheader.el: Added cygwin to system-type comparisons.
4
12003-01-27 Juanma Barranquero <lektu@terra.es> 52003-01-27 Juanma Barranquero <lektu@terra.es>
2 6
3 * imap.el (imap-mailbox-status): Fix typo. 7 * imap.el (imap-mailbox-status): Fix typo.
diff --git a/lisp/gnus/nnheader.el b/lisp/gnus/nnheader.el
index 9fee7b776c5..53ab2d88ebb 100644
--- a/lisp/gnus/nnheader.el
+++ b/lisp/gnus/nnheader.el
@@ -47,7 +47,7 @@
47(defvar nnheader-head-chop-length 2048 47(defvar nnheader-head-chop-length 2048
48 "*Length of each read operation when trying to fetch HEAD headers.") 48 "*Length of each read operation when trying to fetch HEAD headers.")
49 49
50(defvar nnheader-file-name-translation-alist 50(defvar nnheader-file-name-translation-alist
51 (let ((case-fold-search t)) 51 (let ((case-fold-search t))
52 (cond 52 (cond
53 ((string-match "windows-nt\\|os/2\\|emx\\|cygwin32" 53 ((string-match "windows-nt\\|os/2\\|emx\\|cygwin32"
@@ -653,12 +653,12 @@ If FULL, translate everything."
653 ;; We translate -- but only the file name. We leave the directory 653 ;; We translate -- but only the file name. We leave the directory
654 ;; alone. 654 ;; alone.
655 (if (and (featurep 'xemacs) 655 (if (and (featurep 'xemacs)
656 (memq system-type '(win32 w32 mswindows windows-nt))) 656 (memq system-type '(win32 w32 mswindows windows-nt cygwin)))
657 ;; This is needed on NT and stuff, because 657 ;; This is needed on NT and stuff, because
658 ;; file-name-nondirectory is not enough to split 658 ;; file-name-nondirectory is not enough to split
659 ;; file names, containing ':', e.g. 659 ;; file names, containing ':', e.g.
660 ;; "d:\\Work\\News\\nntp+news.fido7.ru:fido7.ru.gnu.SCORE" 660 ;; "d:\\Work\\News\\nntp+news.fido7.ru:fido7.ru.gnu.SCORE"
661 ;; 661 ;;
662 ;; we are trying to correctly split such names: 662 ;; we are trying to correctly split such names:
663 ;; "d:file.name" -> "a:" "file.name" 663 ;; "d:file.name" -> "a:" "file.name"
664 ;; "aaa:bbb.ccc" -> "" "aaa:bbb.ccc" 664 ;; "aaa:bbb.ccc" -> "" "aaa:bbb.ccc"
diff --git a/lisp/hippie-exp.el b/lisp/hippie-exp.el
index ba53e3a086c..499e99352e2 100644
--- a/lisp/hippie-exp.el
+++ b/lisp/hippie-exp.el
@@ -28,7 +28,7 @@
28 28
29;; `hippie-expand' is a single function for a lot of different kinds 29;; `hippie-expand' is a single function for a lot of different kinds
30;; of completions and expansions. Called repeatedly it tries all 30;; of completions and expansions. Called repeatedly it tries all
31;; possible completions in succession. 31;; possible completions in succession.
32;; Which kinds of completions to try, and in which order, is 32;; Which kinds of completions to try, and in which order, is
33;; determined by the contents of `hippie-expand-try-functions-list'. 33;; determined by the contents of `hippie-expand-try-functions-list'.
34;; Much customization of `hippie-expand' can be made by changing the 34;; Much customization of `hippie-expand' can be made by changing the
@@ -61,7 +61,7 @@
61;; characters of syntax '_' is considered part of the words to expand 61;; characters of syntax '_' is considered part of the words to expand
62;; dynamically. 62;; dynamically.
63;; See also the macro `make-hippie-expand-function' below. 63;; See also the macro `make-hippie-expand-function' below.
64;; 64;;
65;; A short description of the current try-functions in this file: 65;; A short description of the current try-functions in this file:
66;; `try-complete-file-name' : very convenient to have in any buffer, 66;; `try-complete-file-name' : very convenient to have in any buffer,
67;; and not just in the minibuffer or (some) shell-mode. It goes 67;; and not just in the minibuffer or (some) shell-mode. It goes
@@ -72,9 +72,9 @@
72;; a file name completed only as many characters as is unique. 72;; a file name completed only as many characters as is unique.
73;; `try-expand-all-abbrevs' : can be removed if you don't use abbrevs. 73;; `try-expand-all-abbrevs' : can be removed if you don't use abbrevs.
74;; Otherwise it looks through all abbrev-tables, starting with 74;; Otherwise it looks through all abbrev-tables, starting with
75;; the local followed by the global. 75;; the local followed by the global.
76;; `try-expand-line' : Searches the buffer for an entire line that 76;; `try-expand-line' : Searches the buffer for an entire line that
77;; begins exactly as the current line. Convenient sometimes, for 77;; begins exactly as the current line. Convenient sometimes, for
78;; example as a substitute for (or complement to) the history 78;; example as a substitute for (or complement to) the history
79;; list in shell-like buffers. At other times, only confusing. 79;; list in shell-like buffers. At other times, only confusing.
80;; `try-expand-line-all-buffers' : Like `try-expand-line' but searches 80;; `try-expand-line-all-buffers' : Like `try-expand-line' but searches
@@ -83,14 +83,14 @@
83;; `try-expand-list' : Tries to expand the text back to the nearest 83;; `try-expand-list' : Tries to expand the text back to the nearest
84;; open delimiter, to a whole list from the buffer. Convenient for 84;; open delimiter, to a whole list from the buffer. Convenient for
85;; example when writing lisp or TeX. 85;; example when writing lisp or TeX.
86;; `try-expand-list-all-buffers' : Like `try-expand-list' but searches 86;; `try-expand-list-all-buffers' : Like `try-expand-list' but searches
87;; in all buffers (except the current). 87;; in all buffers (except the current).
88;; `try-expand-dabbrev' : works exactly as dabbrev-expand (but of 88;; `try-expand-dabbrev' : works exactly as dabbrev-expand (but of
89;; course in a way compatible with the other try-functions). 89;; course in a way compatible with the other try-functions).
90;; `try-expand-dabbrev-all-buffers' : perhaps the most useful of them, 90;; `try-expand-dabbrev-all-buffers' : perhaps the most useful of them,
91;; like `dabbrev-expand' but searches all Emacs buffers (except the 91;; like `dabbrev-expand' but searches all Emacs buffers (except the
92;; current) for matching words. (No, I don't find this one 92;; current) for matching words. (No, I don't find this one
93;; particularly slow.) 93;; particularly slow.)
94;; `try-expand-dabbrev-visible': Searches the currently visible parts of 94;; `try-expand-dabbrev-visible': Searches the currently visible parts of
95;; all windows. Can be put before `try-expand-dabbrev-all-buffers' to 95;; all windows. Can be put before `try-expand-dabbrev-all-buffers' to
96;; first try the expansions you can see. 96;; first try the expansions you can see.
@@ -108,7 +108,7 @@
108;; already has a key of its own, you might want to remove this. 108;; already has a key of its own, you might want to remove this.
109;; `try-complete-lisp-symbol-partially' : To insert in the list just 109;; `try-complete-lisp-symbol-partially' : To insert in the list just
110;; before `try-complete-lisp-symbol' for those who first want to get 110;; before `try-complete-lisp-symbol' for those who first want to get
111;; completion of what is unique in the name. 111;; completion of what is unique in the name.
112;; 112;;
113;; Not all of the above functions are by default in 113;; Not all of the above functions are by default in
114;; `hippie-expand-try-functions-list'. This variable is better set 114;; `hippie-expand-try-functions-list'. This variable is better set
@@ -143,14 +143,14 @@
143;; `he-reset-string' : Resets the initialized region to its original 143;; `he-reset-string' : Resets the initialized region to its original
144;; contents. 144;; contents.
145;; There is also a variable: `he-tried-table' which is meant to contain 145;; There is also a variable: `he-tried-table' which is meant to contain
146;; all tried expansions so far. The try-function can check this 146;; all tried expansions so far. The try-function can check this
147;; variable to see whether an expansion has already been tried 147;; variable to see whether an expansion has already been tried
148;; (hint: `he-string-member'). 148;; (hint: `he-string-member').
149;; 149;;
150;; Known bugs 150;; Known bugs
151;; 151;;
152;; It may happen that some completion suggestion occurs twice, in 152;; It may happen that some completion suggestion occurs twice, in
153;; spite of the use of `he-tried-table' to prevent that. This is 153;; spite of the use of `he-tried-table' to prevent that. This is
154;; because different try-functions may try to complete different 154;; because different try-functions may try to complete different
155;; lengths of text, and thus put different amounts of the 155;; lengths of text, and thus put different amounts of the
156;; text in `he-tried-table'. Anyway this seems to occur seldom enough 156;; text in `he-tried-table'. Anyway this seems to occur seldom enough
@@ -274,12 +274,12 @@ Can contain both regexps matching buffer names (as strings) and major modes
274The expansion functions in `hippie-expand-try-functions-list' are 274The expansion functions in `hippie-expand-try-functions-list' are
275tried in order, until a possible expansion is found. Repeated 275tried in order, until a possible expansion is found. Repeated
276application of `hippie-expand' inserts successively possible 276application of `hippie-expand' inserts successively possible
277expansions. 277expansions.
278With a positive numeric argument, jumps directly to the ARG next 278With a positive numeric argument, jumps directly to the ARG next
279function in this list. With a negative argument or just \\[universal-argument], 279function in this list. With a negative argument or just \\[universal-argument],
280undoes the expansion." 280undoes the expansion."
281 (interactive "P") 281 (interactive "P")
282 (if (or (not arg) 282 (if (or (not arg)
283 (and (integerp arg) (> arg 0))) 283 (and (integerp arg) (> arg 0)))
284 (let ((first (or (= he-num -1) 284 (let ((first (or (= he-num -1)
285 (not (equal this-command last-command))))) 285 (not (equal this-command last-command)))))
@@ -292,7 +292,7 @@ undoes the expansion."
292 (setq arg 0)) 292 (setq arg 0))
293 (let ((i (max (+ he-num arg) 0))) 293 (let ((i (max (+ he-num arg) 0)))
294 (while (not (or (>= i (length hippie-expand-try-functions-list)) 294 (while (not (or (>= i (length hippie-expand-try-functions-list))
295 (apply (nth i hippie-expand-try-functions-list) 295 (apply (nth i hippie-expand-try-functions-list)
296 (list (= he-num i))))) 296 (list (= he-num i)))))
297 (setq i (1+ i))) 297 (setq i (1+ i)))
298 (setq he-num i)) 298 (setq he-num i))
@@ -331,7 +331,7 @@ undoes the expansion."
331 (goto-char newpos))) 331 (goto-char newpos)))
332 332
333;; Substitutes an expansion STR into the correct region (the region 333;; Substitutes an expansion STR into the correct region (the region
334;; initialized with `he-init-string'). 334;; initialized with `he-init-string').
335;; An optional argument TRANS-CASE means that it is ok to transfer case 335;; An optional argument TRANS-CASE means that it is ok to transfer case
336;; from the abbreviation to the expansion if that is possible, and is 336;; from the abbreviation to the expansion if that is possible, and is
337;; enabled in the buffer. 337;; enabled in the buffer.
@@ -413,14 +413,14 @@ undoes the expansion."
413;; (fset 'my-complete-line (make-hippie-expand-function 413;; (fset 'my-complete-line (make-hippie-expand-function
414;; '(try-expand-line 414;; '(try-expand-line
415;; try-expand-line-all-buffers))) 415;; try-expand-line-all-buffers)))
416;; 416;;
417;;;###autoload 417;;;###autoload
418(defmacro make-hippie-expand-function (try-list &optional verbose) 418(defmacro make-hippie-expand-function (try-list &optional verbose)
419 "Construct a function similar to `hippie-expand'. 419 "Construct a function similar to `hippie-expand'.
420Make it use the expansion functions in TRY-LIST. An optional second 420Make it use the expansion functions in TRY-LIST. An optional second
421argument VERBOSE non-nil makes the function verbose." 421argument VERBOSE non-nil makes the function verbose."
422 `(function (lambda (arg) 422 `(function (lambda (arg)
423 ,(concat 423 ,(concat
424 "Try to expand text before point, using the following functions: \n" 424 "Try to expand text before point, using the following functions: \n"
425 (mapconcat 'prin1-to-string (eval try-list) ", ")) 425 (mapconcat 'prin1-to-string (eval try-list) ", "))
426 (interactive "P") 426 (interactive "P")
@@ -438,7 +438,7 @@ The argument OLD has to be nil the first call of this function, and t
438for subsequent calls (for further possible completions of the same 438for subsequent calls (for further possible completions of the same
439string). It returns t if a new completion is found, nil otherwise." 439string). It returns t if a new completion is found, nil otherwise."
440 (if (not old) 440 (if (not old)
441 (progn 441 (progn
442 (he-init-string (he-file-name-beg) (point)) 442 (he-init-string (he-file-name-beg) (point))
443 (let ((name-part (he-file-name-nondirectory he-search-string)) 443 (let ((name-part (he-file-name-nondirectory he-search-string))
444 (dir-part (expand-file-name (or (he-file-name-directory 444 (dir-part (expand-file-name (or (he-file-name-directory
@@ -447,7 +447,7 @@ string). It returns t if a new completion is found, nil otherwise."
447 (setq he-tried-table (cons name-part he-tried-table))) 447 (setq he-tried-table (cons name-part he-tried-table)))
448 (if (and (not (equal he-search-string "")) 448 (if (and (not (equal he-search-string ""))
449 (he-file-directory-p dir-part)) 449 (he-file-directory-p dir-part))
450 (setq he-expand-list (sort (file-name-all-completions 450 (setq he-expand-list (sort (file-name-all-completions
451 name-part 451 name-part
452 dir-part) 452 dir-part)
453 'string-lessp)) 453 'string-lessp))
@@ -471,11 +471,11 @@ string). It returns t if a new completion is found, nil otherwise."
471(defun try-complete-file-name-partially (old) 471(defun try-complete-file-name-partially (old)
472 "Try to complete text as a file name, as many characters as unique. 472 "Try to complete text as a file name, as many characters as unique.
473The argument OLD has to be nil the first call of this function. It 473The argument OLD has to be nil the first call of this function. It
474returns t if a unique, possibly partial, completion is found, nil 474returns t if a unique, possibly partial, completion is found, nil
475otherwise." 475otherwise."
476 (let ((expansion ())) 476 (let ((expansion ()))
477 (if (not old) 477 (if (not old)
478 (progn 478 (progn
479 (he-init-string (he-file-name-beg) (point)) 479 (he-init-string (he-file-name-beg) (point))
480 (let ((name-part (he-file-name-nondirectory he-search-string)) 480 (let ((name-part (he-file-name-nondirectory he-search-string))
481 (dir-part (expand-file-name (or (he-file-name-directory 481 (dir-part (expand-file-name (or (he-file-name-directory
@@ -503,7 +503,7 @@ otherwise."
503(defvar he-file-name-chars 503(defvar he-file-name-chars
504 (cond ((memq system-type '(vax-vms axp-vms)) 504 (cond ((memq system-type '(vax-vms axp-vms))
505 "-a-zA-Z0-9_/.,~^#$+=:\\[\\]") 505 "-a-zA-Z0-9_/.,~^#$+=:\\[\\]")
506 ((memq system-type '(ms-dos windows-nt)) 506 ((memq system-type '(ms-dos windows-nt cygwin))
507 "-a-zA-Z0-9_/.,~^#$+=:\\\\") 507 "-a-zA-Z0-9_/.,~^#$+=:\\\\")
508 (t ;; More strange file formats ? 508 (t ;; More strange file formats ?
509 "-a-zA-Z0-9_/.,~^#$+=")) 509 "-a-zA-Z0-9_/.,~^#$+="))
@@ -518,7 +518,7 @@ otherwise."
518 (point))))) 518 (point)))))
519 519
520;; Thanks go to Richard Levitte <levitte@e.kth.se> who helped to make these 520;; Thanks go to Richard Levitte <levitte@e.kth.se> who helped to make these
521;; work under VMS, and to David Hughes <ukchugd@ukpmr.cs.philips.nl> who 521;; work under VMS, and to David Hughes <ukchugd@ukpmr.cs.philips.nl> who
522;; helped to make it work on PC. 522;; helped to make it work on PC.
523(defun he-file-name-nondirectory (file) 523(defun he-file-name-nondirectory (file)
524 "Fix to make `file-name-nondirectory' work for hippie-expand under VMS." 524 "Fix to make `file-name-nondirectory' work for hippie-expand under VMS."
@@ -545,7 +545,7 @@ otherwise."
545 (or (file-directory-p file) 545 (or (file-directory-p file)
546 (file-directory-p (concat file "[000000]"))) 546 (file-directory-p (concat file "[000000]")))
547 (file-directory-p file))) 547 (file-directory-p file)))
548 548
549(defun he-concat-directory-file-name (dir-part name-part) 549(defun he-concat-directory-file-name (dir-part name-part)
550 "Try to slam together two parts of a file specification, system dependently." 550 "Try to slam together two parts of a file specification, system dependently."
551 (cond ((null dir-part) name-part) 551 (cond ((null dir-part) name-part)
@@ -560,20 +560,20 @@ otherwise."
560 (= (aref name-part (1- (length name-part))) ?/)) 560 (= (aref name-part (1- (length name-part))) ?/))
561 (aset name-part (1- (length name-part)) ?\\)) 561 (aset name-part (1- (length name-part)) ?\\))
562 (concat dir-part name-part)) 562 (concat dir-part name-part))
563 (t 563 (t
564 (concat dir-part name-part)))) 564 (concat dir-part name-part))))
565 565
566(defun try-complete-lisp-symbol (old) 566(defun try-complete-lisp-symbol (old)
567 "Try to complete word as an Emacs Lisp symbol. 567 "Try to complete word as an Emacs Lisp symbol.
568The argument OLD has to be nil the first call of this function, and t 568The argument OLD has to be nil the first call of this function, and t
569for subsequent calls (for further possible completions of the same 569for subsequent calls (for further possible completions of the same
570string). It returns t if a new completion is found, nil otherwise." 570string). It returns t if a new completion is found, nil otherwise."
571 (if (not old) 571 (if (not old)
572 (progn 572 (progn
573 (he-init-string (he-lisp-symbol-beg) (point)) 573 (he-init-string (he-lisp-symbol-beg) (point))
574 (if (not (he-string-member he-search-string he-tried-table)) 574 (if (not (he-string-member he-search-string he-tried-table))
575 (setq he-tried-table (cons he-search-string he-tried-table))) 575 (setq he-tried-table (cons he-search-string he-tried-table)))
576 (setq he-expand-list 576 (setq he-expand-list
577 (and (not (equal he-search-string "")) 577 (and (not (equal he-search-string ""))
578 (sort (all-completions he-search-string obarray 578 (sort (all-completions he-search-string obarray
579 (function (lambda (sym) 579 (function (lambda (sym)
@@ -596,14 +596,14 @@ string). It returns t if a new completion is found, nil otherwise."
596(defun try-complete-lisp-symbol-partially (old) 596(defun try-complete-lisp-symbol-partially (old)
597 "Try to complete as an Emacs Lisp symbol, as many characters as unique. 597 "Try to complete as an Emacs Lisp symbol, as many characters as unique.
598The argument OLD has to be nil the first call of this function. It 598The argument OLD has to be nil the first call of this function. It
599returns t if a unique, possibly partial, completion is found, nil 599returns t if a unique, possibly partial, completion is found, nil
600otherwise." 600otherwise."
601 (let ((expansion ())) 601 (let ((expansion ()))
602 (if (not old) 602 (if (not old)
603 (progn 603 (progn
604 (he-init-string (he-lisp-symbol-beg) (point)) 604 (he-init-string (he-lisp-symbol-beg) (point))
605 (if (not (string= he-search-string "")) 605 (if (not (string= he-search-string ""))
606 (setq expansion 606 (setq expansion
607 (try-completion he-search-string obarray 607 (try-completion he-search-string obarray
608 (function (lambda (sym) 608 (function (lambda (sym)
609 (or (boundp sym) 609 (or (boundp sym)
@@ -649,7 +649,7 @@ string). It returns t if a new completion is found, nil otherwise."
649 (widen)) 649 (widen))
650 ;; Try looking backward unless inhibited. 650 ;; Try looking backward unless inhibited.
651 (if he-search-bw 651 (if he-search-bw
652 (progn 652 (progn
653 (goto-char he-search-loc) 653 (goto-char he-search-loc)
654 (setq expansion (he-line-search he-search-string 654 (setq expansion (he-line-search he-search-string
655 strip-prompt t)) 655 strip-prompt t))
@@ -660,9 +660,9 @@ string). It returns t if a new completion is found, nil otherwise."
660 (setq he-search-bw ()))))) 660 (setq he-search-bw ())))))
661 661
662 (if (not expansion) ; Then look forward. 662 (if (not expansion) ; Then look forward.
663 (progn 663 (progn
664 (goto-char he-search-loc) 664 (goto-char he-search-loc)
665 (setq expansion (he-line-search he-search-string 665 (setq expansion (he-line-search he-search-string
666 strip-prompt nil)) 666 strip-prompt nil))
667 (set-marker he-search-loc (point))))))) 667 (set-marker he-search-loc (point)))))))
668 668
@@ -693,7 +693,7 @@ string). It returns t if a new completion is found, nil otherwise."
693 (set-marker he-search-loc 1 (car he-search-bufs)))) 693 (set-marker he-search-loc 1 (car he-search-bufs))))
694 694
695 (if (not (equal he-search-string "")) 695 (if (not (equal he-search-string ""))
696 (while (and he-search-bufs 696 (while (and he-search-bufs
697 (not expansion) 697 (not expansion)
698 (or (not hippie-expand-max-buffers) 698 (or (not hippie-expand-max-buffers)
699 (< he-searched-n-bufs hippie-expand-max-buffers))) 699 (< he-searched-n-bufs hippie-expand-max-buffers)))
@@ -710,7 +710,7 @@ string). It returns t if a new completion is found, nil otherwise."
710 (setq strip-prompt (and (get-buffer-process (current-buffer)) 710 (setq strip-prompt (and (get-buffer-process (current-buffer))
711 comint-use-prompt-regexp-instead-of-fields 711 comint-use-prompt-regexp-instead-of-fields
712 comint-prompt-regexp)) 712 comint-prompt-regexp))
713 (setq expansion 713 (setq expansion
714 (let ((case-fold-search orig-case-fold-search)) 714 (let ((case-fold-search orig-case-fold-search))
715 (he-line-search he-search-string 715 (he-line-search he-search-string
716 strip-prompt nil))) 716 strip-prompt nil)))
@@ -732,11 +732,11 @@ string). It returns t if a new completion is found, nil otherwise."
732 (he-substitute-string expansion t) 732 (he-substitute-string expansion t)
733 t)))) 733 t))))
734 734
735(defun he-line-search (str strip-prompt reverse) 735(defun he-line-search (str strip-prompt reverse)
736 (let ((result ())) 736 (let ((result ()))
737 (while (and (not result) 737 (while (and (not result)
738 (if reverse 738 (if reverse
739 (re-search-backward 739 (re-search-backward
740 (he-line-search-regexp str strip-prompt) 740 (he-line-search-regexp str strip-prompt)
741 nil t) 741 nil t)
742 (re-search-forward 742 (re-search-forward
@@ -750,7 +750,7 @@ string). It returns t if a new completion is found, nil otherwise."
750 750
751(defun he-line-beg (strip-prompt) 751(defun he-line-beg (strip-prompt)
752 (save-excursion 752 (save-excursion
753 (if (re-search-backward (he-line-search-regexp "" strip-prompt) 753 (if (re-search-backward (he-line-search-regexp "" strip-prompt)
754 (save-excursion (beginning-of-line) 754 (save-excursion (beginning-of-line)
755 (point)) t) 755 (point)) t)
756 (match-beginning 2) 756 (match-beginning 2)
@@ -761,7 +761,7 @@ string). It returns t if a new completion is found, nil otherwise."
761 (concat "\\(" comint-prompt-regexp "\\|^\\s-*\\)\\(" 761 (concat "\\(" comint-prompt-regexp "\\|^\\s-*\\)\\("
762 (regexp-quote pat) 762 (regexp-quote pat)
763 "[^\n]*[^ \t\n]\\)") 763 "[^\n]*[^ \t\n]\\)")
764 (concat "^\\(\\s-*\\)\\(" 764 (concat "^\\(\\s-*\\)\\("
765 (regexp-quote pat) 765 (regexp-quote pat)
766 "[^\n]*[^ \t\n]\\)"))) 766 "[^\n]*[^ \t\n]\\)")))
767 767
@@ -784,7 +784,7 @@ string). It returns t if a new completion is found, nil otherwise."
784 (widen)) 784 (widen))
785 ;; Try looking backward unless inhibited. 785 ;; Try looking backward unless inhibited.
786 (if he-search-bw 786 (if he-search-bw
787 (progn 787 (progn
788 (goto-char he-search-loc) 788 (goto-char he-search-loc)
789 (setq expansion (he-list-search he-search-string t)) 789 (setq expansion (he-list-search he-search-string t))
790 (set-marker he-search-loc (point)) 790 (set-marker he-search-loc (point))
@@ -794,7 +794,7 @@ string). It returns t if a new completion is found, nil otherwise."
794 (setq he-search-bw ()))))) 794 (setq he-search-bw ())))))
795 795
796 (if (not expansion) ; Then look forward. 796 (if (not expansion) ; Then look forward.
797 (progn 797 (progn
798 (goto-char he-search-loc) 798 (goto-char he-search-loc)
799 (setq expansion (he-list-search he-search-string nil)) 799 (setq expansion (he-list-search he-search-string nil))
800 (set-marker he-search-loc (point))))))) 800 (set-marker he-search-loc (point)))))))
@@ -823,7 +823,7 @@ string). It returns t if a new completion is found, nil otherwise."
823 (set-marker he-search-loc 1 (car he-search-bufs)))) 823 (set-marker he-search-loc 1 (car he-search-bufs))))
824 824
825 (if (not (equal he-search-string "")) 825 (if (not (equal he-search-string ""))
826 (while (and he-search-bufs 826 (while (and he-search-bufs
827 (not expansion) 827 (not expansion)
828 (or (not hippie-expand-max-buffers) 828 (or (not hippie-expand-max-buffers)
829 (< he-searched-n-bufs hippie-expand-max-buffers))) 829 (< he-searched-n-bufs hippie-expand-max-buffers)))
@@ -837,7 +837,7 @@ string). It returns t if a new completion is found, nil otherwise."
837 (if hippie-expand-no-restriction 837 (if hippie-expand-no-restriction
838 (widen)) 838 (widen))
839 (goto-char he-search-loc) 839 (goto-char he-search-loc)
840 (setq expansion 840 (setq expansion
841 (let ((case-fold-search orig-case-fold-search)) 841 (let ((case-fold-search orig-case-fold-search))
842 (he-list-search he-search-string nil))) 842 (he-list-search he-search-string nil)))
843 (set-marker he-search-loc (point)) 843 (set-marker he-search-loc (point))
@@ -858,7 +858,7 @@ string). It returns t if a new completion is found, nil otherwise."
858 (he-substitute-string expansion t) 858 (he-substitute-string expansion t)
859 t)))) 859 t))))
860 860
861(defun he-list-search (str reverse) 861(defun he-list-search (str reverse)
862 (let ((result ()) 862 (let ((result ())
863 beg pos err) 863 beg pos err)
864 (while (and (not result) 864 (while (and (not result)
@@ -872,7 +872,7 @@ string). It returns t if a new completion is found, nil otherwise."
872 (condition-case () 872 (condition-case ()
873 (forward-list 1) 873 (forward-list 1)
874 (error (setq err t))) 874 (error (setq err t)))
875 (if (and reverse 875 (if (and reverse
876 (> (point) he-string-beg)) 876 (> (point) he-string-beg))
877 (setq err t)) 877 (setq err t))
878 (if (not err) 878 (if (not err)
@@ -898,13 +898,13 @@ string). It returns t if a new expansion is found, nil otherwise."
898 (if (not old) 898 (if (not old)
899 (progn 899 (progn
900 (he-init-string (he-dabbrev-beg) (point)) 900 (he-init-string (he-dabbrev-beg) (point))
901 (setq he-expand-list 901 (setq he-expand-list
902 (and (not (equal he-search-string "")) 902 (and (not (equal he-search-string ""))
903 (mapcar (function (lambda (sym) 903 (mapcar (function (lambda (sym)
904 (if (and (boundp sym) (vectorp (eval sym))) 904 (if (and (boundp sym) (vectorp (eval sym)))
905 (abbrev-expansion (downcase he-search-string) 905 (abbrev-expansion (downcase he-search-string)
906 (eval sym))))) 906 (eval sym)))))
907 (append '(local-abbrev-table 907 (append '(local-abbrev-table
908 global-abbrev-table) 908 global-abbrev-table)
909 abbrev-table-name-list)))))) 909 abbrev-table-name-list))))))
910 (while (and he-expand-list 910 (while (and he-expand-list
@@ -939,7 +939,7 @@ string). It returns t if a new expansion is found, nil otherwise."
939 (widen)) 939 (widen))
940 ;; Try looking backward unless inhibited. 940 ;; Try looking backward unless inhibited.
941 (if he-search-bw 941 (if he-search-bw
942 (progn 942 (progn
943 (goto-char he-search-loc) 943 (goto-char he-search-loc)
944 (setq expansion (he-dabbrev-search he-search-string t)) 944 (setq expansion (he-dabbrev-search he-search-string t))
945 (set-marker he-search-loc (point)) 945 (set-marker he-search-loc (point))
@@ -949,11 +949,11 @@ string). It returns t if a new expansion is found, nil otherwise."
949 (setq he-search-bw ()))))) 949 (setq he-search-bw ())))))
950 950
951 (if (not expansion) ; Then look forward. 951 (if (not expansion) ; Then look forward.
952 (progn 952 (progn
953 (goto-char he-search-loc) 953 (goto-char he-search-loc)
954 (setq expansion (he-dabbrev-search he-search-string nil)) 954 (setq expansion (he-dabbrev-search he-search-string nil))
955 (set-marker he-search-loc (point))))))) 955 (set-marker he-search-loc (point)))))))
956 956
957 (if (not expansion) 957 (if (not expansion)
958 (progn 958 (progn
959 (if old (he-reset-string)) 959 (if old (he-reset-string))
@@ -978,7 +978,7 @@ string). It returns t if a new expansion is found, nil otherwise."
978 (set-marker he-search-loc 1 (car he-search-bufs)))) 978 (set-marker he-search-loc 1 (car he-search-bufs))))
979 979
980 (if (not (equal he-search-string "")) 980 (if (not (equal he-search-string ""))
981 (while (and he-search-bufs 981 (while (and he-search-bufs
982 (not expansion) 982 (not expansion)
983 (or (not hippie-expand-max-buffers) 983 (or (not hippie-expand-max-buffers)
984 (< he-searched-n-bufs hippie-expand-max-buffers))) 984 (< he-searched-n-bufs hippie-expand-max-buffers)))
@@ -1047,13 +1047,13 @@ string). It returns t if a new expansion is found, nil otherwise."
1047 (window-end he-search-window)))) 1047 (window-end he-search-window))))
1048 (set-marker he-search-loc (point) (current-buffer))) 1048 (set-marker he-search-loc (point) (current-buffer)))
1049 (if (not expansion) 1049 (if (not expansion)
1050 (progn 1050 (progn
1051 (setq he-search-window (next-window he-search-window nil flag)) 1051 (setq he-search-window (next-window he-search-window nil flag))
1052 (if (eq he-search-window (selected-window)) 1052 (if (eq he-search-window (selected-window))
1053 (set-marker he-search-loc nil) 1053 (set-marker he-search-loc nil)
1054 (set-marker he-search-loc (window-start he-search-window) 1054 (set-marker he-search-loc (window-start he-search-window)
1055 (window-buffer he-search-window)))))) 1055 (window-buffer he-search-window))))))
1056 1056
1057 (set-buffer buf) 1057 (set-buffer buf)
1058 (if (not expansion) 1058 (if (not expansion)
1059 (progn 1059 (progn
@@ -1072,7 +1072,7 @@ string). It returns t if a new expansion is found, nil otherwise."
1072 (t 1072 (t
1073 (concat "\\<" (regexp-quote pattern) 1073 (concat "\\<" (regexp-quote pattern)
1074 "\\(\\sw\\|\\s_\\)+"))))) 1074 "\\(\\sw\\|\\s_\\)+")))))
1075 (while (and (not result) 1075 (while (and (not result)
1076 (if reverse 1076 (if reverse
1077 (re-search-backward regpat limit t) 1077 (re-search-backward regpat limit t)
1078 (re-search-forward regpat limit t))) 1078 (re-search-forward regpat limit t)))
@@ -1104,7 +1104,7 @@ for subsequent calls (for further possible completions of the same
1104string). It returns t if a new completion is found, nil otherwise." 1104string). It returns t if a new completion is found, nil otherwise."
1105 (let ((expansion ())) 1105 (let ((expansion ()))
1106 (if (not old) 1106 (if (not old)
1107 (progn 1107 (progn
1108 (he-init-string (he-dabbrev-beg) (point)) 1108 (he-init-string (he-dabbrev-beg) (point))
1109 (setq he-expand-list 1109 (setq he-expand-list
1110 (if (not (equal he-search-string "")) 1110 (if (not (equal he-search-string ""))
@@ -1130,7 +1130,7 @@ string). It returns t if a new completion is found, nil otherwise."
1130 (concat "\\<" (regexp-quote pattern) 1130 (concat "\\<" (regexp-quote pattern)
1131 "\\(\\sw\\|\\s_\\)+")))) 1131 "\\(\\sw\\|\\s_\\)+"))))
1132 (killstr (car he-expand-list))) 1132 (killstr (car he-expand-list)))
1133 (while (and (not result) 1133 (while (and (not result)
1134 he-expand-list) 1134 he-expand-list)
1135 (while (and (not result) 1135 (while (and (not result)
1136 (string-match regpat killstr he-search-loc2)) 1136 (string-match regpat killstr he-search-loc2))
@@ -1143,10 +1143,10 @@ string). It returns t if a new completion is found, nil otherwise."
1143 '(?_ ?w))) 1143 '(?_ ?w)))
1144 (he-string-member result he-tried-table t)) 1144 (he-string-member result he-tried-table t))
1145 (setq result nil))) ; ignore if bad prefix or already in table 1145 (setq result nil))) ; ignore if bad prefix or already in table
1146 (if (and (not result) 1146 (if (and (not result)
1147 he-expand-list) 1147 he-expand-list)
1148 (progn 1148 (progn
1149 (setq he-expand-list (cdr he-expand-list)) 1149 (setq he-expand-list (cdr he-expand-list))
1150 (setq killstr (car he-expand-list)) 1150 (setq killstr (car he-expand-list))
1151 (setq he-search-loc2 0)))) 1151 (setq he-search-loc2 0))))
1152 result)) 1152 result))
@@ -1158,11 +1158,11 @@ for subsequent calls (for further possible completions of the same
1158string). It returns t if a new completion is found, nil otherwise." 1158string). It returns t if a new completion is found, nil otherwise."
1159 (let ((expansion ())) 1159 (let ((expansion ()))
1160 (if (not old) 1160 (if (not old)
1161 (progn 1161 (progn
1162 (he-init-string (he-kill-beg) (point)) 1162 (he-init-string (he-kill-beg) (point))
1163 (if (not (he-string-member he-search-string he-tried-table)) 1163 (if (not (he-string-member he-search-string he-tried-table))
1164 (setq he-tried-table (cons he-search-string he-tried-table))) 1164 (setq he-tried-table (cons he-search-string he-tried-table)))
1165 (setq he-expand-list 1165 (setq he-expand-list
1166 (if (not (equal he-search-string "")) 1166 (if (not (equal he-search-string ""))
1167 kill-ring)) 1167 kill-ring))
1168 (setq he-search-loc2 ()))) 1168 (setq he-search-loc2 ())))
@@ -1206,7 +1206,7 @@ string). It returns t if a new completion is found, nil otherwise."
1206 (if (and (not result) 1206 (if (and (not result)
1207 he-expand-list) 1207 he-expand-list)
1208 (progn 1208 (progn
1209 (setq he-expand-list (cdr he-expand-list)) 1209 (setq he-expand-list (cdr he-expand-list))
1210 (setq killstr (car he-expand-list)) 1210 (setq killstr (car he-expand-list))
1211 (setq pos -1)))) 1211 (setq pos -1))))
1212 result)) 1212 result))
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index c2c53f5b042..0573b0046a6 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -1631,7 +1631,7 @@ This is used for loading and byte-compiling Emacs Lisp files.")
1631(defun auto-coding-alist-lookup (filename) 1631(defun auto-coding-alist-lookup (filename)
1632 "Return the coding system specified by `auto-coding-alist' for FILENAME." 1632 "Return the coding system specified by `auto-coding-alist' for FILENAME."
1633 (let ((alist auto-coding-alist) 1633 (let ((alist auto-coding-alist)
1634 (case-fold-search (memq system-type '(vax-vms windows-nt ms-dos))) 1634 (case-fold-search (memq system-type '(vax-vms windows-nt ms-dos cygwin)))
1635 coding-system) 1635 coding-system)
1636 (while (and alist (not coding-system)) 1636 (while (and alist (not coding-system))
1637 (if (string-match (car (car alist)) filename) 1637 (if (string-match (car (car alist)) filename)
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
index 0a417a22f0f..0ebc41150df 100644
--- a/lisp/net/browse-url.el
+++ b/lisp/net/browse-url.el
@@ -227,7 +227,7 @@
227 227
228;;;###autoload 228;;;###autoload
229(defcustom browse-url-browser-function 229(defcustom browse-url-browser-function
230 (if (memq system-type '(windows-nt ms-dos)) 230 (if (memq system-type '(windows-nt ms-dos cygwin))
231 'browse-url-default-windows-browser 231 'browse-url-default-windows-browser
232 'browse-url-default-browser) 232 'browse-url-default-browser)
233 "*Function to display the current buffer in a WWW browser. 233 "*Function to display the current buffer in a WWW browser.
@@ -381,7 +381,7 @@ commands reverses the effect of this variable. Requires Netscape version
381 ;; it in anonymous cases. If it's not anonymous the next regexp 381 ;; it in anonymous cases. If it's not anonymous the next regexp
382 ;; applies. 382 ;; applies.
383 ("^/\\([^:@]+@\\)?\\([^:]+\\):/*" . "ftp://\\1\\2/") 383 ("^/\\([^:@]+@\\)?\\([^:]+\\):/*" . "ftp://\\1\\2/")
384 (,@ (if (memq system-type '(windows-nt ms-dos)) 384 (,@ (if (memq system-type '(windows-nt ms-dos cygwin))
385 '(("^\\([a-zA-Z]:\\)[\\/]" . "file:\\1/") 385 '(("^\\([a-zA-Z]:\\)[\\/]" . "file:\\1/")
386 ("^[\\/][\\/]+" . "file://")))) 386 ("^[\\/][\\/]+" . "file://"))))
387 ("^/+" . "file:/"))) 387 ("^/+" . "file:/")))
@@ -972,7 +972,7 @@ effect of `browse-url-new-window-flag'.
972 972
973When called non-interactively, optional second argument NEW-WINDOW is 973When called non-interactively, optional second argument NEW-WINDOW is
974used instead of `browse-url-new-window-flag'." 974used instead of `browse-url-new-window-flag'."
975 (interactive (browse-url-interactive-arg "URL: ")) 975 (interactive (browse-url-interactive-arg "URL: "))
976 (apply 'start-process (concat "gnome-moz-remote " url) 976 (apply 'start-process (concat "gnome-moz-remote " url)
977 nil 977 nil
978 "gnome-moz-remote" 978 "gnome-moz-remote"
diff --git a/lisp/pcomplete.el b/lisp/pcomplete.el
index 7a3f7aaae3a..cc4b876477a 100644
--- a/lisp/pcomplete.el
+++ b/lisp/pcomplete.el
@@ -139,7 +139,7 @@
139 :type '(choice regexp (const :tag "None" nil)) 139 :type '(choice regexp (const :tag "None" nil))
140 :group 'pcomplete) 140 :group 'pcomplete)
141 141
142(defcustom pcomplete-ignore-case (memq system-type '(ms-dos windows-nt)) 142(defcustom pcomplete-ignore-case (memq system-type '(ms-dos windows-nt cygwin))
143 "*If non-nil, ignore case when doing filename completion." 143 "*If non-nil, ignore case when doing filename completion."
144 :type 'boolean 144 :type 'boolean
145 :group 'pcomplete) 145 :group 'pcomplete)
diff --git a/lisp/recentf.el b/lisp/recentf.el
index 72e026ab2db..f7683e30698 100644
--- a/lisp/recentf.el
+++ b/lisp/recentf.el
@@ -156,7 +156,7 @@ The filter function is called with one argument, the list of menu elements
156used to build the menu and must return a new list of menu elements (see 156used to build the menu and must return a new list of menu elements (see
157`recentf-make-menu-element' for menu element form)." 157`recentf-make-menu-element' for menu element form)."
158 :group 'recentf 158 :group 'recentf
159 :type '(radio (const nil) 159 :type '(radio (const nil)
160 (function-item recentf-sort-ascending) 160 (function-item recentf-sort-ascending)
161 (function-item recentf-sort-descending) 161 (function-item recentf-sort-descending)
162 (function-item recentf-sort-basenames-ascending) 162 (function-item recentf-sort-basenames-ascending)
@@ -201,7 +201,7 @@ used to build the menu and must return a new list of menu elements (see
201;;;; Common functions 201;;;; Common functions
202;;;; 202;;;;
203(defconst recentf-case-fold-search 203(defconst recentf-case-fold-search
204 (memq system-type '(vax-vms windows-nt)) 204 (memq system-type '(vax-vms windows-nt cygwin))
205 "Non-nil if recentf searches and matches should ignore case.") 205 "Non-nil if recentf searches and matches should ignore case.")
206 206
207(defun recentf-include-p (filename) 207(defun recentf-include-p (filename)
@@ -676,7 +676,7 @@ Arrange them in sub-menus following rules in `recentf-arrange-rules'."
676 ;; It is important to preserve auto-mode-alist order 676 ;; It is important to preserve auto-mode-alist order
677 ;; to ensure the right file <-> mode association 677 ;; to ensure the right file <-> mode association
678 (nreverse rules))) 678 (nreverse rules)))
679 679
680(defun recentf-arrange-by-mode (l) 680(defun recentf-arrange-by-mode (l)
681 "Filter the list of menu-elements L to build sub-menus for each major mode." 681 "Filter the list of menu-elements L to build sub-menus for each major mode."
682 (let ((recentf-arrange-rules (recentf-build-mode-rules)) 682 (let ((recentf-arrange-rules (recentf-build-mode-rules))
@@ -765,7 +765,7 @@ Each filter is defined by a pair (FILTER-FUN . FILTER-LBL) where:
765 (setq filters (cdr filters))))) 765 (setq filters (cdr filters)))))
766 (if (consp filters) 766 (if (consp filters)
767 (car filters)))) 767 (car filters))))
768 768
769(defun recentf-filter-changer (l) 769(defun recentf-filter-changer (l)
770 "Manage a ring of filters. 770 "Manage a ring of filters.
771`recentf-filter-changer-alist' defines the filters in the ring. 771`recentf-filter-changer-alist' defines the filters in the ring.
@@ -888,7 +888,7 @@ Holds list of files to be deleted from `recentf-list'.")
888 (setq recentf-edit-selected-items 888 (setq recentf-edit-selected-items
889 (nconc (list value) recentf-edit-selected-items)) 889 (nconc (list value) recentf-edit-selected-items))
890 (message "%s added to selection." value))))) 890 (message "%s added to selection." value)))))
891 891
892;;;###autoload 892;;;###autoload
893(defun recentf-edit-list () 893(defun recentf-edit-list ()
894 "Allow the user to edit the files that are kept in the recent list." 894 "Allow the user to edit the files that are kept in the recent list."
diff --git a/lisp/shell.el b/lisp/shell.el
index fa4f31ce5f0..77ad7f2808c 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -165,7 +165,7 @@ shell buffer. The value may depend on the operating system or shell.
165This is a fine thing to set in your `.emacs' file.") 165This is a fine thing to set in your `.emacs' file.")
166 166
167(defvar shell-file-name-chars 167(defvar shell-file-name-chars
168 (if (memq system-type '(ms-dos windows-nt)) 168 (if (memq system-type '(ms-dos windows-nt cygwin))
169 "~/A-Za-z0-9_^$!#%&{}@`'.,:()-" 169 "~/A-Za-z0-9_^$!#%&{}@`'.,:()-"
170 "~/A-Za-z0-9+@:_.$#%,={}-") 170 "~/A-Za-z0-9+@:_.$#%,={}-")
171 "String of characters valid in a file name. 171 "String of characters valid in a file name.
diff --git a/lisp/woman.el b/lisp/woman.el
index 115e70546bb..c3becb5186e 100644
--- a/lisp/woman.el
+++ b/lisp/woman.el
@@ -1347,7 +1347,7 @@ Any UN*X-style environment variables are evaluated first."
1347 ;; including `.' and `..', so remove any trailing / !!! 1347 ;; including `.' and `..', so remove any trailing / !!!
1348 (if (string= (substring dir -1) "/") 1348 (if (string= (substring dir -1) "/")
1349 (setq dir (substring dir 0 -1))) 1349 (setq dir (substring dir 0 -1)))
1350 (if (memq system-type '(windows-nt ms-dos)) ; what else? 1350 (if (memq system-type '(windows-nt ms-dos cygwin)) ; what else?
1351 ;; Match capitalization used by `file-name-directory': 1351 ;; Match capitalization used by `file-name-directory':
1352 (setq dir (concat (file-name-directory dir) 1352 (setq dir (concat (file-name-directory dir)
1353 (file-name-nondirectory dir)))) 1353 (file-name-nondirectory dir))))
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index 4904f01859b..8f735ba3a99 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,7 @@
12003-01-31 Joe Buehler <jhpb@draco.hekimian.com>
2
3 * os.texi (System Environment): Added cygwin system-type.
4
12003-01-25 Richard M. Stallman <rms@gnu.org> 52003-01-25 Richard M. Stallman <rms@gnu.org>
2 6
3 * keymaps.texi: Document that a symbol can act as a keymap. 7 * keymaps.texi: Document that a symbol can act as a keymap.
@@ -24,6 +28,7 @@
24 * variables.texi (File Local Variables): Fix typo. 28 * variables.texi (File Local Variables): Fix typo.
25 29
262002-10-23 Kai Gro,A_(Bjohann <kai.grossjohann@uni-duisburg.de> 302002-10-23 Kai Gro,A_(Bjohann <kai.grossjohann@uni-duisburg.de>
31
27 From Michael Albinus <Michael.Albinus@alcatel.de>. 32 From Michael Albinus <Michael.Albinus@alcatel.de>.
28 33
29 * README: Target for Info file is `make info'. 34 * README: Target for Info file is `make info'.
diff --git a/lispref/os.texi b/lispref/os.texi
index 610fc651db3..6fa2c8925e7 100644
--- a/lispref/os.texi
+++ b/lispref/os.texi
@@ -1,7 +1,7 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
4@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
6@setfilename ../info/os 6@setfilename ../info/os
7@node System Interface, Antinews, Calendar, Top 7@node System Interface, Antinews, Calendar, Top
@@ -90,13 +90,13 @@ It loads the library @file{site-start}, unless the option
90@file{site-start.el}. 90@file{site-start.el}.
91@cindex @file{site-start.el} 91@cindex @file{site-start.el}
92 92
93@item 93@item
94It loads your init file (usually @file{~/.emacs}), unless @samp{-q}, 94It loads your init file (usually @file{~/.emacs}), unless @samp{-q},
95@samp{-no-init-file}, or @samp{-batch} was specified on the command line. 95@samp{-no-init-file}, or @samp{-batch} was specified on the command line.
96The @samp{-u} option can specify another user whose home directory 96The @samp{-u} option can specify another user whose home directory
97should be used instead of @file{~}. 97should be used instead of @file{~}.
98 98
99@item 99@item
100It loads the library @file{default}, unless @code{inhibit-default-init} 100It loads the library @file{default}, unless @code{inhibit-default-init}
101is non-@code{nil}. (This is not done in @samp{-batch} mode or if 101is non-@code{nil}. (This is not done in @samp{-batch} mode or if
102@samp{-q} was specified on the command line.) The library's file name 102@samp{-q} was specified on the command line.) The library's file name
@@ -111,7 +111,7 @@ It sets the major mode according to @code{initial-major-mode}, provided
111the buffer @samp{*scratch*} is still current and still in Fundamental 111the buffer @samp{*scratch*} is still current and still in Fundamental
112mode. 112mode.
113 113
114@item 114@item
115It loads the terminal-specific Lisp file, if any, except when in batch 115It loads the terminal-specific Lisp file, if any, except when in batch
116mode or using a window system. 116mode or using a window system.
117 117
@@ -119,10 +119,10 @@ mode or using a window system.
119It displays the initial echo area message, unless you have suppressed 119It displays the initial echo area message, unless you have suppressed
120that with @code{inhibit-startup-echo-area-message}. 120that with @code{inhibit-startup-echo-area-message}.
121 121
122@item 122@item
123It processes the action arguments from the command line. 123It processes the action arguments from the command line.
124 124
125@item 125@item
126It runs @code{emacs-startup-hook} and then @code{term-setup-hook}. 126It runs @code{emacs-startup-hook} and then @code{term-setup-hook}.
127 127
128@item 128@item
@@ -130,10 +130,10 @@ It calls @code{frame-notice-user-settings}, which modifies the
130parameters of the selected frame according to whatever the init files 130parameters of the selected frame according to whatever the init files
131specify. 131specify.
132 132
133@item 133@item
134It runs @code{window-setup-hook}. @xref{Window Systems}. 134It runs @code{window-setup-hook}. @xref{Window Systems}.
135 135
136@item 136@item
137It displays copyleft, nonwarranty, and basic use information, provided 137It displays copyleft, nonwarranty, and basic use information, provided
138there were no remaining command-line arguments (a few steps above), 138there were no remaining command-line arguments (a few steps above),
139the value of @code{inhibit-startup-message} is @code{nil}, and the 139the value of @code{inhibit-startup-message} is @code{nil}, and the
@@ -311,7 +311,7 @@ On MS-DOS, if the environment variable @code{TERM} is not set, Emacs
311uses @samp{internal} as the terminal type. 311uses @samp{internal} as the terminal type.
312@end defvar 312@end defvar
313 313
314@defvar term-setup-hook 314@defvar term-setup-hook
315This variable is a normal hook that Emacs runs after loading your 315This variable is a normal hook that Emacs runs after loading your
316init file, the default initialization file (if any) and the 316init file, the default initialization file (if any) and the
317terminal-specific Lisp file. 317terminal-specific Lisp file.
@@ -381,7 +381,7 @@ has the form:
381-@var{option} 381-@var{option}
382@end example 382@end example
383 383
384The elements of the @code{command-switch-alist} look like this: 384The elements of the @code{command-switch-alist} look like this:
385 385
386@example 386@example
387(@var{option} . @var{handler-function}) 387(@var{option} . @var{handler-function})
@@ -613,6 +613,9 @@ AIX.
613@item berkeley-unix 613@item berkeley-unix
614Berkeley BSD. 614Berkeley BSD.
615 615
616@item cygwin
617Cygwin.
618
616@item dgux 619@item dgux
617Data General DGUX operating system. 620Data General DGUX operating system.
618 621
@@ -732,10 +735,10 @@ of this variable.
732process-environment 735process-environment
733@result{} ("l=/usr/stanford/lib/gnuemacs/lisp" 736@result{} ("l=/usr/stanford/lib/gnuemacs/lisp"
734 "PATH=.:/user/lewis/bin:/usr/class:/nfsusr/local/bin" 737 "PATH=.:/user/lewis/bin:/usr/class:/nfsusr/local/bin"
735 "USER=lewis" 738 "USER=lewis"
736@end group 739@end group
737@group 740@group
738 "TERM=ibmapa16" 741 "TERM=ibmapa16"
739 "SHELL=/bin/csh" 742 "SHELL=/bin/csh"
740 "HOME=/user/lewis") 743 "HOME=/user/lewis")
741@end group 744@end group
@@ -925,7 +928,7 @@ This function returns the real @sc{uid} of the user.
925@end defun 928@end defun
926 929
927@defun user-uid 930@defun user-uid
928This function returns the effective @sc{uid} of the user. 931This function returns the effective @sc{uid} of the user.
929@end defun 932@end defun
930 933
931@node Time of Day 934@node Time of Day
@@ -1858,11 +1861,11 @@ To define system-specific X11 keysyms, set the variable
1858This variable's value should be an alist with one element for each 1861This variable's value should be an alist with one element for each
1859system-specific keysym. Each element has the form @code{(@var{code} 1862system-specific keysym. Each element has the form @code{(@var{code}
1860. @var{symbol})}, where @var{code} is the numeric keysym code (not 1863. @var{symbol})}, where @var{code} is the numeric keysym code (not
1861including the ``vendor specific'' bit, 1864including the ``vendor specific'' bit,
1862@ifnottex 1865@ifnottex
1863-2**28), 1866-2**28),
1864@end ifnottex 1867@end ifnottex
1865@tex 1868@tex
1866$-2^{28}$), 1869$-2^{28}$),
1867@end tex 1870@end tex
1868and @var{symbol} is the name for the function key. 1871and @var{symbol} is the name for the function key.
@@ -1872,7 +1875,7 @@ by HP X servers) whose numeric code is
1872@ifnottex 1875@ifnottex
1873-2**28 1876-2**28
1874@end ifnottex 1877@end ifnottex
1875@tex 1878@tex
1876$-2^{28}$ 1879$-2^{28}$
1877@end tex 1880@end tex
1878+ 168. 1881+ 168.
diff --git a/src/ChangeLog b/src/ChangeLog
index 09369df682c..06580d307a0 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,16 @@
12003-01-31 Joe Buehler <jhpb@draco.hekimian.com>
2
3 * fileio.c: Support // at start of name for Cygwin (just added proper
4 preprocessor tests).
5
6 * keyboard.c: Port to Cygwin (just added proper preprocessor tests).
7
8 * Makefile.in: Use @EXEEXT@ for Cygwin.
9
10 * mem-limits.h: Added ifdef to define BSD4_2 for Cygwin.
11
12 * s/cygwin.h: Added for Cygwin port.
13
12003-01-31 Juanma Barranquero <lektu@terra.es> 142003-01-31 Juanma Barranquero <lektu@terra.es>
2 15
3 * w32fns.c (DrawText): Kludge to avoid a redefinition on Windows 16 * w32fns.c (DrawText): Kludge to avoid a redefinition on Windows
diff --git a/src/Makefile.in b/src/Makefile.in
index 320b3e5874a..9f8e13c5a0f 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -525,7 +525,7 @@ LD=ld
525#endif /* not ORDINARY_LINK */ 525#endif /* not ORDINARY_LINK */
526 526
527/* Flags to pass to LD only for temacs. */ 527/* Flags to pass to LD only for temacs. */
528/* Don't split this line with a backslash. That can cause trouble with 528/* Don't split this line with a backslash. That can cause trouble with
529 some cpps. */ 529 some cpps. */
530TEMACS_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_MACHINE LD_SWITCH_MACHINE_TEMACS LD_SWITCH_SITE 530TEMACS_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_MACHINE LD_SWITCH_MACHINE_TEMACS LD_SWITCH_SITE
531 531
@@ -887,12 +887,12 @@ LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) \
887#define OBJECTS_MACHINE 887#define OBJECTS_MACHINE
888#endif 888#endif
889 889
890all: emacs OTHER_FILES 890all: emacs@EXEEXT@ OTHER_FILES
891 891
892emacs: temacs ${etc}DOC ${lisp} 892emacs@EXEEXT@: temacs@EXEEXT@ ${etc}DOC ${lisp}
893#ifdef CANNOT_DUMP 893#ifdef CANNOT_DUMP
894 rm -f emacs 894 rm -f emacs@EXEEXT@
895 ln temacs emacs 895 ln temacs@EXEEXT@ emacs@EXEEXT@
896#else 896#else
897#ifdef HAVE_SHM 897#ifdef HAVE_SHM
898 LC_ALL=C ./temacs -nl -batch -l loadup dump 898 LC_ALL=C ./temacs -nl -batch -l loadup dump
@@ -915,15 +915,15 @@ ${etc}DOC: ${libsrc}make-docfile ${obj} ${shortlisp} ${SOME_MACHINE_LISP}
915 ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC 915 ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
916 ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp} 916 ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
917 917
918${libsrc}make-docfile: 918${libsrc}make-docfile@EXEEXT@:
919 cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile 919 cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile@EXEEXT@
920 920
921/* Some systems define this to cause parallel Make-ing. */ 921/* Some systems define this to cause parallel Make-ing. */
922#ifndef MAKE_PARALLEL 922#ifndef MAKE_PARALLEL
923#define MAKE_PARALLEL 923#define MAKE_PARALLEL
924#endif 924#endif
925 925
926temacs: MAKE_PARALLEL $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj} OBJECTS_MACHINE prefix-args 926temacs@EXEEXT@: MAKE_PARALLEL $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj} OBJECTS_MACHINE prefix-args@EXEEXT@
927 $(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${TEMACS_LDFLAGS}) $(LDFLAGS) \ 927 $(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${TEMACS_LDFLAGS}) $(LDFLAGS) \
928 -o temacs ${STARTFILES} ${obj} ${otherobj} \ 928 -o temacs ${STARTFILES} ${obj} ${otherobj} \
929 OBJECTS_MACHINE ${LIBES} 929 OBJECTS_MACHINE ${LIBES}
@@ -931,7 +931,7 @@ temacs: MAKE_PARALLEL $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj
931/* We don't use ALL_LDFLAGS because LD_SWITCH_SYSTEM and LD_SWITCH_MACHINE 931/* We don't use ALL_LDFLAGS because LD_SWITCH_SYSTEM and LD_SWITCH_MACHINE
932 often contain options that have to do with using Emacs's crt0, 932 often contain options that have to do with using Emacs's crt0,
933 which are only good with temacs. */ 933 which are only good with temacs. */
934prefix-args: prefix-args.c $(config_h) 934prefix-args@EXEEXT@: prefix-args.c $(config_h)
935 $(CC) $(ALL_CFLAGS) $(LDFLAGS) ${srcdir}/prefix-args.c -o prefix-args 935 $(CC) $(ALL_CFLAGS) $(LDFLAGS) ${srcdir}/prefix-args.c -o prefix-args
936 936
937/* Don't lose if this was not defined. */ 937/* Don't lose if this was not defined. */
@@ -950,7 +950,7 @@ prefix-args: prefix-args.c $(config_h)
950 to both ensure that lwlib gets remade based on its dependencies 950 to both ensure that lwlib gets remade based on its dependencies
951 in its own makefile, 951 in its own makefile,
952 and remake temacs if lwlib gets changed by this. */ 952 and remake temacs if lwlib gets changed by this. */
953stamp-oldxmenu: ${OLDXMENU} ../src/$(OLDXMENU) 953stamp-oldxmenu: ${OLDXMENU} ../src/$(OLDXMENU)
954 touch stamp-oldxmenu 954 touch stamp-oldxmenu
955/* Supply an ordering for parallel make. */ 955/* Supply an ordering for parallel make. */
956../src/$(OLDXMENU): ${OLDXMENU} 956../src/$(OLDXMENU): ${OLDXMENU}
@@ -1253,25 +1253,25 @@ macosx-bundle: ${emacsapp}Contents/Resources/English.lproj \
1253 ${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings 1253 ${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings
1254macosx-app: macosx-bundle ${emacsapp}Contents/MacOS/Emacs \ 1254macosx-app: macosx-bundle ${emacsapp}Contents/MacOS/Emacs \
1255 ${emacsapp}Contents/Resources/Emacs.rsrc 1255 ${emacsapp}Contents/Resources/Emacs.rsrc
1256${emacsapp}Contents/MacOS/Emacs: emacs 1256${emacsapp}Contents/MacOS/Emacs: emacs@EXEEXT@
1257 mkdir -p ${emacsapp}Contents/MacOS/; 1257 mkdir -p ${emacsapp}Contents/MacOS/;
1258 cd ${emacsapp}Contents/MacOS/; cp ../../../../src/emacs Emacs 1258 cd ${emacsapp}Contents/MacOS/; cp ../../../../src/emacs@EXEEXT@ Emacs@EXEEXT@
1259${emacsapp}Contents/Resources/Emacs.rsrc: ../mac/src/Emacs.r 1259${emacsapp}Contents/Resources/Emacs.rsrc: ../mac/src/Emacs.r
1260 /Developer/Tools/Rez -useDF \ 1260 /Developer/Tools/Rez -useDF \
1261 -o ${emacsapp}Contents/Resources/Emacs.rsrc \ 1261 -o ${emacsapp}Contents/Resources/Emacs.rsrc \
1262 /System/Library/Frameworks/Carbon.framework/Headers/Carbon.r $< 1262 /System/Library/Frameworks/Carbon.framework/Headers/Carbon.r $<
1263#endif 1263#endif
1264 1264
1265${libsrc}emacstool: ${libsrc}emacstool.c 1265${libsrc}emacstool@EXEEXT@: ${libsrc}emacstool.c
1266 cd ${libsrc}; ${MAKE} ${MFLAGS} emacstool 1266 cd ${libsrc}; ${MAKE} ${MFLAGS} emacstool@EXEEXT@
1267bootstrapclean: 1267bootstrapclean:
1268 rm -f bootstrap-emacs 1268 rm -f bootstrap-emacs@EXEEXT@
1269mostlyclean: 1269mostlyclean:
1270 rm -f temacs prefix-args core *.core \#* *.o libXMenu11.a liblw.a 1270 rm -f temacs@EXEEXT@ prefix-args@EXEEXT@ core *.core \#* *.o libXMenu11.a liblw.a
1271 rm -f ../etc/DOC 1271 rm -f ../etc/DOC
1272 rm -f bootstrap-emacs 1272 rm -f bootstrap-emacs@EXEEXT@
1273clean: mostlyclean 1273clean: mostlyclean
1274 rm -f emacs-* emacs 1274 rm -f emacs-*@EXEEXT@ emacs@EXEEXT@
1275/**/# This is used in making a distribution. 1275/**/# This is used in making a distribution.
1276/**/# Do not use it on development directories! 1276/**/# Do not use it on development directories!
1277distclean: clean 1277distclean: clean
@@ -1284,7 +1284,7 @@ maintainer-clean: distclean
1284 @echo "it deletes files that may require special tools to rebuild." 1284 @echo "it deletes files that may require special tools to rebuild."
1285 rm -f TAGS 1285 rm -f TAGS
1286versionclean: 1286versionclean:
1287 -rm -f emacs emacs-* ../etc/DOC* 1287 -rm -f emacs@EXEEXT@ emacs-* ../etc/DOC*
1288extraclean: distclean 1288extraclean: distclean
1289 -rm -f *~ \#* m/?*~ s/?*~ 1289 -rm -f *~ \#* m/?*~ s/?*~
1290 1290
@@ -1302,7 +1302,7 @@ relock:
1302/* Arrange to make a tags table TAGS-LISP for ../lisp, 1302/* Arrange to make a tags table TAGS-LISP for ../lisp,
1303 plus TAGS for the C files, which includes ../lisp/TAGS by reference. */ 1303 plus TAGS for the C files, which includes ../lisp/TAGS by reference. */
1304 1304
1305ctagsfiles1 = [xyzXYZ]*.[hc] 1305ctagsfiles1 = [xyzXYZ]*.[hc]
1306ctagsfiles2 = [a-wA-W]*.[hc] 1306ctagsfiles2 = [a-wA-W]*.[hc]
1307 1307
1308TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) 1308TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
@@ -1322,20 +1322,20 @@ tags: TAGS TAGS-LISP $(lwlibdir)TAGS
1322 1322
1323/* Bootstrapping. */ 1323/* Bootstrapping. */
1324 1324
1325bootstrap: bootstrap-emacs 1325bootstrap: bootstrap-emacs@EXEEXT@
1326 1326
1327/* Dump an Emacs executable named bootstrap-emacs containing the 1327/* Dump an Emacs executable named bootstrap-emacs containing the
1328 files from loadup.el in source form. */ 1328 files from loadup.el in source form. */
1329 1329
1330bootstrap-emacs: temacs 1330bootstrap-emacs@EXEEXT@: temacs@EXEEXT@
1331#ifdef CANNOT_DUMP 1331#ifdef CANNOT_DUMP
1332 ln temacs bootstrap-emacs 1332 ln temacs@EXEEXT@ bootstrap-emacs@EXEEXT@
1333#else 1333#else
1334#ifdef HAVE_SHM 1334#ifdef HAVE_SHM
1335 ./temacs -nl -batch -l loadup bootstrap 1335 ./temacs -nl -batch -l loadup bootstrap
1336#else /* ! defined (HAVE_SHM) */ 1336#else /* ! defined (HAVE_SHM) */
1337 ./temacs --batch --load loadup bootstrap 1337 ./temacs --batch --load loadup bootstrap
1338#endif /* ! defined (HAVE_SHM) */ 1338#endif /* ! defined (HAVE_SHM) */
1339 mv -f emacs@EXEEXT@ bootstrap-emacs@EXEEXT@
1339#endif /* ! defined (CANNOT_DUMP) */ 1340#endif /* ! defined (CANNOT_DUMP) */
1340 mv -f emacs bootstrap-emacs
1341 1341
diff --git a/src/fileio.c b/src/fileio.c
index b3fcda88e98..72c9faccddd 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -2052,13 +2052,13 @@ duplicates what `expand-file-name' does. */)
2052 for (p = nm; p != endp; p++) 2052 for (p = nm; p != endp; p++)
2053 { 2053 {
2054 if ((p[0] == '~' 2054 if ((p[0] == '~'
2055#if defined (APOLLO) || defined (WINDOWSNT) 2055#if defined (APOLLO) || defined (WINDOWSNT) || defined(CYGWIN)
2056 /* // at start of file name is meaningful in Apollo and 2056 /* // at start of file name is meaningful in Apollo,
2057 WindowsNT systems. */ 2057 WindowsNT and Cygwin systems. */
2058 || (IS_DIRECTORY_SEP (p[0]) && p - 1 != nm) 2058 || (IS_DIRECTORY_SEP (p[0]) && p - 1 != nm)
2059#else /* not (APOLLO || WINDOWSNT) */ 2059#else /* not (APOLLO || WINDOWSNT || CYGWIN) */
2060 || IS_DIRECTORY_SEP (p[0]) 2060 || IS_DIRECTORY_SEP (p[0])
2061#endif /* not (APOLLO || WINDOWSNT) */ 2061#endif /* not (APOLLO || WINDOWSNT || CYGWIN) */
2062 ) 2062 )
2063 && p != nm 2063 && p != nm
2064 && (0 2064 && (0
@@ -2230,11 +2230,11 @@ duplicates what `expand-file-name' does. */)
2230 2230
2231 for (p = xnm; p != x; p++) 2231 for (p = xnm; p != x; p++)
2232 if ((p[0] == '~' 2232 if ((p[0] == '~'
2233#if defined (APOLLO) || defined (WINDOWSNT) 2233#if defined (APOLLO) || defined (WINDOWSNT) || defined(CYGWIN)
2234 || (IS_DIRECTORY_SEP (p[0]) && p - 1 != xnm) 2234 || (IS_DIRECTORY_SEP (p[0]) && p - 1 != xnm)
2235#else /* not (APOLLO || WINDOWSNT) */ 2235#else /* not (APOLLO || WINDOWSNT || CYGWIN) */
2236 || IS_DIRECTORY_SEP (p[0]) 2236 || IS_DIRECTORY_SEP (p[0])
2237#endif /* not (APOLLO || WINDOWSNT) */ 2237#endif /* not (APOLLO || WINDOWSNT || CYGWIN) */
2238 ) 2238 )
2239 && p != xnm && IS_DIRECTORY_SEP (p[-1])) 2239 && p != xnm && IS_DIRECTORY_SEP (p[-1]))
2240 xnm = p; 2240 xnm = p;
@@ -6116,7 +6116,7 @@ provides a file dialog box. */)
6116 (NILP (predicate) ? Qfile_exists_p : predicate)); 6116 (NILP (predicate) ? Qfile_exists_p : predicate));
6117 6117
6118 GCPRO2 (insdef, default_filename); 6118 GCPRO2 (insdef, default_filename);
6119 6119
6120#if defined (USE_MOTIF) || defined (HAVE_NTGUI) || defined (USE_GTK) 6120#if defined (USE_MOTIF) || defined (HAVE_NTGUI) || defined (USE_GTK)
6121 if ((NILP (last_nonmenu_event) || CONSP (last_nonmenu_event)) 6121 if ((NILP (last_nonmenu_event) || CONSP (last_nonmenu_event))
6122 && use_dialog_box 6122 && use_dialog_box
diff --git a/src/keyboard.c b/src/keyboard.c
index dae9470f70c..279bdc60049 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -741,7 +741,7 @@ echo_char (c)
741 Lisp_Object echo_string; 741 Lisp_Object echo_string;
742 742
743 echo_string = current_kboard->echo_string; 743 echo_string = current_kboard->echo_string;
744 744
745 /* If someone has passed us a composite event, use its head symbol. */ 745 /* If someone has passed us a composite event, use its head symbol. */
746 c = EVENT_HEAD (c); 746 c = EVENT_HEAD (c);
747 747
@@ -753,7 +753,7 @@ echo_char (c)
753 { 753 {
754 Lisp_Object name = SYMBOL_NAME (c); 754 Lisp_Object name = SYMBOL_NAME (c);
755 int nbytes = SBYTES (name); 755 int nbytes = SBYTES (name);
756 756
757 if (size - (ptr - buffer) < nbytes) 757 if (size - (ptr - buffer) < nbytes)
758 { 758 {
759 int offset = ptr - buffer; 759 int offset = ptr - buffer;
@@ -771,7 +771,7 @@ echo_char (c)
771 { 771 {
772 const char *text = " (Type ? for further options)"; 772 const char *text = " (Type ? for further options)";
773 int len = strlen (text); 773 int len = strlen (text);
774 774
775 if (size - (ptr - buffer) < len) 775 if (size - (ptr - buffer) < len)
776 { 776 {
777 int offset = ptr - buffer; 777 int offset = ptr - buffer;
@@ -820,12 +820,12 @@ echo_dash ()
820 if (!current_kboard->immediate_echo 820 if (!current_kboard->immediate_echo
821 && SCHARS (current_kboard->echo_string) == 0) 821 && SCHARS (current_kboard->echo_string) == 0)
822 return; 822 return;
823 823
824 /* Do nothing if we just printed a prompt. */ 824 /* Do nothing if we just printed a prompt. */
825 if (current_kboard->echo_after_prompt 825 if (current_kboard->echo_after_prompt
826 == SCHARS (current_kboard->echo_string)) 826 == SCHARS (current_kboard->echo_string))
827 return; 827 return;
828 828
829 /* Put a dash at the end of the buffer temporarily, 829 /* Put a dash at the end of the buffer temporarily,
830 but make it go away when the next character is added. */ 830 but make it go away when the next character is added. */
831 current_kboard->echo_string = concat2 (current_kboard->echo_string, 831 current_kboard->echo_string = concat2 (current_kboard->echo_string,
@@ -1032,12 +1032,12 @@ recursive_edit_unwind (info)
1032{ 1032{
1033 if (BUFFERP (XCAR (info))) 1033 if (BUFFERP (XCAR (info)))
1034 Fset_buffer (XCAR (info)); 1034 Fset_buffer (XCAR (info));
1035 1035
1036 if (NILP (XCDR (info))) 1036 if (NILP (XCDR (info)))
1037 any_kboard_state (); 1037 any_kboard_state ();
1038 else 1038 else
1039 single_kboard_state (); 1039 single_kboard_state ();
1040 1040
1041 command_loop_level--; 1041 command_loop_level--;
1042 update_mode_lines = 1; 1042 update_mode_lines = 1;
1043 return Qnil; 1043 return Qnil;
@@ -1214,7 +1214,7 @@ cmd_error_internal (data, context)
1214 since they are asyncronous. */ 1214 since they are asyncronous. */
1215 if (EQ (XCAR (data), Qquit)) 1215 if (EQ (XCAR (data), Qquit))
1216 Vsignaling_function = Qnil; 1216 Vsignaling_function = Qnil;
1217 1217
1218 print_error_message (data, stream, context, Vsignaling_function); 1218 print_error_message (data, stream, context, Vsignaling_function);
1219 1219
1220 Vsignaling_function = Qnil; 1220 Vsignaling_function = Qnil;
@@ -1557,7 +1557,7 @@ command_loop_1 ()
1557 if the symbol is a local variable. */ 1557 if the symbol is a local variable. */
1558 if (!NILP (Vpre_command_hook) && !NILP (Vrun_hooks)) 1558 if (!NILP (Vpre_command_hook) && !NILP (Vrun_hooks))
1559 safe_run_hooks (Qpre_command_hook); 1559 safe_run_hooks (Qpre_command_hook);
1560 1560
1561 already_adjusted = 0; 1561 already_adjusted = 0;
1562 1562
1563 if (NILP (Vthis_command)) 1563 if (NILP (Vthis_command))
@@ -1663,7 +1663,7 @@ command_loop_1 ()
1663 } 1663 }
1664 nonundocount++; 1664 nonundocount++;
1665 } 1665 }
1666 1666
1667 lose = ((XFASTINT (XWINDOW (selected_window)->last_modified) 1667 lose = ((XFASTINT (XWINDOW (selected_window)->last_modified)
1668 < MODIFF) 1668 < MODIFF)
1669 || (XFASTINT (XWINDOW (selected_window)->last_overlay_modified) 1669 || (XFASTINT (XWINDOW (selected_window)->last_overlay_modified)
@@ -1676,7 +1676,7 @@ command_loop_1 ()
1676 || detect_input_pending () 1676 || detect_input_pending ()
1677 || !NILP (XWINDOW (selected_window)->column_number_displayed) 1677 || !NILP (XWINDOW (selected_window)->column_number_displayed)
1678 || !NILP (Vexecuting_macro)); 1678 || !NILP (Vexecuting_macro));
1679 1679
1680 value = internal_self_insert (c, 0); 1680 value = internal_self_insert (c, 0);
1681 1681
1682 if (value == 2) 1682 if (value == 2)
@@ -1887,7 +1887,7 @@ adjust_point_for_property (last_pt, modified)
1887 (make_number (beg), Qinvisible, Qnil, Qnil); 1887 (make_number (beg), Qinvisible, Qnil, Qnil);
1888 beg = NATNUMP (tmp) ? XFASTINT (tmp) : BEGV; 1888 beg = NATNUMP (tmp) ? XFASTINT (tmp) : BEGV;
1889 } 1889 }
1890 1890
1891 /* Move away from the inside area. */ 1891 /* Move away from the inside area. */
1892 if (beg < PT && end > PT) 1892 if (beg < PT && end > PT)
1893 { 1893 {
@@ -2011,7 +2011,7 @@ start_polling ()
2011 /* Turn alarm handling on unconditionally. It might have 2011 /* Turn alarm handling on unconditionally. It might have
2012 been turned off in process.c. */ 2012 been turned off in process.c. */
2013 turn_on_atimers (1); 2013 turn_on_atimers (1);
2014 2014
2015 /* If poll timer doesn't exist, are we need one with 2015 /* If poll timer doesn't exist, are we need one with
2016 a different interval, start a new one. */ 2016 a different interval, start a new one. */
2017 if (poll_timer == NULL 2017 if (poll_timer == NULL
@@ -2021,7 +2021,7 @@ start_polling ()
2021 2021
2022 if (poll_timer) 2022 if (poll_timer)
2023 cancel_atimer (poll_timer); 2023 cancel_atimer (poll_timer);
2024 2024
2025 EMACS_SET_SECS_USECS (interval, polling_period, 0); 2025 EMACS_SET_SECS_USECS (interval, polling_period, 0);
2026 poll_timer = start_atimer (ATIMER_CONTINUOUS, interval, 2026 poll_timer = start_atimer (ATIMER_CONTINUOUS, interval,
2027 poll_for_input, NULL); 2027 poll_for_input, NULL);
@@ -2182,7 +2182,7 @@ show_help_echo (help, window, object, pos, ok_to_overwrite_keystroke_echo)
2182 } 2182 }
2183 else 2183 else
2184 help = safe_eval (help); 2184 help = safe_eval (help);
2185 2185
2186 if (!STRINGP (help)) 2186 if (!STRINGP (help))
2187 return; 2187 return;
2188 } 2188 }
@@ -2205,7 +2205,7 @@ show_help_echo (help, window, object, pos, ok_to_overwrite_keystroke_echo)
2205 2205
2206 if (!help_echo_showing_p) 2206 if (!help_echo_showing_p)
2207 Vpre_help_message = current_message (); 2207 Vpre_help_message = current_message ();
2208 2208
2209 specbind (Qmessage_truncate_lines, Qt); 2209 specbind (Qmessage_truncate_lines, Qt);
2210 message3_nolog (help, SBYTES (help), 2210 message3_nolog (help, SBYTES (help),
2211 STRING_MULTIBYTE (help)); 2211 STRING_MULTIBYTE (help));
@@ -2221,7 +2221,7 @@ show_help_echo (help, window, object, pos, ok_to_overwrite_keystroke_echo)
2221 else 2221 else
2222 message (0); 2222 message (0);
2223 } 2223 }
2224 2224
2225 help_echo_showing_p = STRINGP (help); 2225 help_echo_showing_p = STRINGP (help);
2226 } 2226 }
2227} 2227}
@@ -2336,13 +2336,13 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu)
2336 && EQ (XCDR (c), Qdisabled) 2336 && EQ (XCDR (c), Qdisabled)
2337 && (SYMBOLP (XCAR (c)) || INTEGERP (XCAR (c)))) 2337 && (SYMBOLP (XCAR (c)) || INTEGERP (XCAR (c))))
2338 c = XCAR (c); 2338 c = XCAR (c);
2339 2339
2340 /* If the queued event is something that used the mouse, 2340 /* If the queued event is something that used the mouse,
2341 set used_mouse_menu accordingly. */ 2341 set used_mouse_menu accordingly. */
2342 if (used_mouse_menu 2342 if (used_mouse_menu
2343 && (EQ (c, Qtool_bar) || EQ (c, Qmenu_bar))) 2343 && (EQ (c, Qtool_bar) || EQ (c, Qmenu_bar)))
2344 *used_mouse_menu = 1; 2344 *used_mouse_menu = 1;
2345 2345
2346 reread = 1; 2346 reread = 1;
2347 goto reread_for_input_method; 2347 goto reread_for_input_method;
2348 } 2348 }
@@ -2439,7 +2439,7 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu)
2439 } 2439 }
2440 2440
2441 /* Message turns off echoing unless more keystrokes turn it on again. 2441 /* Message turns off echoing unless more keystrokes turn it on again.
2442 2442
2443 The code in 20.x for the condition was 2443 The code in 20.x for the condition was
2444 2444
2445 1. echo_area_glyphs && *echo_area_glyphs 2445 1. echo_area_glyphs && *echo_area_glyphs
@@ -2447,10 +2447,10 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu)
2447 3. && ok_to_echo_at_next_pause != echo_area_glyphs 2447 3. && ok_to_echo_at_next_pause != echo_area_glyphs
2448 2448
2449 (1) means there's a current message displayed 2449 (1) means there's a current message displayed
2450 2450
2451 (2) means it's not the message from echoing from the current 2451 (2) means it's not the message from echoing from the current
2452 kboard. 2452 kboard.
2453 2453
2454 (3) There's only one place in 20.x where ok_to_echo_at_next_pause 2454 (3) There's only one place in 20.x where ok_to_echo_at_next_pause
2455 is set to a non-null value. This is done in read_char and it is 2455 is set to a non-null value. This is done in read_char and it is
2456 set to echo_area_glyphs after a call to echo_char. That means 2456 set to echo_area_glyphs after a call to echo_char. That means
@@ -2462,7 +2462,7 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu)
2462 must be either null, or the current message isn't from echoing at 2462 must be either null, or the current message isn't from echoing at
2463 all, or it's from echoing from a different kboard than the 2463 all, or it's from echoing from a different kboard than the
2464 current one. */ 2464 current one. */
2465 2465
2466 if (/* There currently is something in the echo area. */ 2466 if (/* There currently is something in the echo area. */
2467 !NILP (echo_area_buffer[0]) 2467 !NILP (echo_area_buffer[0])
2468 && (/* And it's either not from echoing. */ 2468 && (/* And it's either not from echoing. */
@@ -2474,7 +2474,7 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu)
2474 cancel_echoing (); 2474 cancel_echoing ();
2475 else 2475 else
2476 echo_dash (); 2476 echo_dash ();
2477 2477
2478 /* Try reading a character via menu prompting in the minibuf. 2478 /* Try reading a character via menu prompting in the minibuf.
2479 Try this before the sit-for, because the sit-for 2479 Try this before the sit-for, because the sit-for
2480 would do the wrong thing if we are supposed to do 2480 would do the wrong thing if we are supposed to do
@@ -2549,7 +2549,7 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu)
2549 /* If in middle of key sequence and minibuffer not active, 2549 /* If in middle of key sequence and minibuffer not active,
2550 start echoing if enough time elapses. */ 2550 start echoing if enough time elapses. */
2551 2551
2552 if (minibuf_level == 0 2552 if (minibuf_level == 0
2553 && !current_kboard->immediate_echo 2553 && !current_kboard->immediate_echo
2554 && this_command_key_count > 0 2554 && this_command_key_count > 0
2555 && ! noninteractive 2555 && ! noninteractive
@@ -2566,7 +2566,7 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu)
2566 || (!echo_kboard && ok_to_echo_at_next_pause))) 2566 || (!echo_kboard && ok_to_echo_at_next_pause)))
2567 { 2567 {
2568 Lisp_Object tem0; 2568 Lisp_Object tem0;
2569 2569
2570 /* After a mouse event, start echoing right away. 2570 /* After a mouse event, start echoing right away.
2571 This is because we are probably about to display a menu, 2571 This is because we are probably about to display a menu,
2572 and we don't want to delay before doing so. */ 2572 and we don't want to delay before doing so. */
@@ -2930,7 +2930,7 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu)
2930 && (unsigned) XINT (c) != 127 2930 && (unsigned) XINT (c) != 127
2931 && (unsigned) XINT (c) < 256) 2931 && (unsigned) XINT (c) < 256)
2932 { 2932 {
2933 Lisp_Object keys; 2933 Lisp_Object keys;
2934 int key_count; 2934 int key_count;
2935 struct gcpro gcpro1; 2935 struct gcpro gcpro1;
2936 int count = SPECPDL_INDEX (); 2936 int count = SPECPDL_INDEX ();
@@ -3030,7 +3030,7 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu)
3030 timer_idleness_start_time = last_idle_start; 3030 timer_idleness_start_time = last_idle_start;
3031 goto retry; 3031 goto retry;
3032 } 3032 }
3033 3033
3034 if (this_command_key_count == 0 || ! reread) 3034 if (this_command_key_count == 0 || ! reread)
3035 { 3035 {
3036 before_command_key_count = this_command_key_count; 3036 before_command_key_count = this_command_key_count;
@@ -3162,19 +3162,19 @@ record_char (c)
3162 3162
3163 Lisp_Object ev1, ev2, ev3; 3163 Lisp_Object ev1, ev2, ev3;
3164 int ix1, ix2, ix3; 3164 int ix1, ix2, ix3;
3165 3165
3166 if ((ix1 = recent_keys_index - 1) < 0) 3166 if ((ix1 = recent_keys_index - 1) < 0)
3167 ix1 = NUM_RECENT_KEYS - 1; 3167 ix1 = NUM_RECENT_KEYS - 1;
3168 ev1 = AREF (recent_keys, ix1); 3168 ev1 = AREF (recent_keys, ix1);
3169 3169
3170 if ((ix2 = ix1 - 1) < 0) 3170 if ((ix2 = ix1 - 1) < 0)
3171 ix2 = NUM_RECENT_KEYS - 1; 3171 ix2 = NUM_RECENT_KEYS - 1;
3172 ev2 = AREF (recent_keys, ix2); 3172 ev2 = AREF (recent_keys, ix2);
3173 3173
3174 if ((ix3 = ix2 - 1) < 0) 3174 if ((ix3 = ix2 - 1) < 0)
3175 ix3 = NUM_RECENT_KEYS - 1; 3175 ix3 = NUM_RECENT_KEYS - 1;
3176 ev3 = AREF (recent_keys, ix3); 3176 ev3 = AREF (recent_keys, ix3);
3177 3177
3178 if (EQ (XCAR (c), Qhelp_echo)) 3178 if (EQ (XCAR (c), Qhelp_echo))
3179 { 3179 {
3180 /* Don't record `help-echo' in recent_keys unless it shows some help 3180 /* Don't record `help-echo' in recent_keys unless it shows some help
@@ -3245,7 +3245,7 @@ record_char (c)
3245 } 3245 }
3246 3246
3247 num_nonmacro_input_events++; 3247 num_nonmacro_input_events++;
3248 3248
3249 /* Write c to the dribble file. If c is a lispy event, write 3249 /* Write c to the dribble file. If c is a lispy event, write
3250 the event's symbol to the dribble file, in <brackets>. Bleaugh. 3250 the event's symbol to the dribble file, in <brackets>. Bleaugh.
3251 If you, dear reader, have a better idea, you've got the source. :-) */ 3251 If you, dear reader, have a better idea, you've got the source. :-) */
@@ -3560,7 +3560,7 @@ kbd_buffer_store_event (event)
3560 if (kbd_fetch_ptr - 1 != kbd_store_ptr) 3560 if (kbd_fetch_ptr - 1 != kbd_store_ptr)
3561 { 3561 {
3562 int idx; 3562 int idx;
3563 3563
3564#if 0 /* The SELECTION_REQUEST_EVENT case looks bogus, and it's error 3564#if 0 /* The SELECTION_REQUEST_EVENT case looks bogus, and it's error
3565 prone to assign individual members for other events, in case 3565 prone to assign individual members for other events, in case
3566 the input_event structure is changed. --2000-07-13, gerd. */ 3566 the input_event structure is changed. --2000-07-13, gerd. */
@@ -3684,7 +3684,7 @@ kbd_buffer_events_waiting (discard)
3684 int discard; 3684 int discard;
3685{ 3685{
3686 struct input_event *sp; 3686 struct input_event *sp;
3687 3687
3688 for (sp = kbd_fetch_ptr; 3688 for (sp = kbd_fetch_ptr;
3689 sp != kbd_store_ptr && sp->kind == NO_EVENT; 3689 sp != kbd_store_ptr && sp->kind == NO_EVENT;
3690 ++sp) 3690 ++sp)
@@ -3987,7 +3987,7 @@ kbd_buffer_get_event (kbp, used_mouse_menu)
3987 if (NILP (obj)) 3987 if (NILP (obj))
3988 { 3988 {
3989 obj = make_lispy_event (event); 3989 obj = make_lispy_event (event);
3990 3990
3991#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) || defined(MAC_OS) \ 3991#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) || defined(MAC_OS) \
3992 || defined (USE_GTK) 3992 || defined (USE_GTK)
3993 /* If this was a menu selection, then set the flag to inhibit 3993 /* If this was a menu selection, then set the flag to inhibit
@@ -4318,7 +4318,7 @@ timer_check (do_it_now)
4318 difference = idle_timer_difference; 4318 difference = idle_timer_difference;
4319 } 4319 }
4320 vector = XVECTOR (chosen_timer)->contents; 4320 vector = XVECTOR (chosen_timer)->contents;
4321 4321
4322 /* If timer is ripe, run it if it hasn't been run. */ 4322 /* If timer is ripe, run it if it hasn't been run. */
4323 if (EMACS_TIME_NEG_P (difference) 4323 if (EMACS_TIME_NEG_P (difference)
4324 || (EMACS_SECS (difference) == 0 4324 || (EMACS_SECS (difference) == 0
@@ -4335,7 +4335,7 @@ timer_check (do_it_now)
4335 vector[0] = Qt; 4335 vector[0] = Qt;
4336 4336
4337 specbind (Qinhibit_quit, Qt); 4337 specbind (Qinhibit_quit, Qt);
4338 4338
4339 call1 (Qtimer_event_handler, chosen_timer); 4339 call1 (Qtimer_event_handler, chosen_timer);
4340 Vdeactivate_mark = old_deactivate_mark; 4340 Vdeactivate_mark = old_deactivate_mark;
4341 timers_run++; 4341 timers_run++;
@@ -4513,36 +4513,36 @@ static char *lispy_accent_keys[] =
4513char *lispy_function_keys[] = 4513char *lispy_function_keys[] =
4514 { 4514 {
4515 0, /* 0 */ 4515 0, /* 0 */
4516 4516
4517 0, /* VK_LBUTTON 0x01 */ 4517 0, /* VK_LBUTTON 0x01 */
4518 0, /* VK_RBUTTON 0x02 */ 4518 0, /* VK_RBUTTON 0x02 */
4519 "cancel", /* VK_CANCEL 0x03 */ 4519 "cancel", /* VK_CANCEL 0x03 */
4520 0, /* VK_MBUTTON 0x04 */ 4520 0, /* VK_MBUTTON 0x04 */
4521 4521
4522 0, 0, 0, /* 0x05 .. 0x07 */ 4522 0, 0, 0, /* 0x05 .. 0x07 */
4523 4523
4524 "backspace", /* VK_BACK 0x08 */ 4524 "backspace", /* VK_BACK 0x08 */
4525 "tab", /* VK_TAB 0x09 */ 4525 "tab", /* VK_TAB 0x09 */
4526 4526
4527 0, 0, /* 0x0A .. 0x0B */ 4527 0, 0, /* 0x0A .. 0x0B */
4528 4528
4529 "clear", /* VK_CLEAR 0x0C */ 4529 "clear", /* VK_CLEAR 0x0C */
4530 "return", /* VK_RETURN 0x0D */ 4530 "return", /* VK_RETURN 0x0D */
4531 4531
4532 0, 0, /* 0x0E .. 0x0F */ 4532 0, 0, /* 0x0E .. 0x0F */
4533 4533
4534 0, /* VK_SHIFT 0x10 */ 4534 0, /* VK_SHIFT 0x10 */
4535 0, /* VK_CONTROL 0x11 */ 4535 0, /* VK_CONTROL 0x11 */
4536 0, /* VK_MENU 0x12 */ 4536 0, /* VK_MENU 0x12 */
4537 "pause", /* VK_PAUSE 0x13 */ 4537 "pause", /* VK_PAUSE 0x13 */
4538 "capslock", /* VK_CAPITAL 0x14 */ 4538 "capslock", /* VK_CAPITAL 0x14 */
4539 4539
4540 0, 0, 0, 0, 0, 0, /* 0x15 .. 0x1A */ 4540 0, 0, 0, 0, 0, 0, /* 0x15 .. 0x1A */
4541 4541
4542 "escape", /* VK_ESCAPE 0x1B */ 4542 "escape", /* VK_ESCAPE 0x1B */
4543 4543
4544 0, 0, 0, 0, /* 0x1C .. 0x1F */ 4544 0, 0, 0, 0, /* 0x1C .. 0x1F */
4545 4545
4546 0, /* VK_SPACE 0x20 */ 4546 0, /* VK_SPACE 0x20 */
4547 "prior", /* VK_PRIOR 0x21 */ 4547 "prior", /* VK_PRIOR 0x21 */
4548 "next", /* VK_NEXT 0x22 */ 4548 "next", /* VK_NEXT 0x22 */
@@ -4559,25 +4559,25 @@ char *lispy_function_keys[] =
4559 "insert", /* VK_INSERT 0x2D */ 4559 "insert", /* VK_INSERT 0x2D */
4560 "delete", /* VK_DELETE 0x2E */ 4560 "delete", /* VK_DELETE 0x2E */
4561 "help", /* VK_HELP 0x2F */ 4561 "help", /* VK_HELP 0x2F */
4562 4562
4563 /* VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39) */ 4563 /* VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39) */
4564 4564
4565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4566 4566
4567 0, 0, 0, 0, 0, 0, 0, /* 0x3A .. 0x40 */ 4567 0, 0, 0, 0, 0, 0, 0, /* 0x3A .. 0x40 */
4568 4568
4569 /* VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) */ 4569 /* VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) */
4570 4570
4571 0, 0, 0, 0, 0, 0, 0, 0, 0, 4571 0, 0, 0, 0, 0, 0, 0, 0, 0,
4572 0, 0, 0, 0, 0, 0, 0, 0, 0, 4572 0, 0, 0, 0, 0, 0, 0, 0, 0,
4573 0, 0, 0, 0, 0, 0, 0, 0, 4573 0, 0, 0, 0, 0, 0, 0, 0,
4574 4574
4575 "lwindow", /* VK_LWIN 0x5B */ 4575 "lwindow", /* VK_LWIN 0x5B */
4576 "rwindow", /* VK_RWIN 0x5C */ 4576 "rwindow", /* VK_RWIN 0x5C */
4577 "apps", /* VK_APPS 0x5D */ 4577 "apps", /* VK_APPS 0x5D */
4578 4578
4579 0, 0, /* 0x5E .. 0x5F */ 4579 0, 0, /* 0x5E .. 0x5F */
4580 4580
4581 "kp-0", /* VK_NUMPAD0 0x60 */ 4581 "kp-0", /* VK_NUMPAD0 0x60 */
4582 "kp-1", /* VK_NUMPAD1 0x61 */ 4582 "kp-1", /* VK_NUMPAD1 0x61 */
4583 "kp-2", /* VK_NUMPAD2 0x62 */ 4583 "kp-2", /* VK_NUMPAD2 0x62 */
@@ -4618,13 +4618,13 @@ char *lispy_function_keys[] =
4618 "f22", /* VK_F22 0x85 */ 4618 "f22", /* VK_F22 0x85 */
4619 "f23", /* VK_F23 0x86 */ 4619 "f23", /* VK_F23 0x86 */
4620 "f24", /* VK_F24 0x87 */ 4620 "f24", /* VK_F24 0x87 */
4621 4621
4622 0, 0, 0, 0, /* 0x88 .. 0x8B */ 4622 0, 0, 0, 0, /* 0x88 .. 0x8B */
4623 0, 0, 0, 0, /* 0x8C .. 0x8F */ 4623 0, 0, 0, 0, /* 0x8C .. 0x8F */
4624 4624
4625 "kp-numlock", /* VK_NUMLOCK 0x90 */ 4625 "kp-numlock", /* VK_NUMLOCK 0x90 */
4626 "scroll", /* VK_SCROLL 0x91 */ 4626 "scroll", /* VK_SCROLL 0x91 */
4627 4627
4628 "kp-space", /* VK_NUMPAD_CLEAR 0x92 */ 4628 "kp-space", /* VK_NUMPAD_CLEAR 0x92 */
4629 "kp-enter", /* VK_NUMPAD_ENTER 0x93 */ 4629 "kp-enter", /* VK_NUMPAD_ENTER 0x93 */
4630 "kp-prior", /* VK_NUMPAD_PRIOR 0x94 */ 4630 "kp-prior", /* VK_NUMPAD_PRIOR 0x94 */
@@ -4646,17 +4646,17 @@ char *lispy_function_keys[] =
4646 * No other API or message will distinguish left and right keys this way. 4646 * No other API or message will distinguish left and right keys this way.
4647 */ 4647 */
4648 /* 0xA0 .. 0xEF */ 4648 /* 0xA0 .. 0xEF */
4649 4649
4650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4655 4655
4656 /* 0xF0 .. 0xF5 */ 4656 /* 0xF0 .. 0xF5 */
4657 4657
4658 0, 0, 0, 0, 0, 0, 4658 0, 0, 0, 0, 0, 0,
4659 4659
4660 "attn", /* VK_ATTN 0xF6 */ 4660 "attn", /* VK_ATTN 0xF6 */
4661 "crsel", /* VK_CRSEL 0xF7 */ 4661 "crsel", /* VK_CRSEL 0xF7 */
4662 "exsel", /* VK_EXSEL 0xF8 */ 4662 "exsel", /* VK_EXSEL 0xF8 */
@@ -4689,7 +4689,7 @@ static char *lispy_kana_keys[] =
4689 0,0,0,0,0,0,0,0,0,0,0,0,0,0,"overline",0, 4689 0,0,0,0,0,0,0,0,0,0,0,0,0,0,"overline",0,
4690 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0x480 .. 0x48f */ 4690 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0x480 .. 0x48f */
4691 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0x490 .. 0x49f */ 4691 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0x490 .. 0x49f */
4692 0, "kana-fullstop", "kana-openingbracket", "kana-closingbracket", 4692 0, "kana-fullstop", "kana-openingbracket", "kana-closingbracket",
4693 "kana-comma", "kana-conjunctive", "kana-WO", "kana-a", 4693 "kana-comma", "kana-conjunctive", "kana-WO", "kana-a",
4694 "kana-i", "kana-u", "kana-e", "kana-o", 4694 "kana-i", "kana-u", "kana-e", "kana-o",
4695 "kana-ya", "kana-yu", "kana-yo", "kana-tsu", 4695 "kana-ya", "kana-yu", "kana-yo", "kana-tsu",
@@ -4808,9 +4808,9 @@ static char *iso_lispy_function_keys[] =
4808 0, 0, 0, 0, 0, 0, 0, 0, /* 0xfe10 */ 4808 0, 0, 0, 0, 0, 0, 0, 0, /* 0xfe10 */
4809 0, 0, 0, 0, 0, 0, 0, 0, /* 0xfe18 */ 4809 0, 0, 0, 0, 0, 0, 0, 0, /* 0xfe18 */
4810 "iso-lefttab", /* 0xfe20 */ 4810 "iso-lefttab", /* 0xfe20 */
4811 "iso-move-line-up", "iso-move-line-down", 4811 "iso-move-line-up", "iso-move-line-down",
4812 "iso-partial-line-up", "iso-partial-line-down", 4812 "iso-partial-line-up", "iso-partial-line-down",
4813 "iso-partial-space-left", "iso-partial-space-right", 4813 "iso-partial-space-left", "iso-partial-space-right",
4814 "iso-set-margin-left", "iso-set-margin-right", /* 0xffe27, 28 */ 4814 "iso-set-margin-left", "iso-set-margin-right", /* 0xffe27, 28 */
4815 "iso-release-margin-left", "iso-release-margin-right", 4815 "iso-release-margin-left", "iso-release-margin-right",
4816 "iso-release-both-margins", 4816 "iso-release-both-margins",
@@ -4832,7 +4832,7 @@ Lisp_Object Vlispy_mouse_stem;
4832 which they operate, and a delta corresponding to the amount and 4832 which they operate, and a delta corresponding to the amount and
4833 direction that the wheel is rotated. Clicking the mouse-wheel 4833 direction that the wheel is rotated. Clicking the mouse-wheel
4834 generates a mouse-2 event. */ 4834 generates a mouse-2 event. */
4835static char *lispy_mouse_wheel_names[] = 4835static char *lispy_mouse_wheel_names[] =
4836{ 4836{
4837 "mouse-wheel" 4837 "mouse-wheel"
4838}; 4838};
@@ -5138,7 +5138,7 @@ make_lispy_event (event)
5138 the mouse that may have a `local-map' property. */ 5138 the mouse that may have a `local-map' property. */
5139 Lisp_Object string; 5139 Lisp_Object string;
5140 int charpos; 5140 int charpos;
5141 5141
5142 posn = part == 1 ? Qmode_line : Qheader_line; 5142 posn = part == 1 ? Qmode_line : Qheader_line;
5143 string = mode_line_string (w, wx, wy, part == 1, &charpos); 5143 string = mode_line_string (w, wx, wy, part == 1, &charpos);
5144 if (STRINGP (string)) 5144 if (STRINGP (string))
@@ -5203,7 +5203,7 @@ make_lispy_event (event)
5203 button + 1, Qnil); 5203 button + 1, Qnil);
5204 mouse_syms = larger_vector (mouse_syms, button + 1, Qnil); 5204 mouse_syms = larger_vector (mouse_syms, button + 1, Qnil);
5205 } 5205 }
5206 5206
5207 start_pos_ptr = &AREF (button_down_location, button); 5207 start_pos_ptr = &AREF (button_down_location, button);
5208 start_pos = *start_pos_ptr; 5208 start_pos = *start_pos_ptr;
5209 *start_pos_ptr = Qnil; 5209 *start_pos_ptr = Qnil;
@@ -5236,7 +5236,7 @@ make_lispy_event (event)
5236 && ((int)(event->timestamp - button_down_time) 5236 && ((int)(event->timestamp - button_down_time)
5237 < XINT (Vdouble_click_time))))); 5237 < XINT (Vdouble_click_time)))));
5238 } 5238 }
5239 5239
5240 last_mouse_button = button; 5240 last_mouse_button = button;
5241 last_mouse_x = XINT (event->x); 5241 last_mouse_x = XINT (event->x);
5242 last_mouse_y = XINT (event->y); 5242 last_mouse_y = XINT (event->y);
@@ -5301,7 +5301,7 @@ make_lispy_event (event)
5301 button_down_time = 0; 5301 button_down_time = 0;
5302 event->modifiers |= drag_modifier; 5302 event->modifiers |= drag_modifier;
5303 } 5303 }
5304 5304
5305 /* Don't check is_double; treat this as multiple 5305 /* Don't check is_double; treat this as multiple
5306 if the down-event was multiple. */ 5306 if the down-event was multiple. */
5307 if (double_click_count > 1) 5307 if (double_click_count > 1)
@@ -5360,7 +5360,7 @@ make_lispy_event (event)
5360 The incoming input_event contains in its `part' member an 5360 The incoming input_event contains in its `part' member an
5361 index of type `enum scroll_bar_part' which we can use as an 5361 index of type `enum scroll_bar_part' which we can use as an
5362 index in scroll_bar_parts to get the appropriate symbol. */ 5362 index in scroll_bar_parts to get the appropriate symbol. */
5363 5363
5364 case SCROLL_BAR_CLICK_EVENT: 5364 case SCROLL_BAR_CLICK_EVENT:
5365 { 5365 {
5366 Lisp_Object position, head, window, portion_whole, part; 5366 Lisp_Object position, head, window, portion_whole, part;
@@ -5389,7 +5389,7 @@ make_lispy_event (event)
5389 XVECTOR (mouse_syms)->size); 5389 XVECTOR (mouse_syms)->size);
5390 return Fcons (head, Fcons (position, Qnil)); 5390 return Fcons (head, Fcons (position, Qnil));
5391 } 5391 }
5392 5392
5393#endif /* USE_TOOLKIT_SCROLL_BARS */ 5393#endif /* USE_TOOLKIT_SCROLL_BARS */
5394 5394
5395#ifdef WINDOWSNT 5395#ifdef WINDOWSNT
@@ -5427,7 +5427,7 @@ make_lispy_event (event)
5427 5427
5428 head = modify_event_symbol (button, 5428 head = modify_event_symbol (button,
5429 event->modifiers, 5429 event->modifiers,
5430 Qmouse_click, 5430 Qmouse_click,
5431 Vlispy_mouse_stem, 5431 Vlispy_mouse_stem,
5432 NULL, &mouse_syms, 5432 NULL, &mouse_syms,
5433 XVECTOR (mouse_syms)->size); 5433 XVECTOR (mouse_syms)->size);
@@ -5617,10 +5617,10 @@ make_lispy_event (event)
5617 case USER_SIGNAL_EVENT: 5617 case USER_SIGNAL_EVENT:
5618 /* A user signal. */ 5618 /* A user signal. */
5619 return *lispy_user_signals[event->code]; 5619 return *lispy_user_signals[event->code];
5620 5620
5621 case SAVE_SESSION_EVENT: 5621 case SAVE_SESSION_EVENT:
5622 return Qsave_session; 5622 return Qsave_session;
5623 5623
5624 /* The 'kind' field of the event is something we don't recognize. */ 5624 /* The 'kind' field of the event is something we don't recognize. */
5625 default: 5625 default:
5626 abort (); 5626 abort ();
@@ -5670,13 +5670,13 @@ make_lispy_movement (frame, bar_window, part, x, y, time)
5670 { 5670 {
5671 struct window *w = XWINDOW (window); 5671 struct window *w = XWINDOW (window);
5672 int wx, wy; 5672 int wx, wy;
5673 5673
5674 /* Get window relative coordinates. */ 5674 /* Get window relative coordinates. */
5675 wx = FRAME_TO_WINDOW_PIXEL_X (w, XINT (x)); 5675 wx = FRAME_TO_WINDOW_PIXEL_X (w, XINT (x));
5676 wy = FRAME_TO_WINDOW_PIXEL_Y (w, XINT (y)); 5676 wy = FRAME_TO_WINDOW_PIXEL_Y (w, XINT (y));
5677 XSETINT (x, wx); 5677 XSETINT (x, wx);
5678 XSETINT (y, wy); 5678 XSETINT (y, wy);
5679 5679
5680 if (area == 1) 5680 if (area == 1)
5681 posn = Qmode_line; 5681 posn = Qmode_line;
5682 else if (area == 2) 5682 else if (area == 2)
@@ -6518,7 +6518,7 @@ read_avail_input (expected)
6518 if (n_to_read > sizeof cbuf) 6518 if (n_to_read > sizeof cbuf)
6519 n_to_read = sizeof cbuf; 6519 n_to_read = sizeof cbuf;
6520#else /* no FIONREAD */ 6520#else /* no FIONREAD */
6521#if defined (USG) || defined (DGUX) 6521#if defined (USG) || defined (DGUX) || defined(CYGWIN)
6522 /* Read some input if available, but don't wait. */ 6522 /* Read some input if available, but don't wait. */
6523 n_to_read = sizeof cbuf; 6523 n_to_read = sizeof cbuf;
6524 fcntl (input_fd, F_SETFL, O_NDELAY); 6524 fcntl (input_fd, F_SETFL, O_NDELAY);
@@ -6575,9 +6575,9 @@ read_avail_input (expected)
6575 ); 6575 );
6576 6576
6577#ifndef FIONREAD 6577#ifndef FIONREAD
6578#if defined (USG) || defined (DGUX) 6578#if defined (USG) || defined (DGUX) || defined (CYGWIN)
6579 fcntl (input_fd, F_SETFL, 0); 6579 fcntl (input_fd, F_SETFL, 0);
6580#endif /* USG or DGUX */ 6580#endif /* USG or DGUX or CYGWIN */
6581#endif /* no FIONREAD */ 6581#endif /* no FIONREAD */
6582 for (i = 0; i < nread; i++) 6582 for (i = 0; i < nread; i++)
6583 { 6583 {
@@ -6963,7 +6963,7 @@ menu_item_eval_property_1 (arg)
6963 return Qnil; 6963 return Qnil;
6964} 6964}
6965 6965
6966/* Evaluate an expression and return the result (or nil if something 6966/* Evaluate an expression and return the result (or nil if something
6967 went wrong). Used to evaluate dynamic parts of menu items. */ 6967 went wrong). Used to evaluate dynamic parts of menu items. */
6968Lisp_Object 6968Lisp_Object
6969menu_item_eval_property (sexpr) 6969menu_item_eval_property (sexpr)
@@ -7016,7 +7016,7 @@ parse_menu_item (item, notreal, inmenubar)
7016 for (i = ITEM_PROPERTY_DEF; i < ITEM_PROPERTY_ENABLE; i++) 7016 for (i = ITEM_PROPERTY_DEF; i < ITEM_PROPERTY_ENABLE; i++)
7017 AREF (item_properties, i) = Qnil; 7017 AREF (item_properties, i) = Qnil;
7018 AREF (item_properties, ITEM_PROPERTY_ENABLE) = Qt; 7018 AREF (item_properties, ITEM_PROPERTY_ENABLE) = Qt;
7019 7019
7020 /* Save the item here to protect it from GC. */ 7020 /* Save the item here to protect it from GC. */
7021 AREF (item_properties, ITEM_PROPERTY_ITEM) = item; 7021 AREF (item_properties, ITEM_PROPERTY_ITEM) = item;
7022 7022
@@ -7036,7 +7036,7 @@ parse_menu_item (item, notreal, inmenubar)
7036 start = item; 7036 start = item;
7037 item = XCDR (item); 7037 item = XCDR (item);
7038 } 7038 }
7039 7039
7040 /* Maybe key binding cache. */ 7040 /* Maybe key binding cache. */
7041 if (CONSP (item) && CONSP (XCAR (item)) 7041 if (CONSP (item) && CONSP (XCAR (item))
7042 && (NILP (XCAR (XCAR (item))) 7042 && (NILP (XCAR (XCAR (item)))
@@ -7045,7 +7045,7 @@ parse_menu_item (item, notreal, inmenubar)
7045 cachelist = XCAR (item); 7045 cachelist = XCAR (item);
7046 item = XCDR (item); 7046 item = XCDR (item);
7047 } 7047 }
7048 7048
7049 /* This is the real definition--the function to run. */ 7049 /* This is the real definition--the function to run. */
7050 AREF (item_properties, ITEM_PROPERTY_DEF) = item; 7050 AREF (item_properties, ITEM_PROPERTY_DEF) = item;
7051 7051
@@ -7141,7 +7141,7 @@ parse_menu_item (item, notreal, inmenubar)
7141 return 0; 7141 return 0;
7142 AREF (item_properties, ITEM_PROPERTY_NAME) = item_string; 7142 AREF (item_properties, ITEM_PROPERTY_NAME) = item_string;
7143 } 7143 }
7144 7144
7145 /* If got a filter apply it on definition. */ 7145 /* If got a filter apply it on definition. */
7146 def = AREF (item_properties, ITEM_PROPERTY_DEF); 7146 def = AREF (item_properties, ITEM_PROPERTY_DEF);
7147 if (!NILP (filter)) 7147 if (!NILP (filter))
@@ -7169,7 +7169,7 @@ parse_menu_item (item, notreal, inmenubar)
7169 is OK in a submenu but not in the menubar. */ 7169 is OK in a submenu but not in the menubar. */
7170 if (NILP (def)) 7170 if (NILP (def))
7171 return (inmenubar ? 0 : 1); 7171 return (inmenubar ? 0 : 1);
7172 7172
7173 /* See if this is a separate pane or a submenu. */ 7173 /* See if this is a separate pane or a submenu. */
7174 def = AREF (item_properties, ITEM_PROPERTY_DEF); 7174 def = AREF (item_properties, ITEM_PROPERTY_DEF);
7175 tem = get_keymap (def, 0, 1); 7175 tem = get_keymap (def, 0, 1);
@@ -7180,7 +7180,7 @@ parse_menu_item (item, notreal, inmenubar)
7180 AREF (item_properties, ITEM_PROPERTY_DEF) = tem; 7180 AREF (item_properties, ITEM_PROPERTY_DEF) = tem;
7181 return 1; 7181 return 1;
7182 } 7182 }
7183 7183
7184 /* At the top level in the menu bar, do likewise for commands also. 7184 /* At the top level in the menu bar, do likewise for commands also.
7185 The menu bar does not display equivalent key bindings anyway. 7185 The menu bar does not display equivalent key bindings anyway.
7186 ITEM_PROPERTY_DEF is already set up properly. */ 7186 ITEM_PROPERTY_DEF is already set up properly. */
@@ -7207,7 +7207,7 @@ parse_menu_item (item, notreal, inmenubar)
7207 XSETCAR (cachelist, Qt); 7207 XSETCAR (cachelist, Qt);
7208 } 7208 }
7209 } 7209 }
7210 7210
7211 tem = XCAR (cachelist); 7211 tem = XCAR (cachelist);
7212 if (!EQ (tem, Qt)) 7212 if (!EQ (tem, Qt))
7213 { 7213 {
@@ -7315,7 +7315,7 @@ parse_menu_item (item, notreal, inmenubar)
7315 } 7315 }
7316 */ 7316 */
7317 7317
7318 /* Handle radio buttons or toggle boxes. */ 7318 /* Handle radio buttons or toggle boxes. */
7319 tem = AREF (item_properties, ITEM_PROPERTY_SELECTED); 7319 tem = AREF (item_properties, ITEM_PROPERTY_SELECTED);
7320 if (!NILP (tem)) 7320 if (!NILP (tem))
7321 AREF (item_properties, ITEM_PROPERTY_SELECTED) 7321 AREF (item_properties, ITEM_PROPERTY_SELECTED)
@@ -7382,13 +7382,13 @@ tool_bar_items (reuse, nitems)
7382 avoids risk of specpdl overflow. */ 7382 avoids risk of specpdl overflow. */
7383 oquit = Vinhibit_quit; 7383 oquit = Vinhibit_quit;
7384 Vinhibit_quit = Qt; 7384 Vinhibit_quit = Qt;
7385 7385
7386 /* Initialize tool_bar_items_vector and protect it from GC. */ 7386 /* Initialize tool_bar_items_vector and protect it from GC. */
7387 init_tool_bar_items (reuse); 7387 init_tool_bar_items (reuse);
7388 7388
7389 /* Build list of keymaps in maps. Set nmaps to the number of maps 7389 /* Build list of keymaps in maps. Set nmaps to the number of maps
7390 to process. */ 7390 to process. */
7391 7391
7392 /* Should overriding-terminal-local-map and overriding-local-map apply? */ 7392 /* Should overriding-terminal-local-map and overriding-local-map apply? */
7393 if (!NILP (Voverriding_local_map_menu_flag)) 7393 if (!NILP (Voverriding_local_map_menu_flag))
7394 { 7394 {
@@ -7433,7 +7433,7 @@ tool_bar_items (reuse, nitems)
7433 if (CONSP (keymap)) 7433 if (CONSP (keymap))
7434 { 7434 {
7435 Lisp_Object tail; 7435 Lisp_Object tail;
7436 7436
7437 /* KEYMAP is a list `(keymap (KEY . BINDING) ...)'. */ 7437 /* KEYMAP is a list `(keymap (KEY . BINDING) ...)'. */
7438 for (tail = keymap; CONSP (tail); tail = XCDR (tail)) 7438 for (tail = keymap; CONSP (tail); tail = XCDR (tail))
7439 { 7439 {
@@ -7471,7 +7471,7 @@ process_tool_bar_item (key, def)
7471 for (i = 0; i < ntool_bar_items; i += TOOL_BAR_ITEM_NSLOTS) 7471 for (i = 0; i < ntool_bar_items; i += TOOL_BAR_ITEM_NSLOTS)
7472 { 7472 {
7473 Lisp_Object *v = XVECTOR (tool_bar_items_vector)->contents + i; 7473 Lisp_Object *v = XVECTOR (tool_bar_items_vector)->contents + i;
7474 7474
7475 if (EQ (key, v[TOOL_BAR_ITEM_KEY])) 7475 if (EQ (key, v[TOOL_BAR_ITEM_KEY]))
7476 { 7476 {
7477 if (ntool_bar_items > i + TOOL_BAR_ITEM_NSLOTS) 7477 if (ntool_bar_items > i + TOOL_BAR_ITEM_NSLOTS)
@@ -7497,41 +7497,41 @@ process_tool_bar_item (key, def)
7497 invalid. 7497 invalid.
7498 7498
7499 ITEM is a list `(menu-item CAPTION BINDING PROPS...)'. 7499 ITEM is a list `(menu-item CAPTION BINDING PROPS...)'.
7500 7500
7501 CAPTION is the caption of the item, If it's not a string, it is 7501 CAPTION is the caption of the item, If it's not a string, it is
7502 evaluated to get a string. 7502 evaluated to get a string.
7503 7503
7504 BINDING is the tool bar item's binding. Tool-bar items with keymaps 7504 BINDING is the tool bar item's binding. Tool-bar items with keymaps
7505 as binding are currently ignored. 7505 as binding are currently ignored.
7506 7506
7507 The following properties are recognized: 7507 The following properties are recognized:
7508 7508
7509 - `:enable FORM'. 7509 - `:enable FORM'.
7510 7510
7511 FORM is evaluated and specifies whether the tool bar item is 7511 FORM is evaluated and specifies whether the tool bar item is
7512 enabled or disabled. 7512 enabled or disabled.
7513 7513
7514 - `:visible FORM' 7514 - `:visible FORM'
7515 7515
7516 FORM is evaluated and specifies whether the tool bar item is visible. 7516 FORM is evaluated and specifies whether the tool bar item is visible.
7517 7517
7518 - `:filter FUNCTION' 7518 - `:filter FUNCTION'
7519 7519
7520 FUNCTION is invoked with one parameter `(quote BINDING)'. Its 7520 FUNCTION is invoked with one parameter `(quote BINDING)'. Its
7521 result is stored as the new binding. 7521 result is stored as the new binding.
7522 7522
7523 - `:button (TYPE SELECTED)' 7523 - `:button (TYPE SELECTED)'
7524 7524
7525 TYPE must be one of `:radio' or `:toggle'. SELECTED is evaluated 7525 TYPE must be one of `:radio' or `:toggle'. SELECTED is evaluated
7526 and specifies whether the button is selected (pressed) or not. 7526 and specifies whether the button is selected (pressed) or not.
7527 7527
7528 - `:image IMAGES' 7528 - `:image IMAGES'
7529 7529
7530 IMAGES is either a single image specification or a vector of four 7530 IMAGES is either a single image specification or a vector of four
7531 image specifications. See enum tool_bar_item_images. 7531 image specifications. See enum tool_bar_item_images.
7532 7532
7533 - `:help HELP-STRING'. 7533 - `:help HELP-STRING'.
7534 7534
7535 Gives a help string to display for the tool bar item. */ 7535 Gives a help string to display for the tool bar item. */
7536 7536
7537static int 7537static int
@@ -7565,11 +7565,11 @@ parse_tool_bar_item (key, item)
7565 else 7565 else
7566 tool_bar_item_properties 7566 tool_bar_item_properties
7567 = Fmake_vector (make_number (TOOL_BAR_ITEM_NSLOTS), Qnil); 7567 = Fmake_vector (make_number (TOOL_BAR_ITEM_NSLOTS), Qnil);
7568 7568
7569 /* Set defaults. */ 7569 /* Set defaults. */
7570 PROP (TOOL_BAR_ITEM_KEY) = key; 7570 PROP (TOOL_BAR_ITEM_KEY) = key;
7571 PROP (TOOL_BAR_ITEM_ENABLED_P) = Qt; 7571 PROP (TOOL_BAR_ITEM_ENABLED_P) = Qt;
7572 7572
7573 /* Get the caption of the item. If the caption is not a string, 7573 /* Get the caption of the item. If the caption is not a string,
7574 evaluate it to get a string. If we don't get a string, skip this 7574 evaluate it to get a string. If we don't get a string, skip this
7575 item. */ 7575 item. */
@@ -7656,13 +7656,13 @@ parse_tool_bar_item (key, item)
7656 PROP (TOOL_BAR_ITEM_ENABLED_P) 7656 PROP (TOOL_BAR_ITEM_ENABLED_P)
7657 = menu_item_eval_property (PROP (TOOL_BAR_ITEM_ENABLED_P)); 7657 = menu_item_eval_property (PROP (TOOL_BAR_ITEM_ENABLED_P));
7658 7658
7659 /* Handle radio buttons or toggle boxes. */ 7659 /* Handle radio buttons or toggle boxes. */
7660 if (!NILP (PROP (TOOL_BAR_ITEM_SELECTED_P))) 7660 if (!NILP (PROP (TOOL_BAR_ITEM_SELECTED_P)))
7661 PROP (TOOL_BAR_ITEM_SELECTED_P) 7661 PROP (TOOL_BAR_ITEM_SELECTED_P)
7662 = menu_item_eval_property (PROP (TOOL_BAR_ITEM_SELECTED_P)); 7662 = menu_item_eval_property (PROP (TOOL_BAR_ITEM_SELECTED_P));
7663 7663
7664 return 1; 7664 return 1;
7665 7665
7666#undef PROP 7666#undef PROP
7667} 7667}
7668 7668
@@ -7689,7 +7689,7 @@ static void
7689append_tool_bar_item () 7689append_tool_bar_item ()
7690{ 7690{
7691 Lisp_Object *to, *from; 7691 Lisp_Object *to, *from;
7692 7692
7693 /* Enlarge tool_bar_items_vector if necessary. */ 7693 /* Enlarge tool_bar_items_vector if necessary. */
7694 if (ntool_bar_items + TOOL_BAR_ITEM_NSLOTS 7694 if (ntool_bar_items + TOOL_BAR_ITEM_NSLOTS
7695 >= XVECTOR (tool_bar_items_vector)->size) 7695 >= XVECTOR (tool_bar_items_vector)->size)
@@ -7991,7 +7991,7 @@ read_char_minibuf_menu_prompt (commandflag, nmaps, maps)
7991 tem = build_string (NILP (selected) ? "[X] " : "[ ] "); 7991 tem = build_string (NILP (selected) ? "[X] " : "[ ] ");
7992 s = concat2 (tem, s); 7992 s = concat2 (tem, s);
7993 } 7993 }
7994 7994
7995 7995
7996 /* If we have room for the prompt string, add it to this line. 7996 /* If we have room for the prompt string, add it to this line.
7997 If this is the first on the line, always add it. */ 7997 If this is the first on the line, always add it. */
@@ -8054,7 +8054,7 @@ read_char_minibuf_menu_prompt (commandflag, nmaps, maps)
8054 } 8054 }
8055 8055
8056 /* Prompt with that and read response. */ 8056 /* Prompt with that and read response. */
8057 message2_nolog (menu, strlen (menu), 8057 message2_nolog (menu, strlen (menu),
8058 ! NILP (current_buffer->enable_multibyte_characters)); 8058 ! NILP (current_buffer->enable_multibyte_characters));
8059 8059
8060 /* Make believe its not a keyboard macro in case the help char 8060 /* Make believe its not a keyboard macro in case the help char
@@ -8691,7 +8691,7 @@ read_key_sequence (keybuf, bufsize, prompt, dont_downcase_last,
8691 orig_keymap = get_local_map (PT, current_buffer, Qkeymap); 8691 orig_keymap = get_local_map (PT, current_buffer, Qkeymap);
8692 goto replay_sequence; 8692 goto replay_sequence;
8693 } 8693 }
8694 8694
8695 /* For a mouse click, get the local text-property keymap 8695 /* For a mouse click, get the local text-property keymap
8696 of the place clicked on, rather than point. */ 8696 of the place clicked on, rather than point. */
8697 if (last_real_key_start == 0 8697 if (last_real_key_start == 0
@@ -8702,7 +8702,7 @@ read_key_sequence (keybuf, bufsize, prompt, dont_downcase_last,
8702 8702
8703 localized_local_map = 1; 8703 localized_local_map = 1;
8704 start = EVENT_START (key); 8704 start = EVENT_START (key);
8705 8705
8706 if (CONSP (start) && CONSP (XCDR (start))) 8706 if (CONSP (start) && CONSP (XCDR (start)))
8707 { 8707 {
8708 pos = POSN_BUFFER_POSN (start); 8708 pos = POSN_BUFFER_POSN (start);
@@ -8741,7 +8741,7 @@ read_key_sequence (keybuf, bufsize, prompt, dont_downcase_last,
8741 { 8741 {
8742 if (t + 1 >= bufsize) 8742 if (t + 1 >= bufsize)
8743 error ("Key sequence too long"); 8743 error ("Key sequence too long");
8744 8744
8745 keybuf[t] = posn; 8745 keybuf[t] = posn;
8746 keybuf[t + 1] = key; 8746 keybuf[t + 1] = key;
8747 mock_input = t + 2; 8747 mock_input = t + 2;
@@ -8863,7 +8863,7 @@ read_key_sequence (keybuf, bufsize, prompt, dont_downcase_last,
8863 else 8863 else
8864 { 8864 {
8865 Lisp_Object head; 8865 Lisp_Object head;
8866 8866
8867 /* Remember the position to put an upper bound on fkey.start. */ 8867 /* Remember the position to put an upper bound on fkey.start. */
8868 first_unbound = min (t, first_unbound); 8868 first_unbound = min (t, first_unbound);
8869 8869
@@ -9141,7 +9141,7 @@ read_key_sequence (keybuf, bufsize, prompt, dont_downcase_last,
9141 && (!NILP (Farrayp (XSYMBOL (next)->function)) 9141 && (!NILP (Farrayp (XSYMBOL (next)->function))
9142 || KEYMAPP (XSYMBOL (next)->function))) 9142 || KEYMAPP (XSYMBOL (next)->function)))
9143 next = XSYMBOL (next)->function; 9143 next = XSYMBOL (next)->function;
9144 9144
9145 /* If the key translation map gives a function, not an 9145 /* If the key translation map gives a function, not an
9146 array, then call the function with one arg and use 9146 array, then call the function with one arg and use
9147 its value instead. */ 9147 its value instead. */
@@ -9305,7 +9305,7 @@ read_key_sequence (keybuf, bufsize, prompt, dont_downcase_last,
9305 add_command_key (keybuf[t]); 9305 add_command_key (keybuf[t]);
9306 } 9306 }
9307 9307
9308 9308
9309 9309
9310 UNGCPRO; 9310 UNGCPRO;
9311 return t; 9311 return t;
@@ -9899,7 +9899,7 @@ KEEP-RECORD is non-nil. */)
9899 Lisp_Object keep_record; 9899 Lisp_Object keep_record;
9900{ 9900{
9901 int i; 9901 int i;
9902 9902
9903 this_command_key_count = 0; 9903 this_command_key_count = 0;
9904 9904
9905 if (NILP (keep_record)) 9905 if (NILP (keep_record))
@@ -10048,25 +10048,25 @@ stuff_buffered_input (stuffstring)
10048 stuff_char (*p++); 10048 stuff_char (*p++);
10049 stuff_char ('\n'); 10049 stuff_char ('\n');
10050 } 10050 }
10051 10051
10052 /* Anything we have read ahead, put back for the shell to read. */ 10052 /* Anything we have read ahead, put back for the shell to read. */
10053 /* ?? What should this do when we have multiple keyboards?? 10053 /* ?? What should this do when we have multiple keyboards??
10054 Should we ignore anything that was typed in at the "wrong" kboard? */ 10054 Should we ignore anything that was typed in at the "wrong" kboard? */
10055 for (; kbd_fetch_ptr != kbd_store_ptr; kbd_fetch_ptr++) 10055 for (; kbd_fetch_ptr != kbd_store_ptr; kbd_fetch_ptr++)
10056 { 10056 {
10057 int idx; 10057 int idx;
10058 10058
10059 if (kbd_fetch_ptr == kbd_buffer + KBD_BUFFER_SIZE) 10059 if (kbd_fetch_ptr == kbd_buffer + KBD_BUFFER_SIZE)
10060 kbd_fetch_ptr = kbd_buffer; 10060 kbd_fetch_ptr = kbd_buffer;
10061 if (kbd_fetch_ptr->kind == ASCII_KEYSTROKE_EVENT) 10061 if (kbd_fetch_ptr->kind == ASCII_KEYSTROKE_EVENT)
10062 stuff_char (kbd_fetch_ptr->code); 10062 stuff_char (kbd_fetch_ptr->code);
10063 10063
10064 kbd_fetch_ptr->kind = NO_EVENT; 10064 kbd_fetch_ptr->kind = NO_EVENT;
10065 idx = 2 * (kbd_fetch_ptr - kbd_buffer); 10065 idx = 2 * (kbd_fetch_ptr - kbd_buffer);
10066 ASET (kbd_buffer_gcpro, idx, Qnil); 10066 ASET (kbd_buffer_gcpro, idx, Qnil);
10067 ASET (kbd_buffer_gcpro, idx + 1, Qnil); 10067 ASET (kbd_buffer_gcpro, idx + 1, Qnil);
10068 } 10068 }
10069 10069
10070 input_pending = 0; 10070 input_pending = 0;
10071#endif 10071#endif
10072#endif /* BSD_SYSTEM and not BSD4_1 */ 10072#endif /* BSD_SYSTEM and not BSD4_1 */
@@ -10096,7 +10096,7 @@ clear_waiting_for_input ()
10096} 10096}
10097 10097
10098/* This routine is called at interrupt level in response to C-g. 10098/* This routine is called at interrupt level in response to C-g.
10099 10099
10100 If interrupt_input, this is the handler for SIGINT. Otherwise, it 10100 If interrupt_input, this is the handler for SIGINT. Otherwise, it
10101 is called from kbd_buffer_store_event, in handling SIGIO or 10101 is called from kbd_buffer_store_event, in handling SIGIO or
10102 SIGTINT. 10102 SIGTINT.
@@ -10186,7 +10186,7 @@ interrupt_signal (signalnum) /* If we don't have an argument, */
10186 } 10186 }
10187 while (c != '\n') c = getchar (); 10187 while (c != '\n') c = getchar ();
10188 } 10188 }
10189 else 10189 else
10190 { 10190 {
10191 /* During GC, it must be safe to reenable quitting again. */ 10191 /* During GC, it must be safe to reenable quitting again. */
10192 Vinhibit_quit = Qnil; 10192 Vinhibit_quit = Qnil;
@@ -10428,7 +10428,7 @@ delete_kboard (kb)
10428 KBOARD *kb; 10428 KBOARD *kb;
10429{ 10429{
10430 KBOARD **kbp; 10430 KBOARD **kbp;
10431 10431
10432 for (kbp = &all_kboards; *kbp != kb; kbp = &(*kbp)->next_kboard) 10432 for (kbp = &all_kboards; *kbp != kb; kbp = &(*kbp)->next_kboard)
10433 if (*kbp == NULL) 10433 if (*kbp == NULL)
10434 abort (); 10434 abort ();
@@ -10443,7 +10443,7 @@ delete_kboard (kb)
10443 if (current_kboard == kb) 10443 if (current_kboard == kb)
10444 abort (); 10444 abort ();
10445 } 10445 }
10446 10446
10447 wipe_kboard (kb); 10447 wipe_kboard (kb);
10448 xfree (kb); 10448 xfree (kb);
10449} 10449}
@@ -10545,7 +10545,7 @@ syms_of_keyboard ()
10545{ 10545{
10546 Vpre_help_message = Qnil; 10546 Vpre_help_message = Qnil;
10547 staticpro (&Vpre_help_message); 10547 staticpro (&Vpre_help_message);
10548 10548
10549 Vlispy_mouse_stem = build_string ("mouse"); 10549 Vlispy_mouse_stem = build_string ("mouse");
10550 staticpro (&Vlispy_mouse_stem); 10550 staticpro (&Vlispy_mouse_stem);
10551 10551
@@ -10620,7 +10620,7 @@ syms_of_keyboard ()
10620 10620
10621 Qsave_session = intern ("save-session"); 10621 Qsave_session = intern ("save-session");
10622 staticpro(&Qsave_session); 10622 staticpro(&Qsave_session);
10623 10623
10624 Qusr1_signal = intern ("usr1-signal"); 10624 Qusr1_signal = intern ("usr1-signal");
10625 staticpro (&Qusr1_signal); 10625 staticpro (&Qusr1_signal);
10626 Qusr2_signal = intern ("usr2-signal"); 10626 Qusr2_signal = intern ("usr2-signal");
@@ -10918,7 +10918,7 @@ instead of pixels.
10918This variable is also the threshold for motion of the mouse 10918This variable is also the threshold for motion of the mouse
10919to count as a drag. */); 10919to count as a drag. */);
10920 double_click_fuzz = 3; 10920 double_click_fuzz = 3;
10921 10921
10922 DEFVAR_BOOL ("inhibit-local-menu-bar-menus", &inhibit_local_menu_bar_menus, 10922 DEFVAR_BOOL ("inhibit-local-menu-bar-menus", &inhibit_local_menu_bar_menus,
10923 doc: /* *Non-nil means inhibit local map menu bar menus. */); 10923 doc: /* *Non-nil means inhibit local map menu bar menus. */);
10924 inhibit_local_menu_bar_menus = 0; 10924 inhibit_local_menu_bar_menus = 0;
diff --git a/src/mem-limits.h b/src/mem-limits.h
index 67835770742..3ba8f3ceaf8 100644
--- a/src/mem-limits.h
+++ b/src/mem-limits.h
@@ -46,6 +46,10 @@ extern int etext, __data_start; weak_extern (__data_start)
46#define BSD4_2 46#define BSD4_2
47#endif 47#endif
48 48
49#ifdef CYGWIN
50#define BSD4_2
51#endif
52
49#ifndef BSD4_2 53#ifndef BSD4_2
50#ifndef USG 54#ifndef USG
51#ifndef MSDOS 55#ifndef MSDOS