#!/bin/sh #### Patch script - GNU Emacs - version 19.30 to 19.31 #### This file contains patches to turn version 19.30 of GNU Emacs into #### 19.31. To apply them, cd to the top of the Emacs source tree, and #### then type 'sh '. #### After you apply the patches, you should run Emacs (an earlier 19 will do, #### as long as it's at least 19.29) and type M-x byte-recompile-directory RET #### lisp RET to recompile the changed Emacs Lisp files. Then you can build #### the new Emacs version. #### Also byte-compile these files in directory lisp/: # cal-china.el cal-coptic.el cal-hebrew.el cal-islam.el cal-iso.el # cal-julian.el cal-move.el cal-persia.el cc-compat.el decipher.el # ediff-vers.el emacs-lock.el follow.el gulp.el iso02-syn.el morse.el # shadow.el sun-curs.el sun-fns.el term/win32-win.el vt-control.el #### Use M-x byte-compile-file RET RET to compile #### file . You need to do it once for each of these files. #### We don't include patches for Info files since you can #### regenerate them from the Texinfo files that we do include. #### To update the changed info files, do #### (cd man; make) if [ -d lisp ] ; then true else if [ -d emacs-19.30/lisp ] ; then cd emacs-19.30 else (echo "$0: In order to apply this patch, the current directory" echo "must be the top of the Emacs distribution tree.") >&2 exit 1 fi fi ### moves and renames rm lisp/dired.todo rm lisp/iso02-acc.el rm lwlib/lwlib-Xol* rm nt/config.w95 rm src/gmalloc1.c rm src/gmalloc2.c rm src/s/windows95.h mv lisp/bytecpat.el lisp/patcomp.el mv lisp/cal-chinese.el lisp/cal-china.el test -f lisp/cal-chinese.elc && mv lisp/cal-chinese.elc lisp/cal-china.elc mv lisp/cal-islamic.el lisp/cal-islam.el test -f lisp/cal-islamic.elc && mv lisp/cal-islamic.elc lisp/cal-islam.elc mv src/s/linux.h src/s/lignux.h mv src/unexelfsgi.c src/unexsgi.c mv src/unexelfsni.c src/unexsni.c patch -p1 << \end-of-emacs-patch-kit diff -2rcpP --exclude=*.elc emacs-19.30/ChangeLog emacs-19.31/ChangeLog *** emacs-19.30/ChangeLog Sat Nov 25 00:49:54 1995 --- emacs-19.31/ChangeLog Sat May 25 15:30:21 1996 *************** *** 1,2 **** --- 1,253 ---- + Sat May 25 15:30:10 1996 Karl Heuer + + * Version 19.31 released. + + Sat May 25 10:37:33 1996 Karl Heuer + + * configure.in: Recognize sparc-*-lignux. + + Fri May 3 17:46:54 1996 Richard Stallman + + * make-dist: Include nt/inc/arpa and nt/inc/netinet in the dist. + Don't include config.w95. + + Sun Apr 21 02:53:56 1996 Richard Stallman + + * make-dist: Replace --no-clean-up and --no-tar options + with --clean-up and --tar, so that the default is useful. + + Mon Apr 15 19:28:14 1996 Eli Zaretskii + + * config.bat: Make sure the GDB init file is called src/_gdbinit; + if not, tell the user to rename it and abort. + + Sun Apr 14 16:01:17 1996 Eli Zaretskii + + * config.bat: With DJGPP v1.x, use `COFF2EXE' to produce JUNK.EXE + test program. + + Fri Apr 12 02:38:00 1996 Richard Stallman + + * config.bat (djgpp_ver): Variable renamed from djgpp-ver. + + * make-dist (MANIFEST): Fix previous change. + (msdos): Put mainmake.v2 into the dist. + + Wed Apr 10 06:08:48 1996 Roland McGrath + + * make-dist: Exit if autoconf fails. + + Wed Apr 10 13:28:33 1996 Eli Zaretskii + + * config.bat: Set djgpp-ver, and unset it at the end. + Add a number ofconditionals for DJGPP version 2. + Rename label libsrc2 to libsrc3. + Substitute for LDFLAGS in src/Makefile. + Substitute for ALL_CFLAGS in lib-src/Makefile. + + Mon Apr 8 17:08:03 1996 Richard Stallman + + * configure.in (ncurses): Check this after checking fns like strerror. + + Mon Apr 8 00:45:19 1996 Erik Naggum + + * make-dist (MANIFEST): Don't include lines from =files. + + Sun Apr 7 20:11:34 1996 Richard Stallman + + * make-dist: Don't put lisp/dired.todo in the dist. + + Fri Apr 5 13:09:47 1996 Richard Stallman + + * configure.in (HAVE_NCURSES): Look for library named ncurses. + + * configure.in (setlocale): Check for it. + + * configure.in (*-*-sysv4.2*): If no /usr/ccs/lib/cpp, use /lib/cpp. + + Tue Mar 26 21:47:17 1996 Richard Stallman + + * configure.in: Use lignux instead of linux as value of opsys. + + Fri Mar 22 12:11:29 1996 Richard Stallman + + * Makefile.in (install-strip): Fix whitespace. + Get rid of continuation. + + * config.sub: Convert linux or gnu/linux to lignux. + + Thu Mar 21 19:04:42 1996 Richard Stallman + + * configure.in: Accept lignux in configuration name. + + Wed Mar 20 09:51:01 1996 Richard Stallman + + * Makefile.in (install-strip): New target. + + Mon Mar 18 01:51:33 1996 Richard Stallman + + * Makefile.in (top_distclean): Use `|| true' to ignore error in rm. + -f failed to do the job on Suns. + + Wed Mar 13 03:20:00 1996 Richard Stallman + + * Makefile.in (install-arch-dep): Don't depend on install-arch-indep. + + * configure.in (linux/version.h): Check for this header. + + Tue Mar 12 02:58:53 1996 Roland McGrath + + * configure.in: Remove -fno-builtin hackery from -lm check. + + Fri Mar 8 15:31:44 1996 Roland McGrath + + * configure.in (-lm check): If $GCC, append -fno-builtin to $CC for + just this test. + + * configure.in (AC_PREREQ): Require version 2.8 of Autoconf. + + Mon Mar 4 03:54:56 1996 Richard Stallman + + * configure.in: Check for ncurses. + + Wed Feb 28 21:48:07 1996 Paul Eggert + + * configure.in (LOCALTIME_CACHE): + Also define if localtime mishandles unsetting TZ. + This works around a localtime bug in mips-dec-ultrix. + + Sun Feb 25 17:59:44 1996 Richard Stallman + + * make-dist (finder-inf.el): Use finder-compile-keywords-make-dist. + + * configure.in: Improve messages about X versions. + + Sat Feb 24 00:10:17 1996 Richard Stallman + + * configure.in (LOCALTIME_CACHE): Cope if $ac_cv_func_tzset is null. + + Fri Feb 23 16:39:09 1996 Richard Stallman + + * configure.in (HAVE_X11XTR6): Set it as a shell variable. + (HAVE_LIBXMU): If HAVE_X11XTR6, use -lSM and -lICE. + + * Makefile.in (install-arch-dep): Depend on install-arch-indep. + (install): Put install-arch-indep before install-arch-dep. + + Tue Feb 20 14:12:35 1996 Dave Love + + * INSTALL: Clarify info about MS-DOS path handling. + + Mon Feb 12 13:54:35 1996 Richard Stallman + + * Makefile.in (install-arch-indep): Install info/ccmode*. + In previous change, protect against /bin/pwd returning null string. + + Wed Feb 7 14:12:10 1996 Richard Stallman + + * Makefile.in (install-arch-indep): Copy build-dir's lisp subdir + to lispdir. + + Thu Feb 1 16:36:36 1996 Paul Eggert + + * configure.in (LD_RUN_PATH): Prepend x_libraries to this envvar. + + Tue Jan 30 21:22:40 1996 Richard Stallman + + * configure.in (HAVE_TIMEVAL): Set explicitly to `no' if test fails. + + Thu Jan 25 01:59:04 1996 Richard Stallman + + * Makefile.in (extraclean): Use ${top_distclean} to ensure + we delete everything distclean deletes. + + Tue Jan 23 12:35:24 1996 Karl Heuer + + * make-dist (lwlib): Don't distribute lwlib-Xol* files. + + Wed Jan 17 17:02:23 1996 Richard Stallman + + * configure.in (HAVE_X11): Merge $LD_SWITCH_X_SITE + into LDFLAGS instead of into LIBS. + + Tue Jan 16 17:53:38 1996 Richard Stallman + + * configure.in (HAVE_XMU): Fix typo in previous change. + + Mon Jan 15 15:07:46 1996 Richard Stallman + + * configure.in [Solaris]: Don't let $CC make us use /usr/ucb/cc. + + Wed Jan 10 15:09:50 1996 Erik Naggum + + * configure.in (USE_X_TOOLKIT = maybe): Delete redundant `fi'. + + Wed Jan 10 14:41:50 1996 Karl Heuer + + * Makefile.in (install-arch-indep): Ignore error if no chmod -R. + + Wed Jan 10 14:20:18 1996 Richard Stallman + + * configure.in (HAVE_XMU): Check for libXmu.a only if using toolkit + and use -lXt to link it. + + Mon Jan 8 09:48:39 1996 Richard Stallman + + * configure.in (locallisppath): Put version-specific dir first. + + Sun Jan 7 10:47:11 1996 Richard Stallman + + * configure.in (hppa-*-nextstep*): New alternative. + (USE_X_TOOLKIT): By default, set this to "maybe"; + and change that later to LUCID or "no" according to X11 version. + + * make-dist: Recompile outdated .elc files and update all autoloads. + + Fri Jan 5 18:12:10 1996 Roland McGrath + + * configure.in (locallisppath): Fix typo in last change: " -> '. + + Thu Jan 4 21:14:35 1996 Richard Stallman + + * configure.in (locallisppath): Add ../emacs/VERSION/site-lisp. + + Wed Dec 27 08:58:41 1995 Richard Stallman + + * Makefile.in (install-arch-indep): Give all files read permission. + + Tue Dec 26 00:07:16 1995 Richard Stallman + + * configure.in (hppa*-hp-hpux9shr*, hppa*-hp-hpux9*, hppa*-hp-hpux*): + If it is hpux 9, check for /usr/include/X11R5 and /usr/lib/x11R5. + + Sun Dec 24 18:10:14 1995 Richard Stallman + + * configure.in: Determine HAVE_X11R6. + (HAVE_MENUS): Renamed from HAVE_X_MENU. + + Thu Dec 21 02:23:44 1995 Richard Stallman + + * configure.in: Just "solaris" now defaults to version 2.4. + Add sunos4.1.n-noshare as alternative. + + Fri Dec 1 13:07:57 1995 Richard Stallman + + * configure.in (mips-sgi-irix6*): Set NON_GNU_CPP. + + Wed Nov 29 22:44:43 1995 Erik Naggum + + * Makefile.in (install-arch-indep): Add missing backslash. + + Wed Nov 29 14:44:31 1995 Karl Eichwalder + + * Makefile.in (install-arch-indep): Don't install + lispdir/[Mm]akefile*, lispdir/ChangeLog, lispdir/dired.todo. + + Wed Nov 29 00:13:03 1995 Richard Stallman + + * Makefile.in (install-arch-indep): Fix previous change. + + * configure.in (mips-sni-sysv*): New alias for mips-siemens-sysv*. + Fri Nov 24 23:40:55 1995 Richard Stallman *************** Sat Aug 5 01:58:56 1995 Richard Stallm *** 130,134 **** (i*86-*-nextstep*): Use nextstep.h. (sparc-*-nextstep*): New configuration. ! Wed Aug 2 22:05:03 1995 Richard Stallman --- 381,385 ---- (i*86-*-nextstep*): Use nextstep.h. (sparc-*-nextstep*): New configuration. ! Wed Aug 2 22:05:03 1995 Richard Stallman *************** Tue Jun 27 19:00:12 1995 Richard Stallm *** 185,189 **** * configure.in: On hpux9, use hpux9-x11r4.h if we have X11R4. On hpux9shr, use hpux9shxr4.h. ! Sat Jun 24 18:58:17 1995 Morten Welinder --- 436,440 ---- * configure.in: On hpux9, use hpux9-x11r4.h if we have X11R4. On hpux9shr, use hpux9shxr4.h. ! Sat Jun 24 18:58:17 1995 Morten Welinder *************** Wed Sep 21 12:59:04 1994 David J. MacKe *** 594,598 **** Wed Sep 21 05:28:03 1994 Richard Stallman ! * configure.in (i[345]86-sequent-ptx*): Handle Tue Sep 20 18:16:15 1994 Richard Stallman --- 845,849 ---- Wed Sep 21 05:28:03 1994 Richard Stallman ! * configure.in (i[345]86-sequent-ptx*): Handle Tue Sep 20 18:16:15 1994 Richard Stallman *************** Thu Feb 24 16:16:10 1994 Karl Heuer (k *** 1079,1083 **** Thu Feb 24 15:41:16 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) ! * configure.in (*-sysv4.1): Set NON_GNU_CPP. Tue Feb 22 19:05:02 1994 Karl Heuer (kwzh@geech.gnu.ai.mit.edu) --- 1330,1334 ---- Thu Feb 24 15:41:16 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) ! * configure.in (*-sysv4.1): Set NON_GNU_CPP. Tue Feb 22 19:05:02 1994 Karl Heuer (kwzh@geech.gnu.ai.mit.edu) *************** Tue Jan 18 18:47:51 1994 Richard Stallm *** 1188,1192 **** Mon Jan 17 17:17:14 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) ! * configure.in: If CPP has a value that is a directory, discard the value. --- 1439,1443 ---- Mon Jan 17 17:17:14 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) ! * configure.in: If CPP has a value that is a directory, discard the value. *************** Sun Nov 21 04:01:46 1993 Richard Stallm *** 1312,1316 **** Sat Nov 20 01:03:10 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) ! * configure.in (version): When --run-in-place, exclude ${datadir}/emacs/site-lisp from locallisppath. --- 1563,1567 ---- Sat Nov 20 01:03:10 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) ! * configure.in (version): When --run-in-place, exclude ${datadir}/emacs/site-lisp from locallisppath. *************** Fri Sep 10 01:18:13 1993 Roland McGrath *** 1453,1457 **** * configure.in: Remove check for $srcdir being configured. This ! pretty much works now. Grok {m68*-hp,i[34]86-*}-netbsd* and set opsys=netbsd. Check for XFree86 (/usr/X386/include) independent of whether --- 1704,1708 ---- * configure.in: Remove check for $srcdir being configured. This ! pretty much works now. Grok {m68*-hp,i[34]86-*}-netbsd* and set opsys=netbsd. Check for XFree86 (/usr/X386/include) independent of whether *************** Wed Aug 11 00:12:45 1993 Richard Stallm *** 1488,1492 **** * configure.in (m68*-hp-hpux*, hppa*-hp-hpux*): ! Recognize *.B8.* as hpux version 8. (m68*-tektronix-bsd*): Fix typo in tek4300. (AC_HAVE_FUNCS): Add ftime. --- 1739,1743 ---- * configure.in (m68*-hp-hpux*, hppa*-hp-hpux*): ! Recognize *.B8.* as hpux version 8. (m68*-tektronix-bsd*): Fix typo in tek4300. (AC_HAVE_FUNCS): Add ftime. *************** Fri Jul 30 20:54:58 1993 David J. MacKe *** 1542,1546 **** or if we were told to use X11 but not told where. Search the libraries from the s and/or m files when checking for ! functions. * configure.in: Remove any trailing slashes in prefix and exec_prefix. --- 1793,1797 ---- or if we were told to use X11 but not told where. Search the libraries from the s and/or m files when checking for ! functions. * configure.in: Remove any trailing slashes in prefix and exec_prefix. *************** Thu Jun 10 01:45:45 1993 Jim Blandy (j *** 1686,1690 **** * configure.in: Recognize configuration name for Data General AViiON machines. ! * configure.in: Use AC_LONG_FILE_NAMES. --- 1937,1941 ---- * configure.in: Recognize configuration name for Data General AViiON machines. ! * configure.in: Use AC_LONG_FILE_NAMES. *************** Fri Apr 9 07:20:40 1993 Jim Blandy (j *** 2219,2223 **** file-editing facilities. * configure.in: Renamed from configure. ! Quote the sections of shell script we want copied literally to the configure script. (compile): Initialize this to make the autoconf macros' code happy. --- 2470,2474 ---- file-editing facilities. * configure.in: Renamed from configure. ! Quote the sections of shell script we want copied literally to the configure script. (compile): Initialize this to make the autoconf macros' code happy. *************** Tue Feb 23 06:54:11 1993 Jim Blandy (j *** 2382,2386 **** Wed Feb 17 20:19:06 1993 Jim Blandy (jimb@totoro.cs.oberlin.edu) ! * make-dist: Don't distribute the external-lisp directory anymore. * INSTALL: Remove all references to external-lisp. --- 2633,2637 ---- Wed Feb 17 20:19:06 1993 Jim Blandy (jimb@totoro.cs.oberlin.edu) ! * make-dist: Don't distribute the external-lisp directory anymore. * INSTALL: Remove all references to external-lisp. *************** Fri Aug 14 12:31:45 1992 Eric S. Raymon *** 2710,2714 **** Thu Aug 13 13:02:31 1992 Jim Blandy (jimb@pogo.cs.oberlin.edu) ! * configure: When writing config.status, don't prefix progname with a '.'; it might be absolute. --- 2961,2965 ---- Thu Aug 13 13:02:31 1992 Jim Blandy (jimb@pogo.cs.oberlin.edu) ! * configure: When writing config.status, don't prefix progname with a '.'; it might be absolute. *************** Tue Jul 7 14:47:31 1992 Jim Blandy (j *** 2726,2730 **** * Makefile.in (clean, mostlyclean): Don't bother trying to `make ! clean' in arch-lib; it doesn't even have a Makefile. * Makefile.in (clean, mostlyclean): In the test which tries to --- 2977,2981 ---- * Makefile.in (clean, mostlyclean): Don't bother trying to `make ! clean' in arch-lib; it doesn't even have a Makefile. * Makefile.in (clean, mostlyclean): In the test which tries to *************** Wed Jun 10 19:20:27 1992 Jim Blandy (j *** 2788,2795 **** Thu May 28 09:51:46 1992 Ken Raeburn (Raeburn@Cygnus.COM) ! * make-dist: Don't distribute configured versions of config.h.in, paths.h.in, Makefile.in in src. ! * configure: Delete .tmp files before creating them; don't bother trying to make final targets writeable first, since it won't --- 3039,3046 ---- Thu May 28 09:51:46 1992 Ken Raeburn (Raeburn@Cygnus.COM) ! * make-dist: Don't distribute configured versions of config.h.in, paths.h.in, Makefile.in in src. ! * configure: Delete .tmp files before creating them; don't bother trying to make final targets writeable first, since it won't *************** Mon Apr 20 09:54:48 1992 Jim Blandy (j *** 2864,2868 **** change in the Makefile. ! * configure: Accept "-OPTION VALUE" as well as "-OPTION=VALUE". * INSTALL: Mention that you have to copy all the 'FOO.in' files to --- 3115,3119 ---- change in the Makefile. ! * configure: Accept "-OPTION VALUE" as well as "-OPTION=VALUE". * INSTALL: Mention that you have to copy all the 'FOO.in' files to *************** Wed Apr 8 00:58:46 1992 Jim Blandy (j *** 2911,2915 **** * Makefile, build-install: Renamed to Makefile.in and ! build-install.in; the configure script will edit these to produce the usable Makefile and build-install. * configure: Changed to produce ./Makefile, ./build-install, --- 3162,3166 ---- * Makefile, build-install: Renamed to Makefile.in and ! build-install.in; the configure script will edit these to produce the usable Makefile and build-install. * configure: Changed to produce ./Makefile, ./build-install, *************** Thu Apr 2 01:54:22 1992 Jim Blandy (j *** 2948,2952 **** * INSTALL: Doc fix. ! * Makefile: brought the Makefile up to the GNU coding standards, as described in standards.text: (TAGS): New name for the target which rebuilds the tags table. --- 3199,3203 ---- * INSTALL: Doc fix. ! * Makefile: brought the Makefile up to the GNU coding standards, as described in standards.text: (TAGS): New name for the target which rebuilds the tags table. *************** Tue Mar 31 10:25:57 1992 Jim Blandy (j *** 2989,2993 **** * share-lib: Re-renamed to etc, for the sake of tradition. * config.emacs: Changed default value for datadir to ../etc. ! * INSTALL, README: Adjusted. Wed Mar 18 15:54:58 1992 Jim Blandy (jimb@pogo.cs.oberlin.edu) --- 3240,3244 ---- * share-lib: Re-renamed to etc, for the sake of tradition. * config.emacs: Changed default value for datadir to ../etc. ! * INSTALL, README: Adjusted. Wed Mar 18 15:54:58 1992 Jim Blandy (jimb@pogo.cs.oberlin.edu) *************** Thu Jan 30 10:26:45 1992 Jim Blandy (j *** 3019,3023 **** * config.emacs: Print out progress report messages. ! * Makefile (src/paths.h): Don't generically replace /usr/local/lib/emacs with LIBROOT. This can hide bugs in the --- 3270,3274 ---- * config.emacs: Print out progress report messages. ! * Makefile (src/paths.h): Don't generically replace /usr/local/lib/emacs with LIBROOT. This can hide bugs in the *************** Thu Dec 5 14:39:44 1991 Jim Blandy (j *** 3053,3057 **** (EMACSROOT): New variable, giving the directory under which all of Emacs's libraries should be installed. Changed rest of file to ! use it. (LIBDIR): Now denotes only architecture-dependent dir - relevant cha (DATADIR): New variable, denoting architecture-independent dir. --- 3304,3308 ---- (EMACSROOT): New variable, giving the directory under which all of Emacs's libraries should be installed. Changed rest of file to ! use it. (LIBDIR): Now denotes only architecture-dependent dir - relevant cha (DATADIR): New variable, denoting architecture-independent dir. *************** Thu Dec 5 14:39:44 1991 Jim Blandy (j *** 3063,3067 **** * build-install: Changes parallel to the above. * README: Describe the new arrangement. ! * vms: New subdirectory for all the VMS stuff. --- 3314,3318 ---- * build-install: Changes parallel to the above. * README: Describe the new arrangement. ! * vms: New subdirectory for all the VMS stuff. diff -2rcpP --exclude=*.elc emacs-19.30/INSTALL emacs-19.31/INSTALL *** emacs-19.30/INSTALL Mon Jul 17 16:52:44 1995 --- emacs-19.31/INSTALL Tue May 7 15:00:45 1996 *************** Copyright (c) 1992, 1994 Free software F *** 17,22 **** BUILDING AND INSTALLATION: ! (This is for a Unix or Unix-like system. For MSDOS, see below; ! search for MSDOG. For Windows NT, see the file nt/install.) 1) Make sure your system has enough swapping space allocated to handle --- 17,23 ---- BUILDING AND INSTALLATION: ! ! (This is for a Unix or Unix-like system. For MSDOS, see below; search ! for MSDOG. For Windows NT or Windows 95, see the file nt/INSTALL.) 1) Make sure your system has enough swapping space allocated to handle *************** a program whose pure code is 900k bytes *** 24,28 **** least 400k and can reach 8Mb or more. If the swapping space is insufficient, you will get an error in the command `temacs -batch -l ! loadup dump', found in `./src/Makefile.in.in', or possibly when running the final dumped Emacs. --- 25,29 ---- least 400k and can reach 8Mb or more. If the swapping space is insufficient, you will get an error in the command `temacs -batch -l ! loadup dump', found in `./src/Makefile.in', or possibly when running the final dumped Emacs. *************** Lisp code you want Emacs to load before *** 146,150 **** site-load.el for additional libraries if you arrange for their documentation strings to be in the etc/DOC file (see ! src/Makefile.in.in if you wish to figure out how to do that). For all else, use site-init.el. --- 147,151 ---- site-load.el for additional libraries if you arrange for their documentation strings to be in the etc/DOC file (see ! src/Makefile.in if you wish to figure out how to do that). For all else, use site-init.el. *************** are installed in the following directori *** 183,196 **** `VERSION' stands for the number of the Emacs version you are installing, like `18.59' or `19.27'. Since the ! lisp library changes from one version of Emacs to another, including the version number in the path allows you to have several versions of Emacs installed ! at the same time; this means that you don't have to ! make Emacs unavailable while installing a new ! version. ! ! Emacs searches for its lisp files in ! `/usr/local/share/emacs/site-lisp', then in this ! directory. `/usr/local/share/emacs/VERSION/etc' holds the Emacs tutorial, the DOC --- 184,203 ---- `VERSION' stands for the number of the Emacs version you are installing, like `18.59' or `19.27'. Since the ! Lisp library changes from one version of Emacs to another, including the version number in the path allows you to have several versions of Emacs installed ! at the same time; in particular, you don't have to ! make Emacs unavailable while installing a new version. ! ! `/usr/local/share/emacs/VERSION/site-lisp' holds the local Emacs Lisp ! files installed for Emacs version VERSION only. ! ! `/usr/local/share/emacs/site-lisp' holds the local Emacs Lisp ! files installed for all Emacs versions. ! ! When Emacs is installed, it searches for its Lisp files ! in `/usr/local/share/emacs/VERSION/site-lisp', then in ! `/usr/local/share/emacs/site-lisp', and finally in ! `/usr/local/share/emacs/VERSION/lisp'. `/usr/local/share/emacs/VERSION/etc' holds the Emacs tutorial, the DOC *************** are installed in the following directori *** 229,233 **** If these directories are not what you want, you can specify where to install Emacs's libraries and data files or where Emacs should search ! for its lisp files by giving values for `make' variables as part of the command. See the section below called `MAKE VARIABLES' for more information on this. --- 236,240 ---- If these directories are not what you want, you can specify where to install Emacs's libraries and data files or where Emacs should search ! for its Lisp files by giving values for `make' variables as part of the command. See the section below called `MAKE VARIABLES' for more information on this. *************** Here is a complete list of the variables *** 269,273 **** defaults to /usr/local/share. We create the following subdirectories under `datadir': ! - `emacs/VERSION/lisp', containing the Emacs lisp library, and - `emacs/VERSION/etc', containing the Emacs tutorial, the DOC file, and the `yow' database. --- 276,280 ---- defaults to /usr/local/share. We create the following subdirectories under `datadir': ! - `emacs/VERSION/lisp', containing the Emacs Lisp library, and - `emacs/VERSION/etc', containing the Emacs tutorial, the DOC file, and the `yow' database. *************** The above variables serve analogous purp *** 340,357 **** GNU software; here are some variables specific to Emacs. ! `lispdir' indicates where Emacs installs and expects its lisp library. Its default value, based on `datadir' (see above), is `/usr/local/share/emacs/VERSION/lisp' (where `VERSION' is as described above). ! `locallisppath' indicates where Emacs should search for lisp files specific to your site. It should be a colon-separated list of directories; Emacs checks them in order before checking ! `lispdir'. Its default value, based on `datadir' (see above), ! is `/usr/local/share/emacs/site-lisp'. `lisppath' is the complete list of directories Emacs should search for ! its lisp files; its default value is the concatenation of ! `lispdir' and `locallisppath'. It should be a colon-separated list of directories; Emacs checks them in the order they appear. --- 347,364 ---- GNU software; here are some variables specific to Emacs. ! `lispdir' indicates where Emacs installs and expects its Lisp library. Its default value, based on `datadir' (see above), is `/usr/local/share/emacs/VERSION/lisp' (where `VERSION' is as described above). ! `locallisppath' indicates where Emacs should search for Lisp files specific to your site. It should be a colon-separated list of directories; Emacs checks them in order before checking ! `lispdir'. Its default value, based on `datadir' (see above), is ! `/usr/local/share/emacs/VERSION/site-lisp:/usr/local/share/emacs/site-lisp'. `lisppath' is the complete list of directories Emacs should search for ! its Lisp files; its default value is the concatenation of ! `locallisppath' and `lispdir'. It should be a colon-separated list of directories; Emacs checks them in the order they appear. *************** Instead of running the `configure' progr *** 390,394 **** following steps. ! 1) Copy `./src/config.h.in' to `./src/config.h'. 2) Consult `./etc/MACHINES' to see what configuration name you should --- 397,401 ---- following steps. ! 1) Copy `./src/config.in' to `./src/config.h'. 2) Consult `./etc/MACHINES' to see what configuration name you should *************** redefine parameters used in `./lib-src/m *** 406,411 **** 3) Create src/Makefile and lib-src/Makefile from the corresponding ! `Makefile.in.in' files. First copy `Makefile.in.in' to `Makefile.in', ! then edit in appropriate substituions for the @...@ constructs, and then copy the shell commands near the end of `configure' that run cpp to construct `Makefile'. --- 413,418 ---- 3) Create src/Makefile and lib-src/Makefile from the corresponding ! `Makefile.in' files. First copy `Makefile.in' to `Makefile.c', ! then edit in appropriate substitutions for the @...@ constructs, and then copy the shell commands near the end of `configure' that run cpp to construct `Makefile'. *************** the following steps. *** 424,428 **** 1) Run `make src/paths.h' in the top directory. This produces ! `./src/paths.h' from the template file `./src/paths.h.in', changing the paths to the values specified in `./Makefile'. --- 431,435 ---- 1) Run `make src/paths.h' in the top directory. This produces ! `./src/paths.h' from the template file `./src/paths.in', changing the paths to the values specified in `./Makefile'. *************** Installation on MSDOG (a.k.a. MSDOS) *** 505,515 **** To install on MSDOG, you need to have the GNU C compiler for MSDOG ! (also known as djgpp), GNU Make, rm, mv, chmod, and sed. Some users report that running Emacs 19.29 requires dpmi memory management. We do not know why this is so, since 19.28 did not need ! it. If we find out what change introduced this requirement, we will ! try to eliminate it. It is possible that this problem happens only ! when there is not enough physical memory on the machine. You can find out if you have a dpmi host by running go32 (part of --- 512,537 ---- To install on MSDOG, you need to have the GNU C compiler for MSDOG ! (also known as djgpp), GNU Make, rm, mv, chmod, and sed. See the ! remarks in config.bat for more information about locations and ! versions. ! ! If you are compiling on an MSDOG-like system which has long file ! names, you may need to do `SET LFN=y' for some of the commands, ! especially the compilation commands. It might be more convenient to ! unpack the Emacs distribution with djtar, which comes with djgpp; if ! you do `SET LFN=n' before unpacking, djtar truncates file names to 8.3 ! naming as it extracts files, even if the system allows long file ! names, and this ensures that build procedures designed for 8.3 file ! names still work. Use djtar with the command `djtar -x foo.tar' or ! `djtar -x foo.tgz'. Some users report that running Emacs 19.29 requires dpmi memory management. We do not know why this is so, since 19.28 did not need ! it. If we find out what change introduced this requirement, we may ! try to eliminate it. ("May" because perhaps djgpp version 2's ! improved dpmi handling means this is no longer a problem.) ! ! It is possible that this problem happens only when there is not enough ! physical memory on the machine. You can find out if you have a dpmi host by running go32 (part of *************** To build and install Emacs, type these c *** 522,535 **** make install ! You may need to work around a type conflict between gmalloc.c and the ! header file djgppstd.h regarding declarations of memalign and valloc. ! Temporarily deleting those declarations from djgppstd.h while compiling ! Emacs or while compiling gmalloc.c should do it. We found out about this ! problem too late to include a more convenient fix--sorry. ! ! To save disk space, Emacs is built with the idea that you will execute ! it from the same place in the file system where you built it. As the ! /usr/local/ subtree does not exist on most MSDOG systems, the ! executables are placed in /emacs/bin/. MSDOG is a not a multitasking operating system, so Emacs features such --- 544,560 ---- make install ! Building Emacs creates executable files in the src and lib-src ! directories. Installing Emacs on MSDOS moves these executables to a ! sibling directory called bin. For example, if you build in directory ! /emacs, installing moves the executables from /emacs/src and ! /emacs/lib-src to the directory /emacs/bin, so you can then delete the ! subdirectories /emacs/src and /emacs/lib-src if you wish. The only ! subdirectories you need to keep are bin, lisp, etc and info. ! ! Emacs on MSDOS finds the lisp, etc and info directories by looking in ! ../lisp, ../etc and ../info, starting from the directory where the ! Emacs executable was run from. You can override this by setting the ! environment variable HOME; if you do that, the directories lisp, etc ! and info are accessed as subdirectories of the HOME directory. MSDOG is a not a multitasking operating system, so Emacs features such diff -2rcpP --exclude=*.elc emacs-19.30/Makefile.in emacs-19.31/Makefile.in *** emacs-19.30/Makefile.in Thu Nov 16 12:23:21 1995 --- emacs-19.31/Makefile.in Fri Mar 22 23:25:01 1996 *************** lwlib/Makefile: lwlib/Makefile.in config *** 295,303 **** ## We don't depend on `all', but rather on ${SUBDIR}, so that we won't ## ever modify src/paths.h. ! install: ${SUBDIR} install-arch-dep install-arch-indep blessmail @true ! ### Note that we copy the DOC-* files from the build etc directory ! ### as well as lots of things from ${srcdir}/etc. install-arch-dep: mkdir (cd lib-src; \ --- 295,306 ---- ## We don't depend on `all', but rather on ${SUBDIR}, so that we won't ## ever modify src/paths.h. ! ### We do install-arch-indep first because ! ### the executable needs the Lisp files and DOC file to work properly. ! install: ${SUBDIR} install-arch-indep install-arch-dep blessmail @true ! ### Install the executables that were compiled specifically for this machine. ! ### It would be nice to do something for a parallel make ! ### to ensure that install-arch-indep finishes before this starts. install-arch-dep: mkdir (cd lib-src; \ *************** install-arch-dep: mkdir *** 310,351 **** -ln ${bindir}/emacs-${version} ${bindir}/$(EMACS) ! ### Note that we copy the DOC-* files from the build etc directory ! ### as well as lots of things from ${srcdir}/etc. ### Note that we copy DOC* and then delete DOC ### as a workaround for a bug in tar on Ultrix 4.2. - install-arch-indep: mkdir -set ${COPYDESTS} ; \ ! for dir in ${COPYDIR} ; do \ ! if [ `(cd $$1 && /bin/pwd)` != `(cd $${dir} && /bin/pwd)` ] ; then \ ! rm -rf $$1 ; \ ! fi ; \ ! shift ; \ ! done -set ${COPYDESTS} ; \ ! mkdir ${COPYDESTS} ; \ ! chmod ugo+rx ${COPYDESTS} ; \ ! for dir in ${COPYDIR} ; do \ ! dest=$$1 ; shift ; \ ! [ -d $${dir} ] \ ! && [ `(cd $${dir} && /bin/pwd)` != `(cd $${dest} && /bin/pwd)` ] \ ! && (echo "Copying $${dir}..." ; \ ! (cd $${dir}; tar -cf - . )|(cd $${dest};umask 022; tar -xvf - ); \ ! for subdir in `find $${dest} -type d ! -name RCS -print` ; do \ ! rm -rf $${subdir}/RCS ; \ ! rm -rf $${subdir}/CVS ; \ ! rm -f $${subdir}/\#* ; \ ! rm -f $${subdir}/.\#* ; \ ! rm -f $${subdir}/*~ ; \ ! rm -f $${subdir}/*.orig ; \ ! done) ; \ ! done -rm -f ${lispdir}/subdirs.el $(srcdir)/update-subdirs ${lispdir} if [ `(cd ./etc; /bin/pwd)` != `(cd ${docdir}; /bin/pwd)` ]; \ then \ ! echo "Copying etc/DOC-* ..." ; \ (cd etc; tar -cf - DOC*)|(cd ${docdir}; umask 0; tar -xvf - ); \ ! (cd $(docdir); rm DOC) \ else true; fi thisdir=`/bin/pwd`; \ --- 313,366 ---- -ln ${bindir}/emacs-${version} ${bindir}/$(EMACS) ! ### Install the files that are machine-independent. ! ### Most of them come straight from the distribution; ! ### the exception is the DOC-* files, which are copied ! ### from the build directory. ! ### Note that we copy DOC* and then delete DOC ### as a workaround for a bug in tar on Ultrix 4.2. install-arch-indep: mkdir -set ${COPYDESTS} ; \ ! for dir in ${COPYDIR} ; do \ ! if [ `(cd $$1 && /bin/pwd)` != `(cd $${dir} && /bin/pwd)` ] ; then \ ! rm -rf $$1 ; \ ! fi ; \ ! shift ; \ ! done -set ${COPYDESTS} ; \ ! mkdir ${COPYDESTS} ; \ ! chmod ugo+rx ${COPYDESTS} ; \ ! for dir in ${COPYDIR} ; do \ ! dest=$$1 ; shift ; \ ! [ -d $${dir} ] \ ! && [ `(cd $${dir} && /bin/pwd)` != `(cd $${dest} && /bin/pwd)` ] \ ! && (echo "Copying $${dir} to $${dest}..." ; \ ! (cd $${dir}; tar -cf - . )|(cd $${dest};umask 022; tar -xvf - ); \ ! for subdir in `find $${dest} -type d ! -name RCS -print` ; do \ ! rm -rf $${subdir}/RCS ; \ ! rm -rf $${subdir}/CVS ; \ ! rm -f $${subdir}/\#* ; \ ! rm -f $${subdir}/.\#* ; \ ! rm -f $${subdir}/*~ ; \ ! rm -f $${subdir}/*.orig ; \ ! rm -f $${subdir}/[mM]akefile* ; \ ! rm -f $${subdir}/ChangeLog* ; \ ! rm -f $${subdir}/dired.todo ; \ ! done) ; \ ! done -rm -f ${lispdir}/subdirs.el $(srcdir)/update-subdirs ${lispdir} + -chmod -R a+r ${COPYDESTS} if [ `(cd ./etc; /bin/pwd)` != `(cd ${docdir}; /bin/pwd)` ]; \ then \ ! echo "Copying etc/DOC-* to ${docdir} ..." ; \ (cd etc; tar -cf - DOC*)|(cd ${docdir}; umask 0; tar -xvf - ); \ ! (cd $(docdir); chmod a+r DOC*; rm DOC) \ ! else true; fi ! if [ x`(cd ./lisp; /bin/pwd)` != x`(cd ${lispdir}; /bin/pwd)` ] \ ! && [ x`(cd ${srcdir}/lisp; /bin/pwd)` != x`(cd ./lisp; /bin/pwd)` ]; \ ! then \ ! echo "Copying lisp/*.el and lisp/*.elc to ${lispdir} ..." ; \ ! (cd lisp; tar -cf - *.el *.elc)|(cd ${lispdir}; umask 0; tar -xvf - ); \ else true; fi thisdir=`/bin/pwd`; \ *************** install-arch-indep: mkdir *** 353,368 **** then \ (cd ${infodir}; \ ! if [ -f dir ] && [ ! -f dir.old ]; then mv -f dir dir.old; \ ! else mv -f dir dir.bak; fi; \ cd ${srcdir}/info ; \ (cd $${thisdir}; ${INSTALL_DATA} ${srcdir}/info/dir ${infodir}/dir); \ ! for f in cl* dired-x* ediff* emacs* forms* gnus* info* mh-e* sc* vip*; do \ ! (cd $${thisdir}; ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f); \ done); \ else true; fi ! thisdir=`/bin/pwd`; cd ${srcdir}/etc; for page in emacs etags ctags ; do \ ! (cd $${thisdir}; ${INSTALL_DATA} ${srcdir}/etc/$${page}.1 ${man1dir}/$${page}${manext}); \ done ### Build all the directories we're going to install Emacs in. Since ### we may be creating several layers of directories (for example, --- 368,396 ---- then \ (cd ${infodir}; \ ! if [ -f dir ]; then \ ! if [ ! -f dir.old ]; then mv -f dir dir.old; \ ! else mv -f dir dir.bak; fi; \ ! fi; \ cd ${srcdir}/info ; \ (cd $${thisdir}; ${INSTALL_DATA} ${srcdir}/info/dir ${infodir}/dir); \ ! (cd $${thisdir}; chmod a+r ${infodir}/dir); \ ! for f in ccmode* cl* dired-x* ediff* emacs* forms* gnus* info* mh-e* sc* vip*; do \ ! (cd $${thisdir}; \ ! ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f; \ ! chmod a+r ${infodir}/$$f); \ done); \ else true; fi ! thisdir=`/bin/pwd`; \ ! cd ${srcdir}/etc; \ ! for page in emacs etags ctags ; do \ ! (cd $${thisdir}; \ ! ${INSTALL_DATA} ${srcdir}/etc/$${page}.1 ${man1dir}/$${page}${manext}; \ ! chmod a+r ${man1dir}/$${page}${manext}); \ done + ### Build Emacs and install it, stripping binaries while installing them. + install-strip: + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install + ### Build all the directories we're going to install Emacs in. Since ### we may be creating several layers of directories (for example, *************** top_distclean=\ *** 445,449 **** rm -f config.status config.cache config.log ; \ rm -f Makefile ${SUBDIR_MAKEFILES} ; \ ! (cd lock && rm -f *) distclean: FRC (cd src; $(MAKE) $(MFLAGS) distclean) --- 473,477 ---- rm -f config.status config.cache config.log ; \ rm -f Makefile ${SUBDIR_MAKEFILES} ; \ ! (cd lock && (rm * || true)) distclean: FRC (cd src; $(MAKE) $(MFLAGS) distclean) *************** maintainer-clean: FRC *** 479,484 **** extraclean: for i in ${SUBDIR}; do (cd $$i; $(MAKE) $(MFLAGS) extraclean); done ! -(cd lock && rm *) ! -rm config.status config-tmp-* -rm -f *~ \#* --- 507,512 ---- extraclean: for i in ${SUBDIR}; do (cd $$i; $(MAKE) $(MFLAGS) extraclean); done ! ${top_distclean} ! -rm config-tmp-* -rm -f *~ \#* diff -2rcpP --exclude=*.elc emacs-19.30/PROBLEMS emacs-19.31/PROBLEMS *** emacs-19.30/PROBLEMS Fri Nov 10 12:46:16 1995 --- emacs-19.31/PROBLEMS Thu May 23 12:14:03 1996 *************** This file describes various problems tha *** 2,5 **** --- 2,71 ---- in compiling, installing and running GNU Emacs. + * On Windows 95, Alt-f6 does not get through to Emacs. + + This character seems to be trapped by the kernel in Windows 95. + You can enter M-f6 by typing ESC f6. + + * Typing Alt-Shift has strange effects on Windows 95. + + This combination of keys is a command to change keyboard layout. If + you proceed to type another non-modifier key before you let go of Alt + and Shift, the Alt and Shift act as modifiers in the usual way. + + * `tparam' reported as a multiply-defined symbol when linking with ncurses. + + This problem results from an incompatible change in ncurses, in + version 1.9.9e approximately. This version is unable to provide a + definition of tparm without also defining tparam. This is also + incompatible with Terminfo; as a result, the Emacs Terminfo support + does not work with this version of ncurses. + + Until ncurses is fixed, the workaround is to link temacs without + terminfo.o. + + * Strange results from format %d in a few cases, on a Sun. + + Sun compiler version SC3.0 has been found to miscompile part of + editfns.c. The workaround is to compile with some other compiler such + as GCC. + + * Output from subprocess (such as man or diff) is randomly truncated + on GNU/Linux systems. + + This is due to a kernel bug which seems to be fixed in Linux version + 1.3.75. + + * Error messages `internal facep []' happen on GNU/Linux systems. + + There is a report that replacing libc.so.5.0.9 with libc.so.5.2.16 + caused this to start happening. People are not sure why, but the + problem seems unlikely to be in Emacs itself. Some suspect that it + is actually Xlib which won't work with libc.so.5.2.16. + + Using the old library version is a workaround. + + * On Solaris, Emacs crashes if you use (display-time). + + This can happen if you configure Emacs without specifying the precise + version of Solaris that you are using. + + * Emacs dumps core on startup, on Solaris. + + Bill Sebok says that the cause of this is Solaris 2.4 vendor patch + 102303-05, which extends the Solaris linker to deal with the Solaris + Common Desktop Environment's linking needs. You can fix the problem + by removing this patch and installing patch 102049-02 instead. + However, that linker version won't work with CDE. + + On Solaris 2.5, the linker has this bug and there is no patch you + could remove to get rid of the bug. However, the GNU linker does + work. + + * Emacs dumps core if lisp-complete-symbol is called, on Solaris. + + If you compile Emacs with the -fast or -xO4 option with version 3.0.2 + of the Sun C compiler, Emacs dumps core when lisp-complete-symbol is + called. The problem does not happen if you compile with GCC. + * "Cannot find callback list" messages from dialog boxes on HPUX, in Emacs built with Motif. *************** find that string, and take out the space *** 16,19 **** --- 82,118 ---- Compiler fixes in Irix 6.0.1 should eliminate this problem. + * "out of virtual swap space" on Irix 5.3 + + This message occurs when the system runs out of swap space due to too + many large programs running. The solution is either to provide more + swap space or to reduce the number of large programs being run. You + can check the current status of the swap space by executing the + command `swap -l'. + + You can increase swap space by changing the file /etc/fstab. Adding a + line like this: + + /usr/swap/swap.more swap swap pri=3 0 0 + + where /usr/swap/swap.more is a file previously created (for instance + by using /etc/mkfile), will increase the swap space by the size of + that file. Execute `swap -m' or reboot the machine to activate the + new swap area. See the manpages for `swap' and `fstab' for further + information. + + The objectserver daemon can use up lots of memory because it can be + swamped with NIS information. It collects information about all users + on the network that can log on to the host. + + If you want to disable the objectserver completely, you can execute + the command `chkconfig objectserver off' and reboot. That may disable + some of the window system functionality, such as responding CDROM + icons. + + You can also remove NIS support from the objectserver. The SGI `admin' + FAQ has a detailed description on how to do that; see question 35 + ("Why isn't the objectserver working?"). The admin FAQ can be found at + ftp://viz.tamu.edu/pub/sgi/faq/. + * With certain fonts, when the cursor appears on a character, the character doesn't appear--you get a solid box instead. *************** twm normally ignores "program-specified" *** 103,107 **** You can tell it to obey them with this command in your `.twmrc' file: ! UsePPosition "on" #allow clents to request a position * Compiling lib-src says there is no rule to make test-distrib.c. --- 202,206 ---- You can tell it to obey them with this command in your `.twmrc' file: ! UsePPosition "on" #allow clients to request a position * Compiling lib-src says there is no rule to make test-distrib.c. *************** directory contains scalable fonts if it *** 396,400 **** If this is so, re-order your X windows font path to put the scalable ! font directories last. See the documentatoin of `xset' for details. With some X servers, it may be necessary to take the scalable font --- 495,499 ---- If this is so, re-order your X windows font path to put the scalable ! font directories last. See the documentation of `xset' for details. With some X servers, it may be necessary to take the scalable font diff -2rcpP --exclude=*.elc emacs-19.30/README emacs-19.31/README *** emacs-19.30/README Sat Nov 25 01:01:27 1995 --- emacs-19.31/README Sat May 25 20:17:36 1996 *************** *** 1,3 **** ! This directory tree holds version 19.30 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. --- 1,3 ---- ! This directory tree holds version 19.31 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. diff -2rcpP --exclude=*.elc emacs-19.30/config.bat emacs-19.31/config.bat *** emacs-19.30/config.bat Fri Sep 1 12:10:22 1995 --- emacs-19.31/config.bat Mon Apr 15 14:40:49 1996 *************** rem YOU'LL NEED THE FOLLOWING UTILITIE *** 23,40 **** rem rem + msdos version 3 or better. ! rem + djgpp version 1,11 maint 4 or better. rem + make utility that allows breaking of the 128 chars limit on rem command lines. ndmake (as of version 4.5) won't work due to a ! rem line length limit. ! rem + rm, mv, chmod (From GNU file utilities). ! rem + sed. rem ! rem You should be able to get all the above utilities from all ! rem Simtel repositories, e.g., oak.oakland.edu in the directories ! rem "/pub/msdos/djgpp" and "/pub/msdos/gnuish". As usual, please ! rem use your local mirroring site to reduce trans-Atlantic traffic. rem ---------------------------------------------------------------------- set X11= set nodebug= :again if "%1" == "" goto usage --- 23,42 ---- rem rem + msdos version 3 or better. ! rem + djgpp version 1.12maint1 or later (version 2.0 or later recommended). rem + make utility that allows breaking of the 128 chars limit on rem command lines. ndmake (as of version 4.5) won't work due to a ! rem line length limit. The make that comes with djgpp does work. ! rem + rm and mv (from GNU file utilities). ! rem + sed (you can use the port that comes with DJGPP). rem ! rem You should be able to get all the above utilities from any SimTel ! rem repository, e.g. ftp.coast.net, in the directories ! rem "SimTel/vendors/djgpp" and "SimTel/vendors/gnu/gnuish/dos_only". As ! rem usual, please use your local mirroring site to reduce trans-Atlantic ! rem traffic. rem ---------------------------------------------------------------------- set X11= set nodebug= + set djgpp_ver= :again if "%1" == "" goto usage *************** rm -f junk.c *** 88,92 **** Goto End :gccOk ! rm -f junk.c junk.o Rem ---------------------------------------------------------------------- Echo Configuring the source directory... --- 90,121 ---- Goto End :gccOk ! rm -f junk.c junk.o junk junk.exe ! Echo Checking what version of DJGPP is installed... ! If Not "%DJGPP%" == "" goto djgppOk ! Echo To compile 'Emacs' under MS-DOS you MUST have DJGPP installed! ! Goto End ! :djgppOk ! echo int main() >junk.c ! echo #ifdef __DJGPP__ >>junk.c ! echo {return (__DJGPP__)*10;} >>junk.c ! echo #else >>junk.c ! echo #ifdef __GO32__ >>junk.c ! echo {return 10;} >>junk.c ! echo #else >>junk.c ! echo {return 0;} >>junk.c ! echo #endif >>junk.c ! echo #endif >>junk.c ! gcc -o junk junk.c ! if not exist junk.exe coff2exe junk ! junk ! If ErrorLevel 10 Goto go32Ok ! rm -f junk.c junk junk.exe ! Echo To compile 'Emacs' under MS-DOS you MUST have DJGPP installed! ! Goto End ! :go32Ok ! set djgpp_ver=1 ! If ErrorLevel 20 set djgpp_ver=2 ! rm -f junk.c junk junk.exe ! Echo Configuring for DJGPP Version %DJGPP_VER% ... Rem ---------------------------------------------------------------------- Echo Configuring the source directory... *************** rem Create "makefile" from "makefile.i *** 114,118 **** --- 143,152 ---- rm -f makefile junk.c sed -e "1,/cpp stuff/s@^# .*$@@" junk.c + If "%DJGPP_VER%" == "1" Goto mfV1 + gcc -E junk.c | sed -f ../msdos/sed1v2.inp >makefile + goto mfDone + :mfV1 gcc -E junk.c | sed -f ../msdos/sed1.inp >makefile + :mfDone rm -f junk.c *************** rm -f makefile.tmp *** 125,129 **** if "%nodebug%" == "" goto src6 sed -e "/^CFLAGS *=/s/ *-g//" makefile.tmp ! mv -f makefile.tmp makefile :src6 cd .. --- 159,164 ---- if "%nodebug%" == "" goto src6 sed -e "/^CFLAGS *=/s/ *-g//" makefile.tmp ! sed -e "/^LDFLAGS *=/s/=/=-s/" makefile ! rm -f makefile.tmp :src6 cd .. *************** rem Create "makefile" from "makefile.i *** 134,143 **** sed -e "1,/cpp stuff/s@^# .*$@@" junk.c gcc -E -I. -I../src junk.c | sed -e "s/^ / /" -e "/^#/d" -e "/^[ ]*$/d" >makefile.new sed -f ../msdos/sed3.inp makefile rm -f makefile.new junk.c ! if "%nodebug%" == "" goto libsrc2 sed -e "/^CFLAGS *=/s/ *-g//" makefile.tmp ! mv -f makefile.tmp makefile ! :libsrc2 cd .. rem ---------------------------------------------------------------------- --- 169,184 ---- sed -e "1,/cpp stuff/s@^# .*$@@" junk.c gcc -E -I. -I../src junk.c | sed -e "s/^ / /" -e "/^#/d" -e "/^[ ]*$/d" >makefile.new + If "%DJGPP_VER%" == "2" goto libsrc-v2 sed -f ../msdos/sed3.inp makefile + Goto libsrc2 + :libsrc-v2 + sed -f ../msdos/sed3v2.inp makefile + :libsrc2 rm -f makefile.new junk.c ! if "%nodebug%" == "" goto libsrc3 sed -e "/^CFLAGS *=/s/ *-g//" makefile.tmp ! sed -e "/^ALL_CFLAGS *=/s/=/= -s/" makefile ! rm -f makefile.tmp ! :libsrc3 cd .. rem ---------------------------------------------------------------------- *************** cd .. *** 154,160 **** rem ---------------------------------------------------------------------- Echo Configuring the main directory... ! copy msdos\mainmake makefile >nul rem ---------------------------------------------------------------------- :end set X11= set nodebug= --- 195,217 ---- rem ---------------------------------------------------------------------- Echo Configuring the main directory... ! If "%DJGPP_VER%" == "1" goto mainv1 ! Echo Looking for the GDB init file... ! If Exist src\_gdbinit goto gdbinitOk ! Echo ERROR: ! Echo I cannot find the GDB init file. It was called ".gdbinit" in ! Echo the Emacs distribution, but was probably renamed to some other ! Echo name without the leading dot when you untarred the archive. ! Echo It should be in the "src/" subdirectory. Please make sure this ! Echo file exists and is called "_gdbinit" with a leading underscore. ! Echo Then run CONFIG.BAT again with the same arguments you did now. ! goto End ! :gdbinitOk ! Echo Looking for the GDB init file...found ! copy msdos\mainmake.v2 makefile >nul ! :mainv1 ! If "%DJGPP_VER%" == "1" copy msdos\mainmake makefile >nul rem ---------------------------------------------------------------------- :end set X11= set nodebug= + set djgpp_ver= diff -2rcpP --exclude=*.elc emacs-19.30/config.guess emacs-19.31/config.guess *** emacs-19.30/config.guess Sat Nov 25 01:01:25 1995 --- emacs-19.31/config.guess Sat May 25 20:17:34 1996 *************** *** 1,5 **** #! /bin/sh # Attempt to guess a canonical system name. ! # Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it --- 1,5 ---- #! /bin/sh # Attempt to guess a canonical system name. ! # Copyright (C) 1992, 93, 94, 95, 1996 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it *************** trap 'rm -f dummy.c dummy.o dummy; exit *** 52,66 **** case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - alpha:OSF1:V*:*) - # After 1.2, OSF1 uses "V1.3" for uname -r. - echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^V//'` - exit 0 ;; alpha:OSF1:*:*) # 1.2 uses "1.2" for uname -r. ! echo alpha-dec-osf${UNAME_RELEASE} ! exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit 0 ;; amiga:NetBSD:*:*) echo m68k-cbm-netbsd${UNAME_RELEASE} --- 52,68 ---- case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in alpha:OSF1:*:*) + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. ! echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//'` ! exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit 0 ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-cbm-sysv4 + exit 0;; amiga:NetBSD:*:*) echo m68k-cbm-netbsd${UNAME_RELEASE} *************** case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ *** 121,124 **** --- 123,129 ---- echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit 0 ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 *************** case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ *** 131,134 **** --- 136,142 ---- exit 0 ;; AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88100 ] ; then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \ -o ${TARGET_BINARY_INTERFACE}x = x ] ; then *************** case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ *** 137,140 **** --- 145,150 ---- echo m88k-dg-dguxbcs${UNAME_RELEASE} fi + else echo i586-dg-dgux${UNAME_RELEASE} + fi exit 0 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) *************** EOF *** 220,224 **** 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; ! 9000/7?? | 9000/8?[79] ) HP_ARCH=hppa1.1 ;; 9000/8?? ) HP_ARCH=hppa1.0 ;; esac --- 230,234 ---- 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; ! 9000/7?? | 9000/8?[679] ) HP_ARCH=hppa1.1 ;; 9000/8?? ) HP_ARCH=hppa1.0 ;; esac *************** EOF *** 313,316 **** --- 323,335 ---- echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` exit 0 ;; + i*:CYGWIN*:*) + echo i386-unknown-cygwin32 + exit 0 ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin32 + exit 0 ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; *:GNU:*:*) echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` *************** EOF *** 320,336 **** # first see if it will tell us. ld_help_string=`ld --help 2>&1` ! if echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: elf_i[345]86"; then ! echo "${UNAME_MACHINE}-unknown-linux" ; exit 0 ! elif echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: i[345]86linux"; then ! echo "${UNAME_MACHINE}-unknown-linuxaout" ; exit 0 ! elif echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: i[345]86coff"; then ! echo "${UNAME_MACHINE}-unknown-linuxcoff" ; exit 0 elif test "${UNAME_MACHINE}" = "alpha" ; then ! echo alpha-unknown-linux ; exit 0 else ! # Either a pre-BFD a.out linker (linuxoldld) or one that does not give us ! # useful --help. Gcc wants to distinguish between linuxoldld and linuxaout. test ! -d /usr/lib/ldscripts/. \ ! && echo "${UNAME_MACHINE}-unknown-linuxoldld" && exit 0 # Determine whether the default compiler is a.out or elf cat >dummy.c <&1` ! if echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf_i[345]86"; then ! echo "${UNAME_MACHINE}-unknown-lignux" ; exit 0 ! elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i[345]86linux"; then ! echo "${UNAME_MACHINE}-unknown-lignuxaout" ; exit 0 ! elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i[345]86coff"; then ! echo "${UNAME_MACHINE}-unknown-lignuxcoff" ; exit 0 ! elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68kelf"; then ! echo "${UNAME_MACHINE}-unknown-lignux" ; exit 0 ! elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68klinux"; then ! echo "${UNAME_MACHINE}-unknown-lignuxaout" ; exit 0 elif test "${UNAME_MACHINE}" = "alpha" ; then ! echo alpha-unknown-lignux ; exit 0 ! elif test "${UNAME_MACHINE}" = "sparc" ; then ! echo sparc-unknown-lignux ; exit 0 else ! # Either a pre-BFD a.out linker (lignuxoldld) or one that does not give us ! # useful --help. Gcc wants to distinguish between lignuxoldld and lignuxaout. test ! -d /usr/lib/ldscripts/. \ ! && echo "${UNAME_MACHINE}-unknown-lignuxoldld" && exit 0 # Determine whether the default compiler is a.out or elf cat >dummy.c </dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 echo ${UNAME_MACHINE}-unknown-sco$UNAME_REL else *************** EOF *** 425,428 **** --- 452,465 ---- fi exit 0 ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; + R3000:*System_V*:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit 0 ;; esac diff -2rcpP --exclude=*.elc emacs-19.30/config.sub emacs-19.31/config.sub *** emacs-19.30/config.sub Sat Nov 25 01:01:25 1995 --- emacs-19.31/config.sub Sat May 25 20:17:33 1996 *************** *** 1,8 **** #! /bin/sh # Configuration validation subroutine script, version 1.1. ! # Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software ! # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify --- 1,8 ---- #! /bin/sh # Configuration validation subroutine script, version 1.1. ! # Copyright (C) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software ! # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify *************** *** 18,22 **** # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software ! # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # As a special exception to the GNU General Public License, if you --- 18,23 ---- # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software ! # Foundation, Inc., 59 Temple Place - Suite 330, ! # Boston, MA 02111-1307, USA. # As a special exception to the GNU General Public License, if you *************** case $os in *** 81,85 **** -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ ! -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp ) os= basic_machine=$1 --- 82,87 ---- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ ! -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ ! -apple) os= basic_machine=$1 *************** case $os in *** 88,91 **** --- 90,97 ---- os=-hiuxwe2 ;; + -sco5) + os=sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'` + ;; -sco4) os=-sco3.2v4 *************** case $os in *** 123,126 **** --- 129,135 ---- os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; + -psos*) + os=-psos + ;; esac *************** case $basic_machine in *** 129,138 **** # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. ! tahoe | i[345]86 | i860 | m68k | m68000 | m88k | ns32k | arm | pyramid \ | tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \ ! | alpha | we32k | ns16k | clipper | sparclite | i370 | sh \ ! | powerpc | sparc64 | 1750a | dsp16xx | mips64 | mipsel \ | pdp11 | mips64el | mips64orion | mips64orionel \ ! | sparc) basic_machine=$basic_machine-unknown ;; --- 138,148 ---- # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. ! tahoe | i[3456]86 | i860 | m68k | m68000 | m88k | ns32k | arm \ ! | arme[lb] | pyramid \ | tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \ ! | alpha | we32k | ns16k | clipper | i370 | sh \ ! | powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \ | pdp11 | mips64el | mips64orion | mips64orionel \ ! | sparc | sparclet | sparclite | sparc64) basic_machine=$basic_machine-unknown ;; *************** case $basic_machine in *** 143,153 **** ;; # Recognize the basic CPU types with company name. ! vax-* | tahoe-* | i[345]86-* | i860-* | m68k-* | m68000-* | m88k-* \ | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \ ! | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \ | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \ | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \ ! | pdp11-* | sh-* | powerpc-* | sparc64-* | mips64-* | mipsel-* \ | mips64el-* | mips64orion-* | mips64orionel-*) ;; --- 153,163 ---- ;; # Recognize the basic CPU types with company name. ! vax-* | tahoe-* | i[3456]86-* | i860-* | m68k-* | m68000-* | m88k-* \ | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \ ! | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \ | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \ | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \ | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \ ! | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \ | mips64el-* | mips64orion-* | mips64orionel-*) ;; *************** case $basic_machine in *** 189,192 **** --- 199,210 ---- os=-sysv ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; balance) basic_machine=ns32k-sequent *************** case $basic_machine in *** 221,224 **** --- 239,246 ---- os=-unicos ;; + [ctj]90-cray) + basic_machine=c90-cray + os=-unicos + ;; crds | unos) basic_machine=m68k-crds *************** case $basic_machine in *** 307,323 **** ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? ! i[345]86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` os=-sysv32 ;; ! i[345]86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` os=-sysv4 ;; ! i[345]86v) basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` os=-sysv ;; ! i[345]86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` os=-solaris2 --- 329,345 ---- ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? ! i[3456]86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` os=-sysv32 ;; ! i[3456]86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` os=-sysv4 ;; ! i[3456]86v) basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` os=-sysv ;; ! i[3456]86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` os=-solaris2 *************** case $basic_machine in *** 418,429 **** basic_machine=ns32k-pc532 ;; ! pentium-*) ! # We will change tis to say i586 once there has been ! # time for various packages to start to recognize that. ! basic_machine=i486-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; ps2) basic_machine=i386-ibm --- 440,478 ---- basic_machine=ns32k-pc532 ;; ! pentium | p5) ! basic_machine=i586-intel ! ;; ! pentiumpro | p6) ! basic_machine=i686-intel ! ;; ! pentium-* | p5-*) ! basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ! ;; ! pentiumpro-* | p6-*) ! basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ! ;; ! k5) ! # We don't have specific support for AMD's K5 yet, so just call it a Pentium ! basic_machine=i586-amd ! ;; ! nexen) ! # We don't have specific support for Nexgen yet, so just call it a Pentium ! basic_machine=i586-nexgen ;; pn) basic_machine=pn-gould ;; + power) basic_machine=rs6000-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; ps2) basic_machine=i386-ibm *************** case $basic_machine in *** 520,523 **** --- 569,576 ---- os=-vxworks ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; xmp) basic_machine=xmp-cray *************** case $os in *** 598,616 **** ;; -gnu/linux*) ! os=`echo $os | sed -e 's|gnu/linux|linux|'` ;; # First accept the basic system types. # The portable systems comes first. ! # Each alternative must end in a *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ ! | -vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[345]* \ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ ! | -amigados* | -msdos* | -newsos* | -unicos* | -aos* \ | -nindy* | -vxworks* | -ebmon* | -hms* | -mvs* | -clix* \ ! | -riscos* | -linux* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -netbsd* | -freebsd* | -riscix* \ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \ ! | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta | -udi | -eabi) ;; -sunos5*) --- 651,675 ---- ;; -gnu/linux*) ! os=`echo $os | sed -e 's|gnu/linux|lignux|'` ! ;; ! -linux*) ! os=`echo $os | sed -e 's|linux|lignux|'` ;; # First accept the basic system types. # The portable systems comes first. ! # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ ! | -vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]* \ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ ! | -amigados* | -msdos* | -newsos* | -unicos* | -aof* | -aos* \ | -nindy* | -vxworks* | -ebmon* | -hms* | -mvs* | -clix* \ ! | -riscos* | -lignux* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -netbsd* | -freebsd* | -riscix* \ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \ ! | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ ! | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ ! | -cygwin32* | -pe* | -psos* | -moss* ) ! # Remember, each alternative MUST END IN *, to match a version number. ;; -sunos5*) *************** case $os in *** 638,641 **** --- 697,703 ---- os=-sysv ;; + -ns2 ) + os=-nextstep2 + ;; # Preserve the version number of sinix5. -sinix5.*) *************** case $basic_machine in *** 691,694 **** --- 753,759 ---- os=-riscix1.2 ;; + arm*-semi) + os=-aout + ;; pdp11-*) os=-none *************** case $basic_machine in *** 742,745 **** --- 807,813 ---- os=-luna ;; + *-next ) + os=-nextstep + ;; *-sequent) os=-ptx *************** case $basic_machine in *** 826,829 **** --- 894,902 ---- vendor=wrs ;; + -aux*) + vendor=apple + ;; + -aux*) + vendor=apple esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` diff -2rcpP --exclude=*.elc emacs-19.30/configure emacs-19.31/configure *** emacs-19.30/configure Mon Nov 20 01:42:18 1995 --- emacs-19.31/configure Sat May 25 11:59:44 1996 *************** *** 2,7 **** # Guess values for system-dependent variables and create Makefiles. ! # Generated automatically using autoconf version 2.5 ! # Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc. # # This configure script is free software; the Free Software Foundation --- 2,7 ---- # Guess values for system-dependent variables and create Makefiles. ! # Generated automatically using autoconf version 2.10 ! # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. # # This configure script is free software; the Free Software Foundation *************** Directory and file names: *** 161,167 **** --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] --libexecdir=DIR program executables in DIR [EPREFIX/libexec] ! --datadir=DIR read-only architecture-independent data in DIR [PREFIX/share] --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] ! --sharedstatedir=DIR modifiable architecture-independent data in DIR [PREFIX/com] --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] --libdir=DIR object code libraries in DIR [EPREFIX/lib] --- 161,169 ---- --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] --libexecdir=DIR program executables in DIR [EPREFIX/libexec] ! --datadir=DIR read-only architecture-independent data in DIR ! [PREFIX/share] --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] ! --sharedstatedir=DIR modifiable architecture-independent data in DIR ! [PREFIX/com] --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] --libdir=DIR object code libraries in DIR [EPREFIX/lib] *************** Directory and file names: *** 173,177 **** --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names ! --program-transform-name=PROGRAM run sed PROGRAM on installed program names EOF cat << EOF --- 175,180 ---- --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names ! --program-transform-name=PROGRAM ! run sed PROGRAM on installed program names EOF cat << EOF *************** Features and packages: *** 187,192 **** --x-includes=DIR X include files are in DIR --x-libraries=DIR X library files are in DIR - --enable and --with options recognized:$ac_help EOF exit 0 ;; --- 190,197 ---- --x-includes=DIR X include files are in DIR --x-libraries=DIR X library files are in DIR EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi exit 0 ;; *************** EOF *** 338,342 **** -version | --version | --versio | --versi | --vers) ! echo "configure generated by autoconf version 2.5" exit 0 ;; --- 343,347 ---- -version | --version | --versio | --versi | --vers) ! echo "configure generated by autoconf version 2.10" exit 0 ;; *************** fi *** 503,512 **** ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ! ac_cpp='echo $CPP $CPPFLAGS 1>&5; ! $CPP $CPPFLAGS' ! ac_compile='echo ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5; ! ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5 2>&5' ! ac_link='echo ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5; ! ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5 2>&5' if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then --- 508,514 ---- ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ! ac_cpp='$CPP $CPPFLAGS' ! ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ! ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then *************** fi *** 526,530 **** lispdir='${datadir}/emacs/${version}/lisp' ! locallisppath='${datadir}/emacs/site-lisp' lisppath='${locallisppath}:${lispdir}' etcdir='${datadir}/emacs/${version}/etc' --- 528,533 ---- lispdir='${datadir}/emacs/${version}/lisp' ! locallisppath='${datadir}/emacs/${version}/site-lisp:'\ ! '${datadir}/emacs/site-lisp' lisppath='${locallisppath}:${lispdir}' etcdir='${datadir}/emacs/${version}/etc' *************** case "${canonical}" in *** 746,751 **** ;; ! alpha-*-linux* ) ! machine=alpha opsys=linux ;; --- 749,754 ---- ;; ! alpha-*-linux* | alpha-*-lignux* ) ! machine=alpha opsys=lignux ;; *************** case "${canonical}" in *** 754,758 **** machine=altos opsys=usg5-2 ;; ! ## Amdahl UTS 580-amdahl-sysv* ) --- 757,761 ---- machine=altos opsys=usg5-2 ;; ! ## Amdahl UTS 580-amdahl-sysv* ) *************** case "${canonical}" in *** 812,816 **** *-convex-bsd* | *-convex-convexos* ) machine=convex opsys=bsd4-3 ! ## Prevents suprious white space in makefiles - d.m.cooke@larc.nasa.gov NON_GNU_CPP="cc -E -P" ;; --- 815,819 ---- *-convex-bsd* | *-convex-convexos* ) machine=convex opsys=bsd4-3 ! ## Prevents spurious white space in makefiles - d.m.cooke@larc.nasa.gov NON_GNU_CPP="cc -E -P" ;; *************** case "${canonical}" in *** 862,866 **** then CC="gnucc -m68040" else CC="gnucc -m68881" ! fi else if test -z "`type gcc | grep 'not found'`" --- 865,869 ---- then CC="gnucc -m68040" else CC="gnucc -m68881" ! fi else if test -z "`type gcc | grep 'not found'`" *************** case "${canonical}" in *** 920,923 **** --- 923,927 ---- [7].[0-9] ) machine=nh4000 opsys=cxux7 ;; esac + NON_GNU_CPP="/lib/cpp" ;; ## Harris ecx or gcx running CX/UX (Series 1200, Series 3000) *************** case "${canonical}" in *** 925,928 **** --- 929,937 ---- machine=nh3000 opsys=cxux ;; + ## Harris power pc NightHawk running Power UNIX (Series 6000) + powerpc-harris-powerunix ) + machine=nh6000 opsys=powerunix + NON_GNU_CPP="cc -Xo -E -P" + ;; ## Honeywell XPS100 *************** case "${canonical}" in *** 977,980 **** --- 986,992 ---- esac ;; + hppa-*-nextstep* ) + machine=hp800 opsys=nextstep + ;; ## Orion machines *************** case "${canonical}" in *** 1013,1017 **** romp-ibm-bsd4.3* ) machine=ibmrt opsys=bsd4-3 ! ;; romp-ibm-bsd4.2* ) machine=ibmrt opsys=bsd4-2 --- 1025,1029 ---- romp-ibm-bsd4.3* ) machine=ibmrt opsys=bsd4-3 ! ;; romp-ibm-bsd4.2* ) machine=ibmrt opsys=bsd4-2 *************** case "${canonical}" in *** 1019,1023 **** romp-ibm-aos4.3* ) machine=ibmrt opsys=bsd4-3 ! ;; romp-ibm-aos4.2* ) machine=ibmrt opsys=bsd4-2 --- 1031,1035 ---- romp-ibm-aos4.3* ) machine=ibmrt opsys=bsd4-3 ! ;; romp-ibm-aos4.2* ) machine=ibmrt opsys=bsd4-2 *************** case "${canonical}" in *** 1172,1176 **** ## Siemens Nixdorf ! mips-siemens-sysv* ) machine=mips-siemens opsys=usg5-4 NON_GNU_CC=/usr/ccs/bin/cc --- 1184,1188 ---- ## Siemens Nixdorf ! mips-siemens-sysv* | mips-sni-sysv*) machine=mips-siemens opsys=usg5-4 NON_GNU_CC=/usr/ccs/bin/cc *************** case "${canonical}" in *** 1194,1198 **** ;; mips-sgi-irix6* ) ! machine=iris4d opsys=irix6-0 ;; mips-sgi-irix5.[01]* ) --- 1206,1210 ---- ;; mips-sgi-irix6* ) ! machine=iris4d opsys=irix6-0 NON_GNU_CPP=/lib/cpp ;; mips-sgi-irix5.[01]* ) *************** case "${canonical}" in *** 1226,1229 **** --- 1238,1245 ---- ## Suns + sparc-*-linux* | sparc-*-lignux* ) + machine=sparc opsys=lignux + ;; + *-sun-sunos* | *-sun-bsd* | *-sun-solaris* \ | i[345]86-*-solaris2* | i[345]86-*-sunos5* | powerpc*-*-solaris2* \ *************** case "${canonical}" in *** 1247,1251 **** NON_GNU_CPP=/usr/lib/cpp ;; ! *-sunos4* | *-sunos ) opsys=sunos4-1 NON_GCC_TEST_OPTIONS=-Bstatic GCC_TEST_OPTIONS=-static --- 1263,1274 ---- NON_GNU_CPP=/usr/lib/cpp ;; ! *-sunos4.1.[3-9]*-noshare ) ! opsys=sunos4-1-3 ! NON_GNU_CPP=/usr/lib/cpp ! NON_GCC_TEST_OPTIONS=-Bstatic ! GCC_TEST_OPTIONS=-static ! ;; ! *-sunos4* | *-sunos ) ! opsys=sunos4-1 NON_GCC_TEST_OPTIONS=-Bstatic GCC_TEST_OPTIONS=-static *************** case "${canonical}" in *** 1266,1274 **** ;; *-sunos5* | *-solaris* ) ! opsys=sol2 NON_GNU_CPP=/usr/ccs/lib/cpp ;; * ) opsys=bsd4-2 ;; esac ;; sparc-*-nextstep* ) --- 1289,1308 ---- ;; *-sunos5* | *-solaris* ) ! opsys=sol2-4 NON_GNU_CPP=/usr/ccs/lib/cpp ;; * ) opsys=bsd4-2 ;; esac + ## Watch out for a compiler that we know will not work. + case "${canonical}" in + *-solaris* | *-sunos5* ) + if [ "x$CC" = x/usr/ucb/cc ]; then + ## /usr/ucb/cc doesn't work; + ## we should find some other compiler that does work. + unset CC + fi + ;; + *) ;; + esac ;; sparc-*-nextstep* ) *************** case "${canonical}" in *** 1314,1318 **** machine=titan opsys=usg5-3 ;; ! ## Ustation E30 (SS5E) m68*-unisys-uniplus* ) --- 1348,1352 ---- machine=titan opsys=usg5-3 ;; ! ## Ustation E30 (SS5E) m68*-unisys-uniplus* ) *************** case "${canonical}" in *** 1361,1365 **** *-esix* ) opsys=esix ;; *-xenix* ) opsys=xenix ;; ! *-linux* ) opsys=linux ;; *-sco3.2v4* ) opsys=sco4 ; NON_GNU_CPP=/lib/cpp ;; *-bsd386* | *-bsdi1* ) opsys=bsd386 ;; --- 1395,1399 ---- *-esix* ) opsys=esix ;; *-xenix* ) opsys=xenix ;; ! *-linux* | *-lignux* ) opsys=lignux ;; *-sco3.2v4* ) opsys=sco4 ; NON_GNU_CPP=/lib/cpp ;; *-bsd386* | *-bsdi1* ) opsys=bsd386 ;; *************** case "${canonical}" in *** 1372,1378 **** ;; ! ## Linux/68k ! m68k-*-linux* ) ! machine=m68k opsys=linux ;; --- 1406,1412 ---- ;; ! ## Lignux/68k ! m68k-*-linux* | m68k-*-lignux* ) ! machine=m68k opsys=lignux ;; *************** if test x"${opsys}" = x; then *** 1403,1407 **** *-sysv4.[2-9]* | *-sysvr4.[2-9]* ) if [ x$NON_GNU_CPP = x ]; then ! NON_GNU_CPP=/usr/ccs/lib/cpp fi opsys=usg5-4-2 ;; --- 1437,1445 ---- *-sysv4.[2-9]* | *-sysvr4.[2-9]* ) if [ x$NON_GNU_CPP = x ]; then ! if [ -f /usr/ccs/lib/cpp ]; then ! NON_GNU_CPP=/usr/ccs/lib/cpp ! else ! NON_GNU_CPP=/lib/cpp ! fi fi opsys=usg5-4-2 ;; *************** else *** 1454,1458 **** done IFS="$ac_save_ifs" - test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="cc" fi fi --- 1492,1495 ---- *************** else *** 1464,1467 **** --- 1501,1553 ---- fi + if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. + set dummy cc; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. + else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + ac_prog_rejected=no + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" + if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi + fi + fi + fi + CC="$ac_cv_prog_CC" + if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 + else + echo "$ac_t""no" 1>&6 + fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } + fi echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 *************** else *** 1474,1478 **** #endif EOF ! if ${CC-cc} -E conftest.c 2>&5 | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else --- 1560,1564 ---- #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1563: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else *************** if test x$GCC = xyes && test "x$GCC_TEST *** 1538,1547 **** then CC="$CC $GCC_TEST_OPTIONS" ! fi if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x then CC="$CC $NON_GCC_TEST_OPTIONS" ! fi #### Some other nice autoconf tests. If you add a test here which --- 1624,1633 ---- then CC="$CC $GCC_TEST_OPTIONS" ! fi if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x then CC="$CC $NON_GCC_TEST_OPTIONS" ! fi #### Some other nice autoconf tests. If you add a test here which *************** else *** 1584,1593 **** # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ! eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then --- 1670,1680 ---- # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1679: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then *************** else *** 1598,1607 **** CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ! eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then --- 1685,1695 ---- CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1694: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then *************** test -n "$YACC" || YACC="yacc" *** 1718,1722 **** echo $ac_n "checking for AIX""... $ac_c" 1>&6 cat > conftest.$ac_ext <&6 cat > conftest.$ac_ext < conftest.$ac_ext < EOF ! eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then --- 1836,1845 ---- else cat > conftest.$ac_ext < EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1844: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then *************** else *** 1785,1793 **** else cat > conftest.$ac_ext </dev/null; then ac_cv_c_cross=no --- 1874,1882 ---- else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } if test -s conftest && (./conftest; exit) 2>/dev/null; then ac_cv_c_cross=no *************** if eval "test \"`echo '$''{'ac_cv_header *** 1807,1811 **** else cat > conftest.$ac_ext < --- 1896,1900 ---- else cat > conftest.$ac_ext < *************** else *** 1814,1818 **** #include EOF ! eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then --- 1903,1908 ---- #include EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1907: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then *************** if test $ac_cv_header_stdc = yes; then *** 1829,1833 **** # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < --- 1919,1923 ---- # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < *************** if test $ac_cv_header_stdc = yes; then *** 1847,1851 **** # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < --- 1937,1941 ---- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < *************** if test $ac_cv_header_stdc = yes; then *** 1865,1872 **** # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then ! ac_cv_header_stdc=no else cat > conftest.$ac_ext < --- 1955,1962 ---- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then ! : else cat > conftest.$ac_ext < *************** exit (0); } *** 1879,1883 **** EOF ! eval $ac_link if test -s conftest && (./conftest; exit) 2>/dev/null; then : --- 1969,1973 ---- EOF ! { (eval echo configure:1972: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } if test -s conftest && (./conftest; exit) 2>/dev/null; then : *************** if eval "test \"`echo '$''{'ac_cv_header *** 1903,1907 **** else cat > conftest.$ac_ext < --- 1993,1997 ---- else cat > conftest.$ac_ext < *************** struct tm *tp; *** 1913,1917 **** ; return 0; } EOF ! if eval $ac_compile; then rm -rf conftest* ac_cv_header_time=yes --- 2003,2007 ---- ; return 0; } EOF ! if { (eval echo configure:2006: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes *************** if eval "test \"`echo '$''{'ac_cv_decl_s *** 1937,1941 **** else cat > conftest.$ac_ext < --- 2027,2031 ---- else cat > conftest.$ac_ext < *************** char *msg = *(sys_siglist + 1); *** 1950,1954 **** ; return 0; } EOF ! if eval $ac_compile; then rm -rf conftest* ac_cv_decl_sys_siglist=yes --- 2040,2044 ---- ; return 0; } EOF ! if { (eval echo configure:2043: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_decl_sys_siglist=yes *************** fi *** 1972,1976 **** echo $ac_n "checking for struct utimbuf""... $ac_c" 1>&6 cat > conftest.$ac_ext <&6 cat > conftest.$ac_ext <&6 --- 2082,2086 ---- ; return 0; } EOF ! if { (eval echo configure:2085: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 *************** if eval "test \"`echo '$''{'ac_cv_type_s *** 2011,2015 **** else cat > conftest.$ac_ext < --- 2101,2105 ---- else cat > conftest.$ac_ext < *************** else *** 2019,2025 **** #endif #ifdef __cplusplus ! extern "C" ! #endif void (*signal ()) (); int main() { return 0; } int t() { --- 2109,2117 ---- #endif #ifdef __cplusplus ! extern "C" void (*signal (int, void (*)(int)))(int); ! #else void (*signal ()) (); + #endif + int main() { return 0; } int t() { *************** int i; *** 2027,2031 **** ; return 0; } EOF ! if eval $ac_compile; then rm -rf conftest* ac_cv_type_signal=void --- 2119,2123 ---- ; return 0; } EOF ! if { (eval echo configure:2122: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void *************** EOF *** 2047,2051 **** echo $ac_n "checking for struct timeval""... $ac_c" 1>&6 cat > conftest.$ac_ext <&6 cat > conftest.$ac_ext <&6 --- 2156,2160 ---- ; return 0; } EOF ! if { (eval echo configure:2159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 *************** else *** 2075,2078 **** --- 2167,2171 ---- rm -rf conftest* echo "$ac_t""no" 1>&6 + HAVE_TIMEVAL=no fi rm -f conftest* *************** if eval "test \"`echo '$''{'ac_cv_struct *** 2084,2088 **** else cat > conftest.$ac_ext < --- 2177,2181 ---- else cat > conftest.$ac_ext < *************** struct tm *tp; tp->tm_sec; *** 2093,2097 **** ; return 0; } EOF ! if eval $ac_compile; then rm -rf conftest* ac_cv_struct_tm=time.h --- 2186,2190 ---- ; return 0; } EOF ! if { (eval echo configure:2189: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h *************** if eval "test \"`echo '$''{'ac_cv_struct *** 2117,2121 **** else cat > conftest.$ac_ext < --- 2210,2214 ---- else cat > conftest.$ac_ext < *************** struct tm tm; tm.tm_zone; *** 2126,2130 **** ; return 0; } EOF ! if eval $ac_compile; then rm -rf conftest* ac_cv_struct_tm_zone=yes --- 2219,2223 ---- ; return 0; } EOF ! if { (eval echo configure:2222: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm_zone=yes *************** if eval "test \"`echo '$''{'ac_cv_var_tz *** 2149,2153 **** else cat > conftest.$ac_ext < --- 2242,2246 ---- else cat > conftest.$ac_ext < *************** atoi(*tzname); *** 2160,2164 **** ; return 0; } EOF ! if eval $ac_link; then rm -rf conftest* ac_cv_var_tzname=yes --- 2253,2257 ---- ; return 0; } EOF ! if { (eval echo configure:2256: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then rm -rf conftest* ac_cv_var_tzname=yes *************** if eval "test \"`echo '$''{'ac_cv_c_cons *** 2186,2190 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes *************** if test "${with_x+set}" = set; then *** 2334,2348 **** fi if test "x$with_x" = xno; then ! no_x=yes else if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then ! no_x= else ! if eval "test \"`echo '$''{'ac_cv_path_x'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else # One or both of the vars are not set, and there is no cached value. ! no_x=yes rm -fr conftestdir if mkdir conftestdir; then --- 2427,2444 ---- fi + # $have_x is `yes', `no', `disabled', or empty when we do not yet know. if test "x$with_x" = xno; then ! # The user explicitly disabled X. ! have_x=disabled else if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then ! # Both variables are already set. ! have_x=yes else ! if eval "test \"`echo '$''{'ac_cv_have_x'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else # One or both of the vars are not set, and there is no cached value. ! ac_x_includes=NO ac_x_libraries=NO rm -fr conftestdir if mkdir conftestdir; then *************** acfindx: *** 2354,2360 **** EOF if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then - no_x= # GNU make sometimes prints "make[1]: Entering...", which would confuse us. ! eval `make acfindx 2>/dev/null | grep -v make` # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl; do --- 2450,2455 ---- EOF if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then # GNU make sometimes prints "make[1]: Entering...", which would confuse us. ! eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl; do *************** EOF *** 2378,2399 **** fi ! if test "$no_x" = yes; then ! test -z "$x_direct_test_library" && x_direct_test_library=Xt ! test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc ! test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h cat > conftest.$ac_ext < EOF ! eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* ! no_x= ac_x_includes= else echo "$ac_err" >&5 rm -rf conftest* ! for ac_dir in \ /usr/X11R6/include \ /usr/X11R5/include \ --- 2473,2498 ---- fi ! if test "$ac_x_includes" = NO; then ! # Guess where to find include files, by looking for this one X11 .h file. ! test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h ! ! # First, try using that file with no special directory specified. cat > conftest.$ac_ext < EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2487: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* ! # We can compile using X headers with no special include directory. ! ac_x_includes= else echo "$ac_err" >&5 rm -rf conftest* ! # Look for the header file in a standard set of common directories. ! for ac_dir in \ /usr/X11R6/include \ /usr/X11R5/include \ *************** else *** 2433,2437 **** do if test -r "$ac_dir/$x_direct_test_include"; then ! no_x= ac_x_includes=$ac_dir break fi --- 2532,2536 ---- do if test -r "$ac_dir/$x_direct_test_include"; then ! ac_x_includes=$ac_dir break fi *************** else *** 2439,2450 **** fi rm -f conftest* ! # Check for the libraries. ! # See if we find them without any special options. ! # Don't add to $LIBS permanently. ! ac_save_LIBS="$LIBS" ! LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then rm -rf conftest* ! LIBS="$ac_save_LIBS" ! # We can link X programs with no special library path. ! ac_x_libraries= else rm -rf conftest* *************** do *** 2500,2504 **** for ac_extension in a so sl; do if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then ! no_x= ac_x_libraries=$ac_dir break 2 fi --- 2607,2611 ---- for ac_extension in a so sl; do if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then ! ac_x_libraries=$ac_dir break 2 fi *************** fi *** 2508,2528 **** rm -f conftest* ! fi ! if test "$no_x" = yes; then ! ac_cv_path_x="no_x=yes" ! else ! ac_cv_path_x="no_x= ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" fi fi fi ! eval "$ac_cv_path_x" fi # $with_x != no ! if test "$no_x" = yes; then ! echo "$ac_t""no" 1>&6 else test "x$x_includes" = xNONE && x_includes=$ac_x_includes test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries ! ac_cv_path_x="no_x= ac_x_includes=$x_includes ac_x_libraries=$x_libraries" echo "$ac_t""libraries $x_libraries, headers $x_includes" 1>&6 fi --- 2615,2643 ---- rm -f conftest* ! fi # $ac_x_libraries = NO ! ! if test "$ac_x_includes" = NO || test "$ac_x_libraries" = NO; then ! # Didn't find X anywhere. Cache the known absence of X. ! ac_cv_have_x="have_x=no" ! else ! # Record where we found X for the cache. ! ac_cv_have_x="have_x=yes \ ! ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" fi fi fi ! eval "$ac_cv_have_x" fi # $with_x != no ! if test "$have_x" != yes; then ! echo "$ac_t""$have_x" 1>&6 ! no_x=yes else + # If each of the values was on the command line, it overrides each guess. test "x$x_includes" = xNONE && x_includes=$ac_x_includes test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries ! # Update the cache value to reflect the command line values. ! ac_cv_have_x="have_x=yes \ ! ac_x_includes=$x_includes ac_x_libraries=$x_libraries" echo "$ac_t""libraries $x_libraries, headers $x_includes" 1>&6 fi *************** if test x"${x_includes}" = x; then *** 2545,2549 **** bitmapdir=/usr/include/X11/bitmaps else ! # accumulate include directories that have X11 bitmap sudirectories bmd_acc="dummyval" for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do --- 2660,2664 ---- bitmapdir=/usr/include/X11/bitmaps else ! # accumulate include directories that have X11 bitmap subdirectories bmd_acc="dummyval" for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do *************** case "${window_system}" in *** 2564,2570 **** HAVE_X11=yes case "${with_x_toolkit}" in ! athena | lucid ) USE_X_TOOLKIT=LUCID ;; ! motif ) USE_X_TOOLKIT=MOTIF ;; ! * ) USE_X_TOOLKIT=none ;; esac ;; --- 2679,2686 ---- HAVE_X11=yes case "${with_x_toolkit}" in ! athena | lucid ) USE_X_TOOLKIT=LUCID ;; ! motif ) USE_X_TOOLKIT=MOTIF ;; ! no ) USE_X_TOOLKIT=none ;; ! * ) USE_X_TOOLKIT=maybe ;; esac ;; *************** case "${window_system}" in *** 2575,2584 **** ;; esac - X_TOOLKIT_TYPE=$USE_X_TOOLKIT ### If we're using X11, we should use the X menu package. ! HAVE_X_MENU=no case ${HAVE_X11} in ! yes ) HAVE_X_MENU=yes ;; esac --- 2691,2699 ---- ;; esac ### If we're using X11, we should use the X menu package. ! HAVE_MENUS=no case ${HAVE_X11} in ! yes ) HAVE_MENUS=yes ;; esac *************** echo "checking the machine- and system-d *** 2609,2613 **** ### The two are the same except on a few systems, where they are made ### different to work around various lossages. For example, ! ### GCC 2.5 on Linux needs them to be different because it treats -g ### as implying static linking. --- 2724,2728 ---- ### The two are the same except on a few systems, where they are made ### different to work around various lossages. For example, ! ### GCC 2.5 on Lignux needs them to be different because it treats -g ### as implying static linking. *************** LIBS="$libsrc_libs $LIBS" *** 2731,2735 **** echo $ac_n "checking for -ldnet""... $ac_c" 1>&6 ! ac_lib_var=`echo dnet | tr './+' '__p'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2846,2850 ---- echo $ac_n "checking for -ldnet""... $ac_c" 1>&6 ! ac_lib_var=`echo dnet'_'dnet_ntoa | tr './+\055' '__p_'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 2738,2743 **** LIBS="-ldnet $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" *************** fi *** 2772,2776 **** echo $ac_n "checking for -lXbsd""... $ac_c" 1>&6 ! ac_lib_var=`echo Xbsd | tr './+' '__p'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2891,2895 ---- echo $ac_n "checking for -lXbsd""... $ac_c" 1>&6 ! ac_lib_var=`echo Xbsd'_'main | tr './+\055' '__p_'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 2779,2783 **** LIBS="-lXbsd $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" *************** fi *** 2807,2811 **** echo $ac_n "checking for -lpthreads""... $ac_c" 1>&6 ! ac_lib_var=`echo pthreads | tr './+' '__p'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2926,2930 ---- echo $ac_n "checking for -lpthreads""... $ac_c" 1>&6 ! ac_lib_var=`echo pthreads'_'cma_open | tr './+\055' '__p_'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 2814,2819 **** LIBS="-lpthreads $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" *************** echo "$ac_t""$HAVE_XFREE386" 1>&6 *** 2861,2871 **** if test "${HAVE_X11}" = "yes"; then DEFS="$C_SWITCH_X_SITE $DEFS" ! LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS" CFLAGS="$C_SWITCH_X_SITE $CFLAGS" ! if test "${opsys}" = "linux"; then echo $ac_n "checking whether X on GNU/Linux needs -b to link""... $ac_c" 1>&6 cat > conftest.$ac_ext <&6 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then rm -rf conftest* xlinux_first_failure=no *************** rm -f conftest* *** 2894,2898 **** LIBS="$LIBS -b i486-linuxaout" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then rm -rf conftest* xlinux_second_failure=no *************** if eval "test \"`echo '$''{'ac_cv_func_$ *** 2935,2939 **** else cat > conftest.$ac_ext < conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ char $ac_func(); *************** $ac_func(); *** 2957,2961 **** ; return 0; } EOF ! if eval $ac_link; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" --- 3092,3096 ---- ; return 0; } EOF ! if { (eval echo configure:3095: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" *************** done *** 2981,2988 **** fi if test "${USE_X_TOOLKIT}" != "none"; then echo $ac_n "checking X11 toolkit version""... $ac_c" 1>&6 cat > conftest.$ac_ext < --- 3116,3185 ---- fi + if test "${window_system}" = "x11"; then + echo $ac_n "checking X11 version 6""... $ac_c" 1>&6 + cat > conftest.$ac_ext < + int main() { return 0; } + int t() { + #if XlibSpecificationRelease < 6 + fail; + #endif + + ; return 0; } + EOF + if { (eval echo configure:3133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""6 or newer" 1>&6 + cat >> confdefs.h <<\EOF + #define HAVE_X11R6 1 + EOF + + else + rm -rf conftest* + echo "$ac_t""before 6" 1>&6 + fi + rm -f conftest* + + fi + + if test x"${USE_X_TOOLKIT}" = xmaybe; then + echo $ac_n "checking X11 version 5""... $ac_c" 1>&6 + cat > conftest.$ac_ext < + int main() { return 0; } + int t() { + #if XlibSpecificationRelease < 5 + fail; + #endif + + ; return 0; } + EOF + if { (eval echo configure:3162: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""5 or newer; use toolkit by default" 1>&6 + USE_X_TOOLKIT=LUCID + cat >> confdefs.h <<\EOF + #define HAVE_X11R5 1 + EOF + + else + rm -rf conftest* + echo "$ac_t""before 5; do not use toolkit by default" 1>&6 + USE_X_TOOLKIT=none + fi + rm -f conftest* + + fi + + X_TOOLKIT_TYPE=$USE_X_TOOLKIT + if test "${USE_X_TOOLKIT}" != "none"; then echo $ac_n "checking X11 toolkit version""... $ac_c" 1>&6 cat > conftest.$ac_ext < *************** fail; *** 2995,3001 **** ; return 0; } EOF ! if eval $ac_link; then rm -rf conftest* ! echo "$ac_t""6" 1>&6 cat >> confdefs.h <<\EOF #define HAVE_X11XTR6 1 --- 3192,3199 ---- ; return 0; } EOF ! if { (eval echo configure:3195: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then rm -rf conftest* ! echo "$ac_t""6 or newer" 1>&6 ! HAVE_X11XTR6=yes cat >> confdefs.h <<\EOF #define HAVE_X11XTR6 1 *************** EOF *** 3004,3011 **** else rm -rf conftest* ! echo "$ac_t""not 6" 1>&6 fi rm -f conftest* fi --- 3202,3262 ---- else rm -rf conftest* ! echo "$ac_t""before 6" 1>&6 ! HAVE_X11XTR6=no ! fi ! rm -f conftest* ! ! ! OLDLIBS="$LIBS" ! if test x$HAVE_X11XTR6 = xyes; then ! LIBS="-lXt -lSM -lICE $LIBS" ! else ! LIBS="-lXt $LIBS" ! fi ! echo $ac_n "checking for -lXmu""... $ac_c" 1>&6 ! ac_lib_var=`echo Xmu'_'XmuConvertStandardSelection | tr './+\055' '__p_'` ! if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! ac_save_LIBS="$LIBS" ! LIBS="-lXmu $LIBS" ! cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then ! rm -rf conftest* ! eval "ac_cv_lib_$ac_lib_var=yes" ! else ! rm -rf conftest* ! eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* + LIBS="$ac_save_LIBS" + + fi + if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo Xmu | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 + fi + LIBS="$OLDLIBS" fi *************** fi *** 3013,3017 **** echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6 cat > conftest.$ac_ext < --- 3264,3268 ---- echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6 cat > conftest.$ac_ext < *************** return h_errno; *** 3021,3025 **** ; return 0; } EOF ! if eval $ac_link; then rm -rf conftest* echo "$ac_t""yes" 1>&6 --- 3272,3276 ---- ; return 0; } EOF ! if { (eval echo configure:3275: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 *************** if eval "test \"`echo '$''{'ac_cv_header *** 3042,3046 **** else cat > conftest.$ac_ext < --- 3293,3297 ---- else cat > conftest.$ac_ext < *************** char *p = alloca(2 * sizeof(int)); *** 3050,3054 **** ; return 0; } EOF ! if eval $ac_link; then rm -rf conftest* ac_cv_header_alloca_h=yes --- 3301,3305 ---- ; return 0; } EOF ! if { (eval echo configure:3304: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then rm -rf conftest* ac_cv_header_alloca_h=yes *************** if eval "test \"`echo '$''{'ac_cv_func_a *** 3074,3078 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then rm -rf conftest* ac_cv_func_alloca=yes *************** if eval "test \"`echo '$''{'ac_cv_os_cra *** 3133,3137 **** else cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ char $ac_func(); *************** $ac_func(); *** 3184,3188 **** ; return 0; } EOF ! if eval $ac_link; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" --- 3437,3441 ---- ; return 0; } EOF ! if { (eval echo configure:3440: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" *************** else *** 3216,3220 **** else cat > conftest.$ac_ext < conftest.$ac_ext </dev/null; then ac_cv_c_stack_direction=1 --- 3488,3492 ---- } EOF ! { (eval echo configure:3491: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } if test -s conftest && (./conftest; exit) 2>/dev/null; then ac_cv_c_stack_direction=1 *************** fi *** 3256,3260 **** # On HPUX 9.01, -lm does not contain logb, so check for sqrt. echo $ac_n "checking for -lm""... $ac_c" 1>&6 ! ac_lib_var=`echo m | tr './+' '__p'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 3509,3513 ---- # On HPUX 9.01, -lm does not contain logb, so check for sqrt. echo $ac_n "checking for -lm""... $ac_c" 1>&6 ! ac_lib_var=`echo m'_'sqrt | tr './+\055' '__p_'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 3263,3275 **** LIBS="-lm $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" *************** else *** 3295,3301 **** fi for ac_func in gettimeofday gethostname dup2 rename closedir mkdir rmdir \ random lrand48 bcopy bcmp logb frexp fmod ftime res_init setsid \ ! strerror fpathconf select mktime eaccess getpagesize tzset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 --- 3552,3559 ---- fi + for ac_func in gettimeofday gethostname dup2 rename closedir mkdir rmdir \ random lrand48 bcopy bcmp logb frexp fmod ftime res_init setsid \ ! strerror fpathconf select mktime eaccess getpagesize tzset setlocale do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 *************** if eval "test \"`echo '$''{'ac_cv_func_$ *** 3304,3308 **** else cat > conftest.$ac_ext < conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ char $ac_func(); *************** $ac_func(); *** 3326,3330 **** ; return 0; } EOF ! if eval $ac_link; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" --- 3586,3590 ---- ; return 0; } EOF ! if { (eval echo configure:3589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" *************** done *** 3349,3357 **** echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6 if eval "test \"`echo '$''{'emacs_cv_localtime_cache'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ! if test $ac_cv_func_tzset = yes; then if test "$cross_compiling" = yes; then # If we have tzset, assume the worst when cross-compiling. --- 3609,3666 ---- + # Check this now, so that we will NOT find the above functions in ncurses. + # That is because we have not set up to link ncurses in lib-src. + # It's better to believe a function is not available + # than to expect to find it in ncurses. + echo $ac_n "checking for -lncurses""... $ac_c" 1>&6 + ac_lib_var=`echo ncurses'_'tparm | tr './+\055' '__p_'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + ac_save_LIBS="$LIBS" + LIBS="-lncurses $LIBS" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" + fi + rm -f conftest* + LIBS="$ac_save_LIBS" + + fi + if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo ncurses | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 + fi + + echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6 if eval "test \"`echo '$''{'emacs_cv_localtime_cache'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ! if test x$ac_cv_func_tzset = xyes; then if test "$cross_compiling" = yes; then # If we have tzset, assume the worst when cross-compiling. *************** emacs_cv_localtime_cache=yes *** 3359,3363 **** else cat > conftest.$ac_ext < --- 3668,3672 ---- else cat > conftest.$ac_ext < *************** cat > conftest.$ac_ext < #endif main() { time_t now = time ((time_t *) 0); ! int hour; if (putenv ("TZ=GMT0") != 0) exit (1); ! hour = localtime (&now)->tm_hour; if (putenv ("TZ=PST8") != 0) exit (1); ! exit (localtime (&now)->tm_hour == hour); } EOF ! eval $ac_link if test -s conftest && (./conftest; exit) 2>/dev/null; then emacs_cv_localtime_cache=no --- 3674,3705 ---- # include #endif + extern char **environ; + unset_TZ () + { + char **from, **to; + for (to = from = environ; (*to = *from); from++) + if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '=')) + to++; + } main() { time_t now = time ((time_t *) 0); ! int hour_GMT0, hour_unset; if (putenv ("TZ=GMT0") != 0) exit (1); ! hour_GMT0 = localtime (&now)->tm_hour; ! unset_TZ (); ! hour_unset = localtime (&now)->tm_hour; if (putenv ("TZ=PST8") != 0) exit (1); ! if (localtime (&now)->tm_hour == hour_GMT0) ! exit (1); ! unset_TZ (); ! if (localtime (&now)->tm_hour != hour_unset) ! exit (1); ! exit (0); } EOF ! { (eval echo configure:3704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } if test -s conftest && (./conftest; exit) 2>/dev/null; then emacs_cv_localtime_cache=no *************** EOF *** 3399,3406 **** fi ! if test $HAVE_TIMEVAL = yes; then echo $ac_n "checking whether gettimeofday can't accept two arguments""... $ac_c" 1>&6 cat > conftest.$ac_ext <&6 cat > conftest.$ac_ext <&6 --- 3749,3753 ---- ; return 0; } EOF ! if { (eval echo configure:3752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then rm -rf conftest* echo "$ac_t""no" 1>&6 *************** if eval "test \"`echo '$''{'ac_cv_func_s *** 3446,3450 **** else cat > conftest.$ac_ext < conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ char socket(); *************** socket(); *** 3468,3472 **** ; return 0; } EOF ! if eval $ac_link; then rm -rf conftest* eval "ac_cv_func_socket=yes" --- 3794,3798 ---- ; return 0; } EOF ! if { (eval echo configure:3797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then rm -rf conftest* eval "ac_cv_func_socket=yes" *************** if eval "test \"`echo '$''{'ac_cv_header *** 3493,3501 **** else cat > conftest.$ac_ext < EOF ! eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then --- 3819,3828 ---- else cat > conftest.$ac_ext < EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3827: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then *************** if eval "test \"`echo '$''{'ac_cv_header *** 3525,3533 **** else cat > conftest.$ac_ext < EOF ! eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then --- 3852,3861 ---- else cat > conftest.$ac_ext < EOF ! ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3860: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then *************** EOF *** 3664,3670 **** fi ! if test "${HAVE_X_MENU}" = "yes" ; then cat >> confdefs.h <<\EOF ! #define HAVE_X_MENU 1 EOF --- 3992,3998 ---- fi ! if test "${HAVE_MENUS}" = "yes" ; then cat >> confdefs.h <<\EOF ! #define HAVE_MENUS 1 EOF *************** do *** 3797,3801 **** exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; -version | --version | --versio | --versi | --vers | --ver | --ve | --v) ! echo "$CONFIG_STATUS generated by autoconf version 2.5" exit 0 ;; -help | --help | --hel | --he | --h) --- 4125,4129 ---- exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; -version | --version | --versio | --versi | --vers | --ver | --ve | --v) ! echo "$CONFIG_STATUS generated by autoconf version 2.10" exit 0 ;; -help | --help | --hel | --he | --h) *************** ac_given_INSTALL="$INSTALL" *** 3810,3817 **** trap 'rm -fr `echo "Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \ man/Makefile lwlib/Makefile src/Makefile.c:src/Makefile.in src/config.h:src/config.in" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 # Protect against being on the right side of a sed subst in config.status. ! sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\\\&%]/\\\\&/g; ! s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF $ac_vpsub $extrasub --- 4138,4147 ---- trap 'rm -fr `echo "Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \ man/Makefile lwlib/Makefile src/Makefile.c:src/Makefile.in src/config.h:src/config.in" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 + EOF + cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF $ac_vpsub $extrasub *************** cat > conftest.hdr <<\EOF *** 3976,3980 **** s/[\\&%]/\\&/g s%[\\$`]%\\&%g ! s%#define \([A-Za-z_][A-Za-z0-9_]*\) \(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp s%ac_d%ac_u%gp s%ac_u%ac_e%gp --- 4306,4310 ---- s/[\\&%]/\\&/g s%[\\$`]%\\&%g ! s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp s%ac_d%ac_u%gp s%ac_u%ac_e%gp *************** cat >> $CONFIG_STATUS <<\EOF *** 4024,4027 **** --- 4354,4363 ---- rm -f conftest.h else + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + fi rm -f $ac_file mv conftest.h $ac_file diff -2rcpP --exclude=*.elc emacs-19.30/configure.in emacs-19.31/configure.in *** emacs-19.30/configure.in Wed Nov 15 16:50:09 1995 --- emacs-19.31/configure.in Sat May 25 10:23:12 1996 *************** *** 1,12 **** ! dnl This is an autoconf script. dnl To rebuild the `configure' script from this, execute the command dnl autoconf dnl in the directory containing this script. ! AC_PREREQ(2.4.1)dnl AC_INIT(src/lisp.h) AC_CONFIG_HEADER(src/config.h:src/config.in) lispdir='${datadir}/emacs/${version}/lisp' ! locallisppath='${datadir}/emacs/site-lisp' lisppath='${locallisppath}:${lispdir}' etcdir='${datadir}/emacs/${version}/etc' --- 1,32 ---- ! dnl Autoconf script for GNU Emacs dnl To rebuild the `configure' script from this, execute the command dnl autoconf dnl in the directory containing this script. ! dnl ! dnl Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc. ! dnl ! dnl This file is part of GNU Emacs. ! dnl ! dnl GNU Emacs is free software; you can redistribute it and/or modify ! dnl it under the terms of the GNU General Public License as published by ! dnl the Free Software Foundation; either version 2, or (at your option) ! dnl any later version. ! dnl ! dnl GNU Emacs is distributed in the hope that it will be useful, ! dnl but WITHOUT ANY WARRANTY; without even the implied warranty of ! dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! dnl GNU General Public License for more details. ! dnl ! dnl You should have received a copy of the GNU General Public License ! dnl along with GNU Emacs; see the file COPYING. If not, write to ! dnl the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. ! ! AC_PREREQ(2.8)dnl AC_INIT(src/lisp.h) AC_CONFIG_HEADER(src/config.h:src/config.in) lispdir='${datadir}/emacs/${version}/lisp' ! locallisppath='${datadir}/emacs/${version}/site-lisp:'\ ! '${datadir}/emacs/site-lisp' lisppath='${locallisppath}:${lispdir}' etcdir='${datadir}/emacs/${version}/etc' *************** case "${canonical}" in *** 170,175 **** ;; ! alpha-*-linux* ) ! machine=alpha opsys=linux ;; --- 190,195 ---- ;; ! alpha-*-linux* | alpha-*-lignux* ) ! machine=alpha opsys=lignux ;; *************** case "${canonical}" in *** 178,182 **** machine=altos opsys=usg5-2 ;; ! ## Amdahl UTS 580-amdahl-sysv* ) --- 198,202 ---- machine=altos opsys=usg5-2 ;; ! ## Amdahl UTS 580-amdahl-sysv* ) *************** case "${canonical}" in *** 236,240 **** *-convex-bsd* | *-convex-convexos* ) machine=convex opsys=bsd4-3 ! ## Prevents suprious white space in makefiles - d.m.cooke@larc.nasa.gov NON_GNU_CPP="cc -E -P" ;; --- 256,260 ---- *-convex-bsd* | *-convex-convexos* ) machine=convex opsys=bsd4-3 ! ## Prevents spurious white space in makefiles - d.m.cooke@larc.nasa.gov NON_GNU_CPP="cc -E -P" ;; *************** case "${canonical}" in *** 286,290 **** then CC="gnucc -m68040" else CC="gnucc -m68881" ! fi else if test -z "`type gcc | grep 'not found'`" --- 306,310 ---- then CC="gnucc -m68040" else CC="gnucc -m68881" ! fi else if test -z "`type gcc | grep 'not found'`" *************** case "${canonical}" in *** 344,347 **** --- 364,368 ---- [7].[0-9] ) machine=nh4000 opsys=cxux7 ;; esac + NON_GNU_CPP="/lib/cpp" ;; ## Harris ecx or gcx running CX/UX (Series 1200, Series 3000) *************** case "${canonical}" in *** 349,352 **** --- 370,378 ---- machine=nh3000 opsys=cxux ;; + ## Harris power pc NightHawk running Power UNIX (Series 6000) + powerpc-harris-powerunix ) + machine=nh6000 opsys=powerunix + NON_GNU_CPP="cc -Xo -E -P" + ;; ## Honeywell XPS100 *************** case "${canonical}" in *** 401,404 **** --- 427,433 ---- esac ;; + hppa-*-nextstep* ) + machine=hp800 opsys=nextstep + ;; ## Orion machines *************** case "${canonical}" in *** 437,441 **** romp-ibm-bsd4.3* ) machine=ibmrt opsys=bsd4-3 ! ;; romp-ibm-bsd4.2* ) machine=ibmrt opsys=bsd4-2 --- 466,470 ---- romp-ibm-bsd4.3* ) machine=ibmrt opsys=bsd4-3 ! ;; romp-ibm-bsd4.2* ) machine=ibmrt opsys=bsd4-2 *************** case "${canonical}" in *** 443,447 **** romp-ibm-aos4.3* ) machine=ibmrt opsys=bsd4-3 ! ;; romp-ibm-aos4.2* ) machine=ibmrt opsys=bsd4-2 --- 472,476 ---- romp-ibm-aos4.3* ) machine=ibmrt opsys=bsd4-3 ! ;; romp-ibm-aos4.2* ) machine=ibmrt opsys=bsd4-2 *************** case "${canonical}" in *** 596,600 **** ## Siemens Nixdorf ! mips-siemens-sysv* ) machine=mips-siemens opsys=usg5-4 NON_GNU_CC=/usr/ccs/bin/cc --- 625,629 ---- ## Siemens Nixdorf ! mips-siemens-sysv* | mips-sni-sysv*) machine=mips-siemens opsys=usg5-4 NON_GNU_CC=/usr/ccs/bin/cc *************** case "${canonical}" in *** 618,622 **** ;; mips-sgi-irix6* ) ! machine=iris4d opsys=irix6-0 ;; mips-sgi-irix5.[01]* ) --- 647,651 ---- ;; mips-sgi-irix6* ) ! machine=iris4d opsys=irix6-0 NON_GNU_CPP=/lib/cpp ;; mips-sgi-irix5.[01]* ) *************** case "${canonical}" in *** 650,653 **** --- 679,686 ---- ## Suns + sparc-*-linux* | sparc-*-lignux* ) + machine=sparc opsys=lignux + ;; + *-sun-sunos* | *-sun-bsd* | *-sun-solaris* \ | i[345]86-*-solaris2* | i[345]86-*-sunos5* | powerpc*-*-solaris2* \ *************** case "${canonical}" in *** 671,675 **** NON_GNU_CPP=/usr/lib/cpp ;; ! *-sunos4* | *-sunos ) opsys=sunos4-1 NON_GCC_TEST_OPTIONS=-Bstatic GCC_TEST_OPTIONS=-static --- 704,715 ---- NON_GNU_CPP=/usr/lib/cpp ;; ! *-sunos4.1.[3-9]*-noshare ) ! opsys=sunos4-1-3 ! NON_GNU_CPP=/usr/lib/cpp ! NON_GCC_TEST_OPTIONS=-Bstatic ! GCC_TEST_OPTIONS=-static ! ;; ! *-sunos4* | *-sunos ) ! opsys=sunos4-1 NON_GCC_TEST_OPTIONS=-Bstatic GCC_TEST_OPTIONS=-static *************** case "${canonical}" in *** 690,698 **** ;; *-sunos5* | *-solaris* ) ! opsys=sol2 NON_GNU_CPP=/usr/ccs/lib/cpp ;; * ) opsys=bsd4-2 ;; esac ;; sparc-*-nextstep* ) --- 730,749 ---- ;; *-sunos5* | *-solaris* ) ! opsys=sol2-4 NON_GNU_CPP=/usr/ccs/lib/cpp ;; * ) opsys=bsd4-2 ;; esac + ## Watch out for a compiler that we know will not work. + case "${canonical}" in + *-solaris* | *-sunos5* ) + if [ "x$CC" = x/usr/ucb/cc ]; then + ## /usr/ucb/cc doesn't work; + ## we should find some other compiler that does work. + unset CC + fi + ;; + *) ;; + esac ;; sparc-*-nextstep* ) *************** case "${canonical}" in *** 738,742 **** machine=titan opsys=usg5-3 ;; ! ## Ustation E30 (SS5E) m68*-unisys-uniplus* ) --- 789,793 ---- machine=titan opsys=usg5-3 ;; ! ## Ustation E30 (SS5E) m68*-unisys-uniplus* ) *************** case "${canonical}" in *** 785,789 **** *-esix* ) opsys=esix ;; *-xenix* ) opsys=xenix ;; ! *-linux* ) opsys=linux ;; *-sco3.2v4* ) opsys=sco4 ; NON_GNU_CPP=/lib/cpp ;; *-bsd386* | *-bsdi1* ) opsys=bsd386 ;; --- 836,840 ---- *-esix* ) opsys=esix ;; *-xenix* ) opsys=xenix ;; ! *-linux* | *-lignux* ) opsys=lignux ;; *-sco3.2v4* ) opsys=sco4 ; NON_GNU_CPP=/lib/cpp ;; *-bsd386* | *-bsdi1* ) opsys=bsd386 ;; *************** case "${canonical}" in *** 796,802 **** ;; ! ## Linux/68k ! m68k-*-linux* ) ! machine=m68k opsys=linux ;; --- 847,853 ---- ;; ! ## Lignux/68k ! m68k-*-linux* | m68k-*-lignux* ) ! machine=m68k opsys=lignux ;; *************** if test x"${opsys}" = x; then *** 827,831 **** *-sysv4.[2-9]* | *-sysvr4.[2-9]* ) if [ x$NON_GNU_CPP = x ]; then ! NON_GNU_CPP=/usr/ccs/lib/cpp fi opsys=usg5-4-2 ;; --- 878,886 ---- *-sysv4.[2-9]* | *-sysvr4.[2-9]* ) if [ x$NON_GNU_CPP = x ]; then ! if [ -f /usr/ccs/lib/cpp ]; then ! NON_GNU_CPP=/usr/ccs/lib/cpp ! else ! NON_GNU_CPP=/lib/cpp ! fi fi opsys=usg5-4-2 ;; *************** if test x$GCC = xyes && test "x$GCC_TEST *** 889,898 **** then CC="$CC $GCC_TEST_OPTIONS" ! fi if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x then CC="$CC $NON_GCC_TEST_OPTIONS" ! fi #### Some other nice autoconf tests. If you add a test here which --- 944,953 ---- then CC="$CC $GCC_TEST_OPTIONS" ! fi if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x then CC="$CC $NON_GCC_TEST_OPTIONS" ! fi #### Some other nice autoconf tests. If you add a test here which *************** AC_AIX *** 910,914 **** dnl checks for header files ! AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h) AC_HEADER_STDC AC_HEADER_TIME --- 965,969 ---- dnl checks for header files ! AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h linux/version.h) AC_HEADER_STDC AC_HEADER_TIME *************** AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIM *** 951,955 **** HAVE_TIMEVAL=yes AC_DEFINE(HAVE_TIMEVAL)], ! AC_MSG_RESULT(no)) dnl checks for structure members --- 1006,1011 ---- HAVE_TIMEVAL=yes AC_DEFINE(HAVE_TIMEVAL)], ! [AC_MSG_RESULT(no) ! HAVE_TIMEVAL=no]) dnl checks for structure members *************** if test x"${x_includes}" = x; then *** 986,990 **** bitmapdir=/usr/include/X11/bitmaps else ! # accumulate include directories that have X11 bitmap sudirectories bmd_acc="dummyval" for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do --- 1042,1046 ---- bitmapdir=/usr/include/X11/bitmaps else ! # accumulate include directories that have X11 bitmap subdirectories bmd_acc="dummyval" for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do *************** case "${window_system}" in *** 1005,1012 **** HAVE_X11=yes case "${with_x_toolkit}" in ! athena | lucid ) USE_X_TOOLKIT=LUCID ;; ! motif ) USE_X_TOOLKIT=MOTIF ;; ! dnl open-look ) USE_X_TOOLKIT=OPEN_LOOK ;; ! * ) USE_X_TOOLKIT=none ;; esac ;; --- 1061,1071 ---- HAVE_X11=yes case "${with_x_toolkit}" in ! athena | lucid ) USE_X_TOOLKIT=LUCID ;; ! motif ) USE_X_TOOLKIT=MOTIF ;; ! dnl open-look ) USE_X_TOOLKIT=OPEN_LOOK ;; ! no ) USE_X_TOOLKIT=none ;; ! dnl If user did not say whether to use a toolkit, ! dnl make this decision later: use the toolkit if we have X11R5 or newer. ! * ) USE_X_TOOLKIT=maybe ;; esac ;; *************** dnl open-look ) USE_X_TOOLKIT=OPEN_ *** 1017,1026 **** ;; esac - X_TOOLKIT_TYPE=$USE_X_TOOLKIT ### If we're using X11, we should use the X menu package. ! HAVE_X_MENU=no case ${HAVE_X11} in ! yes ) HAVE_X_MENU=yes ;; esac --- 1076,1084 ---- ;; esac ### If we're using X11, we should use the X menu package. ! HAVE_MENUS=no case ${HAVE_X11} in ! yes ) HAVE_MENUS=yes ;; esac *************** AC_CHECKING([the machine- and system-dep *** 1051,1055 **** ### The two are the same except on a few systems, where they are made ### different to work around various lossages. For example, ! ### GCC 2.5 on Linux needs them to be different because it treats -g ### as implying static linking. --- 1109,1113 ---- ### The two are the same except on a few systems, where they are made ### different to work around various lossages. For example, ! ### GCC 2.5 on Lignux needs them to be different because it treats -g ### as implying static linking. *************** AC_MSG_RESULT($HAVE_XFREE386) *** 1200,1207 **** if test "${HAVE_X11}" = "yes"; then DEFS="$C_SWITCH_X_SITE $DEFS" ! LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS" CFLAGS="$C_SWITCH_X_SITE $CFLAGS" ! if test "${opsys}" = "linux"; then AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link) AC_TRY_LINK([], --- 1258,1275 ---- if test "${HAVE_X11}" = "yes"; then DEFS="$C_SWITCH_X_SITE $DEFS" ! LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE" ! LIBS="$LIBX $LIBS" CFLAGS="$C_SWITCH_X_SITE $CFLAGS" ! # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests. ! # This is handled by LD_SWITCH_X_SITE_AUX during the real build, ! # but it's more convenient here to set LD_RUN_PATH ! # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX. ! if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then ! LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH ! export LD_RUN_PATH ! fi ! ! if test "${opsys}" = "lignux"; then AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link) AC_TRY_LINK([], *************** XScreenNumberOfScreen XSetWMProtocols) *** 1242,1245 **** --- 1310,1339 ---- fi + if test "${window_system}" = "x11"; then + AC_MSG_CHECKING(X11 version 6) + AC_TRY_LINK([#include ], + [#if XlibSpecificationRelease < 6 + fail; + #endif + ], [AC_MSG_RESULT(6 or newer) + AC_DEFINE(HAVE_X11R6)], + [AC_MSG_RESULT(before 6)]) + fi + + if test x"${USE_X_TOOLKIT}" = xmaybe; then + AC_MSG_CHECKING(X11 version 5) + AC_TRY_LINK([#include ], + [#if XlibSpecificationRelease < 5 + fail; + #endif + ], [AC_MSG_RESULT(5 or newer; use toolkit by default) + USE_X_TOOLKIT=LUCID + AC_DEFINE(HAVE_X11R5)], + [AC_MSG_RESULT(before 5; do not use toolkit by default) + USE_X_TOOLKIT=none]) + fi + + X_TOOLKIT_TYPE=$USE_X_TOOLKIT + if test "${USE_X_TOOLKIT}" != "none"; then AC_MSG_CHECKING(X11 toolkit version) *************** if test "${USE_X_TOOLKIT}" != "none"; th *** 1248,1254 **** fail; #endif ! ], [AC_MSG_RESULT(6) AC_DEFINE(HAVE_X11XTR6)], ! [AC_MSG_RESULT(not 6)]) fi --- 1342,1361 ---- fail; #endif ! ], [AC_MSG_RESULT(6 or newer) ! HAVE_X11XTR6=yes AC_DEFINE(HAVE_X11XTR6)], ! [AC_MSG_RESULT(before 6) ! HAVE_X11XTR6=no]) ! ! dnl If using toolkit, check whether libXmu.a exists. ! dnl tranle@intellicorp.com says libXmu.a can need XtMalloc in libXt.a to link. ! OLDLIBS="$LIBS" ! if test x$HAVE_X11XTR6 = xyes; then ! LIBS="-lXt -lSM -lICE $LIBS" ! else ! LIBS="-lXt $LIBS" ! fi ! AC_CHECK_LIB(Xmu, XmuConvertStandardSelection) ! LIBS="$OLDLIBS" fi *************** AC_FUNC_ALLOCA *** 1265,1290 **** # fmod, logb, and frexp are found in -lm on most systems. # On HPUX 9.01, -lm does not contain logb, so check for sqrt. ! AC_CHECK_LIB(m, sqrt(0.0) + t) AC_CHECK_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \ random lrand48 bcopy bcmp logb frexp fmod ftime res_init setsid \ ! strerror fpathconf select mktime eaccess getpagesize tzset) AC_MSG_CHECKING(whether localtime caches TZ) AC_CACHE_VAL(emacs_cv_localtime_cache, ! [if test $ac_cv_func_tzset = yes; then AC_TRY_RUN([#include #if STDC_HEADERS # include #endif main() { time_t now = time ((time_t *) 0); ! int hour; if (putenv ("TZ=GMT0") != 0) exit (1); ! hour = localtime (&now)->tm_hour; if (putenv ("TZ=PST8") != 0) exit (1); ! exit (localtime (&now)->tm_hour == hour); }], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes, [# If we have tzset, assume the worst when cross-compiling. --- 1372,1419 ---- # fmod, logb, and frexp are found in -lm on most systems. # On HPUX 9.01, -lm does not contain logb, so check for sqrt. ! AC_CHECK_LIB(m, sqrt) ! AC_CHECK_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \ random lrand48 bcopy bcmp logb frexp fmod ftime res_init setsid \ ! strerror fpathconf select mktime eaccess getpagesize tzset setlocale) ! ! # Check this now, so that we will NOT find the above functions in ncurses. ! # That is because we have not set up to link ncurses in lib-src. ! # It's better to believe a function is not available ! # than to expect to find it in ncurses. ! AC_CHECK_LIB(ncurses, tparm) AC_MSG_CHECKING(whether localtime caches TZ) AC_CACHE_VAL(emacs_cv_localtime_cache, ! [if test x$ac_cv_func_tzset = xyes; then AC_TRY_RUN([#include #if STDC_HEADERS # include #endif + extern char **environ; + unset_TZ () + { + char **from, **to; + for (to = from = environ; (*to = *from); from++) + if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '=')) + to++; + } main() { time_t now = time ((time_t *) 0); ! int hour_GMT0, hour_unset; if (putenv ("TZ=GMT0") != 0) exit (1); ! hour_GMT0 = localtime (&now)->tm_hour; ! unset_TZ (); ! hour_unset = localtime (&now)->tm_hour; if (putenv ("TZ=PST8") != 0) exit (1); ! if (localtime (&now)->tm_hour == hour_GMT0) ! exit (1); ! unset_TZ (); ! if (localtime (&now)->tm_hour != hour_unset) ! exit (1); ! exit (0); }], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes, [# If we have tzset, assume the worst when cross-compiling. *************** if test $emacs_cv_localtime_cache = yes; *** 1300,1304 **** fi ! if test $HAVE_TIMEVAL = yes; then AC_MSG_CHECKING(whether gettimeofday can't accept two arguments) AC_TRY_LINK([ --- 1429,1433 ---- fi ! if test "x$HAVE_TIMEVAL" = xyes; then AC_MSG_CHECKING(whether gettimeofday can't accept two arguments) AC_TRY_LINK([ *************** if test "${HAVE_XFREE386}" = "yes" ; the *** 1406,1411 **** AC_DEFINE(HAVE_XFREE386) fi ! if test "${HAVE_X_MENU}" = "yes" ; then ! AC_DEFINE(HAVE_X_MENU) fi if test "${GNU_MALLOC}" = "yes" ; then --- 1535,1540 ---- AC_DEFINE(HAVE_XFREE386) fi ! if test "${HAVE_MENUS}" = "yes" ; then ! AC_DEFINE(HAVE_MENUS) fi if test "${GNU_MALLOC}" = "yes" ; then diff -2rcpP --exclude=*.elc emacs-19.30/etc/AIX.DUMP emacs-19.31/etc/AIX.DUMP *** emacs-19.30/etc/AIX.DUMP Thu Jul 22 03:54:09 1993 --- emacs-19.31/etc/AIX.DUMP Thu Jan 4 14:53:54 1996 *************** has been modified as follows: *** 165,169 **** AIX 3.1 version does not. Therefore, repeated malloc calls are needed to exhaust this initial malloc space. How do you know ! when malloc has exhausted its free memroy? You don't! So the code must repeatedly call malloc for each buffer size and detect when a new memory page has been allocated. Once the new --- 165,169 ---- AIX 3.1 version does not. Therefore, repeated malloc calls are needed to exhaust this initial malloc space. How do you know ! when malloc has exhausted its free memory? You don't! So the code must repeatedly call malloc for each buffer size and detect when a new memory page has been allocated. Once the new diff -2rcpP --exclude=*.elc emacs-19.30/etc/CENSORSHIP emacs-19.31/etc/CENSORSHIP *** emacs-19.30/etc/CENSORSHIP Wed Dec 31 19:00:00 1969 --- emacs-19.31/etc/CENSORSHIP Thu May 23 15:18:56 1996 *************** *** 0 **** --- 1,88 ---- + Censoring my Software + Richard Stallman + [From Datamation, 1 March 1996] + + + Last summer, a few clever legislators proposed a bill to "prohibit + pornography" on the Internet. Last fall, right-wing Christians made + this cause their own. Last week, President Clinton signed the bill, + and we lost the freedom of the press for the public library of the + future. This week, I'm censoring GNU Emacs. + + No, GNU Emacs does not contain pornography, It is a software package, + an award-winning extensible and programmable text editor. But the law + that was passed applies to far more than pornography. It prohibits + "indecent" speech, which can include anything from famous poems, to + masterpieces hanging in the Louvre, to advice about safe sex...to + software. + + Naturally, there was a lot of opposition to this bill. Not only from + people who use the Internet, and people who appreciate erotica, but + from everyone who cares about freedom of the press. + + But every time we tried to tell the public what was at stake, the + forces of censorship responded with a lie: they told the public that + the issue was simply pornography. By embedding this lie as a + presupposition in their statements about the issue, they succeeded in + misinforming the public. So here I am, censoring my software. + + You see, Emacs contains a version of the famous "doctor program", + a.k.a. Eliza, originally developed by Professor Weizenbaum at MIT. + This is the program that imitates a Rogerian psychotherapist. The + user talks to the program, and the program responds--by playing back + the user's own statements, and by recognizing a long list of + particular words. + + The Emacs doctor program was set up to recognize many common curse + words, and respond with an appropriately cute message such as, "Would + you please watch your tongue?" or "Let's not be vulgar." In order to + do this, it had to have a list of curse words. That means the source + code for the program was indecent. + + Because of the censorship law, I had to remove this feature. (I + replaced it with a message announcing that the program has been + censored for your protection.) The new version of the doctor doesn't + recognize the indecent words. If you curse at it, it curses right + back to you--for lack of knowing better. + + Now that people are facing the threat of two years in prison for + indecent network postings, it would be helpful if they could access + precise rules via the Internet for how to avoid imprisonment. + However, this is impossible. The rules would have to mention the + forbidden words, so posting them on the Internet would be against the + rules. + + Of course, I'm making an assumption about just what "indecent" means. + I have to do this, because nobody knows for sure. The most obvious + possibile meaning is the meaning it has for television, so I'm using + that as a tentative assumption. However, there is a good chance that + our courts will reject that interpretation of the law as + unconstitutional. + + We can hope that the courts will recognize the Internet as a medium of + publication like books and magazines. If they do, they will entirely + reject any law prohibiting "indecent" publications on the Internet. + + What really worries me is that the courts might take a muddled + in-between escape route--by choosing another interpretation of + "indecent", one that permits the doctor program or a statement of the + decency rules, but prohibits some of the books that children can + browse through in the public library and the bookstore. Over the + years, as the Internet replaces the public library and the bookstore, + some of our freedom of the press will be lost. + + Just a few weeks ago, another country imposed censorship on the + Internet. That was China. We don't think well of China in this + country--its government doesn't respect basic freedoms. But how well + does our government respect them? And do you care enough to preserve + them here? + + If you care, stay in touch with the Voters Telecommunications Watch. + Look in their Web site http://www.vtw.org/ for background information + and political action recommendations. Censorship won in February, but + we can beat it in November. + + + Copyright 1996 Richard Stallman + Verbatim copying and distribution is permitted in any medium + provided this notice is preserved. diff -2rcpP --exclude=*.elc emacs-19.30/etc/ChangeLog emacs-19.31/etc/ChangeLog *** emacs-19.30/etc/ChangeLog Fri Nov 24 23:42:04 1995 --- emacs-19.31/etc/ChangeLog Sat May 25 15:30:35 1996 *************** *** 1,2 **** --- 1,18 ---- + Sat May 25 15:30:10 1996 Karl Heuer + + * Version 19.31 released. + + Sat May 25 14:50:49 1996 Karl Heuer + + * TUTORIAL: Rephrase the first page to fit on a standard tty screen. + + Fri May 3 16:56:54 1996 Richard Stallman + + * emacs.bash: Use >|. + + Sat Jan 20 19:15:06 1996 Geoff Voelker + + * rgb.txt: New file. + Fri Nov 24 23:41:58 1995 Richard Stallman diff -2rcpP --exclude=*.elc emacs-19.30/etc/FAQ emacs-19.31/etc/FAQ *** emacs-19.30/etc/FAQ Sun Jun 18 14:45:46 1995 --- emacs-19.31/etc/FAQ Thu Apr 11 18:55:24 1996 *************** Finding/Getting Emacs and Related Packag *** 1916,1953 **** Recent releases of GNU Emacs 19 should compile right out of the box on PCs with a 386 or better, running MS-DOS 3.0 or later. You will need the ! following: ! Compiler: djgpp version 1,11 maint 4 or later. You can get the latest ! version by grabbing everything in the following directory ! (using anonymous ftp): ! oak.oakland.edu:pub/msdos/djdpp ! Tar: One DOS version of tar is available via anonymous ftp from ! ftp.urc.tue.nl:pub/unixtools/dos ! However, not all DOS versions of tar work equally well, so you ! might have to try others if this one gives you trouble. Utilities: chmod, make, mv, sed, rm. ! All of these utilities are available via anonymous ftp from ! the site ! ftp.iro.umontreal.ca:pub/Internet/gnuish ! You should grab the files futil4ax.zoo (contains chmod.exe, ! mv.exe, and rm.exe), sed106ax.zoo (contains sed.exe), and ! gzip07ax.zoo (contains gzip.exe). The file etc/MSDOS contains some information on the differences between the Unix and MS-DOS versions of GNU Emacs. ! If you would prefer not to compile Emacs by yourself, you can get ! binaries for Emacs 19.24 via anonymous ftp from the following two sites: ! ftp.demon.co.uk:pub/ibmpc/editors/emacs19.24 ! ftp.imada.ou.dk:pub/mirrors/msdos/emacs-19.24 You might also be interested in Demacs, which runs under MS-DOS (*not* --- 1916,1993 ---- Recent releases of GNU Emacs 19 should compile right out of the box on PCs with a 386 or better, running MS-DOS 3.0 or later. You will need the ! following to compile it: ! Compiler: djgpp version 1.12 maint 1 or later. Djgpp v2.0 or later is ! recommended, since v1.x is being phased out--if you'll have any ! djgpp-related problem for which there is no known solution, you ! are on your own when you use djgpp v1.x. ! You can get the latest release of either v1.x or v2.0 by ! grabbing everything in the following directory (using anonymous ! ftp): ! ftp.coast.net:/SimTel/vendors/djgpp ! There are a few directories under djgpp whose names begin with ! `v1' or `v2'; get the contents of `v2' and `v2gnu' (for djgpp ! v2) or `v1' and `v1gnu' (for djgpp v1). ! GUnZip and Tar: ! ! The easiest way is to use `djtar' which comes with DJGPP v2.0, ! because it can unzip .tar.gz archives on-the-fly (so you won't ! need twice the required disk space while untarring the ! archive). You get `djtar' with the `v2/djdev200.zip' file from ! the above FTP server. ! ! Another (slower) version of Tar which unzips automatically is ! available by anonymous ftp on this site: ! ! ftp.kiae.su:msdos/arcers/tar320fp.zip ! ! Or you can unZip the archive with the DJGPP port of GZip (from ! the above directory at ftp.coast.net look for v2/gzp124b.zip), ! then unTar it with any of the Tar ports floating around. A ! DOS version of GNU tar is available via anonymous ftp from ! ! ftp.unipg.it:/pub/msdos/aspi/gtar-exe.zip ! ! Note that DOS ports of GNU Tar usually cannot unzip compressed ! archives. ! ! Another version of Tar for DOS can be found at ! ! ftp.urc.tue.nl:pub/unixtools/dos ! ! However, be warned that not all DOS versions of tar work ! equally well, so you might have to try others if this one gives ! you trouble. Utilities: chmod, make, mv, sed, rm. ! All of these utilities are available via anonymous ftp from ! the site ! ! ftp.coast.net:/SimTel/vendors/gnu/gnuish/dos_only ! You should grab the files fut312bx.zip (contains chmod.exe, ! mv.exe, and rm.exe). ! A port of GNU Sed is available in the djgpp archives in the ! above directory on ftp.coast.net. Look for a file named ! v2/sed118b.zip or v1/sed118bn.zip. The file etc/MSDOS contains some information on the differences between the Unix and MS-DOS versions of GNU Emacs. ! MS-DOS systems are notorious in the problems they present when installing ! programs, due to a great variability in both hardware and software. If ! you have any unusual problems compiling or using Emacs, please consult ! the latest version of the djgpp FAQ list, available as v2/faqNNNb.zip, ! where `NNN' is the version number. For v1, get the file v1/faq102.zip. ! If you would prefer not to compile Emacs by yourself, you can get ! binaries for Emacs via anonymous ftp from many sites; use your Archie ! client to search for them. You might also be interested in Demacs, which runs under MS-DOS (*not* *************** Finding/Getting Emacs and Related Packag *** 1957,1962 **** Demacs was developed using an MS-DOS version of gcc called djgpp by ! D. J. Delorie which can compile and run large programs ! under MS-DOS, but not under MS Windows. Demacs was derived from Nemacs rather than straight from GNU Emacs. You can get the most recent version of Demacs via anonymous ftp from ftp.sigmath.osaka-u.ac.jp in --- 1997,2002 ---- Demacs was developed using an MS-DOS version of gcc called djgpp by ! DJ Delorie which can compile and run large programs ! under MS-DOS and under MS Windows. Demacs was derived from Nemacs rather than straight from GNU Emacs. You can get the most recent version of Demacs via anonymous ftp from ftp.sigmath.osaka-u.ac.jp in *************** Finding/Getting Emacs and Related Packag *** 1969,1973 **** 84: Where can I get Emacs for my PC running Microsoft Windows? ! There are currently two ports of Emacs that runs under Microsoft Windows: * Oemacs --- 2009,2017 ---- 84: Where can I get Emacs for my PC running Microsoft Windows? ! * If you compile GNU Emacs with the tools listed above, it will run under ! Microsoft Windows in a DOS box. ! ! There are currently two other ports of Emacs that runs under Microsoft ! Windows: * Oemacs *************** Finding/Getting Emacs and Related Packag *** 1980,1984 **** Anonymous ftp information: ! /oak.oakland.edu:pub/msdos/oemacs/ * The other uses a proprietary X Windows emulator and therefore --- 2024,2028 ---- Anonymous ftp information: ! ftp.coast.net:SimTel/vendors/gnu/oemacs/ * The other uses a proprietary X Windows emulator and therefore diff -2rcpP --exclude=*.elc emacs-19.30/etc/FTP emacs-19.31/etc/FTP *** emacs-19.30/etc/FTP Mon Oct 30 12:30:57 1995 --- emacs-19.31/etc/FTP Mon Apr 22 19:38:00 1996 *************** ftp.hawaii.edu:/mirrors/gnu, f.ms.uky.ed *** 150,159 **** ftp.digex.net:/pub/gnu (Internet address 164.109.10.23, nightly full mirror, ran by mcguire@digex.net), wuarchive.wustl.edu:/systems/gnu, - col.hp.com:/mirrors/gnu, ftp.cs.columbia.edu:/archives/gnu/prep, uiarchive.cso.uiuc.edu:/pub/gnu (Internet address 128.174.5.14, nightly full mirror, ran by ftpadmin@uiuc.edu), ! jaguar.utah.edu:/gnustuff, gatekeeper.dec.com:/pub/GNU, ! labrea.stanford.edu, archive.cis.ohio-state.edu, and ! ftp.uu.net:/archive/systems/gnu. And these foreign sites: ftp.cs.ubc.ca:/mirror2/gnu (Western Canada, --- 150,158 ---- ftp.digex.net:/pub/gnu (Internet address 164.109.10.23, nightly full mirror, ran by mcguire@digex.net), wuarchive.wustl.edu:/systems/gnu, uiarchive.cso.uiuc.edu:/pub/gnu (Internet address 128.174.5.14, nightly full mirror, ran by ftpadmin@uiuc.edu), ! ftp.cs.columbia.edu:/archives/gnu/prep, jaguar.utah.edu:/gnustuff, ! gatekeeper.dec.com:/pub/GNU, labrea.stanford.edu, ! archive.cis.ohio-state.edu, and ftp.uu.net:/archive/systems/gnu. And these foreign sites: ftp.cs.ubc.ca:/mirror2/gnu (Western Canada, *************** lmjm@doc.ic.ac.uk is willing to distribu *** 203,210 **** along with comp.sources.unix, comp.sources.x, X windows et al. The archive, on src.doc.ic.ac.uk in directory /gnu, is available via ftp ! over the Internet (on 146.169.3.7), niftp over janet (000005102000), ! ftam over IXI and uucp. Due to communication costs this service is ! only available within the UK. Mail to info-server@doc.ic.ac.uk for ! details. He can also write sun cartridge or exabyte tapes. UK sites with just anonymous FTP access are in the above list. --- 202,210 ---- along with comp.sources.unix, comp.sources.x, X windows et al. The archive, on src.doc.ic.ac.uk in directory /gnu, is available via ftp ! over the Internet (on 146.169.3.7), ftam over IXI, HTTP, FSP, Gopher, ! ftpmail, NFS, Lanmanger over IP, telnet, and uucp. Due to ! communication costs this service is only available within the UK. ! Mail to info-server@doc.ic.ac.uk for details. He can also write sun ! cartridge or exabyte tapes. UK sites with just anonymous FTP access are in the above list. diff -2rcpP --exclude=*.elc emacs-19.30/etc/GNU emacs-19.31/etc/GNU *** emacs-19.30/etc/GNU Wed Mar 16 12:47:21 1994 --- emacs-19.31/etc/GNU Tue Apr 30 14:25:15 1996 *************** friends or over the net. But it does su *** 521,525 **** (4) The Free Software Foundation raises most of its funds from a distribution service, although it is a charity rather than a company. ! If *no one* chooses to obtain copies by ordering the from the FSF, it will be unable to do its work. But this does not mean that proprietary restrictions are justified to force every user to pay. If a small --- 521,525 ---- (4) The Free Software Foundation raises most of its funds from a distribution service, although it is a charity rather than a company. ! If *no one* chooses to obtain copies by ordering from the FSF, it will be unable to do its work. But this does not mean that proprietary restrictions are justified to force every user to pay. If a small diff -2rcpP --exclude=*.elc emacs-19.30/etc/LINUX-GNU emacs-19.31/etc/LINUX-GNU *** emacs-19.30/etc/LINUX-GNU Wed Dec 31 19:00:00 1969 --- emacs-19.31/etc/LINUX-GNU Sun May 19 18:50:49 1996 *************** *** 0 **** --- 1,98 ---- + Linux and the GNU system + + The GNU project started 12 years ago with the goal of developing a + complete free Unix-like operating system. "Free" refers to freedom, + not price; it means you are free to run, copy, distribute, study, + change, and improve the software. + + A Unix-like system consists of many different programs. We found some + components already available as free software--for example, X Windows + and TeX. We obtained other components by helping to convince their + developers to make them free--for example, the Berkeley network + utilities. Other components we wrote specifically for GNU--for + example, GNU Emacs, the GNU C compiler, the GNU C library, Bash, and + Ghostscript. The components in this last category are "GNU software". + The GNU system consists of all three categories together. + + The GNU project is not just about developing and distributing free + software. The heart of the GNU project is an idea: that software + should be free, and that the users' freedom is worth defending. For + if people have freedom but do not value it, they will not keep it for + long. In order to make freedom last, we have to teach people to value + it. + + The GNU project's method is that free software and the idea of users' + freedom support each other. We develop GNU software, and as people + encounter GNU programs or the GNU system and start to use them, they + also think about the GNU idea. The software shows that the idea can + work in practice. People who come to agree with the idea are likely + to write additional free software. Thus, the software embodies the + idea, spreads the idea, and grows from the idea. + + This method was working well--until someone combined the Linux kernel + with the GNU system (which still lacked a kernel), and called the + combination a "Linux system." + + The Linux kernel is a free Unix-compatible kernel written by Linus + Torvalds. It was not written specifically for the GNU project, but + the Linux kernel and the GNU system work together well. In fact, + adding Linux to the GNU system brought the system to completion: it + made a free Unix-compatible operating system available for use. + + But ironically, the practice of calling it a "Linux system" undermines + our method of communicating the GNU idea. At first impression, a + "Linux system" sounds like something completely distinct from the "GNU + system." And that is what most users think it is. + + Most introductions to the "Linux system" acknowledge the role played + by the GNU software components. But they don't say that the system as + a whole is more or less the same GNU system that the GNU project has + been compiling for a decade. They don't say that the idea of a free + Unix-like system originates from the GNU project. So most users don't + know these things. + + This leads many of those users to identify themselves as a separate + community of "Linux users", distinct from the GNU user community. + They use all of the GNU software; in fact, they use almost all of the + GNU system; but they don't think of themselves as GNU users, and they + may not think about the GNU idea. + + It leads to other problems as well--even hampering cooperation on + software maintenance. Normally when users change a GNU program to + make it work better on a particular system, they send the change to + the maintainer of that program; then they work with the maintainer, + explaining the change, arguing for it and sometimes rewriting it, to + get it installed. + + But people who think of themselves as "Linux users" are more likely to + release a forked "Linux-only" version of the GNU program, and consider + the job done. We want each and every GNU program to work "out of the + box" on Linux-based systems; but if the users do not help, that goal + becomes much harder to achieve. + + So how should the GNU project respond? What should we do now to + spread the idea that freedom for computer users is important? + + We should continue to talk about the freedom to share and change + software--and to teach other users to value these freedoms. If we + enjoy having a free operating system, it makes sense for us to think + about preserving those freedoms for the long term. If we enjoy having + a variety of free software, it makes sense for to think about + encouraging others to write additional free software, instead of + additional proprietary software. + + We should not accept the splitting of the community in two. Instead + we should spread the word that "Linux systems" are variant GNU + systems--that users of these systems are GNU users, and that they + ought to consider the GNU philosophy which brought these systems into + existence. + + This article is one way of doing that. Another way is to use the + terms "Linux-based GNU system" (or "GNU/Linux system" or "Lignux" for + short) to refer to the combination of the Linux kernel and the GNU + system. + + Copyright 1996 Richard Stallman + Verbatim copying and redistribution is permitted + without royalty as long as this notice is preserved. + diff -2rcpP --exclude=*.elc emacs-19.30/etc/LNEWS emacs-19.31/etc/LNEWS *** emacs-19.30/etc/LNEWS Sat Mar 19 02:05:06 1994 --- emacs-19.31/etc/LNEWS Tue Dec 12 20:33:52 1995 *************** *** 1,7 **** ! This is Info file LNEWS, produced by Makeinfo-1.54 from the input file news.texi. ! This file describes the new Lisp features of Emacs version 19 as first ! released to the public. For Lisp changes in subsequent Emacs 19 releases, see the file NEWS. --- 1,7 ---- ! This is Info file LNEWS, produced by Makeinfo-1.55 from the input file news.texi. ! This file describes the new Lisp features of Emacs version 19 as ! first released to the public. For Lisp changes in subsequent Emacs 19 releases, see the file NEWS. *************** New Features for Files *** 806,811 **** `write-file-hooks'. ! * The hook `after-save-hook' runs just after a buffer has been saved ! in its visited file. * The new function `set-default-file-modes' sets the file protection --- 806,811 ---- `write-file-hooks'. ! * The hook `after-save-buffer-hook' runs just after a buffer has been ! saved in its visited file. * The new function `set-default-file-modes' sets the file protection *************** ISO Latin 1 *** 1683,1688 **** character set, you can arrange to use that character set as follows: ! (require 'disp-table) ! (standard-display-8bit 0 255) If you are editing buffers written in the ISO Latin 1 character set --- 1683,1687 ---- character set, you can arrange to use that character set as follows: ! (standard-display-european 1) If you are editing buffers written in the ISO Latin 1 character set diff -2rcpP --exclude=*.elc emacs-19.30/etc/LPF emacs-19.31/etc/LPF *** emacs-19.30/etc/LPF Sun Oct 2 16:56:02 1994 --- emacs-19.31/etc/LPF Thu Jan 4 14:53:56 1996 *************** Chris Hofstader can be reached at (617) *** 64,68 **** (Outside the US, please send a check in US dollars on a bank ! having a US correspondant bank, to save us check cashing fees.) Your name: --- 64,68 ---- (Outside the US, please send a check in US dollars on a bank ! having a US correspondent bank, to save us check cashing fees.) Your name: diff -2rcpP --exclude=*.elc emacs-19.30/etc/MACHINES emacs-19.31/etc/MACHINES *** emacs-19.30/etc/MACHINES Wed Nov 15 01:23:10 1995 --- emacs-19.31/etc/MACHINES Sun Apr 28 01:51:21 1996 *************** Alliant FX/2800 (i860-alliant-bsd) *** 69,73 **** Known to work with 19.26 and OS version 2.2, compiler version 1.3. ! Alpha (DEC) running OSF/1 (alpha-dec-osf1, alpha-dec-linux) Patches merged in 19.29. Note that the X11 libraries on GNU/Linux systems --- 69,73 ---- Known to work with 19.26 and OS version 2.2, compiler version 1.3. ! Alpha (DEC) running OSF/1 (alpha-dec-osf1, alpha-dec-lignux) Patches merged in 19.29. Note that the X11 libraries on GNU/Linux systems *************** Harris Night Hawk (m68k-harris-cxux or m *** 341,344 **** --- 341,348 ---- libraries has not yet been done). + Harris Power PC (powerpc-harris-powerunix) + + Patches have been merged in 19.31. + Honeywell XPS100 (xps100-honeywell-sysv) *************** HP 9000 series 500: not supported. *** 389,393 **** HP 9000 series 700 or 800 (Spectrum) (hppa1.0-hp-hpux or hppa1.1-hp-hpux ! or ...hpux9shr) 19.26 is believed to work on HPUX 9 provided you compile with GCC. --- 393,397 ---- HP 9000 series 700 or 800 (Spectrum) (hppa1.0-hp-hpux or hppa1.1-hp-hpux ! or ...hpux9shr, or ...-nextstep) 19.26 is believed to work on HPUX 9 provided you compile with GCC. *************** HP 9000 series 700 or 800 (Spectrum) (hp *** 395,398 **** --- 399,404 ---- on HP 9000/700 series machines running HP/UX versions 8.07 and 9.01. + Support for NextSTEP was added in 19.31. + Use hppa1.1 for the 700 series and hppa1.0 for the 800 series machines. (Emacs may not actually care which one you use.) *************** Integrated Solutions `Optimum V' (m68k-i *** 520,524 **** Intel 386 (i386-*-isc, i386-*-esix, i386-*-bsdi2, ! i386-*-xenix, i386-*-linux, i386-*-freebsd, i386-*-sol2.4, i386-intsys-sysv, i386-*-sysv3, i386-*-sysv4, i386-*-sysv4.2, --- 526,530 ---- Intel 386 (i386-*-isc, i386-*-esix, i386-*-bsdi2, ! i386-*-xenix, i386-*-lignux, i386-*-freebsd, i386-*-sol2.4, i386-intsys-sysv, i386-*-sysv3, i386-*-sysv4, i386-*-sysv4.2, *************** Intel 386 (i386-*-isc, i386-*-esix, i *** 536,540 **** i386-unknown-isc3.0 as your configuration name. Use i386-*-esix for Esix; Emacs runs as of version 19.6. ! Use i386-*-linux for GNU/Linux systems; Emacs runs as of version 19.26. Use i386-intsys-sysv for Integrated Solutions 386 machines. It may also be correct for Microport systems. --- 542,546 ---- i386-unknown-isc3.0 as your configuration name. Use i386-*-esix for Esix; Emacs runs as of version 19.6. ! Use i386-*-lignux for GNU/Linux systems; Emacs runs as of version 19.26. Use i386-intsys-sysv for Integrated Solutions 386 machines. It may also be correct for Microport systems. *************** Intel 386 (i386-*-isc, i386-*-esix, i *** 584,588 **** There is no problem if you compile with GCC. ! Note that use on Linux with GCC 2.4 and the DLL 4.4 libraries requires the experimental "net 2" network patches (no relation to Berkeley Net 2). There is a report that (some version of) Linux --- 590,594 ---- There is no problem if you compile with GCC. ! Note that use of Linux with GCC 2.4 and the DLL 4.4 libraries requires the experimental "net 2" network patches (no relation to Berkeley Net 2). There is a report that (some version of) Linux *************** NCR Tower 32 (m68k-ncr-sysv2 or m68k-ncr *** 736,739 **** --- 742,751 ---- under System V release 2. + NCR Intel system (i386-ncr-sysv4.2) + + This system works in 19.31, but if you don't link it with GNU ld, + you may need to set LD_RUN_PATH at link time to specify where + to find the X libraries. + NeXT (m68k-next-nextstep) *************** Paragon OSF/1 (i860-intel-osf1) *** 765,769 **** There is a bug in OSF/1 make which claims there is a syntax error ! in the src/xmakefile. You can sucessfully build emacs with: pmake MAKE=pmake --- 777,781 ---- There is a bug in OSF/1 make which claims there is a syntax error ! in the src/xmakefile. You can successfully build emacs with: pmake MAKE=pmake *************** Sun 3, Sun 4 (sparc), Sun 386 (m68k-sun- *** 896,900 **** used by default on SunOS 4.1. ! A user reported unreproducible segmentation faults when using 19.29 on Solaris 2.3 and 2.4 after compiling it with the Sun compiler. The problem went away when GCC 2.7.0 was used instead. We do not know --- 908,912 ---- used by default on SunOS 4.1. ! A user reported irreproducible segmentation faults when using 19.29 on Solaris 2.3 and 2.4 after compiling it with the Sun compiler. The problem went away when GCC 2.7.0 was used instead. We do not know *************** Esix *** 1097,1100 **** --- 1109,1133 ---- Window libraries that /usr/X386/lib appears *first* in the LD_LIBRARY_PATH. Then define C_SWITCH_X_SYSTEM -I/usr/X386/include. + + Lignux + + Most of the complete systems which use the Linux kernel are close + enough to the GNU system that could be considered variants of the + GNU system. We use the term "Lignux" to refer to this combination + of the Linux kernel with the GNU system: they are "Linux-based GNU + systems," or "Lignux" for short. + + It is not coincidence that many of the other components used with + Linux--including GNU Emacs--were developed specifically for the GNU + project. The GNU project was launched in 1984 to develop a free + complete Unix-like operating system. To reach this goal, we had to + develop whatever system components were not available as freely + redistributable software from some other source. + + The GNU project wants users of Lignux systems to be aware of how + these systems relate to the GNU project, because that will help + spread the GNU idea that software should be free--and thus encourage + people to write more free software. See the file LINUX-GNU in this + directory for more explanation. Microport diff -2rcpP --exclude=*.elc emacs-19.30/etc/MAILINGLISTS emacs-19.31/etc/MAILINGLISTS *** emacs-19.30/etc/MAILINGLISTS Tue Aug 15 16:57:28 1995 --- emacs-19.31/etc/MAILINGLISTS Thu May 23 20:05:27 1996 *************** *** 1,3 **** ! GNU Project Electronic Mailing Lists. Last Updated 15 Aug 95 Please report improvements to: gnu@prep.ai.mit.edu --- 1,3 ---- ! GNU Project Electronic Mailing Lists. Last Updated 4 Mar 96 Please report improvements to: gnu@prep.ai.mit.edu *************** have been sent to another list. *** 207,213 **** See section '* General Information about info-* lists'. ! * gnu-misc-discuss-request@cis.ohio-state.edu to subscribe to gnu-misc-discuss ** gnUSENET newsgroup: gnu.misc.discuss ! ** Send contributions to: gnu-misc-discuss@cis.ohio-state.edu This list is for serious discussion of freed software, the GNU --- 207,213 ---- See section '* General Information about info-* lists'. ! * gnu-misc-discuss-request@prep.ai.mit.edu to subscribe to gnu-misc-discuss ** gnUSENET newsgroup: gnu.misc.discuss ! ** Send contributions to: gnu-misc-discuss@prep.ai.mit.edu This list is for serious discussion of freed software, the GNU *************** Announcements of new releases of libg++ *** 586,591 **** bug-lib-g++. ! There are no other GNU mailing lists or gnUSENET newsgroups for the G++ ! Library. See section '* General Information about bug-* lists and reporting --- 586,591 ---- bug-lib-g++. ! There are no other GNU mailing lists or gnUSENET newsgroups for GNU's ! G++ Library. See section '* General Information about bug-* lists and reporting *************** See section '* General Information about *** 624,627 **** --- 624,680 ---- program bugs'. + * bug-gmp-request@prep.ai.mit.edu to subscribe to bug-gmp + ** gnUSENET newsgroup: NONE PLANNED + ** gmp bug reports to: bug-gmp@prep.ai.mit.edu + + This list distributes, to the active maintainers of gmp (the GNU + Multiple Precision Library), bug reports and fixes for, and suggestions + for improvements to gmp. User discussion of gmp also occurs here. + + There are no other GNU mailing lists or gnUSENET newsgroups for gmp . + + See section '* General Information about bug-* lists and reporting + program bugs'. + + * bug-pine-request@prep.ai.mit.edu to subscribe to bug-pine + ** gnUSENET newsgroup: NONE PLANNED + ** pine bug reports to: bug-pine@prep.ai.mit.edu + + This list distributes, to the active maintainers of pine (the GNU + version of the pine mail reader), bug reports and fixes for, and suggestions + for improvements to pine. User discussion of pine also occurs here. + + There are no other GNU mailing lists or gnUSENET newsgroups for pine . + + See section '* General Information about bug-* lists and reporting + program bugs'. + + * bug-cfengine-request@prep.ai.mit.edu to subscribe to bug-cfengine + ** gnUSENET newsgroup: NONE PLANNED + ** cfengine bug reports to: bug-cfengine@prep.ai.mit.edu + + This list distributes, to the active maintainers of cfengine (configure + BSD and System-5-like operating systems attached to a TCP/IP network), + bug reports and fixes for, and suggestions for improvements to cfengine. + User discussion of cfengine also occurs here. + + There are no other GNU mailing lists or gnUSENET newsgroups for cfengine . + + See section '* General Information about bug-* lists and reporting + program bugs'. + + * bug-guile-request@prep.ai.mit.edu to subscribe to bug-guile + ** gnUSENET newsgroup: NONE PLANNED + ** GUILE BUG reports to: bug-guile@prep.ai.mit.edu + + This list distributes, to the active maintainers of GUILE (GNU's + Ubiquitous Extension Language), bug reports and fixes for, and suggestions for + improvements to GUILE. User discussion of GUILE also occurs here. + + There are no other GNU mailing lists or gnUSENET newsgroups for GUILE . + + See section '* General Information about bug-* lists and reporting + program bugs'. + * bug-gnu-smalltalk-request@prep.ai.mit.edu to subscribe to bug-gnu-smalltalk ** gnUSENET newsgroup: gnu.smalltalk.bug *************** English and Japanese are the official la *** 766,772 **** quite different than gnews. ! * info-gnus-english-request@cis.ohio-state.edu to subscribe ** gnUSENET newsgroup: gnu.emacs.gnus ! ** Send contributions to: info-gnus-english@cis.ohio-state.edu The list has the same charter as info-gnus. The difference is that --- 819,825 ---- quite different than gnews. ! * info-gnus-english-request@prep.ai.mit.edu to subscribe ** gnUSENET newsgroup: gnu.emacs.gnus ! ** Send contributions to: info-gnus-english@prep.ai.mit.edu The list has the same charter as info-gnus. The difference is that diff -2rcpP --exclude=*.elc emacs-19.30/etc/NEWS emacs-19.31/etc/NEWS *** emacs-19.30/etc/NEWS Sat Nov 25 01:00:25 1995 --- emacs-19.31/etc/NEWS Wed May 15 10:51:58 1996 *************** *** 1,4 **** ! GNU Emacs NEWS -- history of user-visible changes. 24 Nov 1995 ! Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc. See the end for copying conditions. --- 1,4 ---- ! GNU Emacs NEWS -- history of user-visible changes. 15 May 1996 ! Copyright (C) 1993, 1994, 1995, 1996 Free Software Foundation, Inc. See the end for copying conditions. *************** Please send Emacs bug reports to bug-gnu *** 6,9 **** --- 6,498 ---- For older news, see the file ONEWS. + * Editing Changes in Emacs 19.31 + + ** Freedom of the press restricted in the United States. + + Emacs has been censored in accord with the Communications Decency Act. + This includes removing some features of the doctor program. That law + was described by its supporters as a ban on pornography, but it bans + far more than that. The Emacs distribution has never contained any + pornography, but parts of it were nonetheless prohibited. + + For information on US government censorship of the Internet, and what + you can do to bring back freedom of the press, see the web site + `http://www.vtw.org/'. + + ** A note about C mode indentation customization. + + The old (Emacs 19.29) ways of specifying a C indentation style + do not normally work in the new implementation of C mode. + It has its own methods of customizing indentation, which are + much more powerful than the old C mode. See the Editing Programs + chapter of the manual for details. + + However, you can load the library cc-compat to make the old + customization variables take effect. + + ** Marking with the mouse. + + When you mark a region with the mouse, the region now remains + highlighted until the next input event, regardless of whether you are + using M-x transient-mark-mode. + + ** Improved Windows NT/95 support. + + *** Emacs now supports scroll bars on Windows NT and Windows 95. + + *** Emacs now supports subprocesses on Windows 95. (Subprocesses used + to work on NT only and not on 95.) + + *** There are difficulties with subprocesses, though, due to problems + in Windows, beyond the control of Emacs. They work fine as long as + you run Windows applications. The problems arise when you run a DOS + application in a subprocesses. Since current shells run as DOS + applications, these problems are significant. + + If you run a DOS application in a subprocess, then the application is + likely to busy-wait, which means that your machine will be 100% busy. + However, if you don't mind the temporary heavy load, the subprocess + will work ok as long as you tell it to terminate before you start any + other DOS application as a subprocess. + + Emacs is unable to terminate or interrupt a DOS subprocess. + You have to do this by providing input directly to the subprocess. + + If you run two DOS applications at the same time in two separate + subprocesses, even if one of them is asynchronous, you will probably + have to reboot your machine--until then, it will remain 100% busy. + Windows simply does not cope when one Windows process tries to run two + separate DOS subprocesses. Typing CTL-ALT-DEL and then choosing + Shutdown seems to work although it may take a few minutes. + + ** M-x resize-minibuffer-mode. + + This command, not previously mentioned in NEWS, toggles a mode in + which the minibuffer window expands to show as many lines as the + minibuffer contains. + + ** `title' frame parameter and resource. + + The `title' X resource now specifies just the frame title, nothing else. + It does not affect the name used for looking up other X resources. + It works by setting the new `title' frame paramaeter, which likewise + affects just the displayed title of the frame. + + The `name' parameter continues to do what it used to do: + it specifies the frame name for looking up X resources, + and also serves as the default for the displayed title + when the `title' parameter is unspecified or nil. + + ** Emacs now uses the X toolkit by default, if you have a new + enough version of X installed (X11R5 or newer). + + ** When you compile Emacs with the Motif widget set, Motif handles the + F10 key by activating the menu bar. To avoid confusion, the usual + Emacs binding of F10 is replaced with a no-op when using Motif. + + If you want to be able to use F10 in Emacs, you can rebind the Motif + menubar to some other key which you don't use. To do so, add + something like this to your X resources file. This example rebinds + the Motif menu bar activation key to S-F12: + + Emacs*defaultVirtualBindings: osfMenuBar : ShiftF12 + + ** In overwrite mode, DEL now inserts spaces in most cases + to replace the characters it "deletes". + + ** The Rmail summary now shows the number of lines in each message. + + ** Rmail has a new command M-x unforward-rmail-message, which extracts + a forwarded message from the message that forwarded it. To use it, + select a message which contains a forwarded message and then type the command. + It inserts the forwarded message as a separate Rmail message + immediately after the selected one. + + This command also undoes the textual modifications that are standardly + made, as part of forwarding, by Rmail and other mail reader programs. + + ** Turning off saving of .saves-... files in your home directory. + + Each Emacs session writes a file named .saves-... in your home + directory to record which files M-x recover-session should recover. + If you exit Emacs normally with C-x C-c, it deletes that file. If + Emacs or the operating system crashes, the file remains for M-x + recover-session. + + You can turn off the writing of these files by setting + auto-save-list-file-name to nil. If you do this, M-x recover-session + will not work. + + Some previous Emacs versions failed to delete these files even on + normal exit. This is fixed now. If you are thinking of turning off + this feature because of past experiences with versions that had this + bug, it would make sense to check whether you still want to do so + now that the bug is fixed. + + ** Changes to Version Control (VC) + + There is a new variable, vc-follow-symlinks. It indicates what to do + when you visit a link to a file that is under version control. + Editing the file through the link bypasses the version control system, + which is dangerous and probably not what you want. + + If this variable is t, VC follows the link and visits the real file, + telling you about it in the echo area. If it is `ask' (the default), + VC asks for confirmation whether it should follow the link. If nil, + the link is visited and a warning displayed. + + ** iso-acc.el now lets you specify a choice of language. + Languages include "latin-1" (the default) and "latin-2" (which + is designed for entering ISO Latin-2 characters). + + There are also choices for specific human languages such as french and + portuguese. These are subsets of Latin-1, which differ in that they + enable only the accent characters needed for particular language. + The other accent characters, not needed for the chosen language, + remain normal. + + ** Posting articles and sending mail now has M-TAB completion on various + header fields (Newsgroups, To, CC, ...). + + Completion in the Newsgroups header depends on the list of groups + known to your news reader. Completion in the Followup-To header + offers those groups which are in the Newsgroups header, since + Followup-To usually just holds one of those. + + Completion in fields that hold mail addresses works based on the list + of local users plus your aliases. Additionally, if your site provides + a mail directory or a specific host to use for any unrecognized user + name, you can arrange to query that host for completion also. (See the + documentation of variables `mail-directory-process' and + `mail-directory-stream'.) + + ** A greatly extended sgml-mode offers new features such as (to be configured) + skeletons with completing read for tags and attributes, typing named + characters including optionally all 8bit characters, making tags invisible + with optional alternate display text, skipping and deleting tag(pair)s + + Note: since Emacs' syntax feature cannot limit the special meaning of ', " and + - to inside <>, for some texts the result, especially of font locking, may be + wrong (see `sgml-specials' if you get wrong results). + + The derived html-mode configures this with tags and attributes more or + less HTML3ish. It also offers optional quick keys like C-c 1 for + headline or C-c u for unordered list (see `html-quick-keys'). Edit / + Text Properties / Face or M-g combinations create tags as applicable. + Outline minor mode is supported and level 1 font-locking tries to + fontify tag contents (which only works when they fit on one line due + to a limitation in font-lock). + + External viewing via browse-url can occur automatically upon saving. + + ** M-x imenu-add-to-menubar now adds to the menu bar for the current + buffer only. If you want to put an Imenu item in the menu bar for all + buffers that use a particular major mode, use the mode hook, as in + this example: + + (add-hook 'emacs-lisp-mode-hook + '(lambda () (imenu-add-to-menubar "Index"))) + + ** Changes in BibTeX mode. + + *** Field names may now contain digits, hyphens, and underscores. + + *** Font Lock mode is now supported. + + *** bibtex-make-optional-field is no longer interactive. + + *** If bibtex-maintain-sorted-entries is non-nil, inserting new + entries is now done with a faster algorithm. However, inserting + will fail in this case if the buffer contains invalid entries or + isn't in sorted order, so you should finish each entry with C-c C-c + (bibtex-close-entry) after you have inserted or modified it. + The default value of bibtex-maintain-sorted-entries is nil. + + *** Function `show-all' is no longer bound to a key, since C-u C-c C-q + does the same job. + + *** Entries with quotes inside quote-delimited fields (as `author = + "Stefan Sch{\"o}f"') are now supported. + + *** Case in field names doesn't matter anymore when searching for help + text. + + ** Font Lock mode + + *** Global Font Lock mode + + Font Lock mode can be turned on globally, in buffers that support it, by the + new command global-font-lock-mode. You can use the new variable + font-lock-global-modes to control which modes have Font Lock mode automagically + turned on. By default, this variable is set so that Font Lock mode is turned + on globally where the buffer mode supports it. + + For example, to automagically turn on Font Lock mode where supported, put: + + (global-font-lock-mode t) + + in your ~/.emacs. + + *** Local Refontification + + In Font Lock mode, editing a line automatically refontifies that line only. + However, if your change alters the syntactic context for following lines, + those lines remain incorrectly fontified. To refontify them, use the new + command M-g M-g (font-lock-fontify-block). + + In certain major modes, M-g M-g refontifies the entire current function. + (The variable font-lock-mark-block-function controls how to find the + current function.) In other major modes, M-g M-g refontifies 16 lines + above and below point. + + With a prefix argument N, M-g M-g refontifies N lines above and below point. + + ** Follow mode + + Follow mode is a new minor mode combining windows showing the same + buffer into one tall "virtual window". The windows are typically two + side-by-side windows. Follow mode makes them scroll together as if + they were a unit. To use it, go to a frame with just one window, + split it into two side-by-side windows using C-x 3, and then type M-x + follow-mode. + + M-x follow-mode turns off Follow mode if it is already enabled. + + To display two side-by-side windows and activate Follow mode, use the + command M-x follow-delete-other-windows-and-split. + + ** hide-show changes. + + The hooks hs-hide-hooks and hs-show-hooks have been renamed + to hs-hide-hook and hs-show-hook. to follow the convention for + normal hooks. + + ** Simula mode now has a menu containing the most important commands. + The new command simula-indent-exp is bound to C-M-q. + + ** etags can now handle programs written in Erlang. Files are + recognised by the extensions .erl and .hrl. The tagged lines are + those that begin a function, record, or macro. + + ** MSDOS Changes + + *** It works now to compile Emacs with the version 2 of DJGPP. + Compilation with DJGPP version 1 also still works. + + *** The documentation of DOS-specific aspects of Emacs was rewritten + and expanded; see the ``MS-DOS'' node in the on-line docs. + + *** Emacs now uses ~ for backup file names, not .bak. + + *** You can simulate mouse-3 on two-button mice by simultaneously + pressing both mouse buttons. + + *** A number of packages and commands which previously failed or had + restricted functionality on MS-DOS, now work. The most important ones + are: + + **** Printing (both with `M-x lpr-buffer' and with `ps-print' package) + now works. + + **** `Ediff' works (in a single-frame mode). + + **** `M-x display-time' can be used on MS-DOS (due to the new + implementation of Emacs timers, see below). + + **** `Dired' supports Unix-style shell wildcards. + + **** The `c-macro-expand' command now works as on other platforms. + + **** `M-x recover-session' works. + + **** `M-x list-colors-display' displays all the available colors. + + **** The `TPU-EDT' package works. + + * Lisp changes in Emacs 19.31. + + ** The function using-unix-filesystems on Windows NT and Windows 95 + tells Emacs to read and write files assuming that they reside on a + remote Unix filesystem. No CR/LF translation is done on any files in + this case. Invoking using-unix-filesystems with t actives this + behavior, and invoking it with any other value deactivates it. + + ** Change in system-type and system-configuration values. + + The value of system-type on a Linux-based GNU system is now `lignux', + not `linux'. This means that some programs which use `system-type' + need to be changed. The value of `system-configuration' will also + be different. + + It is generally recommended to use `system-configuration' rather + than `system-type'. + + See the file LINUX-GNU in this directory for more about this. + + ** The functions shell-command and dired-call-process + now run file name handlers for default-directory, if it has them. + + ** Undoing the deletion of text now restores the positions of markers + that pointed into or next to the deleted text. + + ** Timers created with run-at-time now work internally to Emacs, and + no longer use a separate process. Therefore, they now work more + reliably and can be used for shorter time delays. + + The new function run-with-timer is a convenient way to set up a timer + to run a specified amount of time after the present. A call looks + like this: + + (run-with-timer SECS REPEAT FUNCTION ARGS...) + + SECS says how many seconds should elapse before the timer happens. + It may be an integer or a floating point number. When the timer + becomes ripe, the action is to call FUNCTION with arguments ARGS. + + REPEAT gives the interval for repeating the timer (measured in + seconds). It may be an integer or a floating point number. nil or 0 + means don't repeat at all--call FUNCTION just once. + + *** with-timeout provides an easy way to do something but give + up if too much time passes. + + (with-timeout (SECONDS TIMEOUT-FORMS...) BODY...) + + This executes BODY, but gives up after SECONDS seconds. + If it gives up, it runs the TIMEOUT-FORMS and returns the value + of the last one of them. Normally it returns the value of the last + form in BODY. + + *** You can now arrange to call a function whenever Emacs is idle for + a certain length of time. To do this, call run-with-idle-timer. A + call looks like this: + + (run-with-idle-timer SECS REPEAT FUNCTION ARGS...) + + SECS says how many seconds of idleness should elapse before the timer + happens. It may be an integer or a floating point number. When the + timer becomes ripe, the action is to call FUNCTION with arguments + ARGS. + + REPEAT, if non-nil, means this timer should be activated again each + time Emacs becomes idle. If REPEAT is nil, the timer runs just once, + the first time Emacs is idle for SECS seconds. + + *** post-command-idle-hook is now obsolete; you shouldn't use it at + all, because it interferes with the idle timer mechanism. If your + programs use post-command-idle-hook, convert them to use idle timers + instead. + + *** y-or-n-p-with-timeout lets you ask a question but give up if + there is no answer within a certain time. + + (y-or-n-p-with-timeout PROMPT SECONDS DEFAULT-VALUE) + + asks the question PROMPT (just like y-or-n-p). If the user answers + within SECONDS seconds, it returns the answer that the user gave. + Otherwise it gives up after SECONDS seconds, and returns DEFAULT-VALUE. + + ** Minor change to `encode-time': you can now pass more than seven + arguments. If you do that, the first six arguments have the usual + meaning, the last argument is interpreted as the time zone, and the + arguments in between are ignored. + + This means that it works to use the list returned by `decode-time' as + the list of arguments for `encode-time'. + + ** The default value of load-path now includes the directory + /usr/local/share/emacs/VERSION/site-lisp In addition to + /usr/local/share/emacs/site-lisp. You can use this new directory for + site-specific Lisp packages that belong with a particular Emacs + version. + + It is not unusual for a Lisp package that works well in one Emacs + version to cause trouble in another. Sometimes packages need updating + for incompatible changes; sometimes they look at internal data that + has changed; sometimes the package has been installed in Emacs itself + and the installed version should be used. Whatever the reason for the + problem, this new feature makes it easier to solve. + + ** When your program contains a fixed file name (like .completions or + .abbrev.defs), the file name usually needs to be different on operating + systems with limited file name syntax. + + Now you can avoid ad-hoc conditionals by using the function + convert-standard-filename to convert the file name to a proper form + for each operating system. Here is an example of use, from the file + completions.el: + + (defvar save-completions-file-name + (convert-standard-filename "~/.completions") + "*The filename to save completions to.") + + This sets the variable save-completions-file-name to a value that + depends on the operating system, because the definition of + convert-standard-filename depends on the operating system. On + Unix-like systems, it returns the specified file name unchanged. On + MS-DOS, it adapts the name to fit the limitations of that system. + + ** The interactive spec N now returns the numeric prefix argument + rather than the raw prefix argument. (It still reads a number using the + minibuffer if there is no prefix argument at all.) + + ** When a process is deleted, this no longer disconnects the process + marker from its buffer position. + + ** The variable garbage-collection-messages now controls whether + Emacs displays a message at the beginning and end of garbage collection. + The default is nil, meaning there are no messages. + + ** The variable debug-ignored-errors specifies certain kinds of errors + that should not enter the debugger. Its value is a list of error + condition symbols and/or regular expressions. If the error has any + of the condition symbols listed, or if any of the regular expressions + matches the error message, then that error does not enter the debugger, + regardless of the value of debug-on-error. + + This variable is initialized to match certain common but uninteresting + errors that happen often during editing. + + ** The new function error-message-string converts an error datum + into its error message. The error datum is what condition-case + puts into the variable, to describe the error that happened. + + ** Anything that changes which buffer appears in a given window + now runs the window-scroll-functions for that window. + + ** The new function get-buffer-window-list returns a list of windows displaying + a buffer. The function is called with the buffer (a buffer object or a buffer + name) and two optional arguments specifying the minibuffer windows and frames + to search. Therefore this function takes optional args like next-window etc., + and not get-buffer-window. + + ** buffer-substring now runs the hook buffer-access-fontify-functions, + calling each function with two arguments--the range of the buffer + being accessed. buffer-substring-no-properties does not call them. + + If you use this feature, you should set the variable + buffer-access-fontified-property to a non-nil symbol, which is a + property name. Then, if all the characters in the buffer range have a + non-nil value for that property, the buffer-access-fontify-functions + are not called. When called, these functions should put a non-nil + property on the text that they fontify, so that they won't get called + over and over for the same text. + + ** Changes in lisp-mnt.el + + *** The lisp-mnt package can now recognize file headers that are written + in the formats used by the `what' command and the RCS `ident' command: + + ;; @(#) HEADER: text + ;; $HEADER: text $ + + in addition to the normal + + ;; HEADER: text + + *** The commands lm-verify and lm-synopsis are now interactive. lm-verify + checks that the library file has proper sections and headers, and + lm-synopsis extracts first line "synopsis'"information. + * Editing Changes in Emacs 19.30. *************** You can turn the feature off by setting *** 32,36 **** ** The menu bar is now visible on text-only terminals. To choose a command from the menu bar when you have no mouse, type M-` ! (Meta-Backquote) or F10. ** Whenever you invoke a minibuffer, it appears in the minibuffer --- 521,526 ---- ** The menu bar is now visible on text-only terminals. To choose a command from the menu bar when you have no mouse, type M-` ! (Meta-Backquote) or F10. To turn off menu bar display, ! do (menu-bar-mode -1). ** Whenever you invoke a minibuffer, it appears in the minibuffer *************** version. Code that relies heavily on Gn *** 118,122 **** fail, though. ! *** Incompatabilities with the old GNUS. **** All interactive commands have kept their names, but many internal --- 608,612 ---- fail, though. ! *** Incompatibilities with the old GNUS. **** All interactive commands have kept their names, but many internal *************** element < no longer exists, ' is a new e *** 442,446 **** ** The autoinsert insert facility for prefilling empty files as soon ! as they are found has been extended to accomodate skeletons or calling functions. See the function auto-insert. --- 932,936 ---- ** The autoinsert insert facility for prefilling empty files as soon ! as they are found has been extended to accommodate skeletons or calling functions. See the function auto-insert. *************** room for more); to overcome this limitat *** 492,499 **** set SUSPEND=%COMSPEC% /E:2000 ! ** The escape character can now be displayed (as a tiny left arrow) ! on X window frames. Try this: (aset standard-display-table 27 (vector 27)) ! after first creating a display table. ** The new command-line option --eval specifies an expression to evaluate --- 982,990 ---- set SUSPEND=%COMSPEC% /E:2000 ! ** The escape character can now be displayed on X frames. Try ! this: (aset standard-display-table 27 (vector 27)) ! after first creating a display table (you can do that by loading ! the disp-table library). ** The new command-line option --eval specifies an expression to evaluate *************** and use Mouse-3, Mouse-3 uses the positi *** 823,827 **** even if it has scrolled off the screen (and point is no longer there). This makes it easier to select a region with the mouse which is bigger ! than a screenfull. Any editing of the buffer, and any cursor motion or scrolling for any --- 1314,1318 ---- even if it has scrolled off the screen (and point is no longer there). This makes it easier to select a region with the mouse which is bigger ! than a screenful. Any editing of the buffer, and any cursor motion or scrolling for any *************** c-basic-offset respectively. *** 1027,1031 **** *** New variable, c-recognize-knr-p, which controls whether K&R C ! contructs will be recognized. Trying to recognize K&R constructs is a time hog so if you're programming strictly in ANSI C, set this variable to nil (it should already be nil in c++-mode). --- 1518,1522 ---- *** New variable, c-recognize-knr-p, which controls whether K&R C ! constructs will be recognized. Trying to recognize K&R constructs is a time hog so if you're programming strictly in ANSI C, set this variable to nil (it should already be nil in c++-mode). *************** the default host address for initializin *** 1397,1418 **** It is used instead of the value of (system-name). ! Lisp-Level Changes in Emacs 19.29 ! * Basic Lisp ! ** The range of integer values is now at least 2**28 on all machines. This means the maximum size of a buffer is at least 2**27-1, or 134,217,727. ! ** You can now use Common Lisp syntax for the backquote and comma macros. Thus, you can now write `(x ,y z) instead of (` (x (, y) z)). The old syntax is still accepted. ! ** The new function rassoc is like assoc, except that it compares the key against the cdr of each alist element, where assoc would compare it against the car of each alist element. ! ** The new function unintern deletes a symbol from an obarray. The first argument can be the symbol to delete, or a string giving its name. The second argument specifies the obarray (nil means the --- 1888,1909 ---- It is used instead of the value of (system-name). ! * Lisp-Level Changes in Emacs 19.29 ! ** Basic Lisp ! *** The range of integer values is now at least 2**28 on all machines. This means the maximum size of a buffer is at least 2**27-1, or 134,217,727. ! *** You can now use Common Lisp syntax for the backquote and comma macros. Thus, you can now write `(x ,y z) instead of (` (x (, y) z)). The old syntax is still accepted. ! *** The new function rassoc is like assoc, except that it compares the key against the cdr of each alist element, where assoc would compare it against the car of each alist element. ! *** The new function unintern deletes a symbol from an obarray. The first argument can be the symbol to delete, or a string giving its name. The second argument specifies the obarray (nil means the *************** in the obarray matching the specified st *** 1423,1432 **** and returns nil. If it does delete a symbol, it returns t. ! ** You can specify an alternative read function for use by load and eval-region by binding the variable load-read-function to some other function. This function should accept one argument just like read. If load-read-function is nil, load and eval-region use ordinary read. ! ** The new function `type-of' takes any object as argument, and returns a symbol identifying the type of that object--one of `symbol', `integer', `float', `string', `cons', `vector', `marker', `overlay', --- 1914,1923 ---- and returns nil. If it does delete a symbol, it returns t. ! *** You can specify an alternative read function for use by load and eval-region by binding the variable load-read-function to some other function. This function should accept one argument just like read. If load-read-function is nil, load and eval-region use ordinary read. ! *** The new function `type-of' takes any object as argument, and returns a symbol identifying the type of that object--one of `symbol', `integer', `float', `string', `cons', `vector', `marker', `overlay', *************** returns a symbol identifying the type of *** 1434,1438 **** `window-configuration', `process'. ! ** When you use eval-after-load for a file that is already loaded, it executes the FORM right away. As before, if the file is not yet loaded, it arranges to execute FORM if and when the file is loaded --- 1925,1929 ---- `window-configuration', `process'. ! *** When you use eval-after-load for a file that is already loaded, it executes the FORM right away. As before, if the file is not yet loaded, it arranges to execute FORM if and when the file is loaded *************** and if that file has been loaded, then r *** 1441,1445 **** these two events, the specified form has been evaluated. ! ** The Lisp construct #@NUMBER now skips the next NUMBER characters, treating them as a comment. --- 1932,1936 ---- these two events, the specified form has been evaluated. ! *** The Lisp construct #@NUMBER now skips the next NUMBER characters, treating them as a comment. *************** You would not want to use this in a file *** 1447,1451 **** useful for commenting out parts of machine-generated files. ! ** Two new functions, `plist-get' and `plist-put', allow you to modify and retrieve values from lists formatted as property-lists. They work like `get' and `put', but operate on any list. --- 1938,1942 ---- useful for commenting out parts of machine-generated files. ! *** Two new functions, `plist-get' and `plist-put', allow you to modify and retrieve values from lists formatted as property-lists. They work like `get' and `put', but operate on any list. *************** They work like `get' and `put', but oper *** 1453,1457 **** back where you got it. ! ** The new function add-to-list is called with two elements, a variable that holds a list and a new element. It adds the element to the list unless it is already present. --- 1944,1948 ---- back where you got it. ! *** The new function add-to-list is called with two elements, a variable that holds a list and a new element. It adds the element to the list unless it is already present. *************** It compares elements using `equal'. Her *** 1466,1470 **** foo => (c a b) ! * Changes in compilation. Functions and variables loaded from a byte-compiled file --- 1957,1961 ---- foo => (c a b) ! ** Changes in compilation. Functions and variables loaded from a byte-compiled file *************** globally, or for one source file by addi *** 1517,1523 **** -*-byte-compile-dynamic-docstrings: nil;-*- ! * Strings ! ** Do not pass integer arguments to `concat' (or `vconcat' or `append'). We are phasing out the old unrecommended support for integers as arguments to these functions, in preparation for treating --- 2008,2014 ---- -*-byte-compile-dynamic-docstrings: nil;-*- ! ** Strings ! *** Do not pass integer arguments to `concat' (or `vconcat' or `append'). We are phasing out the old unrecommended support for integers as arguments to these functions, in preparation for treating *************** numbers in string form, use `number-to-s *** 1526,1530 **** call to use `format' instead of `concat'. ! ** The new function match-string returns the string of text matched at the given parenthesized expression by the last regexp search, or nil if there was no match. If the last match was by `string-match' on a --- 2017,2021 ---- call to use `format' instead of `concat'. ! *** The new function match-string returns the string of text matched at the given parenthesized expression by the last regexp search, or nil if there was no match. If the last match was by `string-match' on a *************** used in place of `buffer-substring' and *** 1535,1539 **** (match-string N) or (match-string N STRING) ! ** The function replace-match now accepts an optional fourth argument, STRING. Use this after performing string-match on STRING, to replace the portion of STRING that was matched. When used in this way, --- 2026,2030 ---- (match-string N) or (match-string N STRING) ! *** The function replace-match now accepts an optional fourth argument, STRING. Use this after performing string-match on STRING, to replace the portion of STRING that was matched. When used in this way, *************** replace-match returns a newly created st *** 1541,1561 **** STRING except for the matched portion. ! ** The new function buffer-substring-no-properties is like buffer-substring except that the string it returns has no text properties. ! ** The function `equal' now considers two strings to be different if they don't have the same text properties. ! * Completion ! ** all-completions now takes an optional fourth argument. If that argument is non-nil, completions that start with a space are ignored unless the initial string also starts with a space. (This used to happen unconditionally.) ! * Local Variables ! ** Local hook variables. There is now a clean way to give a hook variable a buffer-local value. --- 2032,2052 ---- STRING except for the matched portion. ! *** The new function buffer-substring-no-properties is like buffer-substring except that the string it returns has no text properties. ! *** The function `equal' now considers two strings to be different if they don't have the same text properties. ! ** Completion ! *** all-completions now takes an optional fourth argument. If that argument is non-nil, completions that start with a space are ignored unless the initial string also starts with a space. (This used to happen unconditionally.) ! ** Local Variables ! *** Local hook variables. There is now a clean way to give a hook variable a buffer-local value. *************** Local hooks use t as an element of the ( *** 1573,1586 **** variable as a flag meaning to use the global value also. ! ** The new function local-variable-p tells you whether a particular variable is buffer-local in the current buffer or a specified buffer. ! * Editing Facilities ! ** The function copy-region-as-kill no longer sets this-command; as a result, a following kill command will not normally append to the text saved by copy-region-as-kill. ! ** Regular expression searching and matching no longer performs full Posix backtracking by default. They now stop with the first match found instead of looking for the longest match--just as they did in Emacs 18. --- 2064,2077 ---- variable as a flag meaning to use the global value also. ! *** The new function local-variable-p tells you whether a particular variable is buffer-local in the current buffer or a specified buffer. ! ** Editing Facilities ! *** The function copy-region-as-kill no longer sets this-command; as a result, a following kill command will not normally append to the text saved by copy-region-as-kill. ! *** Regular expression searching and matching no longer performs full Posix backtracking by default. They now stop with the first match found instead of looking for the longest match--just as they did in Emacs 18. *************** these just like re-search-forward, re-se *** 1593,1599 **** string-match. ! * Files ! ** The new variable `format-alist' defines file formats, which are ways of translating between the data in a file and things (text, text-properties, and possibly other information) in a buffer. --- 2084,2090 ---- string-match. ! ** Files ! *** The new variable `format-alist' defines file formats, which are ways of translating between the data in a file and things (text, text-properties, and possibly other information) in a buffer. *************** the variable `auto-save-file-format' to *** 1635,1657 **** determine the format of all auto-save files. ! ** The new function file-ownership-preserved-p tells you whether deleting a file and recreating it would keep the file's owner unchanged. ! ** The new function file-regular-p returns t if a file is a "regular" file (not a directory, symlink, named pipe, terminal, or other I/O device). ! ** The new function file-name-sans-extension discards the extension of a file name. You call it with a file name, and returns a string lacking the extension. ! ** The variable path-separator is a string which says which character separates directories in a search path. It is ":" for Unix and GNU systems, ";" for MSDOG and Windows NT. ! * Commands and Key Sequences ! ** Key sequences consisting of C-c followed by {, }, <, >, : or ; are now reserved for major modes. Sequences consisting of C-c followed by any other punctuation character are now meant for minor modes. We don't --- 2126,2148 ---- determine the format of all auto-save files. ! *** The new function file-ownership-preserved-p tells you whether deleting a file and recreating it would keep the file's owner unchanged. ! *** The new function file-regular-p returns t if a file is a "regular" file (not a directory, symlink, named pipe, terminal, or other I/O device). ! *** The new function file-name-sans-extension discards the extension of a file name. You call it with a file name, and returns a string lacking the extension. ! *** The variable path-separator is a string which says which character separates directories in a search path. It is ":" for Unix and GNU systems, ";" for MSDOG and Windows NT. ! ** Commands and Key Sequences ! *** Key sequences consisting of C-c followed by {, }, <, >, : or ; are now reserved for major modes. Sequences consisting of C-c followed by any other punctuation character are now meant for minor modes. We don't *************** plan to convert all existing major modes *** 1659,1668 **** but we hope to keep them to a minimum. ! ** When the post-command-hook or the pre-command-hook gets an error, the error is silently ignored. Emacs no longer sets the hook variable to nil when this happens. Meanwhile, the hook functions can now alter the hook variable in a normal fashion; there is no need to do anything special. ! ** define-key, lookup-key, and various other functions for changing or looking up key bindings now let you write an event type with a list like (ctrl meta newline) or (meta ?d), as in XEmacs. (ctrl meta newline) --- 2150,2159 ---- but we hope to keep them to a minimum. ! *** When the post-command-hook or the pre-command-hook gets an error, the error is silently ignored. Emacs no longer sets the hook variable to nil when this happens. Meanwhile, the hook functions can now alter the hook variable in a normal fashion; there is no need to do anything special. ! *** define-key, lookup-key, and various other functions for changing or looking up key bindings now let you write an event type with a list like (ctrl meta newline) or (meta ?d), as in XEmacs. (ctrl meta newline) *************** is equivalent to the event type symbol C *** 1670,1677 **** is equivalent to the character ?\M-d. ! ** The function event-convert-list converts a list such as (meta ?d) into the corresponding event type (a symbol or integer). ! ** In an interactive spec, `k' means to read a key sequence. In this key sequence, upper case characters and shifted function keys which have no bindings are converted to lower case if that makes them --- 2161,2168 ---- is equivalent to the character ?\M-d. ! *** The function event-convert-list converts a list such as (meta ?d) into the corresponding event type (a symbol or integer). ! *** In an interactive spec, `k' means to read a key sequence. In this key sequence, upper case characters and shifted function keys which have no bindings are converted to lower case if that makes them *************** not convert the last event. `K' is usef *** 1682,1686 **** to be given a binding. ! ** The variable overriding-local-map now has no effect on the menu bar display unless overriding-local-map-menu-flag is non-nil. This is why incremental search no longer temporarily changes the menu bars. --- 2173,2177 ---- to be given a binding. ! *** The variable overriding-local-map now has no effect on the menu bar display unless overriding-local-map-menu-flag is non-nil. This is why incremental search no longer temporarily changes the menu bars. *************** programs that use overriding-local-map n *** 1694,1701 **** any event such as menu-bar that they do not handle specially. ! ** The new variable `overriding-terminal-local-map' is like overriding-local-map, but is specific to a single terminal. ! ** delete-frame events. When you use the X window manager's "delete window" command, this now --- 2185,2192 ---- any event such as menu-bar that they do not handle specially. ! *** The new variable `overriding-terminal-local-map' is like overriding-local-map, but is specific to a single terminal. ! *** delete-frame events. When you use the X window manager's "delete window" command, this now *************** Emacs when the last visible or iconified *** 1705,1716 **** rebind the event to some other command if you wish. ! ** Two new types of events, iconify-frame and make-frame-visible, indicate that the user iconified or deiconified a frame with the window manager. Since the window manager has already done the work, the default definition for both event types in Emacs is to do nothing. ! * Frames and X ! ** Certain Lisp variables are now local to an X terminal (in other words, all the screens of a single X server). The value in effect, at any given time, is the one that belongs to the terminal of the --- 2196,2207 ---- rebind the event to some other command if you wish. ! *** Two new types of events, iconify-frame and make-frame-visible, indicate that the user iconified or deiconified a frame with the window manager. Since the window manager has already done the work, the default definition for both event types in Emacs is to do nothing. ! ** Frames and X ! *** Certain Lisp variables are now local to an X terminal (in other words, all the screens of a single X server). The value in effect, at any given time, is the one that belongs to the terminal of the *************** last-kbd-macro. There is no way for Lis *** 1721,1725 **** The terminal-local variables cannot be buffer-local. ! ** When you create an X Window frame, for the `top' and `left' frame parameters, you can now use values of the form (+ N) or (- N), where N is an integer. (+ N) means N pixels to the right of the left edge of --- 2212,2216 ---- The terminal-local variables cannot be buffer-local. ! *** When you create an X frame, for the `top' and `left' frame parameters, you can now use values of the form (+ N) or (- N), where N is an integer. (+ N) means N pixels to the right of the left edge of *************** The function x-parse-geometry can return *** 1731,1755 **** for certain inputs. ! ** The variable menu-bar-file-menu has been renamed to menu-bar-files-menu to match the actual item that appears in the menu. (All the other such variable names do match.) ! ** The new function active-minibuffer-window returns the minibuffer window currently active, or nil if none is now active. ! ** In the functions next-window, previous-window, next-frame, previous-frame, get-buffer-window, get-lru-window, get-largest-window and delete-windows-on, if you specify 0 for the last argument, it means to consider all visible and iconified frames. ! ** When you set a frame's cursor type with modify-frame-parameters, you can now specify (bar . INTEGER) as the cursor type. This stands for a bar cursor of width INTEGER. ! ** The new function facep returns t if its argument is a face name (or if it is a vector such as is used internally by the Lisp code to represent a face). ! ** Each frame can now have a buffer-predicate function, which is the `buffer-predicate' frame parameter. When `other-buffer' looks for an alternative buffer, it considers --- 2222,2246 ---- for certain inputs. ! *** The variable menu-bar-file-menu has been renamed to menu-bar-files-menu to match the actual item that appears in the menu. (All the other such variable names do match.) ! *** The new function active-minibuffer-window returns the minibuffer window currently active, or nil if none is now active. ! *** In the functions next-window, previous-window, next-frame, previous-frame, get-buffer-window, get-lru-window, get-largest-window and delete-windows-on, if you specify 0 for the last argument, it means to consider all visible and iconified frames. ! *** When you set a frame's cursor type with modify-frame-parameters, you can now specify (bar . INTEGER) as the cursor type. This stands for a bar cursor of width INTEGER. ! *** The new function facep returns t if its argument is a face name (or if it is a vector such as is used internally by the Lisp code to represent a face). ! *** Each frame can now have a buffer-predicate function, which is the `buffer-predicate' frame parameter. When `other-buffer' looks for an alternative buffer, it considers *************** only the buffers that fit the selected f *** 1757,1761 **** has one). This is useful for applications that make their own frames. ! ** When you create an X frame, you can now specify the frame parameter `display'. This says which display to put the frame on. The value should be a display name--a string of the form --- 2248,2252 ---- has one). This is useful for applications that make their own frames. ! *** When you create an X frame, you can now specify the frame parameter `display'. This says which display to put the frame on. The value should be a display name--a string of the form *************** x-display-list returns a list indicating *** 1775,1797 **** connections to. Its elements are display names (strings). ! ** The icon-type frame parameter may now be a file name. Then the contents of that file specify the icon bitmap to use for that frame. ! ** The title of an Emacs frame, displayed by most window managers, is set from frame-title-format or icon-title-format. These have the same structure as mode-line-format. ! ** x-display-grayscale-p is a new function that returns non-nil if your X server can display shades of gray. Currently it returns non-nil for color displays (because they can display shades of gray); we may change it in the next version to return nil for color displays. ! ** The frame parameter scroll-bar-width specifies the width of the scrollbar in pixels. ! * Buffers ! ** Creating a buffer with get-buffer-create does not obey default-major-mode. That variable is now handled in a separate function, set-buffer-major-mode. get-buffer-create and generate-new-buffer --- 2266,2288 ---- connections to. Its elements are display names (strings). ! *** The icon-type frame parameter may now be a file name. Then the contents of that file specify the icon bitmap to use for that frame. ! *** The title of an Emacs frame, displayed by most window managers, is set from frame-title-format or icon-title-format. These have the same structure as mode-line-format. ! *** x-display-grayscale-p is a new function that returns non-nil if your X server can display shades of gray. Currently it returns non-nil for color displays (because they can display shades of gray); we may change it in the next version to return nil for color displays. ! *** The frame parameter scroll-bar-width specifies the width of the scrollbar in pixels. ! ** Buffers ! *** Creating a buffer with get-buffer-create does not obey default-major-mode. That variable is now handled in a separate function, set-buffer-major-mode. get-buffer-create and generate-new-buffer *************** pop-to-buffer, and similar functions doe *** 1802,1806 **** to select the default major mode specified with default-major-mode. ! ** You can now create an "indirect buffer". An indirect buffer shares its text, including text properties, with another buffer (the "base buffer"), but has its own major mode, local variables, overlays, and --- 2293,2297 ---- to select the default major mode specified with default-major-mode. ! *** You can now create an "indirect buffer". An indirect buffer shares its text, including text properties, with another buffer (the "base buffer"), but has its own major mode, local variables, overlays, and *************** mode which let you display different par *** 1825,1831 **** indirect buffers. ! * Subprocesses ! ** The functions call-process and call-process-region now allow you to direct error message output from the subprocess into a separate destination, instead of mixing it with ordinary output. --- 2316,2322 ---- indirect buffers. ! ** Subprocesses ! *** The functions call-process and call-process-region now allow you to direct error message output from the subprocess into a separate destination, instead of mixing it with ordinary output. *************** buffer by sending it to a temporary file *** 1845,1858 **** into a buffer. ! ** Comint mode changes: ! *** The variable comint-completion-addsuffix can also be a cons pair of the form (DIRSUFFIX . FILESUFFIX), where DIRSUFFIX and FILESUFFIX are strings added on unambiguous or exact completion of directories and file names, respectively. ! * Text properties ! ** You can now specify which values of the `invisible' property make text invisible in a given buffer. The variable `buffer-invisibility-spec', which is always local in all buffers, --- 2336,2349 ---- into a buffer. ! *** Comint mode changes: ! **** The variable comint-completion-addsuffix can also be a cons pair of the form (DIRSUFFIX . FILESUFFIX), where DIRSUFFIX and FILESUFFIX are strings added on unambiguous or exact completion of directories and file names, respectively. ! ** Text properties ! *** You can now specify which values of the `invisible' property make text invisible in a given buffer. The variable `buffer-invisibility-spec', which is always local in all buffers, *************** a character invisible. *** 1863,1867 **** If its value is a list, then a character is invisible if its ! `invisible' propery value appears as a member of the list, or if it appears as the car of a member of the list. --- 2354,2358 ---- If its value is a list, then a character is invisible if its ! `invisible' property value appears as a member of the list, or if it appears as the car of a member of the list. *************** element of the list against `buffer-invi *** 1877,1884 **** matches, the character is invisible. ! ** The command `list-text-properties-at' shows what text properties are in effect at point. ! ** Frame objects now exist in Emacs even on systems that don't support X Windows. You can create multiple frames, and switch between them using select-frame. The selected frame is actually displayed on your --- 2368,2375 ---- matches, the character is invisible. ! *** The command `list-text-properties-at' shows what text properties are in effect at point. ! *** Frame objects now exist in Emacs even on systems that don't support X Windows. You can create multiple frames, and switch between them using select-frame. The selected frame is actually displayed on your *************** Switching frames on ASCII terminals is t *** 1889,1893 **** equivalent to switching between different window configurations. ! ** The new variable window-size-change-functions holds a list of functions to be called if window sizes change (or if windows are created or deleted). The functions are called once for each frame on --- 2380,2384 ---- equivalent to switching between different window configurations. ! *** The new variable window-size-change-functions holds a list of functions to be called if window sizes change (or if windows are created or deleted). The functions are called once for each frame on *************** which changes have occurred, with the fr *** 1895,1899 **** This takes place shortly before redisplay. ! ** The modification hook functions of overlays now work differently. They are called both before and after each change. This makes it possible for the functions to determine exactly what the change was. --- 2386,2390 ---- This takes place shortly before redisplay. ! *** The modification hook functions of overlays now work differently. They are called both before and after each change. This makes it possible for the functions to determine exactly what the change was. *************** are the same arguments that the after-ch *** 1919,1956 **** This means the function must accept either four or five arguments. ! ** You can set defaults for text-properties with the new variable `default-text-properties'. Its value is a property list; the values specified there are used whenever a character (or its category) does not specify a value. ! ** The `face' property of a character or an overlay can now be a list of face names. Formerly it had to be just one face name. ! ** Changes in handling the `intangible' text property. ! *** If inhibit-point-motion-hooks is non-nil, then `intangible' properties are ignored. ! *** Moving to just before a stretch of intangible text is no longer special in any way. Point stays at that place. ! *** When you move point backwards into the midst of intangible text, point moves back to the beginning of that text. (It used to move forward to the end of that text, which was not very useful.) ! *** When moving across intangible text, Emacs stops wherever the property value changes. So if you have two stretches of intangible text, with different non-nil intangible properties, it is possible to place point between them. ! * Overlays ! ** Overlay changes. ! *** The new function previous-overlay-change returns the position of the previous overlay start or end, before a specified position. This is the backwards-moving counterpart of next-overlay-change. ! *** overlay-get now supports category properties on an overlay the same way get-text-property supports them as text properties. --- 2410,2447 ---- This means the function must accept either four or five arguments. ! *** You can set defaults for text-properties with the new variable `default-text-properties'. Its value is a property list; the values specified there are used whenever a character (or its category) does not specify a value. ! *** The `face' property of a character or an overlay can now be a list of face names. Formerly it had to be just one face name. ! *** Changes in handling the `intangible' text property. ! **** If inhibit-point-motion-hooks is non-nil, then `intangible' properties are ignored. ! **** Moving to just before a stretch of intangible text is no longer special in any way. Point stays at that place. ! **** When you move point backwards into the midst of intangible text, point moves back to the beginning of that text. (It used to move forward to the end of that text, which was not very useful.) ! **** When moving across intangible text, Emacs stops wherever the property value changes. So if you have two stretches of intangible text, with different non-nil intangible properties, it is possible to place point between them. ! ** Overlays ! *** Overlay changes. ! **** The new function previous-overlay-change returns the position of the previous overlay start or end, before a specified position. This is the backwards-moving counterpart of next-overlay-change. ! **** overlay-get now supports category properties on an overlay the same way get-text-property supports them as text properties. *************** ask for, but it does have a `category' p *** 1959,1971 **** then that symbol's PROP property is used. ! *** If an overlay has a non-nil `evaporate' property, it will be deleted if it ever becomes empty (i.e., when it spans no characters). ! *** If an overlay has a `before-string' and/or `after-string' property, these strings are displayed at the overlay's endpoints. ! * Filling ! ** The new variable fill-paragraph-function provides a way for major modes to override the filling of paragraphs. If this is non-nil, fill-paragraph calls it as a function, passing along its sole --- 2450,2462 ---- then that symbol's PROP property is used. ! **** If an overlay has a non-nil `evaporate' property, it will be deleted if it ever becomes empty (i.e., when it spans no characters). ! **** If an overlay has a `before-string' and/or `after-string' property, these strings are displayed at the overlay's endpoints. ! ** Filling ! *** The new variable fill-paragraph-function provides a way for major modes to override the filling of paragraphs. If this is non-nil, fill-paragraph calls it as a function, passing along its sole *************** The usual use of this feature is to fill *** 1976,2002 **** language modes. ! ** Text filling and justification changes: ! *** The new variable use-hard-newlines can be used to make a distinction between "hard" and "soft" newlines; the fill functions will then never remove a newline that was manually inserted. Hard newlines are marked with a non-nil `hard' text-property. ! *** The fill-column and left-margin can now be modified by text-properties. Most lisp programs should use the new functions (current-fill-column) and (current-left-margin), which return the proper values to use for the current line. ! *** There are new functions for dealing with margins: ! **** Set-left-margin and set-right-margin (set the value for a region and re-fill). These functions take three arguments: two to specify a region, and the desired margin value. ! **** Increase-left-margin, decrease-left-margin, increase-right-margin, and decrease-right-margin (change settings relative to current values, and re-fill). ! **** move-to-left-margin moves point there, optionally adding indentation or changing tabs to spaces in order to make that possible. beginning-of-line-text also moves past the fill-prefix and any --- 2467,2493 ---- language modes. ! *** Text filling and justification changes: ! **** The new variable use-hard-newlines can be used to make a distinction between "hard" and "soft" newlines; the fill functions will then never remove a newline that was manually inserted. Hard newlines are marked with a non-nil `hard' text-property. ! **** The fill-column and left-margin can now be modified by text-properties. Most lisp programs should use the new functions (current-fill-column) and (current-left-margin), which return the proper values to use for the current line. ! **** There are new functions for dealing with margins: ! ***** Set-left-margin and set-right-margin (set the value for a region and re-fill). These functions take three arguments: two to specify a region, and the desired margin value. ! ***** Increase-left-margin, decrease-left-margin, increase-right-margin, and decrease-right-margin (change settings relative to current values, and re-fill). ! ***** move-to-left-margin moves point there, optionally adding indentation or changing tabs to spaces in order to make that possible. beginning-of-line-text also moves past the fill-prefix and any *************** indentation added to center or right-jus *** 2004,2011 **** of the text that the user actually typed. ! **** delete-to-left-margin removes any left-margin indentation, but does not change the property. ! *** The paragraph-movement functions look for the paragraph-start and paragraph-separate regexps at the current left margin, not at the beginning of the line. This means that those regexps should NOT use ^ --- 2495,2502 ---- of the text that the user actually typed. ! ***** delete-to-left-margin removes any left-margin indentation, but does not change the property. ! **** The paragraph-movement functions look for the paragraph-start and paragraph-separate regexps at the current left margin, not at the beginning of the line. This means that those regexps should NOT use ^ *************** to anchor the search. However, for back *** 2013,2042 **** the beginning of the regexp will be ignored, so most packages won't break. ! *** justify-current-line is now capable of doing left, center, or right justification as well as full justification. ! *** The fill functions can do any kind of justification based on the new `justification' text-property and `default-justification' variable, or arguments to the functions. They also have a new option which defeats the normal removal of extra whitespace. ! *** The new function `current-justification' returns the kind of justification used for the current line. The new function `set-justification' can be used to change it, including re-justifying the text of the region according to the new value. ! *** Filling and auto-fill are disabled if justification is `none'. ! *** The auto-fill-function is now called regardless of whether the fill-column has been exceeded; the function can determine on its own whether filling (or justification) is necessary. ! * Processes ! ** process-tty-name is a new function that returns the name of the terminal that the process itself reads and writes on (not the name of the pty that Emacs uses to talk with that terminal). ! ** Errors in process filters and sentinels are now normally caught automatically, so that they don't abort other Lisp programs. --- 2504,2533 ---- the beginning of the regexp will be ignored, so most packages won't break. ! **** justify-current-line is now capable of doing left, center, or right justification as well as full justification. ! **** The fill functions can do any kind of justification based on the new `justification' text-property and `default-justification' variable, or arguments to the functions. They also have a new option which defeats the normal removal of extra whitespace. ! **** The new function `current-justification' returns the kind of justification used for the current line. The new function `set-justification' can be used to change it, including re-justifying the text of the region according to the new value. ! **** Filling and auto-fill are disabled if justification is `none'. ! **** The auto-fill-function is now called regardless of whether the fill-column has been exceeded; the function can determine on its own whether filling (or justification) is necessary. ! ** Processes ! *** process-tty-name is a new function that returns the name of the terminal that the process itself reads and writes on (not the name of the pty that Emacs uses to talk with that terminal). ! *** Errors in process filters and sentinels are now normally caught automatically, so that they don't abort other Lisp programs. *************** filters and sentinels are not caught. A *** 2045,2056 **** the debugger, under the control of debug-on-error. ! ** Emacs now preserves the match data around the execution of process filters and sentinels. You can use search and match functions freely in filters and sentinels without explicitly bothering to save the match data. ! * Display ! ** The variable message-log-max controls how messages are logged in the "*Messages*" buffer. An integer value means to keep that many lines; t means to log with no limit; nil means disable message logging. Lisp --- 2536,2547 ---- the debugger, under the control of debug-on-error. ! *** Emacs now preserves the match data around the execution of process filters and sentinels. You can use search and match functions freely in filters and sentinels without explicitly bothering to save the match data. ! ** Display ! *** The variable message-log-max controls how messages are logged in the "*Messages*" buffer. An integer value means to keep that many lines; t means to log with no limit; nil means disable message logging. Lisp *************** code that calls `message' excessively (e *** 2058,2062 **** bind this variable to nil. ! ** Display tables now have a new element, at index 261, specifying the glyph to use for the separator between two side-by-side windows. By default, this is the vertical bar character `|'. Probably the only --- 2549,2553 ---- bind this variable to nil. ! *** Display tables now have a new element, at index 261, specifying the glyph to use for the separator between two side-by-side windows. By default, this is the vertical bar character `|'. Probably the only *************** less visual separation between two side- *** 2065,2076 **** related information. ! ** The new mode-line-format spec %c displays the current column number. ! ** The new variable blink-matching-delay specifies how long to keep the cursor at the matching open-paren, after you insert a close-paren. This is useful mainly on systems which can wait for a fraction of a second--you can then specify fractional values such as 0.5. ! ** Faster processing of buffers with long lines The new variable cache-long-line-scans determines whether Emacs --- 2556,2567 ---- related information. ! *** The new mode-line-format spec %c displays the current column number. ! *** The new variable blink-matching-delay specifies how long to keep the cursor at the matching open-paren, after you insert a close-paren. This is useful mainly on systems which can wait for a fraction of a second--you can then specify fractional values such as 0.5. ! *** Faster processing of buffers with long lines The new variable cache-long-line-scans determines whether Emacs *************** the cache should not affect the behavior *** 2103,2113 **** it should only affect their performance. ! * System Interface ! ** The function user-login-name now accepts an optional argument uid. If the argument is non-nil, user-login-name returns the login name for that user id. ! ** system-name, user-name, user-full-name and user-real-name are now variables as well as functions. The variables hold the same values that the functions would return. The new variable multiple-frames --- 2594,2604 ---- it should only affect their performance. ! ** System Interface ! *** The function user-login-name now accepts an optional argument uid. If the argument is non-nil, user-login-name returns the login name for that user id. ! *** system-name, user-name, user-full-name and user-real-name are now variables as well as functions. The variables hold the same values that the functions would return. The new variable multiple-frames *************** variables may be useful in constructing *** 2116,2132 **** or icon-title-format. ! ** Changes in time-conversion functions. ! *** The new function format-time-string takes a format string and a time value. It converts the time to a string, according to the format specified. You can specify what kind of conversion to use with %-specifications. ! *** The new function decode-time converts a time value into a list of specific items of information: the year, month, day of week, day of month, hour, minute and second. (A time value is a list of two or three integers.) ! *** The new function encode-time converts specific items of time information--the second, minute, hour, day, month, year, and time zone--into a time value. --- 2607,2623 ---- or icon-title-format. ! *** Changes in time-conversion functions. ! **** The new function format-time-string takes a format string and a time value. It converts the time to a string, according to the format specified. You can specify what kind of conversion to use with %-specifications. ! **** The new function decode-time converts a time value into a list of specific items of information: the year, month, day of week, day of month, hour, minute and second. (A time value is a list of two or three integers.) ! **** The new function encode-time converts specific items of time information--the second, minute, hour, day, month, year, and time zone--into a time value. *************** exit the minibuffer. *** 2852,2856 **** when the mouse is over text that has a mouse-face property. ! ** The new variable interpreter-mode-alist specifes major modes to use for shell scripts that specify a command interpreter. Its elements look like (INTERPRETER . MODE); for example, ("perl" . perl-mode) is --- 3343,3347 ---- when the mouse is over text that has a mouse-face property. ! ** The new variable interpreter-mode-alist specifies major modes to use for shell scripts that specify a command interpreter. Its elements look like (INTERPRETER . MODE); for example, ("perl" . perl-mode) is *************** to let it know that the size has changed *** 3084,3088 **** displays the percentage of the buffer text that is above the *bottom* of the window (which includes the text visible, in the window as well ! as the text above the top). It dispays `Top' as well as the percentage if the top of the buffer is visible on screen. --- 3575,3579 ---- displays the percentage of the buffer text that is above the *bottom* of the window (which includes the text visible, in the window as well ! as the text above the top). It displays `Top' as well as the percentage if the top of the buffer is visible on screen. *************** buffer is read-only has no effect on %+. *** 3093,3098 **** ** The new functions ffloor, fceiling, fround and ftruncate take a floating point argument and return a floating point result whose value ! is a nearby integer. ffloor returns the nearest integer below; fceil, ! the nearest integer above; ftrucate, the nearest integer in the direction towards zero; fround, the nearest integer. --- 3584,3589 ---- ** The new functions ffloor, fceiling, fround and ftruncate take a floating point argument and return a floating point result whose value ! is a nearby integer. ffloor returns the nearest integer below; fceiling, ! the nearest integer above; ftruncate, the nearest integer in the direction towards zero; fround, the nearest integer. *************** menu in the menu bar. *** 3307,3311 **** way to type certain non-ASCII characters. It makes the characters `, ', ", ^, ~ and / serve as modifiers for the following letter. ` and ' ! add accents, " adds an umlaut or diaresis, ^ adds a circumflex, ~ adds a tilde, and / adds a slash to the following letter. --- 3798,3802 ---- way to type certain non-ASCII characters. It makes the characters `, ', ", ^, ~ and / serve as modifiers for the following letter. ` and ' ! add accents, " adds an umlaut or dieresis, ^ adds a circumflex, ~ adds a tilde, and / adds a slash to the following letter. *************** A few special combinations: *** 3324,3329 **** ~c => c with cedilla ~d => d with stroke ! ~< => left guillemet ! ~> => right guillemet ** iso-transl.el is a new library that replaces iso-insert.el. --- 3815,3820 ---- ~c => c with cedilla ~d => d with stroke ! ~< => left guillemot ! ~> => right guillemot ** iso-transl.el is a new library that replaces iso-insert.el. *************** There is now a hook, comint-output-filte *** 3640,3644 **** output filter, comint-output-filter. This is useful for scrolling (see below), but also things like processing output for specific text, output ! hilighting, etc. So that such output processing may be done efficiently, there is a new --- 4131,4135 ---- output filter, comint-output-filter. This is useful for scrolling (see below), but also things like processing output for specific text, output ! highlighting, etc. So that such output processing may be done efficiently, there is a new *************** to a non-nil value. *** 3793,3797 **** ** Inserting a string with no text properties into the buffer normally inherits the properties of the preceding character. You can now ! control this inheritence by setting the front-sticky and rear-nonsticky properties of a character. --- 4284,4288 ---- ** Inserting a string with no text properties into the buffer normally inherits the properties of the preceding character. You can now ! control this inheritance by setting the front-sticky and rear-nonsticky properties of a character. *************** presence or absence of the singleton lis *** 4138,4142 **** should prefix the event with its place symbol. ! Normally, `read-key-sequence' prefixes mouse events occuring over non-textual areas with their PLACE-SYMBOLs, to select the sub-keymap appropriate for the event; for example, clicking on the mode line --- 4629,4633 ---- should prefix the event with its place symbol. ! Normally, `read-key-sequence' prefixes mouse events occurring over non-textual areas with their PLACE-SYMBOLs, to select the sub-keymap appropriate for the event; for example, clicking on the mode line *************** files, like executables and utility prog *** 4331,4335 **** EXECDIR/bin should be a directory that is normally in users' PATHs. ! ** When running under X Windows, the new lisp function `x-list-fonts' allows code to find out which fonts are available from the X server. The first argument PATTERN is a string, perhaps with wildcard characters; --- 4822,4826 ---- EXECDIR/bin should be a directory that is normally in users' PATHs. ! ** When running under X, the new lisp function `x-list-fonts' allows code to find out which fonts are available from the X server. The first argument PATTERN is a string, perhaps with wildcard characters; *************** buffer. *** 5079,5083 **** To start using version control for a file, use the command C-x v v. This works like C-x C-q (performing the next logical version-control ! operation needed to change the file's writeability) but it will also perform initial checkin on an unregistered file. --- 5570,5574 ---- To start using version control for a file, use the command C-x v v. This works like C-x C-q (performing the next logical version-control ! operation needed to change the file's writability) but it will also perform initial checkin on an unregistered file. diff -2rcpP --exclude=*.elc emacs-19.30/etc/ORDERS emacs-19.31/etc/ORDERS *** emacs-19.30/etc/ORDERS Sat Jun 17 17:07:26 1995 --- emacs-19.31/etc/ORDERS Tue May 21 21:25:51 1996 *************** *** 1,24 **** The actual order form follows the descriptions of media contents. ! Most of this file is excerpted from the draft of the June 1995 GNU's Bulletin. ! The Order Form itself is accurate, but the information in the other articles ! is not completely updated. You can ask gnu@prep.ai.mit.edu for the complete ! June, 1995 Order From to get up-to-date information. Please send suggestions for improvements to gnu@prep.ai.mit.edu or the postal address at the end of the order form. Thank You. ! --------------------------------------------------------------------- ! FSF Order Form with Descriptions preliminary, June 1995 ! Free Software Foundation, Inc. Telephone: +1-617-542-5942 ! 59 Temple Place - Suite 330 Fax: (including Japan) +1-617-542-2652 ! Boston, MA 02111-1307 Free Dial Fax (in Japan): ! USA 0031-13-2473 (KDD) ! Electronic mail: `gnu@prep.ai.mit.edu' 0066-3382-0158 (IDC) --- 1,23 ---- The actual order form follows the descriptions of media contents. ! Most of this file is excerpted from the January 1996 GNU's Bulletin. Please send suggestions for improvements to gnu@prep.ai.mit.edu or the postal address at the end of the order form. Thank You. ! ----------------------------------------------------------------------------- ! FSF Order Form with Descriptions January, 1996 ! Free Software Foundation, Inc. Telephone: +1-617-542-5942 ! 59 Temple Place - Suite 330 Fax: (including Japan) +1-617-542-2652 ! Boston, MA 02111-1307 USA Electronic mail: `gnu@prep.ai.mit.edu' ! ! ! ----------------------------------------------------------------------------- ! *************** ask gnu@prep.ai.mit.edu for the complete *** 28,31 **** --- 27,31 ---- + Table of Contents ----------------- *************** Table of Contents *** 35,47 **** Free Software Redistributors Donate Help from Free Software Companies ! (not included) Major Changes in GNU Software and Documentation (not ! included as it was not done when this file was assembled). GNU Documentation ! GNU Software (not completely up to date) ! Program/Package Cross Reference (not completely up to date) Tapes ! Languages Tape (version numbers not completely up to date) ! Lisps and Emacs Tape (version numbers not completely up to date) ! Utilities Tape (version numbers not completely up to date) Scheme Tape X11 Tapes --- 35,47 ---- Free Software Redistributors Donate Help from Free Software Companies ! Major Changes in GNU Software and Documentation ! The Deluxe Distribution GNU Documentation ! GNU Software ! Program/Package Cross Reference Tapes ! Languages Tape ! Lisps and Emacs Tape ! Utilities Tape Scheme Tape X11 Tapes *************** Table of Contents *** 50,72 **** CD-ROMs Pricing of the GNU CD-ROMs ! MS-DOS CD-ROM ! Debian GNU/Linux CD-ROM ! Compiler Tools Binaries CD-ROM Source Code CD-ROMs ! June 1995 Source Code CD-ROM (version numbers not completely up ! to date) May 1994 Source Code CD-ROM November 1993 Source Code CD-ROM MS-DOS Diskettes ! DJGPP Diskettes (version numbers not completely up to date) ! Emacs Diskettes (version numbers not completely up to date) ! Selected Utilities Diskettes (not completely up to date) Windows Diskette Tape & CD-ROM Subscription Service - The Deluxe Distribution FSF T-shirt Free Software Foundation Order Form Donations Translate Into Free Software --- 50,76 ---- CD-ROMs Pricing of the GNU CD-ROMs ! December 1995 Compiler Tools Binaries CD-ROM ! December 1994 Compiler Tools Binaries CD-ROM ! December 1993 Compiler Tools Binaries CD-ROM Source Code CD-ROMs ! December 1995 Source Code CD-ROMs ! June 1995 Source Code CD-ROM May 1994 Source Code CD-ROM November 1993 Source Code CD-ROM + MS-DOS Book with CD-ROM + Debian GNU/Linux Book with CD-ROM MS-DOS Diskettes ! DJGPP Diskettes ! Emacs Diskettes ! Selected Utilities Diskettes Windows Diskette Tape & CD-ROM Subscription Service FSF T-shirt Free Software Foundation Order Form + ----------------------------------------------------------------------------- + + Donations Translate Into Free Software *************** may wish to help us make sure there is m *** 79,94 **** Your donation to us is tax-deductible in the United States. We gladly accept *any* currency, although the U.S. dollar is the most convenient. ! m{No Value For "ergegrafkludge"} If your employer has a matching gifts ! program for charitable donations, please arrange to: add the FSF to the list ! of organizations for your employer's matching gifts program; and have your ! donation matched (note *Note Cygnus Matches Donations!::), if you do not ! know, please ask your personnel department. Circle amount you are donating, ! cut out this form, and send it with your donation to: ! Free Software Foundation ! 59 Temple Place -- Suite 330 Boston, MA 02111-1307 USA ! $500 $250 $100 $50 other $________ Other currency:________ --- 83,103 ---- Your donation to us is tax-deductible in the United States. We gladly accept *any* currency, although the U.S. dollar is the most convenient. ! ! If your employer has a matching gifts program for charitable donations, ! please arrange to: add the FSF to the list of organizations for your ! employer's matching gifts program; and have your donation matched (note *Note ! Cygnus Matches Donations!::). If you do not know, please ask your personnel ! department. ! ! Circle amount you are donating, cut out this form, and send it with your ! donation to: ! ! Free Software Foundation, Inc. ! 59 Temple Place - Suite 330 Boston, MA 02111-1307 USA ! ! $500 $250 $100 $50 Other $________ Other currency:________ *************** cut out this form, and send it with your *** 96,103 **** You can charge a donation to any of Carte Blanche, Diner's Club, JCB, ! Mastercard, Visa, or American Express. Charges may also be faxed to ! +1-617-492-9057. Individuals in Japan who are unable to place international ! calls may use the "free dial" numbers: 0031-13-2473 (KDD) and ! 0066-3382-0158 (IDC). Card type: __________________ Expiration Date: _____________ --- 105,110 ---- You can charge a donation to any of Carte Blanche, Diner's Club, JCB, ! MasterCard, Visa, or American Express. Charges may also be faxed to ! +1-617-542-2652. Card type: __________________ Expiration Date: _____________ *************** Cygnus Matches Donations! *** 121,126 **** To encourage cash donations to the Free Software Foundation, Cygnus Support ! will continue to contribute corporate funds to FSF to accompany gifts by its ! employees, and by its customers and their employees. Donations payable to the Free Software Foundation should be sent by eligible --- 128,133 ---- To encourage cash donations to the Free Software Foundation, Cygnus Support ! will continue to contribute corporate funds to the FSF to accompany gifts by ! its employees, and by its customers and their employees. Donations payable to the Free Software Foundation should be sent by eligible *************** the FSF each quarter. The FSF will prov *** 129,132 **** --- 136,140 ---- recognize the contribution (which is tax-deductible on U.S. tax returns). For more information, please contact Cygnus: + Cygnus Support 1937 Landings Drive *************** Free Software Redistributors Donate *** 146,163 **** *********************************** ! by Richard Stallman ! The Sun Users Group Deutschland and ASCII Corporation (Japan) have added ! donations to the FSF to the price of their next CD-ROM of GNU software. ! Potential purchasers will know precisely how much of the price is for the FSF ! and how much is for the redistributor. ! ! Austin Code Works, a redistributor of free software, is supporting free ! software development by giving the FSF 20% of the selling price for the GNU ! software packages they produce and sell. The producers of the SNOW 2.1 CD ! added the words "Includes $5 donation to the FSF" to the front of their CD. ! Walnut Creek CDROM and Info Magic, two more free software redistributors, are ! also giving us a percentage of their selling price. CQ Publishing made a ! large donation from the sales of their book about GAWK in Japanese. In the long run, the success of free software depends on how much new free --- 154,176 ---- *********************************** ! The SNOW 2.1 CD producers added the words "Includes $5 donation to the FSF" ! to the front of their CD. Potential buyers will know just how much of the ! price is for the FSF & how much is for the redistributor. ! ! The Sun Users Group Deutschland & ASCII Corporation (Japan) have added ! donations to the FSF to the price of their next GNU software CD-ROMs. ! ! Austin Code Works, a free software redistributor, supports free software ! development by giving the FSF 20% of the selling price for the GNU software ! CDs they produce & sell. ! Walnut Creek CDROM & Info Magic, free software redistributors, are also ! giving us part of their selling price. ! ! TOHDO-SHA is donating 400 yen to the FSF for each copy of `The GNU Emacs Lisp ! Reference Manual, Japanese Edition' sold at bookstores in Japan. ! ! CQ Publishing made a large donation from the sales of their GAWK book in ! Japanese. In the long run, the success of free software depends on how much new free *************** have made use of the opportunity. Many *** 167,171 **** You can help promote free software development by convincing for-a-fee ! redistributors to contribute--either by doing development themselves, or by donating to development organizations (the FSF and others). --- 180,184 ---- You can help promote free software development by convincing for-a-fee ! redistributors to contribute--either by doing development themselves or by donating to development organizations (the FSF and others). *************** contributes very little; maintaining a p *** 189,193 **** contributes much. Easy new ports contribute little, since someone else would surely do them; difficult ports such as adding a new CPU to the GNU compiler ! contribute more; major new features and programs contribute the most. By establishing the idea that supporting further development is "the proper --- 202,206 ---- contributes much. Easy new ports contribute little, since someone else would surely do them; difficult ports such as adding a new CPU to the GNU compiler ! or Mach contribute more; major new features and programs contribute the most. By establishing the idea that supporting further development is "the proper *************** factor, you can help encourage those who *** 207,216 **** contribute to its growth. ! These free software support companies regularly donate a part of their income ! to the Free Software Foundation to support the development of new GNU ! programs. Listing them here is our way of thanking them. Wingnut has made a ! pledge to donate 10% of their income to the FSF, and has also purchased ! several Deluxe Distribution packages in Japan. (Wingnut is SRA's special GNU ! support group). Also see *Note Cygnus Matches Donations!::. Wingnut Project --- 220,228 ---- contribute to its growth. ! Wingnut (SRA's special GNU support group) regularly donates a part of its ! income to the FSF to support the development of new GNU programs. Listing ! them here is our way of thanking them. Wingnut has made a pledge to donate ! 10% of their income to the FSF, and has purchased several Deluxe Distribution ! packages in Japan. Also see *Note Cygnus Matches Donations!::. Wingnut Project *************** support group). Also see *Note Cygnus M *** 222,225 **** --- 234,376 ---- Fax: (+81-3)3942-5174 E-mail: `info-wingnut@sra.co.jp' + WWW: `http://www.sra.co.jp/public/sra/product/wingnut/' + + + + Major Changes in GNU Software and Documentation + *********************************************** + + * A New FSF T-shirt! (*Note FSF T-shirt::) + + We have a new T-shirt. This design was inspired by the cover of the + `GNU Emacs Lisp Reference Manual'. + + * GNU Emacs 19.30 (*Note GNU Software::) + + We have just released Emacs 19.30. New features include support for menu + bars on text-only terminals, a total rewrite of GNUS, multiple frames on + Windows NT and Windows 95, & many others. + + * New Programs on the Tapes (*Note GNU Software::) + + `gettext' is now on the *Note Languages Tape::. Termutils & Midnight + Commander have been added to the *Note Utilities Tape::. CLX has been + added to the *Note Lisps/Emacs Tape::. Newer versions of many of our + programs & manuals have been placed on all the media we distribute. + + * New Source Code CD! + + We have just released the December 1995 Source Code CD-ROMs (Edition 7). + Due to increasing amounts of GNU Software, the Source Code CD is now a + two disc set--the price remains unchanged! The new programs included + are: apache, CLX, Elisp archive, `ffcall', `gettext', GN, Gnans, + `gnuserv', Hyperbole, Midnight Commander, Oaklisp, SIPP, SNePS, Spinner, + W3, and `xgrabsc'. *Note GNU Software::, for more information about + these packages. Also on the CD-ROMs are full distributions of MIT X11R6 + (both our Required & Optional distributions), MIT Scheme 7.3, Emacs + 19.30, GCC 2.7.1, and current versions of all other GNU Software. For + more information, see *Note December 1995 Source Code CD-ROMs::. + + * New Compiler Tools CD-ROM + + We have a new edition of the Compiler Tools Binaries CD-ROM with updated + versions of much of its software. It contains executables of the GNU + compiler tools for some systems that don't normally come with a + compiler. This allows users of those systems to compile their own + software without having to buy a proprietary compiler. + + We hope to include more systems with each update of this CD-ROM. If you + can help build binaries for new systems or have one to suggest, please + contact us at either address on page 1. For more information, see *Note + Compiler Tools Binaries CD-ROM::. + + * New/Updated Manuals since Last Bulletin (*Note Documentation::) + + We have a new manual: `The GNU Emacs Lisp Reference Manual, Japanese + Edition' - the FSF would like to thank the team of over 30 Japanese who + did the translation. These new editions include bug fixes and + additional information: `The GNU Emacs Lisp Reference Manual', `GNU + Make', `Bison', `Programming in Emacs Lisp: An Introduction', and `The + Termcap Manual'. + + * Older FSF CD-ROMs Available at a Reduced Price + + While supplies last, older versions of our CD-ROMs are available at a + reduced price. Note that the newest version has bug fixes and + improvements that the older versions do not. See the *note Free + Software Foundation Order Form::.. + + * GNU Software Works on MS-DOS (Also *note GNU Software::.) + + GNU Emacs 19 and many other GNU programs have been ported to MS-DOS for + i386/i486/Pentium machines. We ship binaries & sources on the *Note + DJGPP Diskettes::; *Note Emacs Diskettes::; *Note Selected Utilities + Diskettes::; & the *Note Compiler Tools Binaries CD-ROM::. We will ship + binaries & sources on the *Note MS-DOS Book with CD-ROM::, when it is + available. + + * The FSF Takes Credit Cards + + We take these credit cards: Carte Blanche, Diner's Club, MasterCard, JCB, + Visa, and American Express. Please note that we are charged about 5% of + an order's total amount in credit card processing fees. Please consider + paying by check instead or adding on a 5% donation to make up the + difference. + + + + The Deluxe Distribution + *********************** + + The Free Software Foundation has been asked repeatedly to create a package + that provides executables for all of our software. Normally we offer only + sources. In addition to providing binaries with the source code, the Deluxe + Distribution includes a complete set of our printed manuals and reference + cards. + + The FSF Deluxe Distribution contains the binaries and sources to hundreds of + different programs including GNU Emacs, the GNU C Compiler, the GNU Debugger, + the complete X Window System, and all the GNU utilities. + + We will make a Deluxe Distribution for most machines/operating systems. We + may be able to send someone to your office to do the compilation, if we can't + find a suitable machine close to us. However, we can only compile the + programs that already support your chosen machine/system - porting is a + separate matter (to commission a port, consult the GNU Service Directory; + details in *Note Free Software Support::). Compiling all these programs + takes time; a Deluxe Distribution for an unusual machine will take longer to + produce than one for a common machine. Please contact the FSF Office with + any questions. + + We supply the software in one of these tape formats in Unix `tar' format: + 1600 or 6250bpi 1/2in reel, Sun DC300XLP 1/4in cartridge - QIC24, IBM RS/6000 + 1/4in c.t. - QIC 150, Exabyte 8mm c.t., or DAT 4mm c.t. If your computer + cannot read any of these, please contact us to see if we can handle your + format. + + The manuals included are one each of the `Bison', `Calc', `GAWK', `GNU C + Compiler', `GNU C Library', `GDB', `Flex', `GNU Emacs Lisp Reference', + `Programming in Emacs Lisp: An Introduction', `Make', `Texinfo', & `Termcap' + manuals; six copies of the `GNU Emacs' manual; and a packet of ten reference + cards each for Emacs, Bison, Calc, Flex, & GDB. + + Every Deluxe Distribution also has a copy of the latest editions of our + CD-ROMs that have sources of our software & compiler tool binaries for some + systems. The MS-DOS CD is in ISO 9660 format. The other CDs are in ISO 9660 + format with Rock Ridge extensions. + + The price of the Deluxe Distribution is $5000 (shipping included). These + sales provide enormous financial assistance to help the FSF develop more free + software. To order, please fill out the "Deluxe Distribution" section on the + *note Free Software Foundation Order Form::. and send it to: + + Free Software Foundation, Inc. + 59 Temple Place - Suite 330 + Boston, MA 02111-1307 + USA + + Telephone: +1-617-542-5942 + Fax (including Japan): +1-617-542-2652 + Electronic mail: gnu@prep.ai.mit.edu *************** GNU Documentation *** 228,282 **** ***************** ! GNU is dedicated to having quality, easy-to-use online and printed documentation. GNU manuals are intended to explain underlying concepts, ! describe how to use all the features of each program, and give examples of command use. GNU manuals are distributed as Texinfo source files, which ! yield both typeset hardcopy via the TeX document formatting system, and online hypertext display via the menu-driven Info system. Source for these manuals ! comes with our software; here we list the manuals that we publish as printed ! books as well; see the *note Free Software Foundation Order Form::.. Most GNU manuals are bound as soft cover books with "lay-flat" bindings. This allows you to open them so they lie flat on a table without creasing the ! binding. These books have an inner cloth spine and an outer cardboard cover ! that will not break or crease as an ordinary paperback will. Currently, the ! `GDB', `Emacs', `Emacs Lisp Reference', `GAWK', `Make', `Bison', and `Texinfo' ! manuals have this binding. The other GNU manuals also lie flat when opened, ! using a GBC or Wire-O binding. All of our manuals are 7in by 9.25in except ! the 8.5in by 11in `Calc' manual. The edition number of the manual and version number of the program listed after each manual's name were current at the time this Bulletin was published. ! `Debugging with GDB' (Edition 4.12 for Version 4.14) tells how to use the GNU ! Debugger, run your program under debugger control, examine and alter data, ! modify a program's flow of control, and use GDB through GNU Emacs. ! The `Emacs Manual' (11th Edition for Version 19.29) describes editing with GNU Emacs. It explains advanced features, including outline mode and regular ! expression search; how to use special modes for programming in languages like ! C++ and TeX; how to use the `tags' utility; how to compile and correct code; ! how to make your own keybindings; and other elementary customizations. ! ! `Programming in Emacs Lisp, An Introduction' (Edition 1.03 for Version 19.29) ! is an elementary introduction to programming in Emacs Lisp. It is written ! for people who are not necessarily interested in programming, but who do want ! to customize or extend their computing environment. It tells how to write ! programs that find files; switchbuffers; use searches, conditionals, loops, ! and recursion; how to write Emacs initialization files; and how to run the ! Emacs Lisp debuggers. If you read the text in GNU Emacs under Info mode, you ! can run the sample programs directly. ! ! The `GNU Emacs Lisp Reference Manual' (Edition 2.4 for Version 19.29) covers ! this programming language in depth, including data types, control structures, ! functions, macros, syntax tables, searching/matching, modes, windows, ! keymaps, byte compilation, and the operating system interface. ! The `GAWK Manual' (Edition 0.16 for Version 2.16) tells how to use the GNU implementation of `awk'. It is written for those who have never used `awk' and describes the features of this powerful string and record manipulation language. ! The `Make Manual' (Edition 0.46 for Version 3.72) describes GNU `make', a program used to rebuild parts of other programs. The manual tells how to write "makefiles", which specify how a program is to be compiled and how its --- 379,432 ---- ***************** ! GNU is dedicated to having quality, easy-to-use online & printed documentation. GNU manuals are intended to explain underlying concepts, ! describe how to use all the features of each program, & give examples of command use. GNU manuals are distributed as Texinfo source files, which ! yield both typeset hardcopy via the TeX document formatting system and online hypertext display via the menu-driven Info system. Source for these manuals ! comes with our software; here are the manuals that we publish as printed ! books. See the *note Free Software Foundation Order Form::., to order them. Most GNU manuals are bound as soft cover books with "lay-flat" bindings. This allows you to open them so they lie flat on a table without creasing the ! binding. They have an inner cloth spine and an outer cardboard cover that ! will not break or crease as an ordinary paperback will. Currently, the ! `GDB', `Emacs', `Emacs Lisp Reference', `Programming in Emacs Lisp: An ! Introduction', `GAWK', `Make', `Bison', & `Texinfo' manuals have this ! binding. The other GNU manuals also lie flat when opened, using a GBC or ! Wire-O binding. All our manuals are 7in by 9.25in except the 8.5in by 11in ! `Calc' manual. The edition number of the manual and version number of the program listed after each manual's name were current at the time this Bulletin was published. ! `Debugging with GDB' (Edition 4.12 for Version 4.14) tells how to run your ! program under GNU Debugger control, examine and alter data, modify a ! program's flow of control, and use GDB through GNU Emacs. ! The `GNU Emacs Manual' (11th Edition for Version 19.29) describes editing with GNU Emacs. It explains advanced features, including outline mode and regular ! expression search; how to use special programming modes to write languages ! like C++ and TeX; how to use the `tags' utility; how to compile and correct ! code; how to make your own keybindings; and other elementary customizations. ! ! `Programming in Emacs Lisp: An Introduction' (Edition 1.04) is for people who ! are not necessarily interested in programming, but who do want to customize ! or extend their computing environment. If you read it in Emacs under Info ! mode, you can run the sample programs directly. ! ! `The GNU Emacs Lisp Reference Manual' (Edition 2.4 for Version 19.29) and ! `The GNU Emacs Lisp Reference, Japanese Edition' (Japanese DRAFT Revision ! 1.0, from English Edition 2.4 for Version 19.29) covers this programming ! language in depth, including data types, control structures, functions, ! macros, syntax tables, searching/matching, modes, windows, keymaps, byte ! compilation, and the operating system interface. ! `The GAWK Manual' (Edition 0.16 for Version 2.16) tells how to use the GNU implementation of `awk'. It is written for those who have never used `awk' and describes the features of this powerful string and record manipulation language. ! The `Make Manual' (Edition 0.49 for Version 3.74) describes GNU `make', a program used to rebuild parts of other programs. The manual tells how to write "makefiles", which specify how a program is to be compiled and how its *************** files depend on each other. Included ar *** 284,293 **** users and a section about automatically generated dependencies. ! The `Flex Manual' (Edition 1.03 for Version 2.3.7) teaches you to write a lexical scanner definition for the `flex' program to create a C++ or C-coded scanner that recognizes the patterns defined. You need no prior knowledge of scanners. ! The `Bison Manual' (December 1993 Edition for Version 1.23) teaches you how to write context-free grammars for the Bison program that convert into C-coded parsers. You need no prior knowledge of parser generators. --- 434,443 ---- users and a section about automatically generated dependencies. ! The `Flex' manual (Edition 1.03 for Version 2.3.7) teaches you to write a lexical scanner definition for the `flex' program to create a C++ or C-coded scanner that recognizes the patterns defined. You need no prior knowledge of scanners. ! The `Bison' manual (December 1993 Edition for Version 1.23) teaches you how to write context-free grammars for the Bison program that convert into C-coded parsers. You need no prior knowledge of parser generators. *************** to run, install, and port the GNU C Comp *** 297,309 **** features and incompatibilities of GCC, but people not familiar with C will still need a good reference on the C programming language. It also covers ! G++. ! The `Texinfo Manual' (Edition 2.20 for Version 3) explains the markup ! language used to generate both the online Info documentation and typeset ! hardcopies. It tells you how to make tables, lists, chapters, nodes, ! indexes, cross references, how to use Texinfo mode in GNU Emacs, and how to ! catch mistakes. This second edition describes over 50 new commands. ! The `Termcap Manual' (2nd Edition for Version 1.2), often described as "twice as much as you ever wanted to know about termcap," details the format of the termcap database, the definitions of terminal capabilities, and the process --- 447,460 ---- features and incompatibilities of GCC, but people not familiar with C will still need a good reference on the C programming language. It also covers ! G++. We are doing limited copier runs of this manual until it becomes more ! stable. ! The `Texinfo' manual (Edition 2.21 for Version 3) explains the markup ! language that produces our online Info documentation & typeset hardcopies. ! It tells you how to make tables, lists, chapters, nodes, indexes, cross ! references, & how to catch mistakes. This second edition describes over 50 ! new commands. ! `The Termcap Manual' (2nd Edition for Version 1.2), often described as "twice as much as you ever wanted to know about termcap," details the format of the termcap database, the definitions of terminal capabilities, and the process *************** programmers. *** 312,319 **** The `C Library Reference Manual' (Edition 0.06 for Version 1.09) describes ! most of the facilities of the GNU C library, including both what Unix calls ! "library functions" and "system calls." We are doing limited copier runs of ! this manual until it becomes more stable. Please send corrections and ! improvements to `bug-glibc-manual@prep.ai.mit.edu'. The `Emacs Calc Manual' (Edition 2.02 for Version 2.02) is both a tutorial --- 463,469 ---- The `C Library Reference Manual' (Edition 0.06 for Version 1.09) describes ! the library's facilities, including both what Unix calls "library functions" ! & "system calls." We are doing small copier runs of this manual until it ! becomes more stable. Please send fixes to `bug-glibc-manual@prep.ai.mit.edu'. The `Emacs Calc Manual' (Edition 2.02 for Version 2.02) is both a tutorial *************** Calc. *** 324,332 **** ! GNU Software - (NOT COMPLETELY UP TO DATE) ************ All our software is available via FTP; see *Note How to Get GNU Software::. ! In addition, we offer software on various media and printed documentation: * *Note CD-ROMs::. --- 474,482 ---- ! GNU Software ************ All our software is available via FTP; see *Note How to Get GNU Software::. ! We also offer software on various media and printed documentation: * *Note CD-ROMs::. *************** In addition, we offer software on variou *** 338,348 **** * *Note Documentation::, which includes manuals and reference cards. ! We welcome all bug reports sent to the appropriate electronic mailing list ! (*note Free Software Support::.). ! ! In the articles describing the contents of each medium, the version number listed after each program name was current when we published this Bulletin. ! When you order a distribution tape, diskette or newer CD-ROM, some of the ! programs may be newer, and therefore the version number higher. Key to cross reference: --- 488,534 ---- * *Note Documentation::, which includes manuals and reference cards. ! In these articles describing the contents of each medium, the version number listed after each program name was current when we published this Bulletin. ! When you order a distribution tape, diskette, or newer CD-ROM, some of the ! programs may be newer and therefore the version number higher. See the *note ! Free Software Foundation Order Form::., for ordering information. ! ! Some of the contents of our tape and FTP distributions are compressed. We ! have software on our tapes and FTP sites to uncompress these files. Due to ! patent troubles with `compress', we use another compression program, `gzip'. ! (Such prohibitions on software development are fought by the League for ! Programming Freedom; *note What Is the LPF::., for details.) ! ! GNU `make' is on several of our tapes because some system vendors supply no ! `make' utility at all and some native `make' programs lack the `VPATH' ! feature essential for using the GNU configure system to its full extent. The ! GNU `make' sources have a shell script to build `make' itself on such systems. ! ! We welcome all bug reports and enhancements sent to the appropriate ! electronic mailing list (*note Free Software Support::.). ! ! ! ! Configuring GNU Software ! ------------------------ ! ! We are using, Autoconf, a uniform scheme for configuring GNU software ! packages in order to compile them (see "Autoconf" below, in this article). ! The goal is to have all GNU software support the same alternatives for naming ! machine and system types. ! ! Ultimately, it will be possible to configure and build the entire system all ! at once, eliminating the need to configure each individual package separately. ! ! You can also specify both the host and target system to build ! cross-compilation tools. Most GNU programs now use Autoconf-generated ! configure scripts. ! ! ! ! GNU Software currently available ! -------------------------------- ! ! For future programs and features, see *Note Forthcoming GNUs::. Key to cross reference: *************** Key to cross reference: *** 350,367 **** BinCD ! Binaries CD-ROM ! DjgppD Djgpp Diskettes ! DosCD ! MS-DOS CD-ROM EmcsD Emacs Diskettes - LspEmcT - Lisps/Emacs Tape - LangT Languages Tape --- 536,550 ---- BinCD ! December 1994 Binaries CD-ROM ! DjgpD Djgpp Diskettes ! DosBC ! MS-DOS Book with CD-ROM EmcsD Emacs Diskettes LangT Languages Tape *************** Key to cross reference: *** 370,378 **** 4.4BSD-Lite Tape SchmT Scheme Tape SrcCD ! Source CD-ROM UtilD --- 553,564 ---- 4.4BSD-Lite Tape + LspEmcT + Lisps/Emacs Tape + SchmT Scheme Tape SrcCD ! December 1995 Source CD-ROMs UtilD *************** Key to cross reference: *** 382,386 **** Utilities Tape ! VMSCompT VMS Compiler Tape --- 568,572 ---- Utilities Tape ! VMSCmpT VMS Compiler Tape *************** Key to cross reference: *** 397,426 **** X11 Required Tape ! ! Configuring GNU Software: ! ! We are using a uniform scheme for configuring GNU software packages in order ! to compile them. It uses the `Autoconf' program (see item below). The goal ! is to have all GNU software support the same alternatives for naming machine ! and system types. When the GNU system is complete it will be possible to ! configure and build the entire system at once, eliminating the need to ! separately configure each individual package. The configuration scheme lets ! you specify both the host and target system to build cross-compilation tools. ! ! ! ! GNU software currently available: ! ! (For new features and coming programs, see *Note Forthcoming GNUs::.) ! ! * `acm' (SrcCD, UtilT) `acm' is a LAN-oriented, multiplayer aerial combat simulation that runs under the X Window System. Players engage in air to air combat against one another using heat seeking missiles and cannons. We are working on ! more accurate simulation of real airplane flight characteristics. ! * Autoconf (SrcCD, UtilT) Autoconf produces shell scripts which automatically configure source code --- 583,607 ---- X11 Required Tape + [FSFman] shows that we sell a manual for that package. [FSFrc] shows we sell + a reference card for that package. To order them, see the *note Free + Software Foundation Order Form::.. *Note Documentation::, for more + information on the manuals. Source code for each manual or reference card is + included with each package. ! * `acm' (SrcCD, UtilT) `acm' is a LAN-oriented, multiplayer aerial combat simulation that runs under the X Window System. Players engage in air to air combat against one another using heat seeking missiles and cannons. We are working on ! a more accurate simulation of real airplane flight characteristics. ! ! * apache (SrcCD) ! ! Apache is an HTTP server designed as a plug-in replacement for version ! 1.3 or 1.4 of the NCSA server. It fixes numerous bugs in the NCSA ! server and includes many frequently requested new features, and has an ! API which allows it to be extended to meet users' needs more easily. ! * Autoconf (SrcCD, UtilT) Autoconf produces shell scripts which automatically configure source code *************** GNU software currently available: *** 432,449 **** generates do not. ! Most GNU programs now use Autoconf-generated configure scripts. ! * BASH (SrcCD, UtilT) ! The GNU shell, BASH (Bourne Again SHell), is compatible with the Unix ! `sh' and offers many extensions found in `csh' and `ksh'. BASH has job ! control, `csh'-style command history, and command-line editing (with ! Emacs and `vi' modes built-in, and the ability to rebind keys) via the ! readline library. BASH conforms to the POSIX 1003.2 shell specification. ! ! * `bc' (DjgppD, DosCD, SrcCD, UtilT) `bc' is an interactive algebraic language with arbitrary precision ! numbers. GNU `bc' follows the POSIX.2-1992 standard, with several extensions including multi-character variable names, an `else' statement, and full Boolean expressions. The RPN calculator `dc' is now --- 613,628 ---- generates do not. ! * BASH (SrcCD, UtilT) ! GNU's shell, BASH (Bourne Again SHell), is compatible with the Unix `sh' ! and offers many extensions found in `csh' and `ksh'. BASH has job ! control, `csh'-style command history, command-line editing (with Emacs ! and `vi' modes built-in, and the ability to rebind keys) via the ! `readline' library. BASH conforms to the POSIX 1003.2-1992 standard. ! * `bc' (DosBC, SrcCD, UtilT) `bc' is an interactive algebraic language with arbitrary precision ! numbers. GNU `bc' follows the POSIX 1003.2-1992 standard, with several extensions including multi-character variable names, an `else' statement, and full Boolean expressions. The RPN calculator `dc' is now *************** GNU software currently available: *** 451,455 **** as a `dc' preprocessor. ! * BFD (BinCD, DjggpD, DosCD, LangT, SrcCD) The Binary File Descriptor library allows a program which operates on --- 630,634 ---- as a `dc' preprocessor. ! * BFD (BinCD, DjgpD, DosBC, LangT, SrcCD) The Binary File Descriptor library allows a program which operates on *************** GNU software currently available: *** 458,482 **** know the details of a particular format. One result is that all programs using BFD will support formats such as a.out, COFF, and ELF. ! BFD comes with source for Texinfo documentation (not yet published on ! paper). Presently BFD is not distributed separately; it is included ! with packages that use it. ! * Binutils (BinCD, DjgppD, DosCD, LangT, SrcCD) ! Binutils includes the programs: `ar', `c++filt', `demangle', `gas', `gprof', `ld', `nlmconv', `nm', `objcopy', `objdump', `ranlib', `size', ! `strings', and `strip'. ! Binutils Version 2 uses the BFD library. The GNU linker `ld' emits source-line numbered error messages for multiply-defined symbols and ! undefined references. It interprets a superset of the AT&T Linker ! Command Language, which gives general control over where segments are ! placed in memory. `nlmconv' converts object files into Novell NetWare ! Loadable Modules. `objdump' can disassemble code for a29k, ALPHA, ! H8/300, H8/500, HP-PA, i386, i960, m68k, m88k, MIPS, SH, SPARC, & Z8000 ! processors, and can display other data (e.g., symbols & relocations) ! from any file format understood by BFD. ! * Bison (BinCD, DjgppD, DosCD, LangT, SrcCD, VMSCompT) Bison is an upwardly compatible replacement for the parser generator --- 637,666 ---- know the details of a particular format. One result is that all programs using BFD will support formats such as a.out, COFF, and ELF. ! BFD comes with Texinfo source for a manual (not yet published on paper). ! ! At present, BFD is not distributed separately; it is included with ! packages that use it. ! * Binutils (BinCD, DjgpD, DosBC, LangT, SrcCD; `gas' only on VMSCmpT) ! Binutils includes these programs: `ar', `c++filt', `demangle', `gas', `gprof', `ld', `nlmconv', `nm', `objcopy', `objdump', `ranlib', `size', ! `strings', & `strip'. ! Binutils version 2 uses the BFD library. The GNU assembler, `gas', ! supports the a29k, Alpha, H8/300, H8/500, HP-PA, i386, i960, m68k, m88k, ! MIPS, NS32K, SH, SPARC, Tahoe, Vax and Z8000 CPUs, and attempts to be ! compatible with many other assemblers for UNIX and embedded systems. It ! can produce mixed C-and-assembly listings, and includes a macro facility ! similar to that in some other assemblers. GNU's linker `ld' emits source-line numbered error messages for multiply-defined symbols and ! undefined references, and interprets a superset of AT&T's Linker Command ! Language, which gives control over where segments are placed in memory. ! `nlmconv' converts object files into Novell NetWare Loadable Modules. ! `objdump' can disassemble code for most of the CPUs listed above, and ! can display other data (e.g., symbols and relocations) from any file ! format read by BFD. ! * Bison (BinCD,DjgpD,DosBC,LangT,SrcCD,VMSCmpT)[FSFman,FSFrc] Bison is an upwardly compatible replacement for the parser generator *************** GNU software currently available: *** 484,492 **** included. *Note Documentation::. ! We recently decided to change the policy for using the parsers that ! Bison generates. It is now permitted to use Bison-generated parsers in ! non-free programs. *Note GNUs Flashes::. ! * GNU C Library (BinCD, LangT, SrcCD) The GNU C library supports ANSI C-1989, POSIX 1003.1-1990 and most of the --- 668,675 ---- included. *Note Documentation::. ! A recent policy change allows non-free programs to use Bison-generated ! parsers. *Note Conditions for Using Bison::. ! * C Library (BinCD, LangT, SrcCD) [FSFman] The GNU C library supports ANSI C-1989, POSIX 1003.1-1990 and most of the *************** GNU software currently available: *** 494,499 **** and includes many System V functions, plus GNU extensions. ! The C Library will perform many functions of the Unix system calls in ! the Hurd. Mike Haertel has written a fast `malloc' which wastes less memory than the old GNU version. The GNU regular-expression functions (`regex' and `rx') now nearly conform to the POSIX 1003.2 standard. --- 677,682 ---- and includes many System V functions, plus GNU extensions. ! The C Library performs many functions of the Unix system calls in the ! GNU/Hurd. Mike Haertel has written a fast `malloc' which wastes less memory than the old GNU version. The GNU regular-expression functions (`regex' and `rx') now nearly conform to the POSIX 1003.2 standard. *************** GNU software currently available: *** 510,530 **** The C Library runs on Sun-3 (SunOS 4.1), Sun-4 (SunOS 4.1 or Solaris 2), HP 9000/300 (4.3BSD), SONY News 800 (NewsOS 3 or 4), MIPS DECstation ! (Ultrix 4), DEC Alpha (OSF/1), i386/i486 (System V, SVR4, BSD, SCO 3.2 & ! SCO ODT 2.0), Sequent Symmetry i386 (Dynix 3) & SGI (Irix 4). Texinfo ! source for the `GNU C Library Reference Manual' is included (*note ! Documentation::.); the manual is now being updated. ! * GNU C++ Library (BinCD, DjgppD, DosCD, LangT, SrcCD) The GNU C++ library (libg++) contains an extensive collection of C++ ! `forest' classes, an IOStream library for input/output routines, and support tools for use with G++. Supported classes include: Obstacks, multiple-precision Integers and Rationals, Complex numbers, arbitrary ! length Strings, BitSets and BitStrings. Version 2.6.2 includes the ! initial release of the libstdc++ library. This implements library ! facilities defined by the forthcoming ANSI/ISO C++ standard, including ! the Standard Template Library. ! * Calc (LspEmcT, SrcCD) Calc (written by Dave Gillespie in Emacs Lisp) is an extensible, advanced --- 693,714 ---- The C Library runs on Sun-3 (SunOS 4.1), Sun-4 (SunOS 4.1 or Solaris 2), HP 9000/300 (4.3BSD), SONY News 800 (NewsOS 3 or 4), MIPS DECstation ! (Ultrix 4), DEC Alpha (OSF/1), i386/i486/Pentium (System V, SVR4, BSD, ! SCO 3.2, & SCO ODT 2.0), Sequent Symmetry i386 (Dynix 3), & SGI (Irix ! 4). *Note Forthcoming GNUs::. Texinfo source for the ! `GNU C Library Reference Manual' is included (*note Documentation::.. ! * C++ Library (BinCD, DjgpD, DosBC, LangT, SrcCD) The GNU C++ library (libg++) contains an extensive collection of C++ ! "forest" classes, an IOStream library for input/output routines, and support tools for use with G++. Supported classes include: Obstacks, multiple-precision Integers and Rationals, Complex numbers, arbitrary ! length Strings, BitSets, and BitStrings. ! The distribution also includes the libstdc++ library. This implements ! library facilities defined by the forthcoming ANSI/ISO C++ standard, ! including a port of the Standard Template Library. ! ! * Calc (DosBC, LspEmcT, SrcCD) [FSFman, FSFrc] Calc (written by Dave Gillespie in Emacs Lisp) is an extensible, advanced *************** GNU software currently available: *** 532,558 **** can use Calc just as a simple four-function calculator, but it has many more features including: choice of algebraic or RPN (stack-based) entry; ! logarithmic, trigonometric & financial functions; arbitrary precision; complex numbers; vectors; matrices; dates; times; infinities; sets; algebraic simplification; differentiation & integration. It outputs to ! `gnuplot' & comes with source for a reference card & a Manual. *Note ! Documentation::. ! * GNU Chess (SrcCD, UtilT, WdwsD) ! GNU Chess lets the computer play a full game of chess with you. It runs ! on most platforms & has dumb terminal, "curses" & X terminal interfaces. ! The X terminal interface is based on the `xboard' program. ! m{No Value For "ergegrafkludge"} GNU Chess implements many specialized ! features including the null move heuristic, a hash table with aging, the ! history heuristic (another form of the earlier killer heuristic), ! caching of static evaluations, & a database which lets it play the first ! several moves of the game quickly. Recent improvements include better ! heuristics, faster evaluation, thinking on opponent's time, a perfect ! King and Pawn vs King endgame routine, Swedish & German language ! support, support for more book formats, a rudimentary Bobby Fischer ! clock, & bug fixes. It is primarily supported by Stuart Cracraft, Chua ! Kong Sian, & Tim Mann on behalf of the FSF. ! * CLISP (LspEmcT, SrcCD) CLISP is a Common Lisp implementation by Bruno Haible and Michael Stoll. --- 716,753 ---- can use Calc just as a simple four-function calculator, but it has many more features including: choice of algebraic or RPN (stack-based) entry; ! logarithmic, trigonometric, & financial functions; arbitrary precision; complex numbers; vectors; matrices; dates; times; infinities; sets; algebraic simplification; differentiation & integration. It outputs to ! `gnuplot', & comes with source for a manual & reference card (*note ! Documentation::.). ! * `cfengine' (SrcCD, UtilT) ! `cfengine' is used for maintaining site-wide configuration of a ! heterogeneous Unix network using a simple high level language. Its ! appearance is similar to `rdist', but also allows many more operations ! to be performed automatically. See Mark Burgess, "A Site Configuration ! Engine", `Computing Systems', Vol. 8, No. 3 (ask `office@usenix.org' how ! to get a copy). ! * Chess (SrcCD, UtilT, WdwsD) ! ! GNU Chess enables most modern computers to play a full game of chess. It ! supports a plain terminal interface, a curses interface, and a spiffy X ! Window interface via `xboard'. ! ! Improvements this past year include fixes to the game analyzer, book, & ! hash table; smartening up draw and mate; improved thinking on opponent's ! time; Autoconf installation; a makefile for Windows NT compilation; ! forward pruning; unlimited quiescence captures; improved evaluation; ! improved null & time control logic; & repetition-detection. ! ! GNU Chess was originated by Stuart Cracraft. Improvements & rewrites are ! from John Stanback, Cha Kong Sian, Mike McGann, and many others. ! ! Send bugs to `bug-gnu-chess@prep.ai.mit.edu' & general comments to ! `info-gnu-chess@prep.ai.mit.edu'. ! ! * CLISP (LspEmcT, SrcCD) CLISP is a Common Lisp implementation by Bruno Haible and Michael Stoll. *************** GNU software currently available: *** 560,647 **** edition)' and the ANSI Common Lisp standard. CLISP includes an interpreter, a byte-compiler, a large subset of CLOS, a foreign language ! interface and, for some machines, a screen editor. The user interface ! language (English, German, French) is chooseable at run time. Major packages that run in CLISP include CLX & Garnet. CLISP needs only 2 MB of memory & runs on many microcomputers (including MS-DOS systems, OS/2, ! the Atari ST, Amiga 500-4000, Acorn RISC PC) & Unix-like systems ! (GNU/Linux, Sun4, SVR4, SGI, HP-UX, DEC Alpha, NeXTstep & others). ! * GNU Common Lisp (LspEmcT, SrcCD) ! GNU Common Lisp (GCL) has a compiler and interpreter for Common Lisp. It ! used to be known as Kyoto Common Lisp. It is very portable and extremely ! efficient on a wide class of applications. It compares favorably in ! performance with commercial Lisps on several large theorem-prover and ! symbolic algebra systems. It supports the CLtL1 specification but is ! moving towards the proposed ANSI definition. GCL compiles to C and ! then uses the native optimizing C compilers (e.g., GCC). A function ! with a fixed number of args and one value turns into a C function of the ! same number of args, returning one value, so GCL is maximally efficient ! on such calls. It has a conservative garbage collector which allows ! great freedom for the C compiler to put Lisp values in arbitrary ! registers. It has a source level Lisp debugger for interpreted code, ! with display of source code in an Emacs window. Ita profiling tools ! (based on the C profiling tools) count function calls and the time spent ! in each function. CLX works with GCL. ! ! There is now a builtin interface with the TK widget system. It runs in ! a separate process so that users may monitor progress on lisp ! computations, or interact with running computations via a windowing ! interface. ! ! There is also an Xlib interface via C (xgcl-2). PCL runs with GCL (see ! PCL item later in this article). *Note Forthcoming GNUs::, for plans for ! about GCL, or for recent developments. GCL version 2.0 is released ! under the GNU Library General Public License. ! ! * `cpio' (DjgppD, DosCD, SrcCD, UtilD, UtilT) ! ! `cpio' is an alternative archive program with all the features of SVR4 ! `cpio', including support for the final POSIX 1003.1 `ustar' standard. ! `mt', a program to position magnetic tapes, is included with `cpio'. ! ! * CVS (SrcCD, UtilT) ! ! CVS, the Concurrent Version System, manages software revision and release ! control in a multi-developer, multi-directory, multi-group environment. ! It works best in conjunction with RCS versions 4 and above, but will ! parse older RCS formats with the loss of CVS's fancier features. See ! Berliner, Brian, "CVS-II: Parallelizing Software Development," ! `Proceedings of the Winter 1990 USENIX Association Conference'. To find ! out how to get a copy of this report, contact `office@usenix.org'. ! ! * DejaGnu (LangT, SrcCD) ! ! DejaGnu is a framework for testing other programs that provides a single ! front end for all tests. The framework's flexibility and consistency ! makes it easy to write tests for any program. DejaGnu comes with ! `expect', which runs scripts to conduct dialogs with programs. ! * Diffutils (DjgppD, DosCD, SrcCD, UtilD, UtilT) GNU `diff' compares files showing line-by-line changes in several flexible formats. It is much faster than traditional Unix versions. The ! Diffutils package contains `diff', `diff3', `sdiff', and `cmp'. ! Recent Diffutils improvements include more consistent handling of ! character sets, and a new `diff' option to do all input/output in ! binary; this is useful on some non-Posix hosts. ! ! Plans for the Diffutils package include support for internationalization ! (e.g., error messages in Chinese), and for some non-Unix PC environments. ! ! * DJGPP (BinCD, DjgppD, DosCD) ! ! DJ Delorie has ported GCC/G++ 2.6.0 (see the GCC item in this section) ! to the i386 MS-DOS platform. The DJGPP package also contains a 32-bit ! 80386 DOS extender with symbolic debugger; development libraries; and ! ports of Bison, `flex', GAS, and the GNU Binutils. Full source code is ! provided. It requires at least 5MB of hard disk space to install and ! 512K of RAM to use. It supports SVGA (up to 1024x768), XMS & VDISK ! memory allocation, `himem.sys', VCPI (e.g., QEMM, DESQview, & 386MAX), ! and DPMI (e.g., Windows 3.x, OS/2, QEMM, & QDPMI). Ask ! `djgpp-request@sun.soe.clarkson.edu' to join a DJGPP users mailing list. ! * `dld' (LangT, SrcCD) `dld' is a dynamic linker written by W. Wilson Ho. Linking your program --- 755,851 ---- edition)' and the ANSI Common Lisp standard. CLISP includes an interpreter, a byte-compiler, a large subset of CLOS, a foreign language ! interface, and, for some machines, a screen editor. The user interface ! language (English, German, French) is choosable at run time. Major packages that run in CLISP include CLX & Garnet. CLISP needs only 2 MB of memory & runs on many microcomputers (including MS-DOS systems, OS/2, ! Windows NT, Amiga 500-4000, Acorn RISC PC) & Unix-like systems ! (GNU/Linux, Sun4, SVR4, SGI, HP-UX, DEC Alpha, NeXTStep, & others). ! ! * Common Lisp **Note Forthcoming GNUs::* (LspEmcT, SrcCD) ! ! GNU Common Lisp (GCL, formerly known as Kyoto Common Lisp) is a compiler ! & interpreter for Common Lisp. GCL is very portable & extremely ! efficient on a wide class of applications, & compares favorably in ! performance with commercial Lisps on several large theorem-prover & ! symbolic algebra systems. GCL supports the CLtL1 specification but is ! moving towards the proposed ANSI standard. ! ! GCL compiles to C & then uses the native optimizing C compiler (e.g., ! GCC). A function with a fixed number of args & one value turns into a C ! function of the same number of args, returning one value--so GCL is ! maximally efficient on such calls. Its conservative garbage collector ! gives great freedom to the C compiler to put Lisp values in registers. ! It has a source level Lisp debugger for interpreted code & displays ! source code in an Emacs window. Its profiler (based on the C profiling ! tools) counts function calls & the time spent in each function. ! ! There is now a built-in interface to the Tk widget system. It runs in a ! separate process, so users may monitor progress on Lisp computations or ! interact with running computations via a windowing interface. ! ! There is also an Xlib interface via C (xgcl-2). CLX runs with GCL, as ! does PCL (see "PCL" later in this article). *Note Forthcoming GNUs::, ! for plans regarding GCL or for recent developments. ! ! GCL version 2.2 is released under the GNU Library General Public License. ! ! * CLX (LspEmcT, SrcCD) ! ! CLX is an X Window interface library for GCL. ! ! * `cpio' (DosBC, SrcCD, UtilD, UtilT) ! ! `cpio' is an archive program with all the features of SVR4 `cpio', ! including support for the final POSIX 1003.1 `ustar' standard. `mt', a ! program to position magnetic tapes, is included with `cpio'. ! ! * CVS (SrcCD, UtilT) ! CVS, the Concurrent Version System, manages software revision & release ! control at a multi-developer, multi-directory, multi-group site. It ! works best with RCS versions 4 and above, but will parse older RCS ! formats, losing some of CVS's fancier features. (See Berliner, Brian, ! "CVS-II: Parallelizing Software Development," `Proceedings of the Winter ! 1990 USENIX Association Conference'; ask `office@usenix.org' how to get ! a copy.) ! * DejaGnu (LangT, SrcCD) ! DejaGnu is a framework to test programs with a single front end for all ! tests. The framework's flexibility & consistency makes it easy to write ! tests. ! ! DejaGnu comes with `expect', which runs scripts to conduct dialogs with ! programs. ! ! * Diffutils (DjgpD, DosBC, SrcCD, UtilT) GNU `diff' compares files showing line-by-line changes in several flexible formats. It is much faster than traditional Unix versions. The ! Diffutils package contains `diff', `diff3', `sdiff', & `cmp'. Recent ! improvements include more consistent handling of character sets and a ! new `diff' option to do all input/output in binary; this is useful on ! some non-POSIX hosts. Plans for the Diffutils package include support ! for internationalization (e.g., error messages in Chinese) and for some ! non-Unix PC environments. ! ! * DJGPP (BinCD, DjgpD, DosBC) ! ! DJ Delorie has ported GCC/G++ (see "GCC" in this article) to i386s ! running MS-DOS. DJGPP has a 32-bit i386 DOS extender with a symbolic ! debugger; development libraries; & ports of Bison, `flex', & Binutils. ! Full source code is provided. It needs at least 5MB of hard disk space ! to install & 512K of RAM to use. It supports SVGA (up to 1024x768), XMS ! & VDISK memory allocation, `himem.sys', VCPI (e.g., QEMM, DESQview, & ! 386MAX), & DPMI (e.g., Windows 3.x, OS/2, QEMM, & QDPMI). ! ! The FSF offers it on the *Note Compiler Tools Binaries CD-ROM::, and on ! the *Note DJGPP Diskettes::. FTP from `oak.oakland.edu' in ! `/simtel/vendors/djgpp/' (or another SimTel mirror site). ! To join a DJGPP users mailing list, ask ! `djgpp-request@sun.soe.clarkson.edu'. ! * `dld' (LangT, SrcCD) `dld' is a dynamic linker written by W. Wilson Ho. Linking your program *************** GNU software currently available: *** 650,777 **** 3.4 & 4.0), SPARC (SunOS 4.0), Sequent Symmetry (Dynix), & Atari ST. ! * `doschk' (DjgppD, DosCD, SrcCD, UtilT) ! This program is intended as a utility to help software developers ensure ! that their source file names are distinguishable on System V platforms ! with 14-character filenames and on MS-DOS with 8+3 character filenames. ! * `ecc' (SrcCD, UtilT) `ecc' is a Reed-Solomon error correction checking program, which can correct three byte errors in a block of 255 bytes and detect more severe ! errors. Contact `paulf@Stanford.EDU' for more information. ! * `ed' (SrcCD, UtilT) ! Ed is the standard text editor. ! * Elib (LspEmcT, SrcCD) Elib is a small library of Emacs Lisp functions, including routines for using AVL trees and doubly-linked lists. ! * GNU Emacs In 1975, Richard Stallman developed the first Emacs, an extensible, ! customizable real-time display editor and computing environment. GNU ! Emacs is his second implementation. It offers true Lisp--smoothly ! integrated into the editor--for writing extensions, and provides an ! interface to the X Window System. It also runs on MS-DOS and Windows ! NT. In addition to its powerful native command set, Emacs has ! extensions which emulate the editors vi and EDT (DEC's VMS editor). ! Emacs has many other features which make it a full computing support ! environment. Our long term plan is now to move it in the direction of a ! WYSIWYG word processor and make it easy for beginners to use. Source ! for the `GNU Emacs Manual', `Programming in Emacs Lisp, An ! Introduction', the `GNU Emacs Lisp Reference Manual', and a reference ! card come with the software. *Note Documentation::. ! ! * GNU Emacs 18 (EmcsD, LspEmcT, SrcCD, VMSEmcsT) ! ! GNU Emacs 18.59 is the last release of version 18 from the FSF. We are ! no longer maintaining it. It runs on many Unix systems. In hardware ! order: Alliant FX/80 & FX/2800, Altos 3068, Amdahl (UTS), Apollo, AT&T ! (3Bs & 7300 PC), DG Aviion, Bull DPX/2 (2nn & 3nn) CCI 5/32 & 6/32, ! Celerity, Convex, Digital (DECstation 3100 & 5000 (PMAXes), Mips, VAX ! (BSD, SysV & VMS)), Motorola Delta 147 & 187, Dual, Elxsi 6400, Encore ! (DPC, APC & XPC), Gould, HP (9000 series 200, 300, 700 & 800, but not ! 500), HLH Orion (original & 1/05), IBM (RS/6000 (AIX), RT/PC (4.2 & AIX) ! & PS/2 (AIX (386 only))), ISI (Optimum V, 80386), Intel 860 & 80386 ! (BSD, Esix, SVR3, SVR4, SCO, ISC, IX, AIX & others), Iris (2500, 2500 ! Turbo & 4D), Masscomp, MIPS, National Semiconductor 32000, NeXT (Mach), ! NCR Tower 32 (SVR2 & SVR3), Nixdorf Targon 31, Nu (TI & LMI), pfa50, ! Plexus, Prime EXL, Pyramid (original & MIPS), Sequent (Balance & ! Symmetry), SONY News (m68k & MIPS), Stride (system release 2), all Suns ! including 386i (all SunOS & some Solaris vers.), Tadpole, Tahoe, Tandem ! Integrity S2, Tektronix (16000 & 4300), Triton 88, Ustation E30 (SS5E), ! Whitechapel (MG1) & Wicat. ! ! In operating system order: AIX (RS/6000, RT/PC, 386-PS/2), BSD (vers. ! 4.1, 4.2, 4.3), DomainOS, Esix (386), HP-UX (HP 9000 series 200, 300, ! 700, 800 but not 500), ISC (386), IX (386), Mach, Microport, NewsOS ! (Sony m68k & MIPS) SCO (386), SVR0 (Vax, AT&T 3Bs), SVR2, SVR3, SVR4, ! Solaris 2.0, SunOS, UTS (Amdahl), Ultrix (vers. 3.0, 4,1), Uniplus 5.2 ! (Dual machines), VMS (vers. 4.0, 4.2, 4.4, 5.5) & Xenix (386). ! ! * GNU Emacs 19 (DosCD, EmacsD, LspEmcT, SrcCD) ! ! Emacs 19 works with character-only terminals as well as with the X ! Window System (with or without the X toolkit); New features in Emacs 19 ! include: multiple X windows ("frames" to Emacs), with either a separate ! X window for the minibuffer or a minibuffer attached to each X window; ! property lists associated with regions of text in a buffer; multiple ! fonts and colors defined by those properties; simplified and improved ! processing of function keys, mouse clicks and mouse movement; X ! selection processing, including clipboard selections; hooks to be run if ! point or mouse moves outside a certain range; menu bars and popup menus ! defined by keymaps; scrollbars; before and after change hooks; ! source-level debugging of Emacs Lisp programs; European character sets ! support; floating point numbers; improved buffer allocation, including ! returning storage to the system when a buffer is killed; interfacing ! with the X resource manager; GNU configuration scheme support; good RCS ! support; & many updated libraries. ! ! Recent features include support for Motif widgets as well as the Athena ! widgets, displaying multiple views of an outline at the same time, ! version control support for CVS and for multiple branches, ability to ! open frames on more than one X display from a single Emacs job, ! operation on MS-DOS and MS Windows, commands to edit text properties, ! text properties for formatting text, the ability to save text properties ! in files, & GNU-standard long named command line options. ! ! Emacs 19.29 is believed to work on, in hardware order: Acorn Risc ! machine (RISCiX); Alliant FX/2800 (BSD); Alpha (OSF/1); Apollo ! (DomainOS); Bull DPX/2 2nn & 3nn (SysV.3) & sps7 (SysV.2); Clipper; ! Convex (BSD); Cubix QBx (SysV); Data General Aviion (DGUX); DEC MIPS ! (Ultrix 4.2 & OSF/1, not VMS); Elxsi 6400 (SysV); Gould Power Node & NP1 ! (4.2 & 4.3BSD); Harris Night Hawk 1200 and 3000, 4000 and 5000 (cxux); ! Honeywell XPS100 (SysV); HP 9000 series 200, 300, 700, 800 (but not 500) ! (4.3BSD or HP-UX 7, 8, 9); Intel i386, i486 and Pentium (386BSD, AIX, ! BSDI/386, FreeBSD, Esix, GNU/Linux, ISC, MS-DOS (*note MS-DOS ! Diskettes::. & *Note MS-DOS CD-ROM::), NetBSD, SCO3.2v4, SysV, Xenix, ! WindowsNT); IBM RS6000 (AIX 3.2); IBM RT/PC (AIX or BSD); Motorola Delta ! 147 & 187 (SysV.3, SysV.4, & m88kbcs); National Semiconductor 32K ! (Genix); NeXT (BSD or Mach 2 w/ NeXTStep 3.0); Paragon (OSF/1); Prime ! EXL (SysV); Pyramid (BSD); Sequent Symmetry (BSD, ptx); Siemens RM400 ! and RM600 (SysV); SGI Iris 4D (Irix 4.x & 5.x); Sony News/RISC (NewsOS); ! Stardent i860 (SysV); Sun 3 & 4, SPARC 1, 1+, 2, 10 & Classic (SunOS ! 4.0, 4.1, Solaris 2.0-2.3); Tadpole 68k (SysV); Tektronix XD88 (SysV.3) ! & 4300 (BSD); & Titan P2 & P3 (SysV). ! ! In operating system order: AIX (i386, RS6000, RT/PC); 4.1, 4.2, 4.3BSD ! (i386, i860, Convex, Gould Power Node & NP1, HP9000 series 300, NeXT, ! Pyramid, Symmetry, Tektronix 4300, RT/PC); DG/UX (Aviion); ! DomainOS(Apollo); Esix (i386); FreeBSD (i386); Genix (ns32k); GNU/Linux ! (i386); HP-UX 7, 8, 9 (HP 9000 series 200, 300, 700, 800, but not 500); ! Irix 4 & 5 (Iris 4D); ISC (i386); Mach 2 & 3 (i386, NeXT); MS-DOS (*note ! MS-DOS Diskettes::. & *Note MS-DOS CD-ROM::); NetBSD (i386, HP9000 ! series 300); OSF/1 (Alpha, Paragon); RISCiX (Acorn); SCO 3.2v4 (i386); ! SysV (Cubix QBx, Elxsi 6400, Honeywell XPS100, Intel i386, Prime EXL, ! Siemens RM400 and RM600, Stardent, Tadpole 68k, Titan P2 & P3); SysV.2 ! (Bull sps7); SysV.3 (Bull DPX/2 2nn & 3nn, Motorola Delta 147 & 187, ! Tektronix XD88); SysV.4 (Motorola Delta 147 & 187, Stardent i860); ! Solaris 2 (SPARC 1, 1+, 2, 10, Classic); SunOS 4.0, 4.1 (Sun 3 & 4, ! SPARC 1, 1+, 2, 10 & Classic); Ultrix 4.2 (DEC MIPS); Windows NT; & ! Xenix (i386). Other configurations supported by Emacs 18 should work with few changes --- 854,956 ---- 3.4 & 4.0), SPARC (SunOS 4.0), Sequent Symmetry (Dynix), & Atari ST. ! * `doschk' (DosBC, SrcCD, UtilT) ! This program is a utility to help software developers ensure that their ! source file names are distinguishable on System V platforms with ! 14-character filenames and on MS-DOS systems with 8+3 character ! filenames. ! * `ecc' (LangT, SrcCD) `ecc' is a Reed-Solomon error correction checking program, which can correct three byte errors in a block of 255 bytes and detect more severe ! errors. Contact `paulf@stanford.edu' for more information. ! * `ed' (SrcCD, UtilT) ! `ed' is the standard text editor. It is line-oriented and can be used ! interactively or in scripts. ! * Elib (DosBC, LspEmcT, SrcCD) Elib is a small library of Emacs Lisp functions, including routines for using AVL trees and doubly-linked lists. ! * Elisp archive (SrcCD) ! ! This is a snapshot of Ohio State's GNU Emacs Lisp FTP Archive. FTP it ! from `archive.cis.ohio-state.edu' in `/pub/gnu/emacs/elisp-archive'. ! ! * Emacs **Note Forthcoming GNUs:: for future plans.* In 1975, Richard Stallman developed the first Emacs, an extensible, ! customizable real-time display editor & computing environment. GNU Emacs ! is his second implementation. It offers true Lisp--smoothly integrated ! into the editor--for writing extensions & provides an interface to the X ! Window System. It runs on Unix, MS-DOS, & Windows NT. In addition to ! its powerful native command set, Emacs has extensions which emulate the ! editors vi & EDT (Digital's VMS editor). Emacs has many other features ! which make it a full computing support environment. Source for the `GNU ! Emacs Manual' & a reference card comes with the software. Sources for ! the `GNU Emacs Lisp Reference Manual' & `Programming in Emacs Lisp: An ! Introduction' are distributed in separate packages. *Note ! Documentation::. ! ! * Emacs 18 (LspEmcT, SrcCD, VMSEmcsT) [FSFrc] ! ! Emacs 18.59 is the last release of version 18 from the FSF. We no longer ! maintain it. It supports these Unix systems that Emacs 19 doesn't ! support (please help port Emacs 19 to these systems): Alliant FX/80, ! Altos 3068, Amdahl (UTS), AT&T (3Bs & 7300 PC), CCI 5/32 & 6/32, ! Celerity, Digital (VAX VMS), Dual, Encore (APC, DPC, & XPC), HLH Orion ! (original & 1/05), ISI (Optimum V, 80386), Masscomp, NCR Tower 32 (SVR2 ! & SVR3), Nixdorf Targon 31, Nu (TI & LMI), pfa50, Plexus, Prime EXL, ! Stride (system rel. 2), Tahoe, Tandem Integrity S2, Tektronix 16000, ! Triton 88, Ustation E30 (SS5E), Whitechapel (MG1), & Wicat. ! ! * Emacs 19 (DosBC, EmcsD, LspEmcT, SrcCD) [FSFman(s), FSFrc] ! ! Emacs 19 works with character-only terminals & with the X Window System ! (with or without an X toolkit). New features in Emacs 19 include: ! multiple X windows ("frames" to Emacs), with a separate X window for the ! minibuffer or a minibuffer attached to each X window; property lists ! associated with regions of text in a buffer; multiple fonts & colors ! defined by those properties; simplified/improved processing of function ! keys, mouse clicks, and mouse movement; X selection processing, ! including clipboard selections; hooks to be run if the point or mouse ! moves outside a certain range; menu bars and popup menus defined by ! keymaps; scrollbars; before- and after-change hooks; a source-level ! debugger for Emacs Lisp programs; floating point numbers; improved ! buffer allocation, including returning storage to the system when a ! buffer is killed; interfacing with the X resource manager; many updated ! libraries; integrated support for version control systems (RCS, CVS, & ! SCCS); Autoconf based configuration; and support for European character ! sets. ! ! Recent features include the ability to open frames on more than one X ! display from a single Emacs job, operation on MS-DOS, MS Windows, and ! Windows NT, displaying multiple views of an outline at the same time, ! support for the Athena & Motif widgets, version control support for CVS ! and for multiple branches, text properties for formatting text, commands ! to edit text properties and save them in files, and GNU-standard ! long-named command line options. ! ! Emacs 19.30 works on: Acorn RISC (RISCiX); Alliant FX/2800 (BSD); Alpha ! (OSF/1); Apollo (DomainOS); Bull DPX/2 2nn & 3nn (SysV.3) & sps7 ! (SysV.2); Clipper; Convex (BSD); Cubix QBx (SysV); Data General Aviion ! (DGUX); DEC MIPS (Ultrix 4.2, OSF/1, not VMS); Elxsi 6400 (SysV); Gould ! Power Node & NP1 (4.2 & 4.3BSD); Harris Night Hawk 1200, 3000, 4000 & ! 5000 (cxux); Honeywell XPS100 (SysV); HP 9000 series 200, 300, 700, 800 ! (but not 500) (4.3BSD; HP-UX 7, 8, 9); Intel i386/i486/Pentium ! (GNU/Linux, 386BSD, AIX, BSDI/386, FreeBSD, Esix, ISC, MS-DOS (*note ! MS-DOS Diskettes::., & *Note MS-DOS Book with CD-ROM::), NetBSD, ! SCO3.2v4, Solaris, SysV, Xenix, WindowsNT); IBM RS/6000 (AIX 3.2) & ! RT/PC (AIX, BSD); Motorola Delta 147 & 187 (SysV.3, SysV.4, m88kbcs); ! National Semiconductor 32K (Genix); NeXT (BSD, Mach 2 w/ NeXTStep 3.0); ! Paragon (OSF/1); Prime EXL (SysV); Pyramid (BSD); Sequent Symmetry (BSD, ! ptx); Siemens RM400 & RM600 (SysV); SGI Iris 4D (Irix 4.x & 5.x); Sony ! News/RISC (NewsOS); Stardent i860 (SysV); Sun 3 & 4, SPARC 1, 1+, 2, 10, ! Classic (SunOS 4.0, 4.1, Solaris 2.0-2.3); Tadpole 68k (SysV); Tektronix ! XD88 (SysV.3) & 4300 (BSD); & Titan P2 & P3 (SysV). Other configurations supported by Emacs 18 should work with few changes *************** GNU software currently available: *** 779,866 **** systems, we will augment the list. Also see *Note Forthcoming GNUs::. ! * `es' (SrcCD, UtilT) ! `es' is an extensible shell based on `rc' with first class functions, ! lexical scope, exceptions, and rich return values (i.e., functions can return values other than just numbers). `es''s extensibility comes from ! the ability to modify and extend the shell's builtin services, such as path searching and redirection. Like `rc', it is great for both ! interactive use and for scripting, particularly since its quoting rules ! are much less baroque than the C or Bourne shells. ! * `f2c' (LangT, SrcCD) ! `f2c' converts Fortran-77 source files into C or C++, which can be ! compiled with GCC. You can get bug fixes by FTP from site ! `netlib.att.com' or by email from `netlib@research.att.com'. The fixes ! are summarized in the file `/netlib/f2c/changes.Z'. *Note Forthcoming ! GNUs::, for information about GNU Fortran. ! * Fileutils (DjgppD, DosCD, SrcCD, UtilD, UtilT) ! The fileutils work on files: `chgrp', `chmod', `chown', `cp', `dd', `df', `dir', `du', `install', `ln', `ls', `mkdir', `mkfifo', `mknod', `mv', ! `mvdir', `rm', `rmdir', `sync', `touch', & `vdir'. Only some of these ! are on the *Note Selected Utilities Diskettes::. ! * Findutils (DjgppD, DosCD, SrcCD, UtilD, UtilT) `find' is frequently used both interactively and in shell scripts to find files which match certain criteria and perform arbitrary operations ! on them. Also included are `xargs', which applies a command to a list ! of files, and `locate', which scans a database for file names that match ! a pattern. ! * Finger (SrcCD, UtilT) GNU Finger has more features than other finger programs. For sites with ! many hosts, a single host may be designated as the finger "server" host, and other hosts at that site configured as finger "clients". The server ! host collects information about who is logged in to the clients. To ! finger a user at a GNU Finger site, a query to any its client hosts gets ! useful information. GNU Finger supports many customization features, ! including user output filters, and site programmable output for special ! target names. ! * `flex' (DjgppD, DosCD, LangT, SrcCD, UtilD) `flex' is a replacement for the `lex' scanner generator. `flex' was written by Vern Paxson of the Lawrence Berkeley Laboratory and generates ! far more efficient scanners than `lex' does. Source for the `Flex ! Manual' and reference card are included. *Note Documentation::. ! ! * FlexFAX (UtilT) ! FlexFAX is now called HylaFAX. For more information, *Note GNU ! Software::. ! * Fontutils (SrcCD, UtilT) ! The fontutils create fonts for use with Ghostscript or TeX, starting ! with a scanned type image and converting the bitmaps to outlines. They ! also contain general conversion programs and other utilities. ! Fontutils programs include: `bpltobzr', `bzrto', `charspace', ! `fontconvert', `gsrenderfont', `imageto', `imgrotate', `limn', and ! `xbfe'. ! * GAWK (DjgppD, DosCD, LangT, SrcCD) GAWK is upwardly compatible with the latest POSIX specification of `awk'. It also provides several useful extensions not found in other `awk' implementations. Texinfo source for the `GAWK Manual' comes with ! the software. *Note Documentation::. ! * GCC (BinCD, DjgppD, DosCD, LangT, SrcCD, VMSCompT) ! Version 2 of the GNU C Compiler supports multiple languages; the source ! file name suffix or a compiler option selects the language. The GNU C ! Compiler distribution includes support for C, C++ and Objective-C. ! Support for Objective-C was donated by NeXT. The runtime support needed ! to run Objective-C programs is now distributed with GCC (this does not ! include any Objective-C classes aside from `object'). As much as ! possible, G++ is kept compatible with the evolving draft ANSI standard, ! but not with `cfront' (AT&T's compiler), which has been diverging from ! ANSI. The GNU C Compiler is a fairly portable optimizing compiler which --- 958,1050 ---- systems, we will augment the list. Also see *Note Forthcoming GNUs::. ! * `es' (SrcCD, UtilT) ! `es' is an extensible shell (based on `rc') with first class functions, ! lexical scope, exceptions and rich return values (i.e., functions can return values other than just numbers). `es''s extensibility comes from ! the ability to modify and extend the shell's built-in services, such as path searching and redirection. Like `rc', it is great for both ! interactive use and scripting, particularly since its quoting rules are ! much less baroque than the C and Bourne shells. ! ! * `f2c' (LangT, SrcCD) ! `f2c' converts Fortran-77 source into C or C++, which can be compiled ! with GCC or G++. Get bug fixes by FTP from site `netlib.att.com' or by ! email from `netlib@research.att.com'. See the file ! `/netlib/f2c/readme.Z' for a summary. Also see the GNU Fortran item ! later in this article, and in *Note Forthcoming GNUs::. ! * `ffcall' (SrcCD) ! `ffcall' is a C library for implementing foreign function calls in ! embedded interpreters by Bill Triggs and Bruno Haible. It allows C ! functions with arbitrary argument lists and return types to be called or ! emulated (callbacks). ! * Fileutils (DosBC, SrcCD, UtilT) ! ! The Fileutils work on files: `chgrp', `chmod', `chown', `cp', `dd', `df', `dir', `du', `install', `ln', `ls', `mkdir', `mkfifo', `mknod', `mv', ! `rm', `rmdir', `sync', `touch', & `vdir'. ! * Findutils (DosBC, SrcCD, UtilT) `find' is frequently used both interactively and in shell scripts to find files which match certain criteria and perform arbitrary operations ! on them. Also included are `locate', which scans a database for file ! names that match a pattern, and `xargs', which applies a command to a ! list of files. ! * Finger (SrcCD, UtilT) GNU Finger has more features than other finger programs. For sites with ! many hosts, a single host may be designated as the finger "server" host and other hosts at that site configured as finger "clients". The server ! host collects information about who is logged in on the clients. To ! finger a user at a GNU Finger site, a query to any of its client hosts ! gets useful information. GNU Finger supports many customization ! features, including user output filters and site programmable output for ! special target names. ! * `flex' (BinCD, DjgpD, DosBC, LangT, SrcCD, UtilD) [FSFman, FSFrc] `flex' is a replacement for the `lex' scanner generator. `flex' was written by Vern Paxson of the Lawrence Berkeley Laboratory and generates ! far more efficient scanners than `lex' does. Sources for the `Flex ! Manual' and reference card are included (*note Documentation::.). ! * Fortran (`g77') **Note Forthcoming GNUs::* (LangT, SrcCD) ! GNU Fortran (`g77'), developed by Craig Burley, is available for public ! beta testing on the Internet. For now, `g77' produces code that is ! mostly object-compatible with `f2c' & uses the same run-time library ! (`libf2c'). ! * Fontutils (SrcCD, UtilT) ! The Fontutils convert between font formats, create fonts for use with ! Ghostscript or TeX (starting with a scanned type image & converting the ! bitmaps to outlines), et al. It includes: `bpltobzr', `bzrto', ! `charspace', `fontconvert', `gsrenderfont', `imageto', `imgrotate', ! `limn', & `xbfe'. ! * GAWK (DosBC, LangT, SrcCD) [FSFman] GAWK is upwardly compatible with the latest POSIX specification of `awk'. It also provides several useful extensions not found in other `awk' implementations. Texinfo source for the `GAWK Manual' comes with ! the software (*note Documentation::.). ! * GCC (BinCD, DjgpD, DosBC, LangT, SrcCD, VMSCmpT) [FSFman] ! Version 2 of the GNU C Compiler supports the languages C, C++, and ! Objective-C; the source file name suffix or a compiler option selects ! the language. Objective-C support was donated by NeXT. The runtime ! support needed to run Objective-C programs is now distributed with GCC ! (this does not include any Objective-C classes aside from `object', but ! see "GNUStep" in *Note Forthcoming GNUs::). As much as possible, G++ is ! kept compatible with the evolving draft ANSI standard, but not with ! `cfront' (AT&T's compiler), which has been diverging from ANSI. The GNU C Compiler is a fairly portable optimizing compiler which *************** GNU software currently available: *** 876,882 **** scheduling or delay slots), a feature for assigning attributes to instructions, and many local optimizations that are automatically ! deduced from the machine description. Position-independent code is ! supported on the 68k, i386, i486, Pentium, Hitachi Slt, Hitachi H8/300, ! Clipper, 88k, SPARC & SPARClite. GCC can open-code most arithmetic on 64-bit values (type `long long --- 1060,1064 ---- scheduling or delay slots), a feature for assigning attributes to instructions, and many local optimizations that are automatically ! deduced from the machine description. GCC can open-code most arithmetic on 64-bit values (type `long long *************** GNU software currently available: *** 884,919 **** 68k; other machines will follow. ! GCC supports full ANSI C, traditional C & GNU C extensions (including: ! nested functions support, nonlocal gotos & taking the address of a label). ! GCC can generate a.out, COFF, ELF & OSF-Rose files when used with a suitable assembler. It can produce debugging information in these ! formats: BSD stabs, COFF, ECOFF, ECOFF with stabs & DWARF. ! GCC generates code for many CPUs, including: a29k, Alpha, ARM, AT&T ! DSP1610, Convex cN, Clipper, Elxsi, Fujitsu Gmicro, H8/300, HP-PA (1.0 ! and 1.1) i370, i386, i486, Pentium, i860, i960, m68k, m68020, m68030, ! m68040, m88k, MIL-STD-1750a, MIPS, ns32k, PDP-11, Pyramid, ROMP, RS6000, ! SH, SPARC, SPARClite, VAX, & we32k. ! ! Operating systems supported include: AIX, ACIS, AOS, BSD, Clix, Ctix, ! DG/UX, Dynix, Genix, GNU, HP-UX, ISC, Irix, GNU/Linux, Luna, LynxOS, ! Mach, Minix, NetBSD, NewsOS, OSF, OSF-Rose, RISCOS, SCO, Solaris 2, ! SunOS 4, SysV, Ultrix, Unos, VMS & Windows/NT. Using the configuration scheme for GCC, building a cross-compiler is as easy as building a native compiler. ! We no longer maintain version 1 of GCC, G++, or libg++. Texinfo source for the `Using and Porting GNU CC' manual, is included ! with GCC. *Note Forthcoming GNUs::, for plans for later releases of ! GCC. ! * GDB (BinCD, DjgppD, DosCD, LangT, SrcCD) ! GDB, the GNU DeBugger, is a source-level debugger which supports C, C++, ! and Fortran. GDB can debug both C and C++ programs, and will work with executables --- 1066,1103 ---- 68k; other machines will follow. ! GCC supports full ANSI C, traditional C, & GNU C extensions (including: ! nested functions support, nonlocal gotos, & taking the address of a label). ! GCC can generate a.out, COFF, ELF, & OSF-Rose files when used with a suitable assembler. It can produce debugging information in these ! formats: BSD stabs, COFF, ECOFF, ECOFF with stabs, & DWARF. ! GCC generates code for many CPUs, including the a29k, Alpha ARM AT&T ! DSP1610 Clipper Convex cN Elxsi Fujitsu Gmicro i370, i860, i960, ! MIL-STD-1750a, MIPS, ns32k, PDP-11, Pyramid, ROMP, RS/6000, SH, SPUR, ! Tahoe, VAX, & we32k. Position-independent code is generated for the ! Clipper, Hitachi H8/300, HP-PA (1.0 & 1.1), i386/i486/Pentium, m68k, ! m88k, SPARC, & SPARClite. ! ! Operating systems supported include: GNU/Hurd, GNU/Linux, ACIS, AIX, AOS, ! BSD, Clix, Concentrix, Ctix, DG/UX, Dynix, FreeBSD, Genix, HP-UX, Irix, ! ISC, Luna, LynxOS, Minix, NetBSD, NewsOS, NeXTStep, OS/2, OSF, OSF-Rose, ! RISCOS, SCO, Solaris 2, SunOS 4, System/370, SysV, Ultrix, Unos, VMS, & ! Windows/NT. Using the configuration scheme for GCC, building a cross-compiler is as easy as building a native compiler. ! Version 1 of GCC, G++, & libg++ are no longer maintained. Texinfo source for the `Using and Porting GNU CC' manual, is included ! with GCC (*note Documentation::.). ! *Note Forthcoming GNUs::, for plans for later releases of GCC. ! * GDB (BinCD, DjgpD, DosBC, LangT, SrcCD) [FSFman, FSFrc] ! ! GDB, the GNU DeBugger, is a source-level debugger for C, C++, & Fortran. GDB can debug both C and C++ programs, and will work with executables *************** GNU software currently available: *** 921,928 **** some limitations if you do not use GCC. ! GDB has a command line user interface; GNU Emacs comes with a GDB mode, ! and `xxgdb' provides an X interface (but it is not distributed or ! maintained by the FSF; FTP it from `ftp.x.org' in the ! `/contrib/utilities' directory). Executable files and symbol tables are read via the BFD library, which --- 1105,1112 ---- some limitations if you do not use GCC. ! GDB has a command line user interface, and Emacs has a GDB mode. Two X ! interfaces (not distributed or maintained by the FSF) are: `gdbtk' (FTP ! it from `ftp.cygnus.com' in directory `/pub/gdb'); and `xxgdb' (FTP it ! from `ftp.x.org' in directory `/contrib/utilities'). Executable files and symbol tables are read via the BFD library, which *************** GNU software currently available: *** 932,967 **** (breakpoints triggered when the value of an expression changes). ! GDB defines a standard interface for simulators, and the included ! simulator library includes simulators for the Zilog Z8001/2, Hitachi ! H8/300, H8/500 & Super-H. GDB can perform cross-debugging. To say that GDB "targets" a platform ! means that it can perform native or cross-debugging for it. To say that ! GDB can "host" a given platform means that it can be built on it, but ! cannot necessarily debug native programs. GDB can: * "target" & "host": Amiga 3000 (Amix), DEC Alpha (OSF/1), DECstation ! 3100 & 5000 (Ultrix), HP 9000/300 (BSD, HP-UX), HP 9000/700 (HP-UX), ! i386 (BSD, FreeBSD, GNU/Linux, LynxOS, NetBSD, SCO), IBM RS/6000 ! (AIX, LynxOS), Motorola Delta m88k (System V, CX/UX), PC532 ! (NetBSD), Motorola m68k MVME-167 (LynxOS), NCR 3000 (SVR4), SGI ! (Irix V3, V4, V5), SONY News (NewsOS 3.x), SPARC (SunOS 4.1, ! Solaris, NetBSD, LynxOS) Sun-3 (SunOS 4.1), & Ultracomputer (a29k ! running Sym1). * "target", but not "host": AMD 29000 (COFF & a.out), Hitachi H8/300, ! Hitachi SH, i386 (a.out, COFF, OS/9000) i960 (Nindy, VxWorks), ! m68k/m68332 (a.out, COFF, VxWorks), MIPS (IDT ecoff, ELF), Fujitsu SPARClite (a.out, COFF), & Z8000. ! * "host", but not "target": IBM RT/PC (AIX), and HP/Apollo 68k (BSD). ! GDB can use the symbol tables emitted by the vendor-supplied compilers of ! most MIPS-based machines, including DEC. (These tables are in a format ! which almost nobody else uses.) Source for the manual ! `Debugging with GDB' and a reference card are included. *Note ! Documentation::. ! * `gdbm' (LangT, SrcCD, UtilD) `gdbm' is the GNU replacement for the traditional `dbm' and `ndbm' --- 1116,1151 ---- (breakpoints triggered when the value of an expression changes). ! GDB uses a standard remote interface to a simulator library which (so ! far) has simulators for the Hitachi H8/300, H8/500, Super-H, & Zilog ! Z8001/2. GDB can perform cross-debugging. To say that GDB "targets" a platform ! means it can perform native or cross-debugging for it. To say that GDB ! can "host" a given platform means that it can be built on it, but cannot ! necessarily debug native programs. ! ! GDB can: * "target" & "host": Amiga 3000 (Amix), DEC Alpha (OSF/1), DECstation ! 3100 & 5000 (Ultrix), HP 9000/300 (BSD, HP-UX), HP 9000/700 (HP-UX ! 9, 10), i386 (GNU/Hurd, GNU/Linux, BSD, FreeBSD, LynxOS, NetBSD, ! SCO), IBM RS/6000 (AIX, LynxOS), Motorola Delta m88k (System V, ! CX/UX), PC532 (NetBSD), Motorola m68k MVME-167 (LynxOS), NCR 3000 ! (SVR4), SGI (Irix V3, V4, V5), SONY News (NewsOS 3.x), SPARC ! (LynxOS, NetBSD, Solaris, & SunOS 4.1 ) Sun-3 (SunOS 4.1), & ! Ultracomputer (a29k running Sym1). * "target", but not "host": AMD 29000 (COFF & a.out), Hitachi H8/300, ! Hitachi SH, i386 (a.out, COFF, OS/9000), i960 (Nindy, VxWorks), ! m68k/m68332 (a.out, COFF, VxWorks), MIPS (ELF, IDT ecoff), Fujitsu SPARClite (a.out, COFF), & Z8000. ! * "host", but not "target": IBM RT/PC (AIX), HP/Apollo 68k (BSD), & ! Apple Macintosh (MacOS). ! Sources for the manual, `Debugging with GDB', and a reference card are ! included (*note Documentation::.). ! * `gdbm' (LangT, SrcCD, UtilD) `gdbm' is the GNU replacement for the traditional `dbm' and `ndbm' *************** GNU software currently available: *** 970,1016 **** counterparts). ! * Ghostscript (DjgppD, DosCD, SrcCD, UtilT) ! GNU Ghostscript is the GNU release of Ghostscript, which is an ! interpreter for the Postscript graphics language (*note Forthcoming ! GNUs::., for news on future plans). The current version of GNU Ghostscript is 2.6.2. Features include the ability to use the fonts provided by the platform on which Ghostscript ! runs (X Window System and Microsoft Windows), resulting in much better-looking screen displays; improved text file printing (like `enscript'); a utility to extract the text from a Postscript language ! document; a much more reliable (and faster) Microsoft Windows ! implementation; support for Microsoft C/C++ 7.0; drivers for many new ! printers, including the SPARCprinter, and for TIFF/F (fax) file format; ! many more Postscript Level 2 facilities, including most of the color ! space facilities (but not patterns), and the ability to switch between ! Level 1 and Level 2 dynamically. Version 2.6.2 adds a LaserJet 4 driver ! and several important bug fixes to version 2.6.1. Ghostscript executes commands in the Postscript language by writing ! directly to a printer, drawing on an X window, or writing to a file for ! later printing (or to a bitmap file that you can manipulate with other ! graphics programs). Ghostscript includes a C-callable graphics library (for client programs that do not want to deal with the Postscript language). It also supports ! IBM PCs and compatibles with EGA, VGA, or SuperVGA graphics (but please ! do *not* ask the FSF staff any questions about this; we do not use PCs). ! * Ghostview (SrcCD, UtilT) ! Tim Theisen, `ghostview@cs.wisc.edu', has created Ghostview, a previewer ! for multi-page files with an X11 user interface. Ghostview and ! Ghostscript function as two cooperating programs; Ghostview creates a ! viewing window and Ghostscript draws in it. ! * `gmp' (LangT, SrcCD) ! GNU mp is a library for arbitrary precision arithmetic on signed integers ! and rational numbers. It has a rich set of functions with a regular ! interface. ! * GNATS (SrcCD, UtilT) GNATS (GNats: A Tracking System, not to be confused with GNAT, The GNU --- 1154,1229 ---- counterparts). ! * `gettext' (LangT, SrcCD) ! ! The GNU `gettext' tool set contains everything maintainers need to ! internationalize a package for messages, tools that help translators ! localize messages to their native language, once a package has been ! internationalized. *Note Help the GNU Translation Project::. ! * Ghostscript (DosBC, SrcCD, UtilT) ! ! The GNU release of Ghostscript is an interpreter for the Postscript ! graphics language (*note Forthcoming GNUs::., for future plans). The current version of GNU Ghostscript is 2.6.2. Features include the ability to use the fonts provided by the platform on which Ghostscript ! runs (X Window System & Microsoft (MS) Windows), resulting in much better-looking screen displays; improved text file printing (like `enscript'); a utility to extract the text from a Postscript language ! document; a much more reliable (and faster) MS Windows implementation; ! support for MS C/C++ 7.0; drivers for many new printers ( e.g. the ! SPARCprinter), & for TIFF/F (Fax) file format; many more Postscript Level ! 2 facilities, including most of the color space facilities (but not ! patterns); & the ability to switch between Level 1 & Level 2 ! dynamically. Version 2.6.2 adds a LaserJet 4 driver & several important ! bug fixes to version 2.6.1. Ghostscript executes commands in the Postscript language by writing ! directly to a printer, drawing on an X window, or writing to files for ! printing later or manipulating with other graphics programs. Ghostscript includes a C-callable graphics library (for client programs that do not want to deal with the Postscript language). It also supports ! i386/i486/Pentiums running MS-DOS with EGA, VGA or SuperVGA graphics (but ! please do *not* ask the FSF staff any questions about this; we do not ! use MS-DOS). ! ! * Ghostview (DosBC, SrcCD, UtilT) ! Tim Theisen, `ghostview@cs.wisc.edu', created Ghostview, a previewer for ! multi-page files with an X Window interface. Ghostview & Ghostscript ! work together; Ghostview creates a viewing window & Ghostscript draws in ! it. ! * GIT (SrcCD, UtilT) ! GIT is a set of interactive tools: an extensible file system browser, an ! ASCII/hex file viewer, a process viewer/killer, & other related ! utilities & shell scripts. It can be used to increase the speed & ! efficiency of many daily tasks, such as copying & moving files & ! directories, invoking editors, compressing/uncompressing files, creating ! & expanding archives, compiling programs, sending mail, etc. It looks ! nice, has colors (if the standard ANSI color sequences are supported), & ! is user-friendly. ! * `gmp' **Note Forthcoming GNUs::* (LangT, SrcCD) ! GNU `mp' is a library for arbitrary precision arithmetic on signed ! integers and rational numbers. It has a rich set of functions with a ! regular interface. ! ! * GN (SrcCD) ! ! GN is a gopher/HTTP server. It recognizes whether the request came from ! an HTTP (World Wide Web) or gopher client and responds accordingly. ! ! * Gnans (SrcCD) ! ! Gnans is a program (and language) for the numerical study of ! deterministic and stochastic dynamical systems. The dynamical systems ! may evolve in continuous or discrete time. Gnans has graphical & ! command line interfaces. ! ! * GNATS (SrcCD, UtilT) GNATS (GNats: A Tracking System, not to be confused with GNAT, The GNU *************** GNU software currently available: *** 1019,1074 **** negotiates their resolution by electronic mail. Although it has been used primarily as a software bug-tracking system so far, it is ! sufficiently generalized so that it could be used for handling system ! administration issues, project management or any number of other applications. ! * `gnuplot' (SrcCD, UtilT, WdwsD) `gnuplot' is an interactive program for plotting mathematical ! expressions and data. It handles both curves (2 dimensions) and surfaces ! (3 dimensions). Curiously, the program was neither written nor named for ! the GNU Project; the name is a coincidence. Various GNU programs use ! `gnuplot' to produce graphical output. ! * GnuGo (SrcCD, UtilT) ! GnuGo plays the game of Go (Wei-Chi); it is not yet very sophisticated. ! * `gperf' (LangT, SrcCD) ! `gperf' generates perfect hash tables. There are two implementations of ! `gperf', written in C and C++. Both produce hash functions in either C ! or C++. ! * GNU Graphics (SrcCD, UtilT) ! GNU Graphics is a system which produces x-y plots from ASCII or binary ! data. It supports output in Postscript, Tektronix 4010 compatible and ! Unix device-independent "plot" formats as well as a previewer for the X ! Window System. Features include a `spline' interpolation program; ! examples of shell scripts using `graph' and `plot'; and a statistics ! toolkit; and output in TekniCAD TDA and ln03 file formats. Email bugs or ! questions to Rich Murphey, `Rich@lamprey.utmb.edu'. ! * grep (DjgppD, DosCD, SrcCD, UtilD, UtilT) ! This package has GNU `grep', `egrep', and `fgrep' which find lines that ! match inputed patterns. They are much faster than the traditional Unix versions. ! * Groff (DjgppD, DosCD, SrcCD, UtilT) ! Groff is a document formatting system based on an implementation of ! device-independent troff, which also includes implementations of `eqn', ! `nroff', `pic', `refer', `tbl', `troff', and the `man', `ms', and `mm' ! macros, as well as drivers for Postscript, TeX `dvi' format, and ! typewriter-like devices. ! ! Groff's `mm' macro package is almost compatible with the DWB `mm' macros ! and has several extensions. Also included is a modified version of the ! Berkeley `me' macros and an enhanced version of the X11 `xditview' ! previewer. Written in C++, these programs can be compiled with GNU C++ ! Version 2.5 or later. A driver for the LaserJet 4 series of printers is ! currently in test. Groff users are encouraged to contribute enhancements. Most needed are --- 1232,1290 ---- negotiates their resolution by electronic mail. Although it has been used primarily as a software bug-tracking system so far, it is ! sufficiently generalized that it could be used for handling system ! administration issues, project management, or any number of other applications. ! * `gnuplot' (SrcCD, UtilT, WdwsD) `gnuplot' is an interactive program for plotting mathematical ! expressions and data. It plots both curves (2 dimensions) & surfaces (3 ! dimensions). Curiously, it was neither written nor named for the GNU ! Project; the name is a coincidence. Various GNU programs use `gnuplot'. ! ! * `gnuserv' (LspEmcT, SrcCD) ! `gnuserv' is a enhanced version of Emacs' `emacsclient' program. It ! lets the user direct a running Emacs to edit files or evaluate arbitrary ! Emacs Lisp constructs from another process. ! * GnuGo (SrcCD, UtilT) ! GnuGo plays the game of Go (Wei-Chi); version 1.2 was released with minor ! changes for portability, but it is not yet very sophisticated. ! * `gperf' (LangT, SrcCD) ! `gperf' generates perfect hash tables. The C version is in package ! cperf. The C++ version is in libg++. Both produce hash functions in ! either C or C++. ! * Graphics (SrcCD, UtilT) ! GNU Graphics produces x-y plots from ASCII or binary data. It outputs ! in Postscript, Tektronix 4010 compatible, and Unix device-independent ! "plot" formats. It has a previewer for the X Window System. Features ! include a `spline' interpolation program; examples of shell scripts ! using `graph' and `plot'; a statistics toolkit; and output in TekniCAD ! TDA and ln03 file formats. Email bugs or queries to Rich Murphey, ! `Rich@lamprey.utmb.edu'. ! * grep (DosBC, SrcCD, UtilT) ! ! This package has GNU `grep', `egrep', and `fgrep', which find lines that ! match entered patterns. They are much faster than the traditional Unix versions. ! * Groff (DjgpD, DosBC, SrcCD, UtilT) ! Groff is a document formatting system based on a device-independent ! version of `troff' & includes: `eqn', `nroff', `pic', `refer', `tbl', ! `troff'; the `man', `ms', & `mm' macros; & drivers for Postscript, TeX ! `dvi' format, and typewriter-like devices. Groff's `mm' macro package ! is almost compatible with the DWB `mm' macros with several extensions. ! Also included is a modified version of the Berkeley `me' macros and an ! enhanced version of the X11 `xditview' previewer. A driver for the ! LaserJet 4 series of printers is currently in test. Written in C++, ! these programs can be compiled with GNU C++ Version 2.5 or later. Groff users are encouraged to contribute enhancements. Most needed are *************** GNU software currently available: *** 1076,1229 **** for typesetting graphs), a page-makeup postprocessor similar to `pm' (see `Computing Systems', Vol. 2, No. 2; ask `office@usenix.org' how to ! get a copy) and an ASCII output class for `pic' so that `pic' can be ! integrated with Texinfo. Questions and bug reports from users who have ! read the documentation provided with groff can be sent to `bug-groff@prep.ai.mit.edu'. ! * `gzip' (DjgppD, DosCD, LangT, LspEmcT, SrcCD, UtilT) ! Some of the contents of our tape and FTP distributions are compressed. ! We have software on our tapes and FTP sites to uncompress these files. ! Due to patent troubles with `compress', we use another compression ! program, `gzip'. (Such prohibitions on software development are fought ! by the League for Programming Freedom, *note What Is the LPF::., for ! details.) `gzip' can expand LZW-compressed files but uses another, ! unpatented algorithm for compression which generally produces better ! results. It also expands files compressed with System V's `pack' ! program. ! * `hello' (DjgppD, DosCD, SrcCD, UtilT) The GNU `hello' program produces a familiar, friendly greeting. It allows non-programmers to use a classic computer science tool which would otherwise be unavailable to them. Because it is protected by the GNU ! General Public License, users are free to share and change it. Like any truly useful program, `hello' contains a built-in mail reader. ! * `hp2xx' (SrcCD, UtilT) GNU `hp2xx' reads HP-GL files, decomposes all drawing commands into elementary vectors, and converts them into a variety of vector and raster output formats. It is also an HP-GL previewer. Currently supported ! vector formats include encapsulated Postscript, Uniplex RGIP, Metafont ! and various special TeX-related formats, and simplified HP-GL (line ! drawing only) for imports. Raster formats supported include IMG, PBM, ! PCX, & HP-PCL (including Deskjet & DJ5xxC support). Previewers work ! under X11 (Unix), OS/2 (PM & full screen), MS-DOS (SVGA, VGA, & HGC). ! ! * HylaFAX (UtilT) ! ! HylaFAX is a facsimile system for Unix systems. It supports sending, ! receiving, and polled retrieval of facsimile, as well as transparent ! shared data use of the modem. Information is also available on the ! World Wide Web at URL: `http://www.vix.com/hylafax/'. ! ! * `indent' (DjgppD, DosCD, SrcCD, UtilD, UtilT) ! ! GNU `indent' is a revision of the BSD version. By default, it formats C ! source according to the GNU coding standards. The BSD default, K&R and ! other formats are available as options. It is also possible to define ! your own format. GNU `indent' is more robust and provides more ! functionality than other versions, e.g., it handles C++ comments. ! ! * Ispell (DjgppD, DosCD, SrcCD, UtilT) ! ! Ispell is an interactive spell checker that suggests "near misses" as ! replacements for unrecognized words. System & user-maintained ! dictionaries for multiple languages can be used. Standalone & GNU Emacs ! interfaces are available. Previously, the GNU Project had its own ! version of ispell ("Ispell 4.0"), but has dropped it for a parallel ! branch that has had more development ("Ispell 3.1"). (Version 3 was an ! earlier release from the original Ispell author, but others have since ! made it more sophisticated.) ! * JACAL *Not available from the FSF* JACAL is a symbolic mathematics system for the manipulation and ! simplification of equations and single and multiple-valued algebraic ! expressions constructed of numbers, variables, radicals, differential ! operators, and algebraic and holonomic functions. Vectors, matrices, ! and tensors of these objects are also supported. ! ! JACAL was written in Scheme by Aubrey Jaffer. It comes with SCM, an IEEE ! P1178 and R4RS compliant version of Scheme written in C. SCM runs on ! Amiga, Atari-ST, MS-DOS, OS/2, NOS/VE, Unicos, VMS, Unix, and similar ! systems. SLIB is a portable Scheme library used by JACAL. ! m{No Value For "ergegrafkludge"} The FSF is not distributing JACAL on ! any media. To receive an IBM PC floppy disk with the source and ! executable files, send $99.00 to: ! Aubrey Jaffer ! 84 Pleasant Street ! Wakefield, MA 01880-1846 ! USA ! * `less' (SrcCD, UtilD, UtilT) ! `less' is a display paginator similar to `more' and `pg' but with various features (such as the ability to scroll backwards) that most pagers lack. ! * `m4' (DjgppD, DosCD, SrcCD, UtilD, UtilT) GNU `m4' is an implementation of the traditional Unix macro processor. ! It is mostly SVR4 compatible, although it has some extensions (for ! example, handling more than 9 positional parameters to macros). `m4' ! also has built-in functions for including files, running shell commands, ! doing arithmetic, etc. ! * `make' (BinCD, DjgppD, DosCD, LangT, LspEmcT, SrcCD, UtilD, ! UtilT) GNU `make' supports POSIX 1003.2 and has all but a few obscure features ! of the BSD and System V versions of `make', as well as many of our own ! extensions. GNU extensions include long options, parallel compilation, ! flexible implicit pattern rules, conditional execution and powerful text ! manipulation functions. Texinfo source for the `Make Manual' comes with ! the program. *Note Documentation::. ! ! GNU `make' is on several of our tapes because some system vendors supply ! no `make' utility at all, and some native `make' programs lack the ! `VPATH' feature essential for using the GNU configure system to its full ! extent. The GNU `make' sources have a shell script to build `make' ! itself on such systems. ! MS-DOS binaries for `make' are available with the DJGPP distribution. ! ! * MandelSpawn (SrcCD, UtilT) A parallel Mandelbrot generation program for the X Window System. ! * mtools (SrcCD, UtilT) mtools is a set of public domain programs to allow Unix systems to read, ! write and manipulate files on an MS-DOS file system (usually a diskette). ! * MULE (EmcsD, DosCD, SrcCD) ! MULE is a MULtilingual Enhancement to GNU Emacs. It can handle many ! character sets at once including Japanese, Chinese, Korean, Vietnamese, ! Thai, Greek, the ISO Latin-1 through Latin-8 character sets, Ukrainian, ! Arabic, Hebrew, Russian, and other Cyrillic alphabets. A text buffer in ! MULE can contain a mixture of characters from these languages. To input ! any of these characters, you can use various input methods provided by ! MULE itself. In addition, if you use MULE under some terminal emulators ! (kterm, cxterm, or exterm), you can use its input methods. MULE is ! being merged into GNU Emacs. *Note GNU and Other Free Software in ! Japan::, for more information about MULE. ! ! * NetHack (SrcCD, UtilT) ! ! NetHack is a display-oriented adventure game similar to Rogue. Both ! ASCII and X displays are supported. ! ! * NIH Class Library (LangT, SrcCD) ! ! The NIH Class Library (formerly known as "OOPS", Object-Oriented Program ! Support) is a portable collection of C++ classes, similar to those in ! Smalltalk-80, which has been developed by Keith Gorlen of the National ! Institutes of Health (NIH), using the C++ programming language. ! * `nvi' (SrcCD, UtilT) `nvi' is a free implementation of the `vi'/`ex' Unix editor. It has --- 1292,1466 ---- for typesetting graphs), a page-makeup postprocessor similar to `pm' (see `Computing Systems', Vol. 2, No. 2; ask `office@usenix.org' how to ! get a copy), and an ASCII output class for `pic' to integrate `pic' with ! Texinfo. Questions and bug reports from users who have read the ! documentation provided with Groff can be sent to `bug-groff@prep.ai.mit.edu'. ! * `gzip' (DjgpD, DosBC, LangT, LspEmcT, SrcCD, UtilT) ! `gzip' can expand LZW-compressed files but uses another, unpatented ! algorithm for compression which generally produces better results. It ! also expands files compressed with System V's `pack' program. ! * `hello' (DosBC, SrcCD, UtilT) The GNU `hello' program produces a familiar, friendly greeting. It allows non-programmers to use a classic computer science tool which would otherwise be unavailable to them. Because it is protected by the GNU ! General Public License, users are free to share and change it. `hello' ! is also a good example of a program that meets the GNU coding standards. Like any truly useful program, `hello' contains a built-in mail reader. ! * `hp2xx' (SrcCD, UtilT) GNU `hp2xx' reads HP-GL files, decomposes all drawing commands into elementary vectors, and converts them into a variety of vector and raster output formats. It is also an HP-GL previewer. Currently supported ! vector formats include encapsulated Postscript, Uniplex RGIP, Metafont, ! various special TeX-related formats, and simplified HP-GL (line drawing ! only) for imports. Raster formats supported include IMG, PBM, PCX, & ! HP-PCL (including Deskjet & DJ5xxC support). Previewers work under X11 ! (Unix), OS/2 (PM & full screen), & MS-DOS (SVGA, VGA, & HGC). ! ! * HylaFAX (SrcCD, UtilT) ! ! HylaFAX (once named FlexFAX) is a facsimile system for Unix systems. It ! supports sending, receiving, & polled retrieval of facsimile, as well as ! transparent shared data use of the modem. ! ! Details are available on the World Wide Web at: ! `http://www.vix.com/hylafax/'. ! ! * Hyperbole (LspEmcT, SrcCD) ! ! Hyperbole, written by Bob Weiner in Emacs Lisp, is an open, efficient, ! programmable information management & hypertext system, intended for ! everyday work on any platform supported by Emacs. ! ! * `indent' (DosBC, LangT, SrcCD, UtilD) ! ! GNU `indent' formats C source code into the GNU indentation style. It ! also has options to output BSD, K&R, or your own special style. GNU ! `indent' is more robust & provides more functionality than other such ! programs, including handling C++ comments. It runs on a number of ! systems, including DOS & VMS. ! ! The next version will also format C++ source code. ! ! * Ispell (DosBC, SrcCD, UtilT) ! Ispell is an interactive spell checker that suggests "near misses" to ! replace unrecognized words. System & user-maintained dictionaries for ! multiple languages can be used. Standalone & Emacs interfaces are ! available. ! ! Previously, the FSF had its own version of Ispell ("Ispell 4.0"), but ! has dropped it for a parallel branch that has had more development ! ("Ispell 3.1"). (Ispell 3 was an earlier release by the original Ispell ! author, but others have since made it more sophisticated.) ! ! * JACAL *Not available from the FSF except by FTP* JACAL is a symbolic mathematics system for the manipulation and ! simplification of algebraic equations and expressions. New in JACAL is ! multivariate factoring from Michael Thomas `(mjt@octavia.anu.edu.au)'. ! See JACAL's documentation at `http://www-swiss.ai.mit.edu/~jaffer/'. ! ! JACAL is written in Scheme using the SLIB portable Scheme Library. It ! comes with SCM, an IEEE P1178 & R4RS compliant version of Scheme written ! in C. SCM runs on Amiga, Atari-ST, MS-DOS, OS/2, NOS/VE, Unicos, VMS, ! Unix, & similar systems. ! ! The FSF is not distributing JACAL on any physical media. To get an IBM ! PC floppy disk with the freely redistributable source & executable ! files, send $99.00 to: ! ! Aubrey Jaffer ! 84 Pleasant Street ! Wakefield, MA 01880-1846 ! USA ! * `less' (DosBC, SrcCD, UtilD, UtilT) ! `less' is a display paginator similar to `more' and `pg', but with various features (such as the ability to scroll backwards) that most pagers lack. ! * `m4' (DosBC, SrcCD, UtilD, UtilT) GNU `m4' is an implementation of the traditional Unix macro processor. ! It is mostly SVR4 compatible, although it has some extensions (e.g., ! handling more than 9 positional parameters to macros). `m4' also has ! built-in functions for including files, running shell commands, doing ! arithmetic, etc. ! * `make' (BinCD,DjgpD,DosBC,LangT,LspEmcT,SrcCD,UtilD,UtilT)[FSFman] GNU `make' supports POSIX 1003.2 and has all but a few obscure features ! of the BSD and System V versions of `make'. GNU extensions include long ! options, parallel compilation, flexible implicit pattern rules, ! conditional execution, & powerful text manipulation functions. Texinfo ! source for the `Make Manual' comes with the program (*note ! Documentation::.). ! * MandelSpawn (SrcCD, UtilT) A parallel Mandelbrot generation program for the X Window System. ! * Midnight Commander (`mc') (SrcCD, UtilT) ! ! The Midnight Commander is a user friendly and colorful Unix file manager ! and shell, useful to novice and guru alike. It has a built-in virtual ! file system that allows the user to manipulate files inside tar files ! (both regular and compressed) or files on remote machines using the FTP ! protocol. ! ! * `mkisofs' (SrcCD, UtilT) ! ! `mkisofs' is a pre-mastering program to generate an ISO 9660 file system. ! It takes a snapshot of a directory tree, and makes a binary image which ! corresponds to an ISO 9660 file system when written to a block device. ! ! It can also generate the System Use Sharing Protocol records of the Rock ! Ridge Interchange Protocol (used to further describe the files in an ISO ! 9660 file system to a Unix host; it provides information such as longer ! filenames, uid/gid, permissions, and device nodes). ! ! Also included is `cdwrite', which can take an image from `mkisofs' and ! write it to a Phillips CD recorder system attached to a GNU/Linux system. ! ! * mtools (SrcCD, UtilT) mtools is a set of public domain programs to allow Unix systems to read, ! write, and manipulate files on an MS-DOS file system (usually a ! diskette). ! ! * MULE (DosBC, EmcsD, LspEmcT, SrcCD) ! ! MULE is a MULtilingual Enhancement to GNU Emacs. MULE text buffers can ! contain a mix of characters from many languages including: Japanese, ! Chinese, Korean, Vietnamese, Thai, modern European languages (including ! Greek & Russian), Arabic, & Hebrew. MULE also provides input methods ! for all of them. MULE is being merged into GNU Emacs. *Note GNU & ! Other Free Software in Japan::, for more information about MULE. ! ! * `ncurses' (LangT, SrcCD) ! `ncurses' is an implementation of the Unix `curses' library for ! developing screen based programs that are terminal independent. ! * NetHack (SrcCD, UtilT) ! NetHack is a Rogue-like adventure game supporting character & X displays. ! ! * NIH Class Library (LangT, SrcCD) ! ! The NIH Class Library (once known as "OOPS", Object-Oriented Program ! Support) is a portable collection of C++ classes (similar to those in ! Smalltalk-80) written in C++ by Keith Gorlen of the National Institutes ! of Health (NIH). ! ! * `nvi' (SrcCD, UtilT) `nvi' is a free implementation of the `vi'/`ex' Unix editor. It has *************** GNU software currently available: *** 1231,1277 **** & the `lisp' option, which will be added. Enhancements over `vi'/`ex' include split screens with multiple buffers, handling 8-bit data, ! infinite file & line lengths, tag stacks, infinite undo & extended regular expressions. It runs under GNU/Linux, BSD, NetBSD, FreeBSD, ! BSDI, AIX, HP-UX, DGUX, IRIX, PSF, PTX, Solaris, SunOS, Ultrix, Unixware ! & should port easily to many other systems. ! * GNU Objective-C Library (LangT, SrcCD) ! The GNU Objective-C Class Library (`libobjects') is a library of ! general-purpose, non-graphical Objective-C objects written by Andrew ! McCallum and other volunteers. It includes collection classes for ! maintaining groups of objects and C types, streams for I/O to various ! destinations, coders for formatting objects and C types to streams, ports ! for network packet transmission, distributed objects (remote object ! messaging), string classes, pseudo-random number generators, and time ! handling facilities. The package will also include the foundation ! classes for the GNUStep project; over 50 of these classes have already ! been implemented. The library is known to work on i386, i486, Pentium, ! m68k, SPARC, MIPS, & RS6000. Send queries and bug reports to `mccallum@gnu.ai.mit.edu'. ! * `OBST' (LangT, SrcCD) ! `OBST' is a persistent object management system with bindings to C++. ! `OBST' supports incremental loading of methods. Its graphical tools require the X Window System. It features a hands-on tutorial including ! sample programs. It compiles with g++ and should install easily on most ! Unix platforms. ! * Octave (LangT, SrcCD) ! Octave is a high-level language similar to MATLAB that is primarily ! intended for numerical computations. It provides a convenient command ! line interface for solving linear and nonlinear problems numerically. ! m{No Value For "ergegrafkludge"} Octave does arithmetic for real and ! complex scalars and matrices, solves sets of nonlinear algebraic ! equations, integrates systems of ordinary differential and ! differential-algebraic equations, and integrates functions over finite ! and infinite intervals. Two- and three-dimensional plotting is ! available using `gnuplot'. Send queries and bug reports to: ! `bug-octave@che.utexas.edu'. Source is included for a 220+ page ! Texinfo manual, which is not yet published by the FSF. ! * Oleo (SrcCD, UtilT) Oleo is a spreadsheet program (better for you than the more expensive --- 1468,1521 ---- & the `lisp' option, which will be added. Enhancements over `vi'/`ex' include split screens with multiple buffers, handling 8-bit data, ! infinite file & line lengths, tag stacks, infinite undo, & extended regular expressions. It runs under GNU/Linux, BSD, NetBSD, FreeBSD, ! BSDI, AIX, HP-UX, DGUX, IRIX, PSF, PTX, Solaris, SunOS, Ultrix, and ! Unixware, & should port easily to other systems. ! ! * Oaklisp (SrcCD) ! Oaklisp is a fast, portable, object-oriented Scheme with first class ! types. ! * Objective-C Library **Note Forthcoming GNUs::* (LangT, SrcCD) ! ! Our Objective-C Class Library (`libobjects') has general-purpose, ! non-graphical Objective-C objects written by Andrew McCallum & other ! volunteers. It includes collection classes for using groups of objects ! & C types, I/O streams, coders for formatting objects & C types to ! streams, ports for network packet transmission, distributed objects ! (remote object messaging), string classes, exceptions, pseudo-random ! number generators, & time handling facilities. It also includes the ! foundation classes for the GNUStep project; over 70 of them have already ! been implemented. The library is known to work on i386/i486/Pentiums, ! m68k, SPARC, MIPS, HPPA, & RS/6000. Send queries & bug reports to `mccallum@gnu.ai.mit.edu'. ! * OBST (LangT, SrcCD) ! OBST is a persistent object management system with bindings to C++. ! OBST supports incremental loading of methods. Its graphical tools require the X Window System. It features a hands-on tutorial including ! sample programs. It compiles with G++, and should install easily on ! most Unix platforms. ! * Octave (LangT, SrcCD) ! Octave is a high-level language similar to MATLAB, primarily intended ! for numerical computations. It has a convenient command line interface ! for solving linear & nonlinear problems numerically. ! Octave does arithmetic for real and complex scalars and matrices, solves ! sets of nonlinear algebraic equations, integrates systems of ordinary ! differential & differential-algebraic equations, and integrates ! functions over finite & infinite intervals. Two- & three-dimensional ! plotting is available using `gnuplot'. ! ! Send queries and bug reports to: `bug-octave@bevo.che.wisc.edu'. ! ! Texinfo source is included for a 220+ page Octave manual, not yet ! published by the FSF. ! ! * Oleo (SrcCD, UtilT) Oleo is a spreadsheet program (better for you than the more expensive *************** GNU software currently available: *** 1279,1293 **** terminals, and can output Embedded Postscript renditions of spreadsheets. Keybindings should be familiar to Emacs users and are configurable. ! Under X and in Postscript output, Oleo supports multiple, variable width ! fonts. *Note Forthcoming GNUs::, for the plans for later releases of ! Oleo. ! * `p2c' (LangT, SrcCD) ! `p2c' is a Pascal-to-C translator written by Dave Gillespie. It ! recognizes many Pascal dialects including Turbo, HP, VAX, and ISO, and ! produces readable, maintainable, portable C. ! * `patch' (DjgppD, DosCD, SrcCD, UtilT) `patch' is our version of Larry Wall's program to take `diff''s output --- 1523,1536 ---- terminals, and can output Embedded Postscript renditions of spreadsheets. Keybindings should be familiar to Emacs users and are configurable. ! Oleo supports multiple variable-width fonts when used under the X Window ! System or outputting to Postscript devices. ! * `p2c' (LangT, SrcCD) ! `p2c' is Dave Gillespie's Pascal-to-C translator. It inputs many ! different dialects (HP, ISO, Turbo, VAX, et al.) and generates readable, ! maintainable, portable C. ! * `patch' (DosBC, SrcCD, UtilT) `patch' is our version of Larry Wall's program to take `diff''s output *************** GNU software currently available: *** 1295,1317 **** version. ! * PCL (LspEmcT, SrcCD) PCL is a free implementation of a large subset of CLOS, the Common Lisp Object System. It runs under both GCL and CLISP, mentioned above. ! * `perl' (LangT, SrcCD) Larry Wall's `perl' combines the features and capabilities of `sed', ! `awk', `sh' and C, as well as interfaces to the Unix system calls and ! many C library routines. ! * `ptx' (SrcCD, UtilD, UtilT) GNU `ptx' is our version of the traditional permuted index generator. It handles multiple input files at once, produces TeX compatible output, ! & outputs readable "KWIC" (KeyWords In Context) indexes. It does not ! yet handle input files that do not fit in memory all at once. ! * `rc' (SrcCD, UtilT) `rc' is a shell that features a C-like syntax (much more so than `csh') --- 1538,1567 ---- version. ! * PCL (LspEmcT, SrcCD) PCL is a free implementation of a large subset of CLOS, the Common Lisp Object System. It runs under both GCL and CLISP, mentioned above. ! * `perl' (DosBC, LangT, SrcCD) Larry Wall's `perl' combines the features and capabilities of `sed', ! `awk', `sh', and C. It also provides interfaces to the Unix system ! calls and many C library routines. ! * `pine' (SrcCD, UtilT) ! ! `pine' is a friendly menu-driven electronic mail manager and user ! interface . ! ! * `ptx' **Note Forthcoming GNUs::* (SrcCD, UtilD, UtilT) GNU `ptx' is our version of the traditional permuted index generator. It handles multiple input files at once, produces TeX compatible output, ! and generates readable "KWIC" (KeyWords In Context) indexes without ! using `nroff'. ! It does not yet handle input files that do not fit in memory all at once. ! ! * `rc' (SrcCD, UtilT) `rc' is a shell that features a C-like syntax (much more so than `csh') *************** GNU software currently available: *** 1320,1519 **** scripts. It inspired the shell `es'. ! * RCS (SrcCD, UtilD, UtilT) RCS, the Revision Control System, is used for version control & ! management of software projects. When used with GNU `diff', RCS can ! handle binary files (executables, object files, 8-bit data, etc). Also ! see the item about CVS in this section. ! * `recode' (SrcCD, UtilT) GNU `recode' converts files between character sets and usages. When ! exact transliterations are not possible, it may get rid of the offending characters or fall back on approximations. This program recognizes or ! produces nearly 150 different character sets and is able to ! transliterate files between almost any pair. Most RFC 1345 character ! sets are supported. ! * regex (LangT, SrcCD) The GNU regular expression library supports POSIX.2, except for internationalization features. It is included in many GNU programs which ! do regular expression matching and available separately. An alternative ! regular expression package, `rx', comes with `sed'; it has the potential ! to be faster than `regex' in most cases, but still needs work. ! * Scheme (SchmT, SrcCD) ! For information about Scheme, see *Note Scheme Tape::. ! * `screen' (SrcCD, UtilT) `screen' is a terminal multiplexer that runs several separate "screens" (ttys) on a single character-based terminal. Each virtual terminal ! emulates a DEC VT100 plus several ISO 6429 (ECMA 48, ANSI X3.64) and ISO ! 2022 functions. Arbitrary keyboard input translation is also supported. ! `screen' sessions can be detached and resumed later on a different ! terminal type. Output in detached sessions is saved for later viewing. ! * `sed' (DjgppD, DosCD, SrcCD, UtilD, UtilT) ! `sed' is a stream-oriented version of `ed'. GNU `sed' comes with the ! `rx' library, a faster version of `regex' (*note Forthcoming GNUs::.). ! * Sharutils (SrcCD, UtilT) `shar' makes so-called shell archives out of many files, preparing them ! for transmission by electronic mail services, while `unshar' helps ! unpack these shell archives after reception. `uuencode' prepares a file ! for transmission over an electronic channel which ignores or otherwise ! mangles the high order bit of bytes, while `uudecode' does the converse ! transformation. ! ! * Shellutils (DjgppD, DosCD, SrcCD, UtilT) ! ! Use shellutils interactively or in shell scripts: `basename', `date', ! `dirname', `echo', `env', `expr', `false', `groups', `hostname', `id', ! `logname', `nice', `nohup', `pathchk', `printenv', `printf', `pwd', ! `sleep', `stty', `su', `tee', `test', `true', `tty', `uname', `users', ! `who', `whoami', and `yes'. ! * GNU Shogi (SrcCD, UtilT) Shogi is a Japanese game similar to Chess; a major difference is that ! captured pieces can be returned into play. GNU Shogi is a variant of ! GNU Chess; GNU Shogi implements the same features as GNU Chess and uses similar heuristics. As a new feature, sequences of partial board ! patterns can be introduced in order to help the program play toward ! specific opening patterns. There are both character and X display ! interfaces. GNU Shogi is primarily supported by Matthias Mutz on ! behalf of the FSF. ! * Smalltalk (LangT, SrcCD) GNU Smalltalk is an interpreted object-oriented programming language ! system written in highly portable C. It has been successfully ported to ! many Unix and some other platforms, including DOS (but these non-Unix ! ports are not available from the FSF). Current features include a ! binary image save capability, the ability to invoke user-written C code ! and pass parameters to it, a GNU Emacs editing mode, a version of the X ! protocol invocable from Smalltalk, optional byte-code compilation ! tracing and byte-code execution tracing, and automatically loaded ! per-user initialization files. It implements all of the classes and ! protocol in the Smalltalk-80 book "Smalltalk-80: The Language", except ! for the graphic user interface (`GUI') related classes. ! *Note Forthcoming GNUs::, for plans for later releases of Smalltalk. ! * Superopt (LangT, SrcCD) Superopt is a function sequence generator that uses an exhaustive generate-and-test approach to find the shortest instruction sequence for a given function. You provide a function as input, a CPU to generate ! code for, and how many instructions you can accept. Its application in ! GCC is described in the `ACM SIGPLAN PLDI'92' proceedings. Superopt ! supports: SPARC, m68k, m68020, m88k, IBM RS/6000, AMD 29000, Intel ! 80x86, Pyramid, DEC Alpha, & HP-PA. ! ! * `tar' (SrcCD, UtilT) ! ! GNU `tar' includes multivolume support, the ability to archive sparse ! files, automatic archive compression/decompression, remote archives and ! special features that allow `tar' to be used for incremental and full ! backups. Unfortunately, GNU `tar' implements an early draft of the ! POSIX 1003.1 `ustar' standard which is different from the final ! standard. Adding support for the new changes in a backward-compatible ! fashion is not trivial. ! * Termcap Library (SrcCD, UtilT) The GNU Termcap library is a drop-in replacement for `libtermcap.a' on any system. It does not place an arbitrary limit on the size of Termcap entries, unlike most other Termcap libraries. Included is source for the ! `Termcap Manual' in Texinfo format. *Note Documentation::. ! * TeX (SrcCD) TeX is a document formatting system that handles complicated typesetting, including mathematics. It is GNU's standard text formatter. ! You can obtain TeX from the University of Washington, which maintains and ! supports a tape distribution of TeX for Unix systems. The core material ! consists of Karl Berry's `web2c' TeX package, the sources for which are ! available via anonymous ftp; retrieval instructions are in ! `pub/tex/unixtex.ftp' on `ftp.cs.umb.edu'. If you receive any ! installation support from the University of Washington, please consider ! sending them a donation. To order a full distribution written in `tar' on either a 1/4inch 4-track QIC-24 cartridge or a 4mm DAT cartridge, send $210.00 to: ! Pierre A. MacKay ! Department of Classics ! DH-10, Denny Hall 218 ! University of Washington ! Seattle, WA 98195 ! USA ! ! Electronic-Mail: `mackay@cs.washington.edu' ! Telephone: +1-206-543-2268 ! ! Please make checks payable to the University of Washington. Do not ! specify any other payee. That causes accounting difficulties. Checks ! must be in U.S. dollars, drawn on a U.S. bank. Prepaid orders are the ! only orders that can now be handled. Overseas sites: please add to the ! base cost $20.00 for shipment via air parcel post, or $30.00 for ! shipment via courier. Please check with the above for current prices ! and formats. ! ! * Texinfo (DjgppD, DosCD, LangT, LspEmcT, SrcCD, UtilD, UtilT) ! ! Texinfo is a set of utilities which generate both printed manuals and ! online hypertext documentation (called "Info"). There are also programs ! for reading online Info documents. Version 3 has both GNU Emacs Lisp ! and standalone programs written in C or shell script. Texinfo mode for ! GNU Emacs enables easy editing and updating of Texinfo files. Programs ! provided include `makeinfo', `info', `texi2dvi', `texindex', `tex2patch', ! and `fixfonts'. Source for the `Texinfo Manual' is included. *Note ! Documentation::. ! * Textutils (DjgppD, DosCD, SrcCD, UtilT) The Textutils programs manipulate textual data. They include: `cat', `cksum', `comm', `csplit', `cut', `expand', `fmt', `fold', `head', ! `join', `nl', `od', `paste', `pr', `sort', `split', `sum', `tac', `tail', ! `tr', `unexpand', `uniq', and `wc'. ! * Tile Forth (LangT, SrcCD) Tile Forth is a 32-bit implementation of the Forth-83 standard written ! in C, allowing it to be easily ported to new systems, and extended with ! "any" C-function (graphics, windowing, etc). Many Forth libraries with ! full documentation are available including ones for top-down parsing, ! multi-threads, and object oriented programming. ! ! * `time' (SrcCD, UtilT) ! ! `time' is used to report statistics (usually from a shell) about the ! amount of user, system and real time used by a process. On some systems ! it also reports memory usage, page faults, and other statistics. ! * `tput' (SrcCD, UtilT) ! `tput' is a portable way for shell scripts to use special terminal ! capabilities. Our `tput' uses the Termcap database, instead of Terminfo ! as most others do. ! * UUCP (SrcCD, UtilT) ! This version of UUCP was written by Ian Lance Taylor, and is GNU's ! standard UUCP system. It supports the `f', `g' and `v' (in all window ! and packet sizes), `G', `t', `e', Zmodem and two new bidirectional (`i' ! and `j') protocols. If you have a Berkeley sockets library, it can make ! TCP connections. If you have TLI libraries, it can make TLI ! connections. Source is included for a Texinfo manual, which is not yet ! published by the FSF. ! * `wdiff' (DjgppD, DosCD, SrcCD, UtilT) `wdiff' is a front-end to GNU `diff'. It compares two files, finding --- 1570,1805 ---- scripts. It inspired the shell `es'. ! * RCS (SrcCD, UtilD, UtilT) RCS, the Revision Control System, is used for version control & ! management of software projects. Used with GNU `diff', RCS can handle ! binary files (executables, object files, 8-bit data, etc). RCS now ! conforms to GNU configuration standards and to POSIX 1003.1b-1993. Also ! see the CVS item above. ! * `recode' **Note Forthcoming GNUs::* (SrcCD, UtilT) GNU `recode' converts files between character sets and usages. When ! exact transliterations are not possible, it may delete the offending characters or fall back on approximations. This program recognizes or ! outputs nearly 150 different character sets and is able to transliterate ! files between almost any pair. Most RFC 1345 character sets are ! supported. ! * `regex' (LangT, SrcCD) The GNU regular expression library supports POSIX.2, except for internationalization features. It is included in many GNU programs which ! do regular expression matching & is available separately. An alternate ! regular expression package, `rx', is faster than `regex' in most cases & ! will replace `regex' over time. ! ! * `rx' (LangT, SrcCD) ! Tom Lord has written `rx', a new regular expression library which is ! faster than the older GNU `regex' library. It is now being distributed ! with `sed' and `tar'. `rx' will be used in the next releases of `m4' ! and `ptx'. ! * SAOimage (SrcCD, UtilT) ! SAOimage is an X-based astronomical image viewer. It reads data images ! and displays them with a pseudocolor colormap. There is full interactive ! control of the colormap, reading, and writing of colormaps, etc. ! ! * Scheme *For more information, see *Note Scheme Tape::* (SrcCD, SchmT) ! ! * `screen' (SrcCD, UtilT) `screen' is a terminal multiplexer that runs several separate "screens" (ttys) on a single character-based terminal. Each virtual terminal ! emulates a DEC VT100 plus several ISO 2022 and ISO 6429 (ECMA 48, ANSI ! X3.64) functions, including color. Arbitrary keyboard input translation ! is also supported. `screen' sessions can be detached and resumed later ! on a different terminal type. Output in detached sessions is saved for ! later viewing. ! * `sed' (DjgpD, DosBC, SrcCD, UtilD, UtilT) ! `sed' is a stream-oriented version of `ed'. It comes with the `rx' ! library. ! * Sharutils (SrcCD, UtilT) `shar' makes so-called shell archives out of many files, preparing them ! for transmission by electronic mail services; `unshar' helps unpack ! these shell archives after reception. `uuencode' and `uudecode' are ! POSIX compliant implementations of a pair of programs to transform files ! into a format that can be safely transmitted across a 7-bit ASCII link. ! ! * Shellutils (DosBC, SrcCD, UtilT) ! ! They are: `basename', `date', `dirname', `echo', `env', `expr', `false', ! `groups', `hostname', `id', `logname', `nice', `nohup', `pathchk', ! `printenv', `printf', `pwd', `sleep', `stty', `su', `tee', `test', ! `true', `tty', `uname', `users', `who', `whoami', & `yes'. ! * Shogi (SrcCD, UtilT) Shogi is a Japanese game similar to Chess; a major difference is that ! captured pieces can be returned into play. ! ! GNU Shogi is a variant of GNU Chess; it implements the same features & similar heuristics. As a new feature, sequences of partial board ! patterns can be introduced to help the program play toward specific ! opening patterns. It has both character and X display interfaces. ! ! It is primarily supported by Matthias Mutz on behalf of the FSF. ! * SIPP (SrcCD) ! ! SIPP is a library for creating photorealistic renderings of 3D scenes. ! A scene is built up of objects which can be transformed with rotation, ! translation, and scaling. The objects form hierarchies where each object ! can have arbitrarily many subobjects and subsurfaces. A surface is a ! number of connected polygons which are rendered with either Phong, ! Gouraud, or flat shading. The library supports programmable shaders and ! texture mapping with textures in up to 3 dimensions and automatic ! interpolation of texture coordinates. A scene can be illuminated by an ! arbitrary number of light sources. The lights from some of them are ! capable of casting shadows of objects. ! ! * Smalltalk *Also see *Note Forthcoming GNUs::* (LangT,SrcCD) GNU Smalltalk is an interpreted object-oriented programming language ! system written in highly portable C. It has been ported to many Unix, ! DOS, & other OSes. Features include a binary image save capability, the ! ability to call user-written C code with parameters, an Emacs editing ! mode, a version of the X protocol invocable from Smalltalk, optional ! byte-code compilation and/or execution tracing, & automatically loaded ! per-user initialization files. It implements all of the classes & ! protocol in the book "Smalltalk-80: The Language", except for the ! graphic user interface (GUI) related classes. ! ! * SNePS (SrcCD) ! ! SNePS is the Semantic Network Processing System. It is an ! implementation of a fully intensional theory of propositional knowledge ! representation and reasoning. SNePS runs under CLISP or GCL. ! * Spinner (SrcCD) ! Spinner is a modularized, object oriented, non-forking World Wide Web ! server with high performance and throughput. ! ! * Superopt (LangT, SrcCD) Superopt is a function sequence generator that uses an exhaustive generate-and-test approach to find the shortest instruction sequence for a given function. You provide a function as input, a CPU to generate ! code for, and how many instructions you want. Its use in GCC is ! described in the `ACM SIGPLAN PLDI'92 Proceedings'. It supports: SPARC, ! m68k, m68020, m88k, IBM POWER and PowerPC, AMD 29k, Intel x86 and 960, ! Pyramid, DEC Alpha, Hitachi SH, & HP-PA. ! ! * `tar' (DosBC, SrcCD, UtilT) ! ! GNU `tar' includes multi-volume support, the ability to archive sparse ! files, compression/decompression, remote archives, and special features ! that allow `tar' to be used for incremental and full backups. GNU `tar' ! uses an early draft of the POSIX 1003.1 `ustar' format which is ! different from the final version. This will be corrected in the future. ! * Termcap Library (SrcCD, UtilT) [FSFman] The GNU Termcap library is a drop-in replacement for `libtermcap.a' on any system. It does not place an arbitrary limit on the size of Termcap entries, unlike most other Termcap libraries. Included is source for the ! `Termcap Manual' in Texinfo format (*note Documentation::.). ! ! * Termutils (SrcCD, UtilT) ! The Termutils package contains programs for controlling terminals. ! `tput' is a portable way for shell scripts to use special terminal ! capabilities. `tabs' is a program to set hardware terminal tab settings. ! ! * TeX (DosBC, SrcCD) TeX is a document formatting system that handles complicated typesetting, including mathematics. It is GNU's standard text formatter. ! The University of Washington maintains & supports a tape distribution of ! TeX for Unix systems. The core material is Karl Berry's `web2c' TeX ! package. Sources are available via anonymous ftp; retrieval ! instructions are in `/pub/tex/unixtex.ftp' on `ftp.cs.umb.edu'. If you ! receive any installation support from the University of Washington, ! consider sending them a donation. To order a full distribution written in `tar' on either a 1/4inch 4-track QIC-24 cartridge or a 4mm DAT cartridge, send $210.00 to: ! Pierre A. MacKay ! Department of Classics ! DH-10, Denny Hall 218 ! University of Washington ! Seattle, WA 98195 ! USA ! ! Electronic-Mail: `mackay@cs.washington.edu' ! Telephone: +1-206-543-2268 ! ! Please make checks payable to: `University of Washington'. Do not ! specify any other payee. That causes accounting problems. Checks must ! be in U.S. dollars, drawn on a U.S. bank. Only prepaid orders can be ! handled. Overseas sites: please add to the base cost $20.00 to ship via ! air parcel post or $30.00 to ship via courier. Please check with the ! above for current prices & formats. ! ! * Texinfo (DjgpD,DosBC,LangT,LspEmcT,SrcCD,UtilD,UtilT)[FSFman] ! ! Texinfo is a set of utilities (`makeinfo', `info', `texi2dvi', ! `texindex', `tex2patch', & `fixfonts') which generate both printed ! manuals & online hypertext documentation (called "Info"), & can read ! online Info documents. Version 3 has both Emacs Lisp & standalone ! programs written in C or shell script. Texinfo mode for Emacs enables ! easy editing & updating of Texinfo files. Source for the `Texinfo ! Manual' is included (*note Documentation::.). ! * Textutils (DosBC, SrcCD, UtilT) The Textutils programs manipulate textual data. They include: `cat', `cksum', `comm', `csplit', `cut', `expand', `fmt', `fold', `head', ! `join', `md5sum', `nl', `od', `paste', `pr', `sort', `split', `sum', ! `tac', `tail', `tr', `unexpand', `uniq', and `wc'. ! * Tile Forth (LangT, SrcCD) Tile Forth is a 32-bit implementation of the Forth-83 standard written ! in C, allowing it to be easily ported to new systems and extended with ! any C-function (graphics, windowing, etc). ! Many documented Forth libraries are available, including ones for ! top-down parsing, multi-threads, & object oriented programming. ! * `time' (SrcCD, UtilT) ! `time' reports (usually from a shell) the user, system, & real time used ! by a process. On some systems it also reports memory usage, page ! faults, etc. ! * `ucblogo' (LangT, SrcCD) ! ! `ucblogo' implements the classic teaching language, Logo. ! ! * UUCP (SrcCD, UtilT) ! ! GNU's UUCP system (written by Ian Lance Taylor) supports the `f', `g', ! `v' (all window & packet sizes), `G', `t', `e', Zmodem, & two new ! bidirectional (`i' & `j') protocols. With a BSD sockets library, it can ! make TCP connections. With TLI libraries, it can make TLI connections. ! Source is included for a manual (not yet published by the FSF). ! * W3 (LspEmcT, SrcCD) ! ! W3 (written by William Perry in Emacs Lisp) is an extensible, advanced ! World Wide Web browser that runs as part of GNU Emacs. It understands ! many protocols: FTP, gopher, HTML, SMTP, Telnet, WAIS, et al. ! ! * `wdiff' (DosBC, SrcCD, UtilT) `wdiff' is a front-end to GNU `diff'. It compares two files, finding *************** GNU software currently available: *** 1523,1540 **** have been refilled. ! * `Ygl' (SrcCD, UtilT) ! `Ygl' emulates SGI's GL (Graphics Language) library under X11. It runs ! under GNU/Linux with XFree, AIX 3.2, ConvexOS, HP-UX 7.0/8.0/9.0, SunOS ! and many others. ! Program/Package Cross Reference - (NOT COMPLETELY UP TO DATE) ******************************* ! Here is a list of what package each GNU program or library is in. You can ! anonymously FTP a full list in the file `/pub/gnu/ProgramIndex' from a GNU ! FTP host (*note How to Get GNU Software::. for a list). * a2p perl --- 1809,1847 ---- have been refilled. ! * X11 *For details, see *Note X11 Tapes::* (SrcCD, X11OptT, X11ReqT) ! ! * `xboard', `xshogi' (SrcCD, UtilT) ! ! `xboard' is an X Window interface to GNU Chess. `xshogi' is an X Window ! interface to GNU Shogi. They use the R4 Athena widgets and Xt ! Intrinsics to provide an interactive referee for managing a game between ! a user & a computer opponent, or between two computers. You can also use ! `xboard' without GNU Chess to play through games in files or to play ! through games manually (force mode); in this case, moves aren't ! validated. ! * `xgrabsc' (SrcCD) + `xgrabsc' is a screen capture program similar to `xwd' but providing + more ways of selecting the part of the screen to capture and different + types of output: Postscript, color Postscript, xwd, bitmap, pixmap, and + puzzle. + * `Ygl' (SrcCD, UtilT) ! `Ygl' emulates a subset of SGI's GL (Graphics Language) library under ! X11 on GNU/Linux with XFree, AIX 3.2, ConvexOS, HP-UX, SunOS, et al. It ! has most two-dimensional graphics routines, the queue device & query ! routines, double buffering, RGB mode with dithering, FORTRAN bindings, ! at al. ! ! ! ! Program/Package Cross Reference ******************************* ! Here is a list of what package each GNU program or library is in. You can FTP ! the current list in the file `/pub/gnu/ProgramIndex' from a GNU FTP host ! (listed in *Note How to Get GNU Software::). * a2p perl *************** FTP host (*note How to Get GNU Software: *** 1542,1545 **** --- 1849,1853 ---- * ac bsd44 * accton bsd44 + * ackpfd phttpd * acl bsd44 * acm acm *************** FTP host (*note How to Get GNU Software: *** 1588,1592 **** * bpltobzr Fontutils * bugfiler bsd44 ! * build ispell * bzrto Fontutils --- 1896,1900 ---- * bpltobzr Fontutils * bugfiler bsd44 ! * buildhash Ispell * bzrto Fontutils *************** FTP host (*note How to Get GNU Software: *** 1595,1599 **** * c2ph perl * ca100 xopt ! * caeser bsd44 * cal bsd44 * calendar bsd44 --- 1903,1907 ---- * c2ph perl * ca100 xopt ! * caesar bsd44 * cal bsd44 * calendar bsd44 *************** FTP host (*note How to Get GNU Software: *** 1606,1609 **** --- 1914,1920 ---- * cc1plus GCC * cccp GCC + * cdwrite mkisofs + * cfengine cfengine + * cgi Spinner * charspace Fontutils * checknr bsd44 *************** FTP host (*note How to Get GNU Software: *** 1618,1621 **** --- 1929,1933 ---- * ci RCS * cksum Textutils + * cktyps g77 * clisp CLISP * clri bsd44 *************** FTP host (*note How to Get GNU Software: *** 1655,1658 **** --- 1967,1971 ---- * dc bc * dd Fileutils + * ddd DDD * delatex TeX * demangle Binutils *************** FTP host (*note How to Get GNU Software: *** 1660,1663 **** --- 1973,1977 ---- * detex TeX * df Fileutils + * dhtppd phttpd * diff Diffutils * diff3 Diffutils *************** FTP host (*note How to Get GNU Software: *** 1676,1679 **** --- 1990,1994 ---- * du Fileutils * dump bsd44 + * dump mkisofs * dumpfs bsd44 * dvi2tty TeX *************** FTP host (*note How to Get GNU Software: *** 1725,1734 **** * fc f2c * fdraw xopt * fgrep grep * file bsd44 * find Findutils * find2perl perl ! * finger finger ! * fingerd finger * fish bsd44 * fixfonts Texinfo --- 2040,2050 ---- * fc f2c * fdraw xopt + * ffe g77 * fgrep grep * file bsd44 * find Findutils * find2perl perl ! * finger Finger ! * fingerd Finger * fish bsd44 * fixfonts Texinfo *************** FTP host (*note How to Get GNU Software: *** 1736,1739 **** --- 2052,2056 ---- * fixincludes GCC * flex flex + * flex++ flex * fmt bsd44 * fold Textutils *************** FTP host (*note How to Get GNU Software: *** 1745,1750 **** * fortune bsd44 * fpr bsd44 ! * freq ispell ! * freqtbl ispell * from bsd44 * fsck bsd44 --- 2062,2067 ---- * fortune bsd44 * fpr bsd44 ! * freq Ispell ! * freqtbl Ispell * from bsd44 * fsck bsd44 *************** FTP host (*note How to Get GNU Software: *** 1756,1764 **** * g++ GCC * gas Binutils ! * gawk Gawk * gcc GCC * gcore bsd44 * gdb GDB * genclass libg++ * getty bsd44 * gftodvi TeX --- 2073,2082 ---- * g++ GCC * gas Binutils ! * gawk GAWK * gcc GCC * gcore bsd44 * gdb GDB * genclass libg++ + * gettext gettext * getty bsd44 * gftodvi TeX *************** FTP host (*note How to Get GNU Software: *** 1766,1769 **** --- 2084,2101 ---- * gftype TeX * ghostview Ghostview + * git GIT + * gitaction GIT + * gitcmp GIT + * gitkeys GIT + * gitmatch GIT + * gitmount GIT + * gitps GIT + * gitredir GIT + * gitrgrep GIT + * gitview GIT + * gitwipe GIT + * gn GN + * gnans Gnans + * gnanslator Gnans * gnats GNATS * gnuchess Chess *************** FTP host (*note How to Get GNU Software: *** 1772,1778 **** --- 2104,2113 ---- * gnuchessr Chess * gnuchessx Chess + * gnuclient gnuserv + * gnudoit gnuserv * gnupdisp Shogi * gnuplot gnuplot * gnuplot_x11 gnuplot + * gnuserv gnuserv * gnushogi Shogi * gnushogir Shogi *************** FTP host (*note How to Get GNU Software: *** 1781,1785 **** * gpc xopt * gpc xreq ! * gperf gperf * gperf libg++ * gprof Binutils --- 2116,2120 ---- * gpc xopt * gpc xreq ! * gperf cperf * gperf libg++ * gprof Binutils *************** FTP host (*note How to Get GNU Software: *** 1814,1817 **** --- 2149,2155 ---- * hp2xx hp2xx * hterm xopt + * htmlencode phttpd + * httpd apache + * httpdecode phttpd * i18nOlwmV2 xopt *************** FTP host (*note How to Get GNU Software: *** 1837,1841 **** * install Fileutils * iostat bsd44 ! * ispell ispell * ixterm xopt * ixx xopt --- 2175,2181 ---- * install Fileutils * iostat bsd44 ! * isodiag mkisofs ! * isodump mkisofs ! * ispell Ispell * ixterm xopt * ixx xopt *************** FTP host (*note How to Get GNU Software: *** 1870,1875 **** * less less * lesskey less * libbfd.a Binutils - * libbfd.a GAS * libbfd.a GDB * libbzr.a Fontutils --- 2210,2215 ---- * less less * lesskey less + * libavcall.a ffcall * libbfd.a Binutils * libbfd.a GDB * libbzr.a Fontutils *************** FTP host (*note How to Get GNU Software: *** 1877,1894 **** * libcompat.a bsd44 * libcurses.a bsd44 ! * libcurses.a nvi * libedit.a bsd44 * libF77.a f2c * libg++.a libg++ * libgdbm.a gdbm * libgf.a Fontutils * libgmp.a gmp * libI77.a f2c * libkvm.a bsd44 * libm.a bsd44 * libnihcl.a NIHCL * libnihclmi.a NIHCL * libnihclvec.a NIHCL * libnls.a xreq * liboctave.a Octave * liboldX.a xreq --- 2217,2240 ---- * libcompat.a bsd44 * libcurses.a bsd44 ! * libcurses.a ncurses ! * libdcurses.a ncurses * libedit.a bsd44 * libF77.a f2c + * libF77.a g77 * libg++.a libg++ * libgdbm.a gdbm * libgf.a Fontutils * libgmp.a gmp + * libgnanslib Gnans * libI77.a f2c + * libI77.a g77 * libkvm.a bsd44 * libm.a bsd44 + * libncurses.a ncurses * libnihcl.a NIHCL * libnihclmi.a NIHCL * libnihclvec.a NIHCL * libnls.a xreq + * libobjects.a libobjects * liboctave.a Octave * liboldX.a xreq *************** FTP host (*note How to Get GNU Software: *** 1898,1901 **** --- 2244,2248 ---- * libresolv.a bsd44 * librpc.a bsd44 + * libsipp.a SIPP * libtcl.a DejaGnu * libtelnet.a bsd44 *************** FTP host (*note How to Get GNU Software: *** 1904,1907 **** --- 2251,2255 ---- * libtfm.a Fontutils * libutil.a bsd44 + * libvacall.a ffcall * libWc.a xopt * libwidgets.a Fontutils *************** FTP host (*note How to Get GNU Software: *** 1930,1937 **** * locate Findutils * lock bsd44 * logger bsd44 * login bsd44 * logname Shellutils ! * look ispell * lookbib Groff * lorder bsd44 --- 2278,2286 ---- * locate Findutils * lock bsd44 + * logcvt-ip2n phttpd * logger bsd44 * login bsd44 * logname Shellutils ! * logo ucblogo * lookbib Groff * lorder bsd44 *************** FTP host (*note How to Get GNU Software: *** 1941,1945 **** * m4 m4 * mail bsd44 ! * make Make * make-docfile Emacs * make-path Emacs --- 2290,2296 ---- * m4 m4 * mail bsd44 ! * mail-files Sharutils ! * mailshar Sharutils ! * make make * make-docfile Emacs * make-path Emacs *************** FTP host (*note How to Get GNU Software: *** 1953,1958 **** --- 2304,2311 ---- * maze xreq * mazewar xopt + * mc mc * mcd mtools * mcopy mtools + * mcserv mc * mdel mtools * mdir mtools *************** FTP host (*note How to Get GNU Software: *** 1966,1972 **** --- 2319,2327 ---- * mh bsd44 * mille bsd44 + * mkcache GN * mkdep bsd44 * mkdir Fileutils * mkfifo Fileutils + * mkisofs mkisofs * mklocale bsd44 * mkmanifest mtools *************** FTP host (*note How to Get GNU Software: *** 1989,1993 **** --- 2344,2353 ---- * mren mtools * ms-macros Groff + * msgcmp gettext + * msgfmt gettext + * msgmerge gettext * msgs bsd44 + * msgunfmt gettext + * mst Smalltalk * mt cpio * mterm xopt *************** FTP host (*note How to Get GNU Software: *** 2000,2004 **** * mwrite mtools ! * nethack Nethack * netstat bsd44 * newfs bsd44 --- 2360,2364 ---- * mwrite mtools ! * nethack NetHack * netstat bsd44 * newfs bsd44 *************** FTP host (*note How to Get GNU Software: *** 2056,2061 **** --- 2416,2424 ---- * pfbtops Groff * phantasia bsd44 + * phttpd phttpd * pic Groff + * pico pine * pig bsd44 + * pine pine * ping bsd44 * pixedit xopt *************** FTP host (*note How to Get GNU Software: *** 2081,2084 **** --- 2444,2448 ---- * printf Shellutils * protoize GCC + * proxygarb Spinner * ps bsd44 * ps2ascii Ghostscript *************** FTP host (*note How to Get GNU Software: *** 2088,2091 **** --- 2452,2456 ---- * pstat bsd44 * psycho xopt + * ptester phttpd * ptx ptx * pubdic+ xopt *************** FTP host (*note How to Get GNU Software: *** 2118,2122 **** --- 2483,2489 ---- * recode recode * recvstats HylaFAX + * red ed * refer Groff + * remsync Sharutils * renice bsd44 * repquota bsd44 *************** FTP host (*note How to Get GNU Software: *** 2148,2151 **** --- 2515,2519 ---- * s2p perl * sail bsd44 + * saoimage SAOimage * savecore bsd44 * sc bsd44 *************** FTP host (*note How to Get GNU Software: *** 2163,2166 **** --- 2531,2535 ---- * sendmail bsd44 * sgi2fax HylaFAX + * sgn GN * sh bsd44 * shar Sharutils *************** FTP host (*note How to Get GNU Software: *** 2197,2200 **** --- 2566,2570 ---- * systat bsd44 + * tabs Termutils * tac Textutils * tail Textutils *************** FTP host (*note How to Get GNU Software: *** 2236,2240 **** * tn3270 bsd44 * touch Fileutils ! * tput tput * tr Textutils * traceroute bsd44 --- 2606,2610 ---- * tn3270 bsd44 * touch Fileutils ! * tput Termutils * tr Textutils * traceroute bsd44 *************** FTP host (*note How to Get GNU Software: *** 2250,2258 **** --- 2620,2631 ---- * tsort bsd44 * tty Shellutils + * ttygnans Gnans * tunefs bsd44 + * tupdate gettext * tvtwm xopt * twm xreq * ul bsd44 + * ulpc Spinner * umount bsd44 * uname Shellutils *************** FTP host (*note How to Get GNU Software: *** 2260,2263 **** --- 2633,2637 ---- * unexpand Textutils * unifdef bsd44 + * unify wdiff * uniq Textutils * unprotoize GCC *************** FTP host (*note How to Get GNU Software: *** 2304,2307 **** --- 2678,2682 ---- * w bsd44 + * waisgn GN * wakeup Emacs * wall bsd44 *************** FTP host (*note How to Get GNU Software: *** 2385,2388 **** --- 2760,2764 ---- * xgc xopt * xgc xreq + * xgettext gettext * xhearts xopt * xhelp xopt *************** Tapes *** 2476,2578 **** We offer Unix source code on tapes in `tar' format on these media: ! * 4mm DAT cartridges ! * 8mm Exabyte cartridges ! * Sun DC300XLP QIC-24 1/4in cartridges (readable on some other systems) ! * Hewlett-Packard 16-track DC600HC 1/4in cartridges ! * IBM RS/6000 QIC-150 1/4in cartridges (readable on some other systems) ! * 1600bpi 9-track 1/2in reel tape ! The contents of the reel and various cartridge tapes for Unix systems are the ! same (except for the RS/6000 Emacs tape, which also has executables for ! Emacs); only the media are different. For pricing information, see the *note ! Free Software Foundation Order Form::.. Source code for the manuals and ! reference cards is included (*note Documentation::.). ! Some of the files on the tapes may be compressed with `gzip' to make them ! fit. Refer to the top-level `README' file at the beginning of each tape for ! instructions on uncompressing them. `uncompress' and `unpack' *do not work*! ! Languages Tape - (VERSION NUMBERS NOT COMPLETELY UP TO DATE) -------------- ! This tape contains programming tools: compilers, interpreters, and related ! programs (parsers, conversion programs, debuggers, etc.). ! * Binutils 2.5.2 ! * Bison 1.22 * C Library 1.09 * DejaGnu 1.2 * dld 3.2.3 * ecc 1.2.1 ! * f2c 1994.11.03 ! * flex 2.4.7 ! * Gawk 2.15.5 ! * GCC/G++/Objective-C 2.7.0 ! * GDB 4.13 * gdbm 1.7.3 * gmp 1.3.2 - * gperf 2.1a * gzip 1.2.4 * indent 1.9.1 ! * libg++ 2.6.1 ! * libobjects 0.1.0 ! * Make 3.72.1 ! * NIHCL 3.0 ! * OBST 3.4 ! * Octave 1.0 * p2c 1.20 * perl 4.036 ! * perl 5.000 * regex 0.12 * rx 0.05 * Smalltalk 1.1.1 ! * Superopt 2.3 ! * Texinfo 3.1 * Tile Forth 2.1 ! Lisps and Emacs Tape - (VERSION NUMBERS NOT COMPLETELY UP TO DATE) ! -------------------- This tape has Common Lisp systems and libraries, GNU Emacs, assorted ! extensions that work with GNU Emacs, and a few other important utilities. * Calc 2.02c ! * CLISP 1994.10.26 ! * Common Lisp 1.1 ! * elib 0.06 * Emacs 18.59 ! * Emacs 19.29 ! * GNU Emacs Lisp Reference Manaul, Ed. 2.3 * gzip 1.2.4 ! * Make 3.72.1 ! * MULE 2.1 ! * PCL 1993.03.18 ! * Texinfo 3.1 ! Utilities Tape - (VERSION NUMBERS NOT COMPLETELY UP TO DATE) -------------- This tape consists mostly of smaller utilities and miscellaneous applications. ! * acm 4.6 ! * Autoconf 1.11 ! * Autoconf 2.1 ! * BASH 1.14.2 * bc 1.03 ! * Chess 4.0.73 * cpio 2.3 ! * CVS 1.3 ! * dc 0.2 * Diffutils 2.7 * doschk 1.1 --- 2852,2965 ---- We offer Unix source code on tapes in `tar' format on these media: ! * 4mm DAT cartridge tape. ! * 8mm Exabyte cartridge tape. ! * Sun DC300XLP QIC-24 1/4in cartridge (readable on some other systems). ! * Hewlett-Packard 16-track DC600HC 1/4in cartridge tape. ! * IBM RS/6000 QIC-150 1/4in cartridge (readable on some other systems). ! * 1600bpi 9-track 1/2in reel tape. ! The contents of the various tapes for Unix systems are the same; only the ! media are different. For prices, see the *note Free Software Foundation ! Order Form::.. Source code for the manuals & reference cards is included ! (*note Documentation::.). ! Some of the files on the tapes are compressed with `gzip' to allow more files ! on each tape. Refer to the top-level `README' file at the beginning of each ! tape for instructions on uncompressing them. `uncompress' and `unpack' *do ! not work*! ! Languages Tape -------------- ! This tape contains programming tools: compilers, interpreters and, related ! programs (parsers, translators, debuggers, linkers, etc.). ! * Binutils 2.6 ! * Bison 1.24 * C Library 1.09 + * cperf 2.1a * DejaGnu 1.2 * dld 3.2.3 * ecc 1.2.1 ! * f2c 1995.02.24 ! * flex 2.5.2 ! * g77 0.5.17 ! * GAWK 2.15.6 ! * GCC/G++/Objective-C 2.7.2 ! * GDB 4.15.1 * gdbm 1.7.3 + * gettext 0.10 * gmp 1.3.2 * gzip 1.2.4 * indent 1.9.1 ! * libg++ 2.7.1 ! * libobjects 0.1.3 ! * make 3.74 ! * ncurses 1.9.4 ! * NIHCL 3.1.4 ! * OBST 3.4.3 ! * Octave 1.1.1 * p2c 1.20 * perl 4.036 ! * perl 5.001 * regex 0.12 * rx 0.05 * Smalltalk 1.1.1 ! * Superopt 2.5 ! * Texinfo 3.6 * Tile Forth 2.1 + * ucblogo 3.3 ! Lisps/Emacs Tape ! ---------------- This tape has Common Lisp systems and libraries, GNU Emacs, assorted ! extensions that work with Emacs, manuals, & a few other important utilities. * Calc 2.02c ! * CLISP 1995.12.04 ! * CLX 5.02 ! * Common Lisp 2.2 ! * Elib 0.06 * Emacs 18.59 ! * Emacs 19.28 ! * Emacs 19.30 ! * GNU Emacs Lisp Reference Manual Ed. 1.03 for Version 18 ! * GNU Emacs Lisp Reference Manual Ed. 2.4 for Version 19.29 ! * gnuserv 2.1alpha * gzip 1.2.4 ! * Hyperbole 4.01 ! * make 3.74 ! * MULE 2.3 ! * PCL 2.2 ! * Programming in Emacs Lisp: An Introduction Ed. 1.04 ! * Texinfo 3.6 ! * W3 2.2.25 ! Utilities Tape -------------- This tape consists mostly of smaller utilities and miscellaneous applications. ! * acm 4.7 ! * Autoconf 2.7 ! * BASH 1.14.5 * bc 1.03 ! * cfengine 1.2.14 ! * cfengine 1.2.22 ! * Chess 4.0.pl75 * cpio 2.3 ! * CVS 1.6 * Diffutils 2.7 * doschk 1.1 *************** This tape consists mostly of smaller uti *** 2581,2630 **** * Fileutils 3.12 * Findutils 4.1 ! * finger 1.37 ! * HylaFAX 2.2.2.1 * Fontutils 0.6 ! * Ghostscript 2.6.1 * Ghostview 1.5 * GNATS 3.2 ! * GnuGo 1.1 * gnuplot 3.5 * Graphics 0.17 * grep 2.0 ! * Groff 1.09 * gzip 1.2.4 * hello 1.3 * hp2xx 3.1.4 ! * ispell 3.1.13 ! * m4 1.3 ! * Make 3.72.1 ! * mkisofs 1.01 * mm 1.07 * mtools 2.0.7 ! * Nethack 3.1.3 * nvi 1.34 * Oleo 1.6 * patch 2.1 * ptx 0.4 * rc 1.4 ! * RCS 5.6.0.1 * recode 3.4 ! * saoimage 1.08 ! * screen 3.5.2 ! * screen 3.6.0 ! * sed 1.18 & 2.05 ! * Sharutils 4.1 * Shellutils 1.12 ! * Shogi 1.2.02 ! * tar 1.11.2 ! * Termcap 1.2 ! * Texinfo 3.1 ! * Textutils 1.11 * time 1.6 ! * tput 1.0 ! * UUCP 1.05 ! * wdiff 0.04 ! * xboard 3.1.1 ! * xshogi 1.2.02 ! * Ygl 2.9 --- 2968,3023 ---- * Fileutils 3.12 * Findutils 4.1 ! * Finger 1.37 * Fontutils 0.6 ! * Ghostscript 2.6.2 * Ghostview 1.5 + * Ghostview for Windows 1.0 + * GIT 4.3.6 * GNATS 3.2 ! * GnuGo 1.2 * gnuplot 3.5 * Graphics 0.17 * grep 2.0 ! * Groff 1.10 * gzip 1.2.4 * hello 1.3 * hp2xx 3.1.4 ! * HylaFAX 3.0.0 ! * Ispell 3.1.20 ! * less 2.9.0 ! * m4 1.4 ! * make 3.74 ! * MandelSpawn 0.07 ! * mc 3.0 ! * mkisofs 1.04 * mm 1.07 * mtools 2.0.7 ! * NetHack 3.1.3 * nvi 1.34 * Oleo 1.6 * patch 2.1 + * pine 3.91 * ptx 0.4 * rc 1.4 ! * RCS 5.7 ! * readline 2.0 * recode 3.4 ! * SAOimage 1.16 ! * screen 3.7.1 ! * sed 2.05 ! * Sharutils 4.2 * Shellutils 1.12 ! * Shogi 1.2.3 ! * tar 1.11.8 ! * Termcap 1.3 ! * Termutils 2.0 ! * Texinfo 3.6 ! * Textutils 1.13 * time 1.6 ! * UUCP 1.06.1 ! * wdiff 0.5 ! * xboard 3.4.pl0 ! * xshogi 1.2.03 ! * Ygl 3.0.3 *************** Scheme Tape *** 2634,2659 **** Scheme is a simplified, lexically-scoped dialect of Lisp. It was designed at ! MIT and other universities to teach students the art of programming, and to research new parallel programming constructs and compilation techniques. ! This tape now contains MIT Scheme 7.3, which conforms to the "Revised^4 ! Report On the Algorithmic Language Scheme" (MIT AI Lab Memo 848b), for which ! TeX source is included. It is written partly in C, but is presently hard to ! bootstrap. Binaries that can be used to bootstrap Scheme are available for: ! ! * HP 9000 series 300, 400, 700 & 800 running HP-UX 7.0 or 8.0 ! ! * NeXT running NeXT OS 1.0 or 2.0 ! ! * Sun-3 or Sun-4 running SunOS 4.1 ! ! * DECstation 3100/5100 running Ultrix 4.0 ! ! * Sony NeWS-3250 running NEWS OS 5.01 ! ! * Vax running 4.3BSD ! ! If your system is not on this list and you don't enjoy the bootstrap ! challenge, see the JACAL item in *Note GNU Software::. --- 3027,3042 ---- Scheme is a simplified, lexically-scoped dialect of Lisp. It was designed at ! MIT and other universities to teach students the art of programming and to research new parallel programming constructs and compilation techniques. ! This tape now has MIT Scheme 7.3, which conforms to the "Revised^4 Report On ! the Algorithmic Language Scheme" (MIT AI Lab Memo 848b), for which TeX source ! is included. It is written partly in C, but is presently hard to bootstrap. ! Binaries that can be used to bootstrap it exist for: HP 9000 series 300, 400, ! 700, & 800 (running HP-UX 9.0), NeXT (NeXT OS 2 or 3.2), DEC Alpha (OSF/1), ! IBM RS/6000 (AIX), Sun-3 or Sun-4 (SunOS 4.1), DECstation 3100/5100 (Ultrix ! 4.0), Sony NeWS-3250 (NEWS OS 5.01), & Intel i386 (MS-DOS, Windows 3.1 or NT). ! If your system is not on this list & you don't enjoy the bootstrap challenge, ! see "JACAL" in *Note GNU Software::. *************** X11 Tapes *** 2663,2671 **** The two X11 tapes contain Version 11, Release 6 of the X Window System. The ! first tape contains all of the core software, documentation and some ! contributed clients. We call this the "required" X tape since it is ! necessary for running X or running GNU Emacs under X. The second, "optional" ! tape contains contributed libraries and other toolkits, the Andrew User ! Interface System, games, and other programs. The X11 Required tape also contains all fixes and patches released to date. --- 3046,3053 ---- The two X11 tapes contain Version 11, Release 6 of the X Window System. The ! first tape has all of the core software, documentation, & some contributed ! clients. We call this the "required" X tape since it is necessary for ! running X or Emacs under X. The second, "optional" tape has contributed ! libraries & toolkits, the Andrew User Interface System, games, etc. The X11 Required tape also contains all fixes and patches released to date. *************** We update this tape as new fixes and pat *** 2673,2678 **** both tapes. *Note Tape & CD-ROM Subscription Service::. ! We will distribute X11R5 on tape until X11R6 is stable, and on the *Note ! November 1993 Source Code CD-ROM::, while supplies last. --- 3055,3060 ---- both tapes. *Note Tape & CD-ROM Subscription Service::. ! While supplies last, we will distribute X11R5 on the *Note November 1993 ! Source Code CD-ROM::. *************** VMS Emacs and VMS Compiler Tapes *** 2693,2697 **** We offer two VMS tapes. One has just GNU Emacs 18.59 (none of the other software on the *Note Lisps/Emacs Tape::, is included). The other has GCC ! 2.3.3, Bison 1.19 (to compile GCC), GAS 1.38 (to assemble GCC's output) and some library and include files (none of the other software on the *Note Languages Tape::, is included). We are not aware of a GDB port for VMS. --- 3075,3079 ---- We offer two VMS tapes. One has just GNU Emacs 18.59 (none of the other software on the *Note Lisps/Emacs Tape::, is included). The other has GCC ! 2.3.3, Bison 1.19 (to compile GCC), `gas' 1.38 (to assemble GCC's output), and some library and include files (none of the other software on the *Note Languages Tape::, is included). We are not aware of a GDB port for VMS. *************** CD-ROMs *** 2708,2728 **** We offer these CD-ROMs: ! * *Note MS-DOS CD-ROM::, expected in September 1995. ! * *Note Debian GNU/Linux CD-ROM::, expected in late fall 1995. ! * *Note Compiler Tools Binaries CD-ROM::. ! * *Note June 1995 Source Code CD-ROM::. ! * *Note May 1994 Source Code CD-ROM::. ! * *Note November 1993 Source Code CD-ROM::. Our CD-ROMs are in ISO 9660 format & can be mounted as a read-only file ! system on most computers. If your driver supports it you can mount each ! CD-ROM with "Rock Ridge" extensions (the MS-DOS CD-ROM is only in ISO 9660 ! format) & it will look just like an ordinary Unix file system, rather than ! one full of truncated & otherwise mangled names that fit vanilla ISO 9660. You can build most of the software without copying the sources off the CD. --- 3090,3110 ---- We offer these CD-ROMs: ! * Several editions of our *Note Source Code CD-ROMs::. ! * *Note December 1995 Compiler Tools Binaries CD-ROM::. ! * *Note December 1994 Compiler Tools Binaries CD-ROM::. ! * *Note December 1993 Compiler Tools Binaries CD-ROM::. ! * *Note MS-DOS Book with CD-ROM::. ! * *Note Debian GNU/Linux Book with CD-ROM::. Our CD-ROMs are in ISO 9660 format & can be mounted as a read-only file ! system on most computers. If your driver supports it you can mount each CD ! with "Rock Ridge" extensions (the MS-DOS CD-ROM is only in ISO 9660 format), ! & it will look just like an ordinary Unix file system, rather than one full ! of truncated & otherwise mangled names that fit vanilla ISO 9660. You can build most of the software without copying the sources off the CD. *************** Pricing of the GNU CD-ROMs *** 2735,2758 **** -------------------------- ! If a business or organization is ultimately paying, the June 1995 Source CD ! costs $240. It costs $60 if you, an individual, are paying out of your own ! pocket. The December 1994 Compiler Tools Binaries CD-ROM costs $220 for a ! business or organization, and $55 for an individual. What do the individual and company prices mean? ! The software on our disk is free; anyone can copy it and anyone can run it. What we charge for is the physical disk and the service of distribution. We charge two different prices depending on who is buying. When a company or ! other organization buys the June 1995 Source CD-ROM, we charge $240. When an ! individual buys the same disk, we charge just $60. ! ! This distinction is not a matter of who is allowed to use the software. In ! either case, once you have a copy, you can distribute as many copies as you ! wish, and there's no restriction on who can have or run them. The price ! distinction is entirely a matter of what kind of entity pays for the CD. You, the reader, are certainly an individual, not a company. If you are --- 3117,3140 ---- -------------------------- ! If a business or organization is ultimately paying, the December 1995 Source ! CDs costs $240. It costs $60 if you, an individual, are paying out of your ! own pocket. The December 1995 Compiler Tools Binaries CD-ROM costs $220 for ! a business or organization, and $55 for an individual. What do the individual and company prices mean? + ............................................... ! The software on our disks is free; anyone can copy it and anyone can run it. What we charge for is the physical disk and the service of distribution. We charge two different prices depending on who is buying. When a company or ! other organization buys the December 1995 Source CD-ROMs, we charge $240. ! When an individual buys the same CD-ROM, we charge just $60. This ! distinction is not a matter of who is allowed to use the software. In either ! case, once you have a copy, you can distribute as many copies as you wish and ! there's no restriction on who can have or run them. The price distinction is ! entirely a matter of what kind of entity pays for the CD. You, the reader, are certainly an individual, not a company. If you are *************** for the company; so please pay the compa *** 2762,2776 **** We won't try to check up on you--we use the honor system--so please cooperate. ! Buying CDs at the company price is very helpful for GNU; just 140 Source CDs ! at that price supports an FSF programmer or tech writer for a year. Why is there an individual price? In the past, our distribution tapes have been ordered mainly by companies. The CD at the price of $240 provides them with all of our software for a much lower price than they would previously have paid for six different tapes. To ! lower the price more would cut into the FSF's funds very badly, and decrease the software development we can do. --- 3144,3160 ---- We won't try to check up on you--we use the honor system--so please cooperate. ! Buying CDs at the company price is very helpful for GNU; just ! 140 Source CDs at that price support an FSF programmer or tech writer for a ! year. Why is there an individual price? + ................................. In the past, our distribution tapes have been ordered mainly by companies. The CD at the price of $240 provides them with all of our software for a much lower price than they would previously have paid for six different tapes. To ! lower the price more would cut into the FSF's funds very badly and decrease the software development we can do. *************** price of $60. *** 2782,2785 **** --- 3166,3170 ---- Is there a maximum price? + ......................... Our stated prices are minimum prices. Feel free to pay a higher price if you *************** the U.S.) to the Free Software Foundatio *** 2790,2823 **** ! MS-DOS CD-ROM ! ------------- ! ! We expect to release our first CD-ROM for MS-DOS in September, 1995. Contact ! either address on page 1 for more information at that time. The MS-DOS CD ! will be packaged inside a book describing its contents. It will have all the ! sources and executables on the MS-DOS Diskettes. For details and version ! numbers, *note MS-DOS Diskettes::.. ! Debian GNU/Linux CD-ROM ! ----------------------- ! The FSF expects to ship a CD-ROM with Debian GNU/Linux on it in the late fall ! 1995. This CD will be packaged inside a book describing its contents. ! m{No Value For "ergegrafkludge"} Debian GNU/Linux is a complete operating ! system for x86 machines, available in both source code and binary form. It ! is a GNU/Linux system--that is to say, a variant GNU system which uses Linux ! as the kernel. (All the systems now available which use the Linux kernel are ! GNU/Linux systems.) ! Debian is being developed by Ian Murdock and the Debian Association in ! conjunction with the Free Software Foundation. We are distributing it as an ! interim measure until the GNU kernel (the Hurd) is ready for users. ! Debian GNU/Linux is available for FTP at `ftp.cps.cmich.edu' in file ! `/pub/debian'. For more information about the Debian Project and how to get ! involved, see `/pub/gnu/GNUinfo/DEBIAN' on a GNU FTP host (*note How to Get ! GNU Software::. for a list). --- 3175,3213 ---- ! December 1995 Compiler Tools Binaries CD-ROM ! -------------------------------------------- + We now have the third edition of our CD-ROM that has binaries and complete + sources for GNU compiler tools for some systems which lack a compiler. This + enables the people who use these systems to compile GNU and other free + software without having to buy a proprietary compiler. You can also use + these GNU tools to compile your own C/C++/Objective-C programs. Older + editions of this CD are available while supplies last at a reduced price; see + the *note Free Software Foundation Order Form::.. + We hope to have more systems on each update of this CD. If you can help + build binaries for new systems (especially those that don't come with a C + compiler), or have one to suggest, please contact us at the addresses on page + 1. ! These packages: ! * DJGPP 1.12m4 from GCC 2.6.3 ! * GCC/G++/Objective-C 2.7.1 ! * GNU C Library 1.09 ! * GDB 4.15.1 ! * Binutils 2.6 ! * Bison 1.24 ! * Emacs 19.29 (MS-DOS only) ! * Flex 2.5.2 ! * Make 3.74 ! * libg++ 2.7.1 ! On these platforms: ! * `i386-msdos' ! * `hppa1.0-hp-hpux9' ! * `sparc-sun-solaris2' ! * `sparc-sun-sunos4.1' *************** December 1994 Compiler Tools Binaries CD *** 2826,2859 **** -------------------------------------------- ! We are now offering a CD-ROM that contains executables for GNU compiler tools ! for some systems which lack a compiler. This enables the people who use ! these systems to compile GNU and other free software without having to buy a ! proprietary compiler. You can also use the GNU compilation system to compile ! your own C/C++/Objective-C programs. We hope to have more systems on each update of this CD. If you can help build binaries for new systems (especially those that don't come with a C ! compiler), or have one to suggest, please contact us at the addresses on page ! 1. These packages: ! *DJGPP 1.12.m2 from GCC 2.6.0 ! *GCC/G++/Objective-C 2.6.2 ! *GNU C Library 1.09 ! *GDB 4.13 ! *Binutils 2.5.2 ! *Bison 1.22 ! *Emacs 19.26 (MS-DOS only) ! *Flex 2.4.7 ! *Make 3.72.1 ! *libg++ 2.6.1 On these platforms: ! *`i386-msdos' ! *`hppa1.1-hp-hpux9' ! *`sparc-sun-solaris2' ! *`sparc-sun-sunos4.1' --- 3216,3300 ---- -------------------------------------------- ! We still have the 2nd edition of our CD-ROM that contains executables for GNU ! compiler tools for some systems which lack a compiler. This enables the ! people who use these systems to compile GNU and other free software without ! having to buy a proprietary compiler. You can also use the GNU compilation ! system to compile your own C/C++/Objective-C programs. We hope to have more systems on each update of this CD. If you can help build binaries for new systems (especially those that don't come with a C ! compiler), or have one to suggest, please contact us at the addresses on ! page 1. These packages: ! * DJGPP 1.12.m2 from GCC 2.6.0 ! * GCC/G++/Objective-C 2.6.2 ! * GNU C Library 1.09 ! * GDB 4.13 ! * Binutils 2.5.2 ! * Bison 1.22 ! * Emacs 19.26 (MS-DOS only) ! * Flex 2.4.7 ! * Make 3.72.1 ! * libg++ 2.6.1 On these platforms: ! * `i386-msdos' ! * `hppa1.1-hp-hpux9' ! * `sparc-sun-solaris2' ! * `sparc-sun-sunos4.1' ! ! ! ! December 1993 Compiler Tools Binaries CD-ROM ! --------------------------------------------- ! ! We still have the 1st edition of our CD-ROM that contains executables for GNU ! compiler tools for some systems which lack a compiler. This will allow users ! of those systems to compile GNU and other free software without having to buy ! a proprietary compiler. ! ! The CD-ROM is in ISO 9660 format and can be mounted as a read-only file ! system on most operating systems. If your driver supports it you can mount ! the CD-ROM with "Rock Ridge" extensions and it will look just like an ! ordinary Unix file system, rather than one full of truncated and otherwise ! mangled names that fit the vanilla ISO 9660 specifications. ! ! We hope to have more systems included with each update of this CD-ROM. If ! you can help build binaries for new systems (especially for systems that ! don't come with a C compiler), or have a system to suggest, please contact us ! at either address on the front cover. ! ! These programs: ! ! * DJGPP 1.11.m1 ! ! * GCC/G++/Objective C 2.5.7 ! ! * GDB 4.11 ! ! * GAS 2.2 ! ! * Binutils 2.3 ! ! * Bison 1.22 ! ! * Flex 2.4.5 ! ! * Make 3.70 ! ! * libg++ 2.5.3 ! ! For these platforms: ! ! * `i386-msdos' ! ! * `hppa1.1-hp-hpux9' ! ! * `sparc-sun-solaris2' ! ! * `sparc-sun-sunos4.1' *************** Source Code CD-ROMs *** 2862,2883 **** ------------------- ! We have several versions of our Source Code CD-ROMs available: * *Note June 1995 Source Code CD-ROM::. ! * *Note May 1994 Source Code CD-ROM::. * *Note November 1993 Source Code CD-ROM::. ! The older Source Code CDs will be available while supplies last at a reduced ! price; see the *note Free Software Foundation Order Form::.. ! All of the Source Code CDs also contain Texinfo source for the GNU manuals ! listed in *Note Documentation::. The VMS tapes' contents are *not* included. Many programs that are only on ! MS-DOS diskettes and not on the tapes are also *not* included. The contents ! of the MIT Scheme & X11 Optional tapes are *not* on the November 1993 & May ! 1994 Source CDs. *Note Tapes:: & *Note MS-DOS Diskettes::. There are no precompiled programs on these Source CDs. You will need a C --- 3303,3332 ---- ------------------- ! We have several versions of our Source Code CD-ROMs available, including: ! ! * *Note December 1995 Source Code CD-ROMs::, the newest release, has ! programs, bug fixes, & improvements not on the other CDs. * *Note June 1995 Source Code CD-ROM::. ! * *Note May 1994 Source Code CD-ROM::.. * *Note November 1993 Source Code CD-ROM::. ! * May 1993 Source Code CD-ROM, see the *note Free Software Foundation ! Order Form::.. ! ! * October 1992 Source Code CD-ROM, see the *note Free Software Foundation ! Order Form::.. ! The older Source CDs are available while supplies last at a reduced price ! (please note that the December 1994 Source CD is permanently out of stock). ! All the Source CDs have Texinfo source for the GNU manuals listed in *Note ! Documentation::. The VMS tapes' contents are *not* included. Many programs that are only on ! MS-DOS diskettes & not on the tapes are also *not* included. The MIT Scheme ! & X11 Optional tapes' contents are *not* on the older Source CDs. *Note ! Tapes:: & *Note MS-DOS Diskettes::. There are no precompiled programs on these Source CDs. You will need a C *************** binaries for some systems on the *Note C *** 2888,2992 **** ! June 1995 Source Code CD-ROM - (VERSION NUMBERS NOT COMPLETELY UP TO DATE) ............................ ! We now have the sixth edition of our Source CD. This CD has Edition X.X for ! version 19 of the `GNU Emacs Lisp Reference Manual' & some additional ! software; not all FSF distributed software is included (*note Source Code ! CD-ROMs::.). It contains the following packages: ! *XXXXX UPDATE THIS LIST XXXXX* ! *acm 4.5 ! *Autoconf 1.10 ! *BASH 1.13.5 ! *bc 1.02 ! *Binutils 2.3 ! *Bison 1.22 ! *C Library 1.08 ! *Calc 2.02c ! *Chess 4.0.69 ! *CLISP 1994.01.08 ! *Common Lisp 1.0 ! *cpio 2.3 ! *CVS 1.3 ! *dc 0.2 ! *DejaGnu 1.2 ! *Diffutils 2.6 ! *dld 3.2.3 ! *doschk 1.1 ! *ecc 1.2.1 ! *ed 0.1 ! *elib 0.06 ! *Emacs 18.59 ! *Emacs 19.23 ! *es 0.84 ! *f2c 1994.04.14 ! *Fileutils 3.9 ! *find 3.8 ! *finger 1.37 ! *flex 2.4.6 ! *Fontutils 0.6 ! *GAS 1.36.utah ! *GAS 2.2 ! *Gawk 2.15.4 ! *GCC 2.5.8 ! *GDB 4.12 ! *gdbm 1.7.1 ! *Ghostscript 2.6.1 ! *Ghostview 1.5 ! *Ghostview for Windows 1.0 ! *gmp 1.3.2 ! *GNATS 3.2 ! *GnuGo 1.1 ! *gnuplot 3.5 ! *gperf 2.1a ! *Graphics 0.17 ! *grep 2.0 ! *Groff 1.09 ! *gzip 1.2.4 ! *hello 1.3 ! *hp2xx 3.1.4 ! *indent 1.9.1 ! *ispell 4.0 ! *libg++ 2.5.3 ! *m4 1.1 ! *Make 3.71 ! *MandelSpawn 0.07 ! *mtools 2.0.7 ! *MULE 1.0 ! *NetFax 3.2.1 ! *Nethack 3.1.3 ! *NIHCL 3.0 ! *nvi 1.11 ! *Octave 1.0 ! *Oleo 1.5 ! *p2c 1.20 ! *patch 2.1 ! *PCL 1993.03.18 ! *perl 4.036 ! *ptx 0.3 ! *rc 1.4 ! *RCS 5.6.0.1 ! *recode 3.3 ! *regex 0.12 ! *screen 3.5.2 ! *sed 2.05 ! *shellutils 1.9.4 ! *Shogi 1.1.02 ! *Smalltalk 1.1.1 ! *Superopt 2.3 ! *tar 1.11.2 ! *Termcap 1.2 ! *TeX 3.1 ! *Texinfo 3.1 ! *Textutils 1.9.1 ! *Tile Forth 2.1 ! *time 1.6 ! *tput 1.0 ! *UUCP 1.05 ! *uuencode 1.0 ! *wdiff 0.04 ! *X11R6 ! *xboard 3.0.9 ! *xshogi 1.2.02 --- 3337,3594 ---- ! December 1995 Source Code CD-ROMs ! ................................. ! ! The 7th edition of our Source CD is out! Due to increasing amounts of GNU ! Software, the Source Code CD is now a two disc set--the price remains ! unchanged! It contains these packages, & some manuals that are not part of ! packages: ! ! * acm 4.7 ! * apache 0.8.8 ! * Autoconf 2.7 ! * BASH 1.14.5 ! * bc 1.03 ! * Binutils 2.5.2 ! * Binutils 2.6 ! * Bison 1.24 ! * C Library 1.09 ! * Calc 2.02c ! * cfengine 1.2.21 ! * Chess 4.0.pl75 ! * CLISP 1995.08.12 ! * Common Lisp 2.2 ! * cperf 2.1a ! * cpio 2.3 ! * CVS 1.6 ! * DDD 1.3b ! * DejaGnu 1.2.9 ! * Diffutils 2.7 ! * dld 3.2.3 ! * doschk 1.1 ! * ecc 1.2.1 ! * ed 0.2 ! * Elib 0.07 ! * Elisp archive ! * Emacs 18.59 ! * Emacs 19.28 ! * Emacs 19.29 ! * Emacs 19.30 ! * es 0.84 ! * f2c 1995.11.18 ! * ffcall 1.0 ! * Fileutils 3.12 ! * Findutils 4.1 ! * Finger 1.37 ! * flex 2.5.2 ! * Fontutils 0.6 ! * g77 0.5.17 ! * GAWK 2.15.6 ! * GCC/G++/Objective C 2.7.1 ! * GDB 4.15.1 ! * gdbm 1.7.3 ! * gettext 0.9a ! * Ghostscript 2.6.2 ! * Ghostview 1.5 ! * Ghostview for Windows 1.0 ! * GIT 4.3.7 ! * gmp 1.3.2 ! * GN 2.23 ! * Gnans 1.5 ! * GNATS 3.2 ! * GNU Emacs Lisp Reference Manual, Ed. 1.03 for Version 18.59 ! * GNU Emacs Lisp Reference Manual, Ed. 2.4 for Version 19.29 ! * GnuGo 1.2 ! * gnuplot 3.5 ! * gnuserv 2.1alpha ! * Graphics 0.17 ! * grep 2.0 ! * Groff 1.09 ! * gzip 1.2.4 ! * hello 1.3 ! * hp2xx 3.1.4 ! * HylaFAX v3.0pl0 ! * Hyperbole 4.01 ! * indent 1.9.1 ! * Ispell 3.1.20 ! * less 290 ! * libg++ 2.7.1 ! * libobjects 0.1.3 ! * m4 1.4 ! * make 3.74 ! * mc 3.0 ! * MIT Scheme 7.3 ! * mkisofs 1.04GNU ! * mtools 2.0.7 ! * MULE 2.3 ! * ncurses 1.9.7a ! * NetHack 3.1.3 ! * NIHCL 3.1.4 ! * nvi 1.34 ! * Oaklisp 93.07.23 ! * OBST 3.4.3 ! * Octave 1.1.1 ! * Oleo 1.6 ! * p2c 1.20 ! * patch 2.1 ! * perl 4.036 ! * perl 5.001 ! * phttpd 0.99.68 ! * pine 3.91 ! * Programming in Emacs Lisp: An Introduction, Ed. 1.04 ! * ptx 0.4 ! * rc 1.4 ! * RCS 5.7 ! * recode 3.4 ! * regex 0.12 ! * rx 0.05 ! * SAOimage 1.08 ! * screen 3.7.1 ! * sed 2.05 ! * Sharutils 4.1 ! * Shellutils 1.12 ! * Shogi 1.2p03 ! * SIPP 3.1 ! * Smalltalk 1.1.1 ! * SNePS 2.3.1 ! * Spinner 1.0b11 ! * Superopt 2.5 ! * tar 1.11.8 ! * Termcap 1.3 ! * TeX 3.145 ! * Texinfo 3.6 ! * Textutils 1.13 ! * Tile Forth 2.1 ! * time 1.6 ! * tput 1.0 ! * ucblogo 3.3 ! * UUCP 1.06.1 ! * W3 2.2.25 ! * wdiff 0.5 ! * X11R6 ! * xboard 3.3.pl3 ! * xgrabsc 2.41 ! * xshogi 1.2p03 ! * Ygl 3.0.2 ! ! ! ! June 1995 Source Code CD-ROM ............................ ! We still have the 6th edition of our Source CD at a reduced price while ! supplies last. Not all FSF distributed software is included (*note Source ! Code CD-ROMs::.). It contains these packages, and some manuals that are not ! part of packages: ! ! * acm 4.7 ! * Autoconf 2.4 ! * BASH 1.14.5 ! * bc 1.03 ! * Binutils 2.5.2 ! * Bison 1.24 ! * C Library 1.09 ! * Calc 2.02c ! * cfengine 1.0.4 ! * Chess 4.0.pl74 ! * CLISP 1995.04.25 ! * Common Lisp 2.1 ! * cperf 2.1a ! * cpio 2.3 ! * CVS 1.3 ! * DejaGnu 1.2 ! * Diffutils 2.7 ! * dld 3.2.3 ! * doschk 1.1 ! * ecc 1.2.1 ! * ed 0.2 ! * elib 0.06 ! * Emacs 18.59 ! * Emacs 19.28 ! * Emacs 19.29 ! * GNU Emacs Lisp Reference Manual Ed. 1.03 for Version 18 ! * GNU Emacs Lisp Reference Manual Ed. 2.4 for Version 19.29 ! * es 0.84 ! * f2c 1995.02.24 ! * Fileutils 3.12 ! * Findutils 4.1 ! * Finger 1.37 ! * flex 2.5.2 ! * Fontutils 0.6 ! * g77 0.5.15 ! * GAWK 2.15.6 ! * GCC/G++/Objective C 2.6.3 ! * GCC/G++/Objective C 2.7.0 ! * GDB 4.14 ! * gdbm 1.7.3 ! * Ghostscript 2.6.2 ! * Ghostview 1.5 ! * Ghostview for Windows 1.0 ! * GIT 4.3.6 ! * gmp 1.3.2 ! * GNATS 3.2 ! * GnuGo 1.1 ! * gnuplot 3.5 ! * Graphics 0.17 ! * grep 2.0 ! * Groff 1.09 ! * gzip 1.2.4 ! * hello 1.3 ! * hp2xx 3.1.4 ! * HylaFAX 3.0.pl0 ! * indent 1.9.1 ! * Ispell 3.1.18 ! * less 2.90 ! * libg++ 2.6.2 ! * libg++ 2.7.0 ! * libobjects 0.1.3 ! * m4 1.4 ! * make 3.74 ! * MandelSpawn 0.07 ! * mkisofs 1.03GNU ! * mtools 2.0.7 ! * MULE 2.2 ! * ncurses 1.9.1 ! * NetHack 3.1.3 ! * NIHCL 3.1.4 ! * nvi 1.34 ! * OBST 3.4.3 ! * Octave 1.1.1 ! * Oleo 1.6 ! * p2c 1.20 ! * patch 2.1 ! * PCL 2.1 ! * perl 4.036 ! * perl 5.001 ! * pine 3.91 ! * Programming in Emacs Lisp: An Introduction Ed. 1.03 for Version 19 ! * ptx 0.4 ! * rc 1.4 ! * RCS 5.7 ! * recode 3.4 ! * regex 0.12 ! * rx 0.05 ! * screen 3.6.2 ! * sed 2.05 ! * Sharutils 4.1 ! * Shellutils 1.12 ! * Shogi 1.2p03 ! * Smalltalk 1.1.1 ! * Superopt 2.5 ! * tar 1.11.8 ! * Termcap 1.2 ! * TeX 3.1415 ! * Texinfo 3.6 ! * Textutils 1.12 ! * Tile Forth 2.1 ! * time 1.6 ! * tput 1.0 ! * ucblogo ! * UUCP 1.05 ! * wdiff 0.5 ! * X11R6 ! * xboard 3.2.pl2 ! * xshogi 1.2p03 ! * Ygl 2.9.5 *************** May 1994 Source Code CD-ROM *** 2995,3095 **** ........................... ! We still have the fourth edition of our Source CD, at a reduced price. This CD has Edition 2.3 for version 19 of the `GNU Emacs Lisp Reference Manual' & ! some additional software; not all FSF distributed software is included (*note ! Source Code CD-ROMs::.). It contains these packages: ! *acm 4.5 ! *Autoconf 1.10 ! *BASH 1.13.5 ! *bc 1.02 ! *Binutils 2.3 ! *Bison 1.22 ! *C Library 1.08 ! *Calc 2.02c ! *Chess 4.0.69 ! *CLISP 1994.01.08 ! *Common Lisp 1.0 ! *cpio 2.3 ! *CVS 1.3 ! *dc 0.2 ! *DejaGnu 1.2 ! *Diffutils 2.6 ! *dld 3.2.3 ! *doschk 1.1 ! *ecc 1.2.1 ! *ed 0.1 ! *elib 0.06 ! *Emacs 18.59 ! *Emacs 19.23 ! *es 0.84 ! *f2c 1994.04.14 ! *Fileutils 3.9 ! *find 3.8 ! *finger 1.37 ! *flex 2.4.6 ! *Fontutils 0.6 ! *GAS 1.36.utah ! *GAS 2.2 ! *Gawk 2.15.4 ! *GCC 2.5.8 ! *GDB 4.12 ! *gdbm 1.7.1 ! *Ghostscript 2.6.1 ! *Ghostview 1.5 ! *Ghostview for Windows 1.0 ! *gmp 1.3.2 ! *GNATS 3.2 ! *GnuGo 1.1 ! *gnuplot 3.5 ! *gperf 2.1a ! *Graphics 0.17 ! *grep 2.0 ! *Groff 1.09 ! *gzip 1.2.4 ! *hello 1.3 ! *hp2xx 3.1.4 ! *indent 1.9.1 ! *ispell 4.0 ! *libg++ 2.5.3 ! *m4 1.1 ! *Make 3.71 ! *MandelSpawn 0.07 ! *mtools 2.0.7 ! *MULE 1.0 ! *NetFax 3.2.1 ! *Nethack 3.1.3 ! *NIHCL 3.0 ! *nvi 1.11 ! *Octave 1.0 ! *Oleo 1.5 ! *p2c 1.20 ! *patch 2.1 ! *PCL 1993.03.18 ! *perl 4.036 ! *ptx 0.3 ! *rc 1.4 ! *RCS 5.6.0.1 ! *recode 3.3 ! *regex 0.12 ! *screen 3.5.2 ! *sed 2.05 ! *shellutils 1.9.4 ! *Shogi 1.1.02 ! *Smalltalk 1.1.1 ! *Superopt 2.3 ! *tar 1.11.2 ! *Termcap 1.2 ! *TeX 3.1 ! *Texinfo 3.1 ! *Textutils 1.9.1 ! *Tile Forth 2.1 ! *time 1.6 ! *tput 1.0 ! *UUCP 1.05 ! *uuencode 1.0 ! *wdiff 0.04 ! *X11R6 ! *xboard 3.0.9 ! *xshogi 1.2.02 --- 3597,3697 ---- ........................... ! We still have the 4th edition of our Source CD, at a reduced price. This CD has Edition 2.3 for version 19 of the `GNU Emacs Lisp Reference Manual' & ! some additional software; not all FSF distributed software is included (see ! ``Source Code CD-ROMs''). It contains the following packages: ! * acm 4.5 ! * Autoconf 1.10 ! * BASH 1.13.5 ! * bc 1.02 ! * Binutils 2.3 ! * Bison 1.22 ! * C Library 1.08 ! * Calc 2.02c ! * Chess 4.0.69 ! * CLISP 1994.01.08 ! * Common Lisp 1.0 ! * cpio 2.3 ! * CVS 1.3 ! * dc 0.2 ! * DejaGnu 1.2 ! * Diffutils 2.6 ! * dld 3.2.3 ! * doschk 1.1 ! * ecc 1.2.1 ! * ed 0.1 ! * elib 0.06 ! * Emacs 18.59 ! * Emacs 19.23 ! * es 0.84 ! * f2c 1994.04.14 ! * Fileutils 3.9 ! * find 3.8 ! * finger 1.37 ! * flex 2.4.6 ! * Fontutils 0.6 ! * GAS 1.36.utah ! * GAS 2.2 ! * Gawk 2.15.4 ! * GCC 2.5.8 ! * GDB 4.12 ! * gdbm 1.7.1 ! * Ghostscript 2.6.1 ! * Ghostview 1.5 ! * Ghostview for Windows 1.0 ! * gmp 1.3.2 ! * GNATS 3.2 ! * GnuGo 1.1 ! * gnuplot 3.5 ! * gperf 2.1a ! * Graphics 0.17 ! * grep 2.0 ! * Groff 1.09 ! * gzip 1.2.4 ! * hello 1.3 ! * hp2xx 3.1.4 ! * indent 1.9.1 ! * ispell 4.0 ! * libg++ 2.5.3 ! * m4 1.1 ! * Make 3.71 ! * MandelSpawn 0.07 ! * mtools 2.0.7 ! * MULE 1.0 ! * NetFax 3.2.1 ! * Nethack 3.1.3 ! * NIHCL 3.0 ! * nvi 1.11 ! * Octave 1.0 ! * Oleo 1.5 ! * p2c 1.20 ! * patch 2.1 ! * PCL 1993.03.18 ! * perl 4.036 ! * ptx 0.3 ! * rc 1.4 ! * RCS 5.6.0.1 ! * recode 3.3 ! * regex 0.12 ! * screen 3.5.2 ! * sed 2.05 ! * shellutils 1.9.4 ! * Shogi 1.1.02 ! * Smalltalk 1.1.1 ! * Superopt 2.3 ! * tar 1.11.2 ! * Termcap 1.2 ! * TeX 3.1 ! * Texinfo 3.1 ! * Textutils 1.9.1 ! * Tile Forth 2.1 ! * time 1.6 ! * tput 1.0 ! * UUCP 1.05 ! * uuencode 1.0 ! * wdiff 0.04 ! * X11R6 ! * xboard 3.0.9 ! * xshogi 1.2.02 *************** November 1993 Source Code CD-ROM *** 3098,3197 **** ................................ ! We still have the third edition of our Source CD, at a reduced price. It ! contains X11R5, as we feel that people should have a choice between X11R5 and ! X11R6 until the latter is stable. This CD has Edition 2.2 for version 19 of ! the `GNU Emacs Lisp Reference Manual' & some additional software; not all FSF ! distributed software is included (*note Source Code CD-ROMs::.). It contains ! the following packages: ! *acm 3.1 ! *Autoconf 1.7 ! *BASH 1.13.4 ! *bc 1.02 ! *Binutils 1.9 2.3 ! *Bison 1.22 ! *C Library 1.06.7 ! *Calc 2.02b ! *Chess 4.0p62 ! *CLISP 93.11.08 ! *cpio 2.3 ! *CVS 1.3 ! *dc 0.2 ! *DejaGnu 1.0.1 ! *Diffutils 2.6 ! *dld 3.2.3 ! *doschk 1.1 ! *ecc 1.2.1 ! *elib 0.06 ! *Emacs 18.59 ! *Emacs 19.21 ! *es 0.84 ! *f2c 1993.04.28 ! *Fileutils 3.9 ! *find 3.8 ! *finger 1.37 ! *flex 2.3.8 ! *Fontutils 0.6 ! *GAS 1.36.utah ! *GAS 1.38.1 ! *GAS 2.2 ! *Gawk 2.15.3 ! *GCC 2.5.4 ! *GDB 4.11 ! *gdbm 1.7.1 ! *Ghostscript 2.6.1 ! *Ghostview 1.5 ! *Ghostview for Windows 1.0 ! *gmp 1.3.2 ! *GNATS 3.01 ! *GnuGo 1.1 ! *gnuplot 3.5 ! *gperf 2.1a ! *Graphics 0.17 ! *grep 2.0 ! *Groff 1.08 ! *gzip 1.2.4 ! *hello 1.3 ! *hp2xx 3.1.3a ! *indent 1.8 ! *Ispell 4.0 ! *less 177 ! *libg++ 2.5.1 ! *m4 1.1 ! *Make 3.69.1 ! *MandelSpawn 0.06 ! *mtools 2.0.7 ! *MULE 1.0 ! *NetFax 3.2.1 ! *Nethack 3.1.3 ! *NIHCL 3.0 ! *Oleo 1.5 ! *p2c 1.20 ! *patch 2.1 ! *PCL 93.03.18 ! *perl 4.036 ! *ptx 0.3 ! *rc 1.4 ! *RCS 5.6.0.1 ! *recode 3.2.4 ! *regex 0.12 ! *screen 3.5.2 ! *sed 1.18 2.03 ! *Shellutils 1.9.1 ! *Shogi 1.1p02 ! *Smalltalk 1.1.1 ! *Superopt 2.3 ! *tar 1.11.2 ! *Termcap 1.2 ! *TeX 3.1 ! *Texinfo 3.1 ! *Tile Forth 2.1 ! *time 1.6 ! *time 1.6 ! *tput 1.0 ! *UUCP 1.04 ! *uuencode 1.0 ! *wdiff 0.04 ! *X11R5 --- 3700,3837 ---- ................................ ! We still have the 3rd edition of our Source CD, at a reduced price, while ! supplies last. It was the last Source Code CD to contain X11R5. This CD has ! Edition 2.2 for version 19 of the `GNU Emacs Lisp Reference Manual' & some ! additional software; not all FSF distributed software is included (*note ! Source Code CD-ROMs::.). It contains these packages: ! ! * acm 3.1 ! * Autoconf 1.7 ! * BASH 1.13.4 ! * bc 1.02 ! * Binutils 1.9 2.3 ! * Bison 1.22 ! * C Library 1.06.7 ! * Calc 2.02b ! * Chess 4.0p62 ! * CLISP 93.11.08 ! * cpio 2.3 ! * CVS 1.3 ! * dc 0.2 ! * DejaGnu 1.0.1 ! * Diffutils 2.6 ! * dld 3.2.3 ! * doschk 1.1 ! * ecc 1.2.1 ! * elib 0.06 ! * Emacs 18.59 ! * Emacs 19.21 ! * es 0.84 ! * f2c 1993.04.28 ! * Fileutils 3.9 ! * find 3.8 ! * Finger 1.37 ! * flex 2.3.8 ! * Fontutils 0.6 ! * GAS 1.36.utah ! * GAS 1.38.1 ! * GAS 2.2 ! * GAWK 2.15.3 ! * GCC/G++/Objective C 2.5.4 ! * GDB 4.11 ! * gdbm 1.7.1 ! * Ghostscript 2.6.1 ! * Ghostview 1.5 ! * Ghostview for Windows 1.0 ! * gmp 1.3.2 ! * GNATS 3.01 ! * GnuGo 1.1 ! * gnuplot 3.5 ! * cperf 2.1a ! * Graphics 0.17 ! * grep 2.0 ! * Groff 1.08 ! * gzip 1.2.4 ! * hello 1.3 ! * hp2xx 3.1.3a ! * indent 1.8 ! * Ispell 4.0 ! * less 177 ! * libg++ 2.5.1 ! * m4 1.1 ! * make 3.69.1 ! * MandelSpawn 0.06 ! * mtools 2.0.7 ! * MULE 1.0 ! * NetFax 3.2.1 ! * NetHack 3.1.3 ! * NIHCL 3.0 ! * Oleo 1.5 ! * p2c 1.20 ! * patch 2.1 ! * PCL 93.03.18 ! * perl 4.036 ! * ptx 0.3 ! * rc 1.4 ! * RCS 5.6.0.1 ! * recode 3.2.4 ! * regex 0.12 ! * screen 3.5.2 ! * sed 1.18 2.03 ! * Shellutils 1.9.1 ! * Shogi 1.1p02 ! * Smalltalk 1.1.1 ! * Superopt 2.3 ! * tar 1.11.2 ! * Termcap 1.2 ! * TeX 3.1 ! * Texinfo 3.1 ! * Tile Forth 2.1 ! * time 1.6 ! * time 1.6 ! * tput 1.0 ! * UUCP 1.04 ! * uuencode 1.0 ! * wdiff 0.04 ! * X11R5 ! ! ! ! MS-DOS Book with CD-ROM ! ----------------------- ! ! We are working on our first book describing GNU Software for MS-DOS, but we ! do not know when it will be finished. It will include a CD-ROM with all the ! sources & binaries on the MS-DOS Diskettes and more. ! ! Please do NOT contact us about this book until we announce it on our mailing ! lists (to subscribe, ask `info-gnu-request@prep.ai.mit.edu'), because it just ! slows us down. ! ! ! ! Debian GNU/Linux Book with CD-ROM ! --------------------------------- ! ! We are working on our first book describing Debian GNU/Linux but we do not ! know when it will be finished. Please do NOT contact us about this book ! until we announce it on our mailing lists (ask ! `info-gnu-request@prep.ai.mit.edu' to subscribe), because it just slows us ! down. ! ! A CD will be inside the book with sources & binaries for Debian GNU/Linux, ! which is a complete operating system for i386/i486/Pentium. It is a ! GNU/Linux system--that is to say, a variant GNU system which uses Linux as ! the kernel. (All the systems now available that use the Linux kernel are ! GNU/Linux systems, see item "Linux" in *Note Free Software for ! Microcomputers::.) ! ! Debian is being developed by Ian Murdock and the Debian Association in ! conjunction with the Free Software Foundation. We are distributing it as an ! interim measure until the GNU kernel (the Hurd) is ready for users. + For details on Debian & how to help, see URL: `http://www.debian.org/' or + FTP, `/pub/gnu/GNUinfo/DEBIAN' from a GNU FTP host (*note How to Get GNU + Software::.). FTP Debian under `/debian' from `ftp.debian.org'. *************** MS-DOS Diskettes *** 3201,3209 **** The FSF distributes some of the GNU software ported to MS-DOS, on 3.5inch ! 1.44MB diskettes. These disks have both sources and executables. ! DJGPP Diskettes - (VERSION NUMBERS NOT COMPLETELY UP TO DATE) --------------- --- 3841,3849 ---- The FSF distributes some of the GNU software ported to MS-DOS, on 3.5inch ! 1.44MB diskettes. These disks have both sources and executables. ! DJGPP Diskettes --------------- *************** We offer DJGPP on 30 diskettes. For fur *** 3211,3266 **** Software::. The DJGPP diskettes contain the following: ! * bc 1.03 ! * Binutils 2.4 * Bison 1.22 - * cpio 2.3 * Diffutils 2.6 ! * doschk 1.1 ! * Fileutils 3.9 ! * Findutils 3.8 ! * GAS 2.4 ! * Gawk 2.15.5 ! * GCC 2.6.0 * GDB 4.12 - * Ghostscript 2.6.1 - * Ghostview for Windows 1.0 * Groff 1.09 * gzip 1.24 ! * hello 1.3 ! * indent 1.9 ! * ispell 4.0 ! * m4 1.2 ! * Make 3.71 * patch 2.1 * sed 1.18 - * shellutils 1.9 * Texinfo 3.1 - * texutils 1.9 - * wdiff 0.04 ! Emacs Diskettes - (VERSION NUMBERS NOT COMPLETELY UP TO DATE) --------------- Two versions of GNU Emacs are included on the Emacs diskettes we distribute: GNU Emacs version 19.29 handles 8-bit character sets; the other, MULE version ! 2.1, handles 16-bit character sets including Kanji. ! Selected Utilities Diskettes - (NOT COMPLETELY UP TO DATE) ---------------------------- ! The GNUish MS-DOS Project ported GNU software to PC compatibles. Though the ! GNUish Project is no longer active, users still ask for these ports that were ! done several years ago. You can anonymous FTP files ! `/pub/gnu/MicrosPorts/MSDOS*' from `prep.ai.mit.edu' to find out how to ! access these ports over the Internet. We offer these programs on five ! diskettes. In general, this software will run on 8086 and 80286-based 16-bit ! machines; an 80386 is not required. Some of these utilities are necessarily ! missing features. Included are: `cpio', `diff', `find', `flex', `gdbm', ! `grep', `indent', `less', `m4', `make', `ptx', RCS, `sed', `shar', `sort', & ! Texinfo. --- 3851,3891 ---- Software::. The DJGPP diskettes contain the following: ! * Binutils 2.5.2 * Bison 1.22 * Diffutils 2.6 ! * DJGPP 1.12m4 ! * flex 2.4.7 ! * GCC/G++ 2.6.3 * GDB 4.12 * Groff 1.09 * gzip 1.24 ! * libg++ 2.6.2 ! * make 3.71 * patch 2.1 * sed 1.18 * Texinfo 3.1 ! Emacs Diskettes --------------- Two versions of GNU Emacs are included on the Emacs diskettes we distribute: GNU Emacs version 19.29 handles 8-bit character sets; the other, MULE version ! 2.2, handles 16-bit character sets including Kanji. ! Selected Utilities Diskettes ---------------------------- ! The GNUish MS-DOS Project ported GNU software to PC compatibles. Though ! GNUish is no longer active, users still ask for these ports done some years ! ago. We offer these ports on five diskettes. In general, the ports run on ! 8086/80286-based 16-bit machines; an 80386 is not required. Some are ! necessarily missing features. ! ! Included are: `cpio', `diff', `find', `flex', `gdbm', `grep', `indent', ! `less', `m4', `make', `ptx', RCS, `sed', `shar', `sort', & Texinfo. *************** current with the latest GNU developments *** 3280,3291 **** three tapes or CD-ROMs (plus shipping in some cases), we will ship you four new versions of the tape of your choice or the Source Code CD-ROM. The tapes ! are sent each quarter; the CD-ROMs are sent as they are issued (which is ! between two and four times a year.) ! Regularly, we will send you a new version of an Lisps/Emacs, Languages, ! Utilities, or X Window System (X11R6) Required tape or the Source CD-ROM. The MIT Scheme and X Window System Optional tapes are not changed often enough to warrant quarterly updates. We do not yet know if we will be ! offering subscriptions to the Compiler Tools Binaries or our new CD-ROMs. Since Emacs 19 is on the Lisps/Emacs Tape and the Source CD-ROM, a --- 3905,3917 ---- three tapes or CD-ROMs (plus shipping in some cases), we will ship you four new versions of the tape of your choice or the Source Code CD-ROM. The tapes ! are sent each quarter; the CD-ROMs are sent as they are issued (currently ! twice a year, but we hope to make it more frequent). ! Regularly, we will send you a new version of a Lisps/Emacs, Languages, ! Utilities, or X Window System (X11R6) Required tape, or the Source CD-ROM. The MIT Scheme and X Window System Optional tapes are not changed often enough to warrant quarterly updates. We do not yet know if we will be ! offering subscriptions to the Compiler Tools Binaries or our new Books with ! CD-ROM. Since Emacs 19 is on the Lisps/Emacs Tape and the Source CD-ROM, a *************** evolves. *** 3295,3387 **** A subscription is an easy way to keep up with the regular bug fixes to the X Window System. We update the X11R6 Required tape as fixes and patches are ! issued throughout the year. Each new edition of the *Note Source Code ! CD-ROMs::, also has updated sources for the X Window System. Please note: In two cases, you must pay 4 times the normal shipping required for a single order when you pay for each subscription. If you're in Alaska, Hawaii, or Puerto Rico you must add $20.00 for shipping for each ! subscription. If you're outside of U.S., Canada, and Puerto Rico, you have ! to add $80.00 for each subscription. See "Unix and VMS Software" & "Shipping Instructions" on the *note Free Software Foundation Order Form::.. - The Deluxe Distribution - *********************** - - The Free Software Foundation has been asked repeatedly to create a package - that provides executables for all of our software. Normally we offer only - sources. In addition to providing binaries with the source code, the Deluxe - Distribution includes a complete set of our printed manuals and reference - cards. - - The FSF Deluxe Distribution contains the binaries and sources to hundreds of - different programs including GNU Emacs, the GNU C Compiler, the GNU Debugger, - the complete X Window System, and all the GNU utilities. - - We will make a Deluxe Distribution for any machine, with any operating - system. We will send someone to your office to do the compilation, if we - can't find a suitable machine close to us! However, we can only compile the - programs that already support your chosen machine and system - porting is a - separate matter (if you wish to commission a port, see the GNU Service - Directory, details in *Note Free Software Support::). Compiling all these - programs take time; a Deluxe Distribution for an unusual machine will take - longer to produce then one for a common machine. Please contact the FSF - office if you have any questions. - - We supply the software in one of these tape formats in Unix `tar' format: - 1600 or 6250bpi 1/2in reel, Sun DC300XLP 1/4in cartridge - QIC24, - Hewlett-Packard 16-track DC600HC 1/4in cartridge, IBM RS/6000 1/4in cartridge - - QIC 150, Exabyte 8mm cartridge, or DAT 4mm cartridge. If your computer - cannot read any of these, please contact us to see if we can handle your - format. - - The manuals included are one each of the `Bison', `Calc', `Gawk', `GNU C - Compiler', `GNU C Library', `GDB', `Flex', `GNU Emacs Lisp Reference', - `Programming in Emacs Lisp: An Introduction', `Make', `Texinfo', & `Termcap' - manuals; six copies of the `GNU Emacs' manual; and a packet of ten reference - cards each for GNU Emacs, Bison, Calc, Flex, & GDB. Every Deluxe - Distribution also includes a copy of the latest editions of our CD-ROMs - (including the MS-DOS CD & the Debian GNU/Linux CD when they are available) - that contain sources of our software & compiler tool binaries for some - systems. The MS-DOS CD is in ISO 9660 format. The other CDs are in ISO 9660 - format with Rock Ridge extensions. - - The price of the Deluxe Distribution is $5000 (shipping included). These - sales provide enormous financial assistance to help the FSF develop more free - software. To order, please fill out the "Deluxe Distribution" section on the - *note Free Software Foundation Order Form::. and send it to: - - Free Software Foundation, Inc. - 59 Temple Place -- Suite 330 - Boston, MA 02111--1307 - USA - - Telephone: +1-617-542-5942 - Fax (including Japan): +1-617-542-2652 - Free Dial Fax (in Japan): - 0031-13-2473 (KDD) - 0066-3382-0158 (IDC) - Electronic mail: gnu@prep.ai.mit.edu - - - FSF T-shirt *********** ! Our latest T-shirt has artwork by Berkeley, CA artist Etienne Suvasa. The ! front has the ever-popular picture of GNArnold from the `Flex Manual', while ! the back has the Preamble to the GNU General Public License. ! They are available in two colors, Natural & Black. Natural is an off-white, unbleached, undyed, environment-friendly cotton, printed with black ink, & is great for tye-dyeing or displaying as is. Black is printed with white ink & ! is perfect for late night hacking. All shirts are thick 100% cotton, & are ! available in sizes M, L, XL & XXL. This shirt makes a great gift for your ! favorite hacker! ! ! The previous version of the T-shirt will be available while supplies last, ! but please contact the FSF to see if we have what you would like before ! ordering. --- 3921,3952 ---- A subscription is an easy way to keep up with the regular bug fixes to the X Window System. We update the X11R6 Required tape as fixes and patches are ! issued throughout the year. Each edition of the *Note Source Code CD-ROMs::, ! also has updated sources for the required part of the X Window System. Please note: In two cases, you must pay 4 times the normal shipping required for a single order when you pay for each subscription. If you're in Alaska, Hawaii, or Puerto Rico you must add $20.00 for shipping for each ! subscription. If you're outside of U.S., Canada, and Puerto Rico, you must ! add $80.00 for each subscription. See "Unix and VMS Software" and "Shipping Instructions" on the *note Free Software Foundation Order Form::.. FSF T-shirt *********** ! There is a GNU & improved T-shirt. The front has the GNU Emacs Lisp code ! `(USE 'GNU)' with "`()'" being the dancing parentheses from the cover of our ! `GNU Emacs Lisp Reference Manual' (drawn by Berkeley, CA artist Etienne ! Suvasa). The back of the shirt is still imprinted with the Preamble to the ! GNU General Public License. ! These shirts come in two colors, Natural & Black. Natural is an off-white, unbleached, undyed, environment-friendly cotton, printed with black ink, & is great for tye-dyeing or displaying as is. Black is printed with white ink & ! is perfect for late night hacking. All shirts are thick 100% cotton, & come ! in sizes M, L, XL, & XXL. GNU shirts often create spontaneous friendships at ! technical conferences and on major university campuses! (They also make ! great gifts!) *************** weeks for delivery (though it won't usua *** 3398,3402 **** ! PRICE AND CONTENTS MAY CHANGE WITHOUT NOTICE AFTER January 31, 1996. --- 3963,3967 ---- ! PRICE AND CONTENTS MAY CHANGE WITHOUT NOTICE AFTER June 30, 1996. *************** These tapes in the formats indicated (*n *** 3418,3434 **** (c.t. = cartridge tape) ! Lisps/Emacs $200 $210 $230 $215 (3) $205 $225 Languages $200 $210 $230 $215 $205 $225 Utilities $200 $210 $230 $215 $205 $225 4.4BSD-Lite $200 $210 $230 $215 $205 $225 Scheme $200 $210 $230 $215 $205 $225 ! X11R5-Required $200 $210 $230 $215 $205 $225 ! X11R5-Optional $200 $210 $230 $215 $205 $225 X11R6-Required $200 $210 $230 $215 $205 $225 X11R6-Optional $200 $210 $230 $215 $205 $225 (1) Sun tapes can be read on some other Unix systems. (2) IBM RS/6000 tapes can be read on some other Unix systems. - (3) The IBM Emacs tape also has binaries for GNU Emacs. --- 3983,4002 ---- (c.t. = cartridge tape) ! Lisps/Emacs $200 $210 $230 $215 $205 $225 ! Languages $200 $210 $230 $215 $205 $225 + Utilities $200 $210 $230 $215 $205 $225 + 4.4BSD-Lite $200 $210 $230 $215 $205 $225 + Scheme $200 $210 $230 $215 $205 $225 ! X11R6-Required $200 $210 $230 $215 $205 $225 + X11R6-Optional $200 $210 $230 $215 $205 $225 (1) Sun tapes can be read on some other Unix systems. (2) IBM RS/6000 tapes can be read on some other Unix systems. *************** Subscriptions, 4 updates for one year (* *** 3436,3441 **** --- 4004,4012 ---- Emacs $600 $630 $690 $645 $615 $675 + Languages $600 $630 $690 $645 $615 $675 + Utilities $600 $630 $690 $645 $615 $675 + X11R6-Required $600 $630 $690 $645 $615 $675 *************** ____ @ $195 = $ ______ VMS Compiler, *** 3452,3457 **** ! FSF Deluxe Distribution (*note Deluxe Distribution::.): ! ...................................................... --- 4023,4030 ---- ! FSF Deluxe Distribution ! ....................... ! (Please call with any questions. *note Deluxe Distribution::. for machine, ! operating system, and media types.): *************** Operating system: ______________________ *** 3464,3467 **** --- 4037,4042 ---- Media type: __________________________________________________________________ + Version of X Windows System to build: _______________________________________ + *************** CD-ROMs, in ISO 9660 format (*note CD-RO *** 3470,3474 **** ! GNU Source Code CD-ROM, Version 6 with X11R6 (*note June 1995 Source Code CD-ROM::.): ____ @ $240 = $ ______ for corporations and other organizations. --- 4045,4049 ---- ! GNU Source Code CD-ROMs, Version 7 with X11R6 (*note December 1995 Source Code CD-ROMs::.): ____ @ $240 = $ ______ for corporations and other organizations. *************** ____ @ $ 60 = $ ______ for individual *** 3477,3497 **** - - GNU Compiler Tools Binaries CD-ROM, Version 2, December 1994 Edition - (*note Compiler Tools Binaries CD-ROM::.): - - ____ @ $220 = $ ______ for corporations and other organizations. - - ____ @ $55 = $ ______ for individuals. - - - - Debian GNU/Linux Book with CD-ROM - expected late fall 1995 (*note Debian GNU/Linux CD-ROM::.): - - ____ @ $200 = $ ______ for corporations and other organizations. - - ____ @ $50 = $ ______ for individuals. - - Subscriptions, next 4 updates, of the Source Code CD-ROM, in ISO 9660 format (*note Tape & CD-ROM Subscription Service::.): --- 4052,4055 ---- *************** ____ @ $180 = $ ______ for individual *** 3502,3516 **** ! MS-DOS Software ! --------------- ! ! MS-DOS Book with CD-ROM - expected September 1995 (*note MS-DOS CD-ROM::.): ! ____ @ $180 = $ ______ for corporations and other organizations. - ____ @ $45 = $ ______ for individuals. The following sources and executables for MS-DOS, on 3.5" 1.44MB diskettes --- 4060,4074 ---- + GNU Compiler Tools Binaries CD-ROM, Version 3, December 1995 Edition + (*note Compiler Tools Binaries CD-ROM::.): ! ____ @ $220 = $ ______ for corporations and other organizations. ! ____ @ $55 = $ ______ for individuals. + MS-DOS Software + --------------- The following sources and executables for MS-DOS, on 3.5" 1.44MB diskettes *************** The following sources and executables fo *** 3519,3527 **** ____ @ $ 90 = $ ______ Emacs diskettes, GNU Emacs, for 80386 and up. ! ____ @ $ 80 = $ ______ DJGPP diskettes, GCC version 2, for 80386 and up ! (also on the *note Compiler Tools Binaries CD-ROM::. and *note MS-DOS CD-ROM::..) ____ @ $ 85 = $ ______ Selected Utilities diskettes, 8086 and up. ! ____ @ $ 40 = $ ______ Windows diskette, GNU Chess and gnuplot for Microsoft Windows. --- 4077,4087 ---- ____ @ $ 90 = $ ______ Emacs diskettes, GNU Emacs, for 80386 and up. ! ____ @ $ 80 = $ ______ DJGPP diskettes, GCC version 2, and other tools ! for 80386 and up (also on the ! *note Compiler Tools Binaries CD-ROM::.). ! ____ @ $ 85 = $ ______ Selected Utilities diskettes, 8086 and up. ! ____ @ $ 40 = $ ______ Windows diskette: GNU Chess and gnuplot for Microsoft Windows. *************** Manuals *** 3530,3537 **** ------- ! These manuals (*note Documentation::.). Please call for bulk purchase ! discounts. ! ! ____ @ $300 = $ ______ One copy each of the following 13 manuals. ____ @ $ 25 = $ ______ GNU Emacs version manual, with a reference card. --- 4090,4095 ---- ------- ! These manuals (*note Documentation::.). The latest version of each manual ! will be shipped. Please call if you want a specific version. ____ @ $ 25 = $ ______ GNU Emacs version manual, with a reference card. *************** ____ @ $ 25 = $ ______ GNU Emacs vers *** 3539,3542 **** --- 4097,4102 ---- ____ @ $ 50 = $ ______ GNU Emacs Lisp Reference manual, in two volumes. + ____ @ $ 60 = $ ______ GNU Emacs Lisp Reference, Japanese Edition. + ____ @ $ 50 = $ ______ Using and Porting GNU CC. *************** ____ @ $ 50 = $ ______ GNU C Library *** 3545,3553 **** ____ @ $ 50 = $ ______ GNU Emacs Calc manual, with a reference card. ! ____ @ $ 20 = $ ______ Programming in Emacs Lisp, An Introduction ____ @ $ 20 = $ ______ Debugging with GDB, with a reference card. ! ____ @ $ 20 = $ ______ Gawk manual. ____ @ $ 20 = $ ______ Make manual. --- 4105,4113 ---- ____ @ $ 50 = $ ______ GNU Emacs Calc manual, with a reference card. ! ____ @ $ 20 = $ ______ Programming in Emacs Lisp: An Introduction. ____ @ $ 20 = $ ______ Debugging with GDB, with a reference card. ! ____ @ $ 25 = $ ______ GAWK manual. ____ @ $ 20 = $ ______ Make manual. *************** ____ @ $ 5 = $ ______ GNU Emacs vers *** 3604,3607 **** --- 4164,4168 ---- of ten. + Please fill in the number of each older CD-ROM you order: *************** Please fill in the number of each older *** 3612,3618 **** --- 4173,4187 ---- GNU Compiler Tools Binaries CD-ROM + December 1994 Edition (Version 2) ____________ ____________ + + GNU Compiler Tools Binaries CD-ROM December 1993 Edition (Version 1) ____________ ____________ + Please note that the December 1994 Source CD is permanently out of stock. + + GNU Source Code CD-ROM + June 1995 edition with X11R6 ____________ ____________ + GNU Source Code CD-ROM May 1994 edition with X11R6 ____________ ____________ *************** ____ @ $ 20 = $ ______ for individual *** 3640,3661 **** Tax and Shipping Costs ---------------------- ! + $ ______ In Massachusetts: add 5% sales tax, or give tax ! exempt number. ! + $ ______ In Alaska, Hawaii, or Puerto Rico for shipping: ! for GNU Emacs Lisp Reference and GNU Emacs Calc ! manuals, add $5 *each*. For *each* tape or ! CD-ROM subscription, add $20. For all other ! items, add $5 base charge, then $1 per item except ! reference cards; i.e., ! shipping for all other items = $5 + ($1 * i). ! + $ ______ Outside of U.S., Canada, and Puerto Rico for ! shipping: Add $20 base charge; then add $80 more ! for *each* tape or CD-ROM subscription; and then ! add $10 more for *each* manual in the order; ! i.e., shipping for all other items ! = $20 + ($80 * s) + ($10 * m). + $ ______ Optional (tax-deductible in the U.S.) donation. ------ We suggest 5% if paying by credit card. --- 4209,4240 ---- + Tax and Shipping Costs ---------------------- ! + $ ______ For addresses in Massachusetts: add 5% sales tax ! or give tax exempt number. There is no sales tax ! on T-shirts. ! + $ ______ Shipping fee for addresses in Alaska, Hawaii, or ! Puerto Rico: ! $ 5.00 base charge; ! + $ 5.00 for *each* Emacs Calc or Emacs Lisp ! Reference manual ($ 5.00 * #ofMans); ! + $ 20.00 for *each* tape subscription or CD ! subscription ($20.00 * #ofSubs); ! + $ 1.00 for *each* item other then the above ! (shipping for all other items = ! $ 1.00 * #ofOtherItems). ! + $ ______ Shipping fee for most Foreign Destinations: (Please ! do *not* use this formula for addresses in China, ! Guam, Indonesia, Israel, Malaysia, New Zealand, ! Philippines, and Thailand. Please fax, ! or call for an exact shipping quote.) ! $ 20.00 base charge for orders to other ! addresses outside of U.S., Canada, & Puerto Rico: ! + $ 80.00 for *each* tape subscription or CD ! subscription ($ 80.00 * #ofSubs); ! + $ 10.00 for *each* of the other items in the ! order ($ 10.00 * #ofItems). + $ ______ Optional (tax-deductible in the U.S.) donation. ------ We suggest 5% if paying by credit card. *************** Zip Code/Postal Code/Country: __________ *** 3684,3693 **** Telephone number in case of a problem with your order. ! For international orders, please include a FAX number. _______________________ ------------------------------------------------------------------------------ | | ! | Orders filled only upon receipt of check, money order or credit card | | order in U.S. dollars. Unpaid orders will be returned to the sender. | | We do not have the staff to handle the billing of unpaid orders. Please | --- 4263,4272 ---- Telephone number in case of a problem with your order. ! For international orders, please include a Fax number. _______________________ ------------------------------------------------------------------------------ | | ! | Orders filled only upon receipt of check, money order, or credit card | | order in U.S. dollars. Unpaid orders will be returned to the sender. | | We do not have the staff to handle the billing of unpaid orders. Please | *************** For international orders, please include *** 3697,3700 **** --- 4276,4280 ---- + For orders from outside the U.S.: --------------------------------- *************** refuse to pay the charges, the shipper w *** 3711,3723 **** For Credit Card Orders: ----------------------- The Free Software Foundation takes these credit cards: Carte Blanche, ! Diner's Club, JCB, Mastercard, Visa, or American Express. Please note that we are charged about 5% of an order's total amount in credit card ! processing fees. Please consider paying by check instead, or adding on a ! 5% donation to make up the difference. To place a credit card order, ! please give us this information: --- 4291,4304 ---- + For Credit Card Orders: ----------------------- The Free Software Foundation takes these credit cards: Carte Blanche, ! Diner's Club, JCB, MasterCard, Visa, or American Express. Please note that we are charged about 5% of an order's total amount in credit card ! processing fees. Please consider paying by check instead, or adding on a 5% ! donation to make up the difference. To place a credit card order, please ! give us this information: *************** Cardholder's Signature: ________________ *** 3734,3738 **** ------------------------------------------------------------------------------ | | ! | If you wish to pay by wire transfer, or you are a reseller, please | | call or write us for details. | | | --- 4315,4319 ---- ------------------------------------------------------------------------------ | | ! | If you wish to pay by wire transfer or you are a reseller, please | | call or write us for details. | | | *************** Cardholder's Signature: ________________ *** 3743,3755 **** 59 Temple Place -- Suite 330 Boston, MA 02111 ! +1-617-542-5942 ! FAX (including Japan): +1-617-542-2652 ! Free Dial FAX numbers in Japan: ! PRICES AND CONTENTS MAY CHANGE 0031-13-2473 (KDD) ! WITHOUT NOTICE AFTER January 31, 1996. 0066-3382-0158 (IDC) ! Version: June 1995 ASCII Bull to June 1995 Src CD/GNU 19.29/GCC 2.7.0 - --------------------------------------------------------------------- local variables: mode: text --- 4324,4334 ---- 59 Temple Place -- Suite 330 Boston, MA 02111 ! PRICES AND CONTENTS MAY CHANGE +1-617-542-5942 ! WITHOUT NOTICE AFTER June 30, 1996. Fax (including Japan): +1-617-542-2652 ! ! Version: January 1996 ASCII etc/ORDERS ! ----------------------------------------------------------------------------- local variables: mode: text diff -2rcpP --exclude=*.elc emacs-19.30/etc/ORDERS.JAPAN emacs-19.31/etc/ORDERS.JAPAN *** emacs-19.30/etc/ORDERS.JAPAN Mon Nov 20 14:18:24 1995 --- emacs-19.31/etc/ORDERS.JAPAN Sat Mar 16 15:24:18 1996 *************** *** 1,102 **** ! GNU ORDER FORM FOR JAPAN ! Item Unit Price Quantity Item Price ---------------------------------------- ---------- -------- ---------- * indicates New or Substantially Updated items. ! * Compiler Tools Binaries CD-ROM edition 2, if a Y32,000 ________ __________ ! corporation or other organization is ultimately ! paying. ! ! * Compiler Tools Binaries CD-ROM edition 2, if an Y8,000 ________ __________ ! individual is ultimately paying. ! ! * Source Code CD-ROM edition 6, with X11R6, if a Y40,000 ________ __________ ! corporation or other organization is ultimately ! paying. ! ! * Source Code CD-ROM edition 6, with X11R6, if Y10,000 ________ __________ ! an individual is ultimately paying. ! ! Source Code CD-ROM edition 3, with X11R5, if a Y40,000 ________ __________ ! corporation or other organization is ultimately ! paying (while supplies last). ! ! Source Code CD-ROM edition 3, with X11R5, if Y10,000 ________ __________ ! an individual is ultimately paying (while ! supplies last). ! Subscription to next four editions of the Y125,000 ________ __________ ! Source Code CD-ROMs. (There is no subscription yet to the Compiler Tools Binaries CD-ROM.) ! * Source Code on Tape Y30,000 ________ __________ (per tape; see the next page for more details.) ! * Emacs manual, with reference card Y3,700 ________ __________ ! (Eleventh Edition for version 19.29) ! * Programming in Emacs Lisp, An Introduction Y3,100 ________ __________ ! (Edition 1.03) ! * Emacs Lisp Reference manual, in two volumes Y7,100 ________ __________ ! (Edition 2.4 for version 19.29) ! Emacs Calc manual, with reference card Y7,400 ________ __________ ! (Edition 2.02 for version 2.02) ! * Using and Porting GNU CC manual Y7,100 ________ __________ ! (September 1994 Edition for version 2.6) ! * GNU C Library Reference manual Y7,400 ________ __________ ! (Edition 0.06 for version 1.09) ! * Debugging with GDB manual, with reference card Y3,100 ________ __________ ! (Edition 4.12 for version 4.14) ! * Texinfo manual (Edition 2.21 for version 3) Y2,800 ________ __________ ! Termcap manual (Second edition for version 1.2) Y2,100 ________ __________ ! Bison manual, with reference card Y2,100 ________ __________ (December 1993 Edition for Version 1.23) ! Gawk manual (Edition 0.16 for version 2.16) Y2,800 ________ __________ ! Make manual (Edition 0.46 for version 3.72) Y2,800 ________ __________ ! Flex manual, with reference card Y2,100 ________ __________ ! (Edition 1.03 for version 2.3.7) ! Packet of ten Emacs 19 reference cards Y1,500 ________ __________ ! Packet of ten Emacs 18 reference cards Y1,500 ________ __________ (while supplies last) ! Packet of ten GDB reference cards Y1,500 ________ __________ ! Packet of ten Emacs Calc reference cards Y1,500 ________ __________ ! Packet of ten Bison reference cards Y1,500 ________ __________ ! Packet of ten Flex reference cards Y1,500 ________ __________ ! FSF T-shirt (size M) Y5,000 ________ __________ Color: Natural or Black (circle) ! FSF T-shirt (size L) Y5,000 ________ __________ Color: Natural or Black (circle) ! FSF T-shirt (size XL) Y5,000 ________ __________ Color: Natural or Black (circle) ! FSF T-shirt (size XXL) Y5,000 ________ __________ Color: Natural or Black (circle) ! Shipping Y1,500 ! Optional donation--help the FSF write more free software! __________ ! Total __________ The following is your shipping label. Please write clearly using Romaji. --- 1,110 ---- ! GNU ORDER FORM FOR JAPAN ! Prices and contents may change without notice after June 30, 1996. ! ! Item Unit Price Quantity Item Price ---------------------------------------- ---------- -------- ---------- * indicates New or Substantially Updated items. ! * Compiler Tools Binaries CD-ROM December '95 Y32,000 ________ __________ ! Edition, Version 3, if a corporation or other ! organization is ultimately paying. ! ! * Compiler Tools Binaries CD-ROM December '95 Y8,000 ________ __________ ! Edition, Version 3, if an individual is ! ultimately paying. ! ! * Source Code CD-ROM December '95 Edition, Y40,000 ________ __________ ! Version 7, with X11R6, if a corporation or ! other organization is ultimately paying. ! ! * Source Code CD-ROM December '95 Edition, Y10,000 ________ __________ ! Version 7, with X11R6, if an individual is ! ultimately paying. ! ! Source Code CD-ROM November '93 Edition, Y40,000 ________ __________ ! Version 3, with X11R5, if a corporation or other ! organization is ultimately paying (while supplies last). ! ! Source Code CD-ROM November '93 Edition, Y10,000 ________ __________ ! Version 3, with X11R5, if an individual is ! ultimately paying (while supplies last). ! Subscription to next four editions of the Y125,000 ________ __________ ! Source Code CD-ROMs. (There is no subscription yet to the Compiler Tools Binaries CD-ROM.) ! * Source Code on Tape Y30,000 ________ __________ (per tape; see the next page for more details.) ! Emacs manual, with reference card Y3,700 ________ __________ ! (Eleventh Edition for Version 19.29) ! ! * Programming in Emacs Lisp, An Introduction Y3,100 ________ __________ ! (Edition 1.04) ! * Emacs Lisp Reference manual, in two volumes Y7,100 ________ __________ ! (Edition 2.4 for Version 19.29) ! * Emacs Lisp Reference, Japanese Edition manual Y8,000 ________ __________ ! (Japanese DRAFT Revision 1.0, Dec 1995, ! from English Edition 2.4 for Version 19.29) ! Emacs Calc manual, with reference card Y7,400 ________ __________ ! (Edition 2.02 for Version 2.02) ! Using and Porting GNU CC manual Y7,100 ________ __________ ! (September 1994 Edition for Version 2.6) ! GNU C Library Reference manual Y7,400 ________ __________ ! (Edition 0.06 for Version 1.09) ! Debugging with GDB manual, with reference card Y3,100 ________ __________ ! (Edition 4.12 for Version 4.14) ! Texinfo manual (Edition 2.21 for Version 3) Y2,800 ________ __________ ! Termcap manual (Second Edition for Version 1.2) Y2,100 ________ __________ ! Bison manual, with reference card Y2,100 ________ __________ (December 1993 Edition for Version 1.23) ! * Gawk manual (Edition 1.0 for Version 3.0) Y3,700 ________ __________ ! * Make manual (Edition 0.49 for Version 3.74) Y2,800 ________ __________ ! Flex manual, with reference card Y2,100 ________ __________ ! (Edition 1.03 for Version 2.3.7) ! Packet of ten Emacs 19 reference cards Y1,500 ________ __________ ! Packet of ten Emacs 18 reference cards Y1,500 ________ __________ (while supplies last) ! Packet of ten GDB reference cards Y1,500 ________ __________ ! Packet of ten Emacs Calc reference cards Y1,500 ________ __________ ! Packet of ten Bison reference cards Y1,500 ________ __________ ! Packet of ten Flex reference cards Y1,500 ________ __________ ! FSF T-shirt (size M) Y5,000 ________ __________ Color: Natural or Black (circle) ! FSF T-shirt (size L) Y5,000 ________ __________ Color: Natural or Black (circle) ! FSF T-shirt (size XL) Y5,000 ________ __________ Color: Natural or Black (circle) ! FSF T-shirt (size XXL) Y5,000 ________ __________ Color: Natural or Black (circle) ! Shipping Y1,500 ! Optional donation--help the FSF write more free software! __________ ! Total __________ The following is your shipping label. Please write clearly using Romaji. *************** with your order. *** 124,148 **** ____ I am interested in working as a volunteer for the FSF. ! Version: June 1995 ASCII etc/ORDERS.JAPAN ! Prices and contents may change without notice after January 31, 1996. ! Free Software Foundation Toll-free FAX 0031-13-2473 (KDD) ! 59 Temple Place - Suite 330 0066-3382-0158 (IDC) ! Boston, MA 02111-1307 ! U.S.A. Help FSF save money FAX 001-1-617-542-2652 ! GNU ORDER FORM ADDITIONAL INSTRUCTIONS ! Within Japan, you may fax your order toll-free to 0031-13-2473 (KDD) or to ! 0066-3382-0158 (IDC). If you are able to pay for international direct dial, ! please fax your order directly to 001-1-617-542-2652. This will save the FSF ! the toll charges. Inquires may be made to gnu@prep.ai.mit.edu. Orders may ! also be sent by ordinary mail to: Free Software Foundation 59 Temple Place - Suite 330 ! Boston, MA 02111-1307 U.S.A. --- 132,154 ---- ____ I am interested in working as a volunteer for the FSF. ! Prices and contents may change without notice after June 30, 1996. ! Version: January 1996 ASCII etc/ORDERS.JAPAN ! Free Software Foundation FAX 001-1-617-542-2652 ! 59 Temple Place - Suite 330 Voice 001-1-617-542-5942 ! Boston, MA 02111-1307 E-mail gnu@prep.ai.mit.edu ! U.S.A. ! GNU ORDER FORM ADDITIONAL INSTRUCTIONS ! You can fax your order directly to 001-1-617-542-2652. Inquires may ! be made to gnu@prep.ai.mit.edu. Orders may also be sent by ordinary ! mail to: Free Software Foundation 59 Temple Place - Suite 330 ! Boston, MA 02111-1307 U.S.A. *************** number, and your signature. Bank transf *** 153,173 **** following account: ! Bank: Sanwa Bank ! Branch: Azabu Branch (#620) Account name: Free Software Foundation Account number: 3683216 ! Prices and contents may change without notice after January 31, 1996. All software and publications are distributed with permission to copy and to redistribute. Texinfo source for each manual is on the Source Code CD-ROM ! and/or on the appropriate tape. The minimum order amount (before postage) is Y5,000. The FSF regrets that it ! cannot fill orders for smaller amounts. Please contact the FSF directly by telephone at 001-1-617-542-5942 or by fax at 001-1-617-542-2652 prior to placing any orders for greater than Y500,000. The FSF offers a deluxe package to Japanese corporations which consists of ! source code in your preferred format, a complete set of custom binaries for your preferred architecture and operating system, and a complete documentation set with reference cards. Purchasers of the corporate deluxe package will --- 159,180 ---- following account: ! Bank: Sanwa Bank ! Branch: Azabu Branch (#620) Account name: Free Software Foundation Account number: 3683216 ! Prices and contents may change without notice after June 30, 1996. All software and publications are distributed with permission to copy and to redistribute. Texinfo source for each manual is on the Source Code CD-ROM ! and/or on the appropriate tape. We will ship the latest version of each ! manual, unless you instruct us otherwise. The minimum order amount (before postage) is Y5,000. The FSF regrets that it ! cannot fill orders for smaller amounts. Please contact the FSF directly by telephone at 001-1-617-542-5942 or by fax at 001-1-617-542-2652 prior to placing any orders for greater than Y500,000. The FSF offers a deluxe package to Japanese corporations which consists of ! source code in your preferred format, a set of custom binaries for your preferred architecture and operating system, and a complete documentation set with reference cards. Purchasers of the corporate deluxe package will *************** Stallman in Japan. The price for the co *** 176,180 **** For more information, contact the FSF directly. ! Software may also be ordered on magnetic tape. The following tape titles are available: * Lisps/Emacs --- 183,187 ---- For more information, contact the FSF directly. ! Software may also be ordered on magnetic tape. The following tape titles are available: * Lisps/Emacs *************** The following tape formats are available *** 202,206 **** IBM RS/6000 Unix tar QIC-150 DC600A 1/4" cartridge tape - (includes binaries for Emacs) (may also be read on other systems) --- 209,212 ---- *************** Please indicate your desired tape titles *** 211,215 **** paper and fax that along with your order. If you need information regarding which programs are on which tapes, please consult the Japanese edition of the ! June 1995 GNU Bulletin. If you do not have a copy of the Japanese edition of the GNU Bulletin, please contact the FSF. --- 217,221 ---- paper and fax that along with your order. If you need information regarding which programs are on which tapes, please consult the Japanese edition of the ! January 1996 GNU Bulletin. If you do not have a copy of the Japanese edition of the GNU Bulletin, please contact the FSF. *************** speaking engagements. *** 222,233 **** All sales are final. ! Prices and contents may change without notice after January 31, 1996. ! Please do not fax this page. ! For use in Japan only. ! Free Software Foundation ! 59 Temple Place - Suite 330 ! Boston, MA 02111-1307 ! U.S.A. --- 228,239 ---- All sales are final. ! Prices and contents may change without notice after June 30, 1996. ! Please do not fax this page. ! For use in Japan only. ! Free Software Foundation ! 59 Temple Place - Suite 330 ! Boston, MA 02111-1307 ! U.S.A. diff -2rcpP --exclude=*.elc emacs-19.30/etc/OTHER.EMACSES emacs-19.31/etc/OTHER.EMACSES *** emacs-19.30/etc/OTHER.EMACSES Thu Mar 18 18:30:08 1993 --- emacs-19.31/etc/OTHER.EMACSES Thu Jan 4 14:54:26 1996 *************** is an ordinary command (which is defined *** 162,166 **** type C-g while Lisp code is executing, it sets a flag which causes a special signal, nearly the same as an error, to ! happen atthe next safe place in Lisp execution. This usually has the effect of aborting the current command in a safe way. --- 162,166 ---- type C-g while Lisp code is executing, it sets a flag which causes a special signal, nearly the same as an error, to ! happen at the next safe place in Lisp execution. This usually has the effect of aborting the current command in a safe way. diff -2rcpP --exclude=*.elc emacs-19.30/etc/SERVICE emacs-19.31/etc/SERVICE *** emacs-19.30/etc/SERVICE Sun Nov 19 19:07:19 1995 --- emacs-19.31/etc/SERVICE Sun Mar 10 07:42:09 1996 *************** configurations. *** 230,233 **** --- 230,257 ---- Updated: 2Feb95  + Edgar Der-Danieliantz + P.O. Box 10 + Yerevan 375009 AM + ARMENIA + + Support for GCC (C & Objective C), X Window System, + World Wide Web, x86-based embedded systems, logic programming, etc. + + Via Internet (mail, talk, irc, etc.) + + Experience: + OS's: 4.3 & 4.4 BSD, SVR3.2 & 4.2, FreeBSD, Linux, + NetBSD, SCO, Solaris, SunOS, Ultrix, NEXTSTEP, UnixWare. + Languages: C, C++, Objective C, Pascal, Tcl/Tk, Perl, + Bourne Shell, PostScript, HTML, Prolog. + Platforms: Intel, SPARC, Mac, VAX, NeXT. + + Rates: Depending on type of work, appx $20/hour. Contact for more information. + Negotiable for individuals and non-profit organizations. + FREE for individuals who can't pay. Your 'Thanks!' just enough! :-) + Payment by international wire transfer. + + Entered: 6Mar96 +  Free Software Association of Germany Michaela Merz *************** short-term, or that are very interesting *** 553,556 **** --- 577,605 ---- Updated: 21Jan95 +  + Erik Naggum + P.O. Box 1570 Vika http://www.naggum.no + 0118 OSLO phone: +47 2295 0313 + NORWAY NIC handle: EN9 + + Have extensive experience with Unix and C (since 1983), Internet protocols + (1987), International Standards for character sets (1988), SGML (1990), + ANSI Common Lisp (1994); Emacs user and programmer from 1984 to 1987 + (TOPS-20) and 1991 to present (Unix). Have worked on GNU Emacs development + since early 1994, both in Emacs Lisp and C. Have been tracking development + code for Emacs since mid-1995, and know new versions intimately. + + Services offered: installation, support, customization, and development of + new packages, plus courses and seminars from basic usage through Emacs Lisp + programming to writing extensions in C. General aid with all GNU software. + + Rates depend on duration of work: From $6/minute for <= 1 hour, to $500/day + for >= 1 month. Service agreements are encouraged. Cover Scandinavia for + on-site work. Remote debugging and help by mail available for smaller + fees, without limits to distance. + + Please call only about actual work, I prefer mail for all other questions. + + I accept VISA and Mastercard, preferred for remote jobs and small amounts.  Wolfgang S. Rupprecht diff -2rcpP --exclude=*.elc emacs-19.30/etc/TUTORIAL emacs-19.31/etc/TUTORIAL *** emacs-19.30/etc/TUTORIAL Thu Oct 26 02:36:10 1995 --- emacs-19.31/etc/TUTORIAL Sat May 25 19:10:31 1996 *************** *** 1,17 **** Copyright (c) 1985 Free Software Foundation, Inc; See end for conditions. - You are looking at the Emacs tutorial. ! Emacs commands generally involve the CONTROL key (sometimes labelled ! CTRL or CTL) or the META key (sometimes labelled EDIT or ALT). Rather than ! write out META or CONTROL each time we want you to prefix a character, ! we'll use the following abbreviations: C- means hold the CONTROL key while typing the character Thus, C-f would be: hold the CONTROL key and type f. M- means hold the META or EDIT or ALT key down while typing . ! If there is no META key or equivalent, type , release it, ! then type the character . "" stands for the ! key labelled "ESC". Important note: to end the Emacs session, type C-x C-c. (Two characters.) --- 1,14 ---- Copyright (c) 1985 Free Software Foundation, Inc; See end for conditions. You are looking at the Emacs tutorial. ! Emacs commands generally involve the CONTROL key (sometimes labeled ! CTRL or CTL) or the META key (sometimes labeled EDIT or ALT). Rather than ! write that in full each time, we'll use the following abbreviations: C- means hold the CONTROL key while typing the character Thus, C-f would be: hold the CONTROL key and type f. M- means hold the META or EDIT or ALT key down while typing . ! If there is no META, EDIT or ALT key, instead press and release the ! ESC key and then type . We write for the ESC key. Important note: to end the Emacs session, type C-x C-c. (Two characters.) diff -2rcpP --exclude=*.elc emacs-19.30/etc/WHY-FREE emacs-19.31/etc/WHY-FREE *** emacs-19.30/etc/WHY-FREE Wed Dec 31 19:00:00 1969 --- emacs-19.31/etc/WHY-FREE Fri Feb 23 00:47:31 1996 *************** *** 0 **** --- 1,244 ---- + Why Software Should Not Have Owners + + by Richard Stallman + + Digital information technology's contributes to the world by making it + easier to copy and modify information. Computers promise to make this + easier for all of us. + + Not everyone wants it to be easier. The system of copyright gives + software programs "owners", most of whom aim to withhold software's + potential benefit from the rest of the public. They would like to be + the only ones who can copy and modify the software that we use. + + The copyright system grew up with printing--a technology for mass + production copying. Copyright fit in well with this technology + because it restricted only the mass producers of copies. It did not + take freedom away from readers of books. An ordinary reader, who did + not own a printing press, could copy books only with pen and ink, and + few readers were sued for that. + + Digital technology is more flexible than the printing press: when + information has digital form, you can easily copy it to share it with + others. This very flexibility makes a bad fit with a system like + copyright. That's the reason for the increasingly nasty and draconian + measures now used to enforce software copyright. Consider these four + practices of the Software Publishers Association (SPA): + + * Massive propaganda saying it is wrong to disobey the owners + to help your friend. + + * Solicitation for stool pigeons to inform on their coworkers and + colleagues. + + * Raids (with police help) on offices and schools, in which people are + told they must prove they are innocent of illegal copying. + + * Prosecution (by the US government, at the SPA's request) of people + such as MIT's David LaMacchia, not for copying software (he is not + accused of copying any), but merely for leaving copying facilities + unguarded and failing to censor their use. + + All four practices resemble those used in the former Soviet Union, + where every copying machine had a guard to prevent forbidden copying, + and where individuals had to copy information secretly and pass it + from hand to hand as "samizdat". There is of course a difference: the + motive for information control in the Soviet Union was political; in + the US the motive is profit. But it is the actions that affect us, + not the motive. Any attempt to block the sharing of information, no + matter why, leads to the same methods and the same harshness. + + Owners make several kinds of arguments for giving them the power + to control how we use information: + + * Name calling. + + Owners use smear words such as "piracy" and "theft", as well as expert + terminology such as "intellectual property" and "damage", to suggest a + certain line of thinking to the public--a simplistic analogy between + programs and physical objects. + + Our ideas and intuitions about property for material objects are about + whether it is right to *take an object away* from someone else. They + don't directly apply to *making a copy* of something. But the owners + ask us to apply them anyway. + + * Exaggeration. + + Owners say that they suffer "harm" or "economic loss" when users copy + programs themselves. But the copying has no direct effect on the + owner, and it harms no one. The owner can lose only if the person who + made the copy would otherwise have paid for one from the owner. + + A little thought shows that most such people would not have bought + copies. Yet the owners compute their "losses" as if each and every + one would have bought a copy. That is exaggeration--to put it kindly. + + * The law. + + Owners often describe the current state of the law, and the harsh + penalties they can threaten us with. Implicit in this approach is the + suggestion that today's law reflects an unquestionable view of + morality--yet at the same time, we are urged to regard these penalties + as facts of nature that can't be blamed on anyone. + + This line of persuasion isn't designed to stand up to critical + thinking; it's intended to reinforce a habitual mental pathway. + + It's elemental that laws don't decide right and wrong. Every American + should know that, forty years ago, it was against the law in many + states for a black person to sit in the front of a bus; but only + racists would say sitting there was wrong. + + * Natural rights. + + Authors often claim a special connection with programs they have + written, and go on to assert that, as a result, their desires and + interests concerning the program simply outweigh those of anyone + else--or even those of the whole rest of the world. (Typically + companies, not authors, hold the copyrights on software, but we are + expected to ignore this discrepancy.) + + To those who propose this as an ethical axiom--the author is more + important than you--I can only say that I, a notable software author + myself, call it bunk. + + But people in general are only likely to feel any sympathy with the + natural rights claims for two reasons. + + One reason is an overstretched analogy with material objects. When I + cook spaghetti, I do object if someone else takes it and stops me from + eating it. In this case, that person and I have the same material + interests at stake, and it's a zero-sum game. The smallest + distinction between us is enough to tip the ethical balance. + + But whether you run or change a program I wrote affects you directly + and me only indirectly. Whether you give a copy to your friend + affects you and your friend much more than it affects me. I shouldn't + have the power to tell you not to do these things. No one should. + + The second reason is that people have been told that natural rights + for authors is the accepted and unquestioned tradition of our society. + + As a matter of history, the opposite is true. The idea of natural + rights of authors was proposed and decisively rejected when the US + Constitution was drawn up. That's why the Constitution only *permits* + a system of copyright and does not *require* one; that's why it says + that copyright must be temporary. It also states that the purpose of + copyright is to promote progress--not to reward authors. Copyright + does reward authors somewhat, and publishers more, but that is + intended as a means of modifying their behavior. + + The real established tradition of our society is that copyright cuts + into the natural rights of the public--and that this can only be + justified for the public's sake. + + * Economics. + + The final argument made for having owners of software is that this + leads to production of more software. + + Unlike the others, this argument at least takes a legitimate approach + to the subject. It is based on a valid goal--satisfying the users of + software. And it is empirically clear that people will produce more of + something if they are well paid for doing so. + + But the economic argument has a flaw: it is based on the assumption + that the difference is only a matter of how much money we have to pay. + It assumes that "production of software" is what we want, whether the + software has owners or not. + + People readily accept this assumption because it accords with our + experiences with material objects. Consider a sandwich, for instance. + You might well be able to get an equivalent sandwich either free or + for a price. If so, the amount you pay is the only difference. + Whether or not you have to buy it, the sandwich has the same taste, + the same nutritional value, and in either case you can only eat it + once. Whether you get the sandwich from an owner or not cannot + directly affect anything but the amount of money you have afterwards. + + This is true for any kind of material object--whether or not it has an + owner does not directly affect what it *is*, or what you can do with + it if you acquire it. + + But if a program has an owner, this very much affects what it is, and + what you can do with a copy if you buy one. The difference is not + just a matter of money. The system of owners of software encourages + software owners to produce something--but not what society really + needs. And it causes intangible ethical pollution that affects us + all. + + What does society need? It needs information that is truly available + to its citizens--for example, programs that people can read, fix, + adapt, and improve, not just operate. But what software owners + typically deliver is a black box that we can't study or change. + + Society also needs freedom. When a program has an owner, the users + lose freedom to control part of their own lives. + + And above all society needs to encourage the spirit of voluntary + cooperation in its citizens. When software owners tell us that + helping our neighbors in a natural way is "piracy", they pollute our + society's civic spirit. + + This is why we say that free software is a matter of freedom, not + price. + + The economic argument for owners is erroneous, but the economic issue + is real. Some people write useful software for the pleasure of + writing it or for admiration and love; but if we want more software + than those people write, we need to raise funds. + + For ten years now, free software developers have tried various methods + of finding funds, with some success. There's no need to make anyone + rich; the median US family income, around $35k, proves to be enough + incentive for many jobs that are less satisfying than programming. + + For years, until a fellowship made it unnecessary, I made a living + from custom enhancements of the free software I had written. Each + enhancement was added to the standard released version and thus + eventually became available to the general public. Clients paid me so + that I would work on the enhancements they wanted, rather than on the + features I would otherwise have considered highest priority. + + The Free Software Foundation, a tax-exempt charity for free software + development, raises funds by selling CD-ROMs, tapes and manuals (all + of which users are free to copy and change), as well as from + donations. It now has a staff of five programmers, plus three + employees who handle mail orders. + + Some free software developers make money by selling support services. + Cygnus Support, with around 50 employees, estimates that about 15 per + cent of its staff activity is free software development--a respectable + percentage for a software company. + + Companies including Intel, Motorola, Texas Instruments and Analog + Devices have combined to fund the continued development of the free + GNU compiler for the language C. Meanwhile, the GNU compiler for the + Ada language is being funded by the US Air Force, which believes this + is the most cost-effective way to get a high quality compiler. + + All these examples are small; the free software movement is still + small, and still young. But the example of listener-supported radio + in this country shows it's possible to support a large activity + without forcing each user to pay. + + As a computer user today, you may find yourself using a proprietary + program. If your friend asks to make a copy, it would be wrong to + refuse. Cooperation is more important than copyright. But + underground, closet cooperation does not make for a good society. A + person should aspire to live an upright life openly with pride, and + this means saying "No" to proprietary software. + + You deserve to be able to cooperate openly and freely with other + people who use software. You deserve to be able to learn how the + software works, and to teach your students with it. You deserve to be + able to hire your favorite programmer to fix it when it breaks. + + You deserve free software. + + + Copyright 1994 Richard Stallman + Verbatim copying and redistribution is permitted + without royalty as long as this notice is preserved; + alteration is not permitted. diff -2rcpP --exclude=*.elc emacs-19.30/etc/copying.paper emacs-19.31/etc/copying.paper *** emacs-19.30/etc/copying.paper Sat Nov 13 21:57:20 1993 --- emacs-19.31/etc/copying.paper Thu Jan 4 14:54:41 1996 *************** or may forego use of the program. When *** 224,228 **** zero-sum transfer of wealth between two parties. But each time someone chooses to forego use of the program, this harms that person without ! benefitting anyone. The sum of negative numbers and zeros must be negative. --- 224,228 ---- zero-sum transfer of wealth between two parties. But each time someone chooses to forego use of the program, this harms that person without ! benefiting anyone. The sum of negative numbers and zeros must be negative. diff -2rcpP --exclude=*.elc emacs-19.30/etc/edt-user.doc emacs-19.31/etc/edt-user.doc *** emacs-19.30/etc/edt-user.doc Fri Apr 14 13:00:44 1995 --- emacs-19.31/etc/edt-user.doc Thu Jan 4 14:54:45 1996 *************** VI. SOME HIGHLIGHTS IN THIS EDT EMULAT *** 357,363 **** edt-user.el customization files. ! 14. TPU/EVE's Retangular Cut and Paste functions (originally from the EVE-Plus package) are supported. But unlike the TPU/EVE versions, these here ! support both insert and overwrite modes. The seven retangular functions are bound to F7, F8, GOLD-F8, F9, GOLD-F9, F10, and GOLD-F10 in the default EDT mode. --- 357,363 ---- edt-user.el customization files. ! 14. TPU/EVE's Rectangular Cut and Paste functions (originally from the EVE-Plus package) are supported. But unlike the TPU/EVE versions, these here ! support both insert and overwrite modes. The seven rectangular functions are bound to F7, F8, GOLD-F8, F9, GOLD-F9, F10, and GOLD-F10 in the default EDT mode. diff -2rcpP --exclude=*.elc emacs-19.30/etc/emacs.1 emacs-19.31/etc/emacs.1 *** emacs-19.30/etc/emacs.1 Mon Jul 11 16:30:49 1994 --- emacs-19.31/etc/emacs.1 Mon Apr 22 14:48:40 1996 *************** *** 1,3 **** ! .TH EMACS 1 "1994 April 19" .UC 4 .SH NAME --- 1,3 ---- ! .TH EMACS 1 "1995 December 7" .UC 4 .SH NAME *************** as a batch editor: *** 113,117 **** .TP 8 .BI \-batch ! Edit in batch mode. The editor will send messages to stdout. This option must be the first in the argument list. You must use -l and -f options to specify files to execute and functions to call. --- 113,117 ---- .TP 8 .BI \-batch ! Edit in batch mode. The editor will send messages to stderr. This option must be the first in the argument list. You must use -l and -f options to specify files to execute and functions to call. *************** so that you can continue using your orig *** 137,149 **** can be started with the following X switches: .TP 8 - .BI \-rn " name" - Specifies the program name which should be used when looking up - defaults in the user's X resources. This must be the first option - specified in the command line. - .TP 8 .BI \-name " name" ! Specifies the name which should be assigned to the .I Emacs ! window. .TP 8 .B \-r --- 137,147 ---- can be started with the following X switches: .TP 8 .BI \-name " name" ! Specifies the name which should be assigned to the initial .I Emacs ! window. This controls looking up X resources as well as the window title. ! .TP 8 ! .BI \-title " name" ! Specifies the title for the initial X window. .TP 8 .B \-r *************** is documented here, but the complete tex *** 400,427 **** manual is included in a convenient tree structured form. ! /usr/local/lib/emacs/$VERSION/src - C source files and object files ! /usr/local/lib/emacs/$VERSION/lisp - Lisp source files and compiled files that define most editing commands. Some are preloaded; others are autoloaded from this directory when used. ! /usr/local/lib/emacs/$VERSION/etc - various programs that are used with GNU Emacs, and some files of information. ! /usr/local/lib/emacs/$VERSION/etc/DOC.* - contains the documentation strings for the Lisp primitives and preloaded Lisp functions of GNU Emacs. They are stored here to reduce the size of Emacs proper. ! /usr/local/lib/emacs/$VERSION/etc/DIFF discusses GNU Emacs vs. Twenex ! Emacs; .br ! /usr/local/lib/emacs/$VERSION/etc/CCADIFF discusses GNU Emacs vs. CCA ! Emacs; ! .br ! /usr/local/lib/emacs/$VERSION/etc/GOSDIFF discusses GNU Emacs ! vs. Gosling Emacs. ! .br ! /usr/local/lib/emacs/$VERSION/etc/SERVICE lists people offering various services to assist users of GNU Emacs, including education, troubleshooting, porting and customization. --- 398,419 ---- manual is included in a convenient tree structured form. ! /usr/local/share/emacs/$VERSION/src - C source files and object files ! /usr/local/share/emacs/$VERSION/lisp - Lisp source files and compiled files that define most editing commands. Some are preloaded; others are autoloaded from this directory when used. ! /usr/local/share/emacs/$VERSION/etc - various programs that are used with GNU Emacs, and some files of information. ! /usr/local/share/emacs/$VERSION/etc/DOC.* - contains the documentation strings for the Lisp primitives and preloaded Lisp functions of GNU Emacs. They are stored here to reduce the size of Emacs proper. ! /usr/local/share/emacs/$VERSION/etc/OTHER.EMACSES discusses GNU Emacs ! vs. other versions of Emacs. .br ! /usr/local/share/emacs/$VERSION/etc/SERVICE lists people offering various services to assist users of GNU Emacs, including education, troubleshooting, porting and customization. *************** programs in the Emacs Lisp extension lan *** 431,441 **** documented. ! /usr/local/lib/emacs/lock - holds lock files that are made for all files being modified in Emacs, to prevent simultaneous modification of one file by two users. - - /usr/local/lib/emacs/$VERSION/$ARCHITECTURE/cpp - the GNU cpp, needed - for building Emacs on certain versions of Unix where the standard cpp - cannot handle long names for macros. .\" START DELETING HERE IF YOU'RE NOT USING X --- 423,429 ---- documented. ! /usr/local/com/emacs/lock - holds lock files that are made for all files being modified in Emacs, to prevent simultaneous modification of one file by two users. .\" START DELETING HERE IF YOU'RE NOT USING X diff -2rcpP --exclude=*.elc emacs-19.30/etc/emacs.bash emacs-19.31/etc/emacs.bash *** emacs-19.30/etc/emacs.bash Sat May 1 09:25:30 1993 --- emacs-19.31/etc/emacs.bash Fri May 3 16:56:39 1996 *************** function edit () *** 36,40 **** else if jobs %emacs 2> /dev/null ; then ! echo "$(pwd)" "$@" > ${HOME}/.emacs_args && fg %emacs else emacs "$@" --- 36,40 ---- else if jobs %emacs 2> /dev/null ; then ! echo "$(pwd)" "$@" >| ${HOME}/.emacs_args && fg %emacs else emacs "$@" diff -2rcpP --exclude=*.elc emacs-19.30/etc/emacstool.1 emacs-19.31/etc/emacstool.1 *** emacs-19.30/etc/emacstool.1 Wed Jun 9 06:55:47 1993 --- emacs-19.31/etc/emacstool.1 Thu Jan 4 14:54:47 1996 *************** the tty subwindow, which is typically GN *** 18,22 **** allows GNU Emacs users to make full use of the mouse and function keys. GNU Emacs can be loaded with functions to interpret the mouse and ! function-key events to make a truely fine screen oriented editor for the Sun Workstation. .PP --- 18,22 ---- allows GNU Emacs users to make full use of the mouse and function keys. GNU Emacs can be loaded with functions to interpret the mouse and ! function-key events to make a truly fine screen oriented editor for the Sun Workstation. .PP diff -2rcpP --exclude=*.elc emacs-19.30/etc/enriched.doc emacs-19.31/etc/enriched.doc *** emacs-19.30/etc/enriched.doc Fri Apr 7 15:51:18 1995 --- emacs-19.31/etc/enriched.doc Thu Jan 4 14:54:52 1996 *************** face, which is the same as the `italic' *** 169,173 **** ! Enriched-mode docuemnts are saved in an extended version of a format called text/enriched, which is defined as part of the MIME standard. This means that your documents are transportable (even --- 169,173 ---- ! Enriched-mode documents are saved in an extended version of a format called text/enriched, which is defined as part of the MIME standard. This means that your documents are transportable (even diff -2rcpP --exclude=*.elc emacs-19.30/etc/etags.1 emacs-19.31/etc/etags.1 *** emacs-19.30/etc/etags.1 Thu Jun 22 16:56:48 1995 --- emacs-19.31/etc/etags.1 Mon Apr 22 11:54:18 1996 *************** etags, ctags \- generate tag file for Em *** 35,39 **** .SH DESCRIPTION The `\|\fBetags\fP\|' program is used to create a tag table file, in a format ! understood by .BR emacs ( 1 )\c \&; the `\|\fBctags\fP\|' program is used to create a similar table in a --- 35,39 ---- .SH DESCRIPTION The `\|\fBetags\fP\|' program is used to create a tag table file, in a format ! understood by .BR emacs ( 1 )\c \&; the `\|\fBctags\fP\|' program is used to create a similar table in a *************** format understood by *** 41,49 **** .BR vi ( 1 )\c \&. Both forms of the program understand ! the syntax of C, C++, Fortran, Pascal, LaTeX, Scheme, Emacs Lisp/Common Lisp ! and most assembler\-like syntaxes. Both forms read the files specified on the command line, and write a tag table (defaults: `\|TAGS\|' for \fBetags\fP, `\|tags\|' for ! \fBctags\fP) in the current working directory. The programs recognize the language used in an input file based on its file name and contents. The --language switch can be used to force --- 41,53 ---- .BR vi ( 1 )\c \&. Both forms of the program understand ! the syntax of C, C++, Fortran, Pascal, LaTeX, Scheme, ! Emacs Lisp/Common Lisp, Erlang, Prolog and most assembler\-like syntaxes. Both forms read the files specified on the command line, and write a tag table (defaults: `\|TAGS\|' for \fBetags\fP, `\|tags\|' for ! \fBctags\fP) in the current working directory. ! Files specified with relative file names will be recorded in the tag ! table with file names relative to the directory where the tag table ! resides. Files specified with absolute file names will be recorded ! with absolute file names. The programs recognize the language used in an input file based on its file name and contents. The --language switch can be used to force *************** parsing based on language. May be freel *** 103,107 **** and the \fB\-R\fP option. The regexps are cumulative, i.e. each option will add to the previous ones. The regexps are of the form: ! .br \fB/\fP\fItagregexp\fP[\fB/\fP\fInameregexp\fP]\fB/\fP --- 107,111 ---- and the \fB\-R\fP option. The regexps are cumulative, i.e. each option will add to the previous ones. The regexps are of the form: ! .br \fB/\fP\fItagregexp\fP[\fB/\fP\fInameregexp\fP]\fB/\fP *************** It should not match useless characters. *** 112,116 **** such that more characters than needed are unavoidably matched by \fItagregexp\fP, it may be useful to add a \fInameregexp\fP, to ! narrow down the tag scope. .br Here are some examples. All the regexps are quoted to protect them --- 116,121 ---- such that more characters than needed are unavoidably matched by \fItagregexp\fP, it may be useful to add a \fInameregexp\fP, to ! narrow down the tag scope. \fBctags\fP ignores regexps without a ! \fInameregexp\fP. .br Here are some examples. All the regexps are quoted to protect them *************** emacs \fBetags\fP is shipped with). *** 195,199 **** .SH "SEE ALSO" `\|\fBemacs\fP\|' entry in \fBinfo\fP; \fIGNU Emacs Manual\fP, Richard ! Stallman. .br .BR cxref ( 1 ), --- 200,204 ---- .SH "SEE ALSO" `\|\fBemacs\fP\|' entry in \fBinfo\fP; \fIGNU Emacs Manual\fP, Richard ! Stallman. .br .BR cxref ( 1 ), diff -2rcpP --exclude=*.elc emacs-19.30/etc/future-bug emacs-19.31/etc/future-bug *** emacs-19.30/etc/future-bug Wed Dec 31 19:00:00 1969 --- emacs-19.31/etc/future-bug Mon Apr 15 23:26:42 1996 *************** *** 0 **** --- 1,37 ---- + Date: Tue, 23 Feb 1999 21:03:50 -0600 + From: Karl Fogel + To: bug-gnu-emacs@prep.ai.mit.edu + Subject: M-x search-backward-in-time broken... + X-Windows: you'll envy the dead. + + In GNU Emacs 22.70.4 (i586-unknown-linuxoldld, X toolkit) of Sat Feb 20 1999 on floss + configured using `configure --with-x-toolkit=yes' + + The `search-backward-in-time' function appears to be broken in + Emacs 22.70. + + Unfortunately, I can never seem to start the debugger early + enough to catch the error as it happens. However I have traced the + problem through source by eye, and it looks like `time-forward' can't + handle negative arguments anymore. This is consistent with other + symptoms: for example, `undo' (which since 22.25 has worked by passing + a negative arg to `time-forward') is also broken. However, `do' still + works -- it seems that `time-forward' continues to handle positive + arguments just fine. + + No one here-and-now can figure out how to fix the problem, + because the code for `time-forward' is so hairy. We're using M-x + report-future-emacs-bug to request that you folks include more + comments when you write it (sometime in 1998 as I recall). + + Thanks! + + -Karl Fogel + + + P.S. You'll be pleased to know that since (time-forward N) still works + for N >= 0, we've used it to pre-emptively update configure.in. + Emacs now configures and builds on every platform that will ever + be made. It wasn't easy, but at least that's one problem out of + the way for good. If you'd like the patch, just ask. + diff -2rcpP --exclude=*.elc emacs-19.30/etc/gnus-tut.txt emacs-19.31/etc/gnus-tut.txt *** emacs-19.30/etc/gnus-tut.txt Sat Nov 4 02:59:55 1995 --- emacs-19.31/etc/gnus-tut.txt Thu Jan 4 14:54:56 1996 *************** with a shotgun. *** 125,129 **** nnmbox uses a Unix mail box to store mail. Nice, but slow. ! nnmh uses mh-e folders, which is also a one-file-one-mail thingie, but slower than nnml. (It doesn't support NOV files.) --- 125,129 ---- nnmbox uses a Unix mail box to store mail. Nice, but slow. ! nnmh uses mh-e folders, which is also a one-file-one-mail thingy, but slower than nnml. (It doesn't support NOV files.) *************** remove all hihit code from all the Gnus *** 192,196 **** `gnus-summary-article-hook'). (Well, at the very least the first two.) Gnus provides various integrated functions for highlighting, ! which are both faster and more accurated. There is absolutely no chance, whatsoever, of getting Gnus to work --- 192,196 ---- `gnus-summary-article-hook'). (Well, at the very least the first two.) Gnus provides various integrated functions for highlighting, ! which are both faster and more accurate. There is absolutely no chance, whatsoever, of getting Gnus to work *************** Message-ID: *** 205,209 **** If you want to report a bug, please type `M-x gnus-bug'. This will ! give me a precice overview of your Gnus and Emacs version numbers, along with a look at all Gnus variables you have changed. --- 205,209 ---- If you want to report a bug, please type `M-x gnus-bug'. This will ! give me a precise overview of your Gnus and Emacs version numbers, along with a look at all Gnus variables you have changed. diff -2rcpP --exclude=*.elc emacs-19.30/etc/ledit.l emacs-19.31/etc/ledit.l *** emacs-19.30/etc/ledit.l Wed Apr 17 19:47:24 1985 --- emacs-19.31/etc/ledit.l Thu Jan 4 14:54:58 1996 *************** *** 57,61 **** ;;; LEDIT-OUTPUT ;;; Egad, what a mess! Doesn't work for XEMACS yet. ! ;;; Here's an example from Moclisp: ;;; -> (defun bar (nothing) (bar nothing)) ;;; bar --- 57,61 ---- ;;; LEDIT-OUTPUT ;;; Egad, what a mess! Doesn't work for XEMACS yet. ! ;;; Here's an example from Mocklisp: ;;; -> (defun bar (nothing) (bar nothing)) ;;; bar diff -2rcpP --exclude=*.elc emacs-19.30/etc/news.texi emacs-19.31/etc/news.texi *** emacs-19.30/etc/news.texi Sat Mar 19 02:05:00 1994 --- emacs-19.31/etc/news.texi Thu Jan 4 14:55:11 1996 *************** There are new escape sequences for use i *** 43,49 **** constants. The escape sequence @samp{\a} is equivalent to @samp{\C-g}, the @sc{ASCII} @sc{BEL} character (code 7). The escape sequence ! @samp{\x} followed by a hexidecimal number represents the character whose @sc{ASCII} code is that number. There is no limit on the number ! of digits in the hexidecimal value. @item --- 43,49 ---- constants. The escape sequence @samp{\a} is equivalent to @samp{\C-g}, the @sc{ASCII} @sc{BEL} character (code 7). The escape sequence ! @samp{\x} followed by a hexadecimal number represents the character whose @sc{ASCII} code is that number. There is no limit on the number ! of digits in the hexadecimal value. @item *************** set, you can arrange to use that charact *** 1864,1869 **** @example ! (require 'disp-table) ! (standard-display-8bit 0 255) @end example --- 1864,1868 ---- @example ! (standard-display-european 1) @end example *************** including the letter @samp{p} in the syn *** 3045,3049 **** These characters are treated as whitespace when they appear between ! expressions. When they appear withing an expression, they are handled according to their usual syntax codes. --- 3044,3048 ---- These characters are treated as whitespace when they appear between ! expressions. When they appear within an expression, they are handled according to their usual syntax codes. *************** currently being displayed in windows may *** 3190,3194 **** other buffers not visible. Normally, @code{other-buffer} returns a currently visible buffer only as a last resort, if there are no suitable ! nonvisible buffers. @item --- 3189,3193 ---- other buffers not visible. Normally, @code{other-buffer} returns a currently visible buffer only as a last resort, if there are no suitable ! invisible buffers. @item diff -2rcpP --exclude=*.elc emacs-19.30/etc/refcard.ps emacs-19.31/etc/refcard.ps *** emacs-19.30/etc/refcard.ps Wed Jun 9 14:06:57 1993 --- emacs-19.31/etc/refcard.ps Thu Mar 21 22:35:11 1996 *************** *** 1,1624 **** %!PS-Adobe-2.0 ! %%Creator: dvipsk 5.512a Copyright 1986, 1993 Radical Eye Software %%Title: refcard.dvi %%Pages: 6 %%PageOrder: Ascend ! %%BoundingBox: 0 0 612 792 %%EndComments ! %DVIPSCommandLine: dvips -r0 -s -F -Z -D 1016 -o refcard.ps refcard.dvi ! %DVIPSSource: TeX output 1993.06.09:1802 ! /SafetyEnclosure save def %%BeginProcSet: texc.pro ! /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N} ! B /TR{translate}N /isls false N /vsize 11 72 mul N /@rigin{isls{[0 -1 1 0 0 0] ! concat}if 72 Resolution div 72 VResolution div neg scale isls{Resolution hsize ! -72 div mul 0 TR}if Resolution VResolution vsize -72 div 1 add mul TR matrix ! currentmatrix dup dup 4 get round 4 exch put dup dup 5 get round 5 exch put ! setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed ! true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N ! /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn begin /FontType 3 N /FontMatrix ! fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{ ! CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn ! put /ctr 0 N[}B /df{/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 ! 0 sf neg 0 0]N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data ! dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{128 ! ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 ! sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type ! /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N ! /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get ! S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height ! sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 ! -1 -.1 ch-xoff sub ch-yoff .1 add]/id ch-image N /rw ch-width 7 add 8 idiv ! string N /rc 0 N /gp 0 N /cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse} ! imagemask restore}B /G{{id gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get ! exec}loop}B /adv{cp add /cp X}B /chg{rw cp id gp 4 index getinterval ! putinterval dup gp add /gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get ! dup 0 eq{pop 1}{dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse} ! ifelse put 1 adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127} ! {dup 2 idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string ! putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval adv}B ! /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}{adv 1 chg ! nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add ! adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]dup{ ! bind pop}forall N /D{/cc X dup type /stringtype ne{]}if nn /base get cc ctr ! put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf ! div put}if put /ctr ctr 1 add N}B /I{cc 1 add D}B /bop{userdict /bop-hook ! known{bop-hook}if /SI save N @rigin 0 0 moveto /V matrix currentmatrix dup 1 ! get dup mul exch 0 get dup mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N ! /eop{SI restore showpage userdict /eop-hook known{eop-hook}if}N /@start{ ! userdict /start-hook known{start-hook}if pop /VResolution X /Resolution X 1000 ! div /DVImag X /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put} ! for 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0 ! ]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V{}B /RV ! statusdict begin /product where{pop product dup length 7 ge{0 7 getinterval ! dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}ifelse}{false} ! ifelse end{{gsave TR -.1 -.1 TR 1 1 scale rulex ruley false RMat{BDot} ! imagemask grestore}}{{gsave TR -.1 -.1 TR rulex ruley scale 1 1 false RMat{ ! BDot}imagemask grestore}}ifelse B /QV{gsave transform round exch round exch ! itransform moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill ! grestore}B /a{moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta ! add tail}B /b{S p tail}B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{ ! 1 M}B /i{2 M}B /j{3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p ! -2 w}B /o{p -1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto} ! B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end %%EndProcSet ! TeXDict begin 40258431 52099146 1000 1016 1016 (refcard.dvi) ! @start /Fa 1 59 df58 D E /Fb 19 122 df<003FB612E05AA2B7FCA216C0A26C1580230874A132> ! 45 D97 DII<193F95B5FC171FA319FEEF001F1807A219FCA2180FA2 ! 19F8A2181FA219F0A2183FA219E0A2187FA219C0A218FFA21980A25FA21900A25FED0FF0DB7FFE ! 5B4AB5FC913907FC1F8791391FF007C7913A3FC003E7FC91387F80014AC712FF495A49486E5A49 ! 5A010F153F495A49485D137F5C13FF48495DA24890C8127FA2485F5B000F16FFA248485EA25E12 ! 3F4993C7FCA25E127F495DA21607A2495D12FF160F19604D13F05B161F1801007F04F013E0A204 ! 3F1303047F14C017E0003F15FF4B14076D491580001F03DF130FDB079F14006C6CEB1F1F0007DA ! 3E0F131E6C6C017C143E3C01FC01F807F03C3C00FE0FF003F8F8903B7FFFC001FFF0011F90C75B ! D907FCEC3FC0406371E148>II103 ! D<153F91B5FC131FA35DEB001F1407A25DA2140FA25DA2141FA25DA2143FA25DA2147FA25DA214 ! FFA25DA25BA292CAFCA25BEE1FF84A90B5FC030314C0010790390FF03FE092391F800FF0913AFC ! 7E0007F815F890260FFDF06D7EECFFE05D4B804990C7FC5CA25C495AA25CA249481407605CA201 ! FF150F605CA248161F6091C8FC173F485FA25B177F00075F17FF495EA2000F5DF0000649170F5E ! 001F4C131F191E4914075F003F183C160F494B137C1978127F4D13F05BF001E000FF1703040714 ! C049EE07800403EB1F00933801F87E90C9B45A48705A003CEE1FC0406375E148>I<151FED7F80 ! EDFFC05CA4168016006E5A157C92C7FCB3A2EB03F8EB0FFEEB3FFF90387E1F809038F80FC0D801 ! F07FEA03E001C07FEA0780120F13005A001E131FA25A143F007C5C1278147F5D00F813FF485C12 ! 70C65A92C7FCA25B5CA213075C130F5CA2131F5CA2133F5C137F9138C00180ED03C013FFEC8007 ! 16805A1400ED0F005A495B151EA2495BA25D15F800015C4A5A0000EB07C090387E1F806DB4C7FC ! 6D5AEB07F0225E74DC2B>I<15FCEB03FF137FA315F8EB007F141FA215F0A2143FA215E0A2147F ! A215C0A214FFA21580A25BA21500A25BA25CA21307A25CA2130FA25CA2131FA25CA2133FA25CA2 ! 137FA25CA213FFA25CA25AA291C7FCA25AA25BA21207A25BA2120FA25BA2121FA25BA2123FEC01 ! 809038E003C0A2127F140701C01380A2140F00FF14001380A25C141E007F133E143CA2003F5B14 ! F86C6C5A380FE3E06CB45A6C5BC690C7FC1E6373E124>108 DIIII114 DI<15F0EC03F84A7EA2140FA25DA2 ! 141FA25DA2143FA25DA2147FA25DA214FFA25DA25BA2B712FC16FEA216FC260003FEC7FCA21307 ! A25CA2130FA25CA2131FA25CA2133FA25CA2137FA25CA213FFA25CA25AA291C8FCA25AA25BA212 ! 0716604914F0A2000F140116E049130316C01507001F158049130F16005D151E000F5C157C5D00 ! 07495A4A5A6C6C485A3901FC3F802600FFFEC7FC6D5AEB1FE0275872D62F>II ! 121 D E /Fc 1 14 df13 ! D E /Fd 45 122 df<121FEA3F80EA7FC0EAFFE0A313F0A2127F123FEA1F701200A413F013E0A2 ! 1201A213C0120313801207EA0F00121E123E5A127812300C1E768A20>44 ! DI<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B768A20>I< ! EC3FE0903803FFFE010F6D7E90391FE03FC090397F800FF09039FE0003F848486D7E48486D7E49 ! 147E0007157F4848EC3F80A24848EC1FC0A3003F16E0A34848EC0FF0A600FF16F8B3A2007F16F0 ! A46D141F003F16E0A3001F16C0A26D143F000F1680A26C6CEC7F000003157E6D14FE6C6C495A6C ! 6C495A90397F800FF090391FE03FC06DB55A010349C7FC9038003FE02D437BC038>48 ! D<143C147C14FC1303130F13FFB5FCA213F313031200B3B3AD497E497EB712E0A4234175C038> ! I<903801FFC0010F13F8013F13FF90B612C02601FC037F3A03E0007FF8D80F80EB1FFC90C76C7E ! 001E6E7E488000386E1380127800706E13C0127EB47E6DEC7FE0A66C5A001EC8FCC9FCEEFFC0A3 ! 4B1380A24B13005E4B5A150F5E4B5AED3FC04B5A4BC7FC4A5A4A5AEC07F04A5A4A5A4AC8FC147E ! 5C495A494814E0EB07C0495A49C7EA01C0133E5B5B48481403EA03C04848EC078048B7FC5A5A5A ! B8FC1700A32B417AC038>II< ! 0003150C01E0147C01FFEB0FFC91B55A5E5E5E93C7FC5D15F815C0D987FEC8FC0180C9FCACEC3F ! E0903881FFFC018713FF90399FE03FC09039BF000FE001FCEB07F801F06D7E491301496D7E826C ! 4880C91380A217C0163FA217E0A5123EEA7F8012FFA317C0167F90C8FC00FC168012700078EDFF ! 007E4B5A6C4A5AD81F80495A6C6C495AD807F0495AD801FEEBFFC06CB6C7FC013F13FC010F13F0 ! 010113802B437AC038>53 D<4AB4FC020F13E0027F13F84948C67ED903F8133ED90FE0130F495A ! 4948EB3F8049C7127F01FE14FF12015B485A0007ED7F00163E484891C7FCA2485AA2123FA3485A ! A2EC3FF8ECFFFED8FFC16D7E9039C3C01FE09039C7000FF001CE6D7E01DC6D7E6F7E13F8496D7E ! 1780A249EC7FC0A317E05BA3127FA66C7EA217C0121FA2000FEDFF807F000716006D495A12036D ! 495A6C6C495A6C6C495A90397FC03FE0011FB512806D91C7FC010313FC9038007FC02B437AC038 ! >I<121C121EEA1FC090B712F8A35A17F017E017C0A2003CC8EA078048ED0F00161E0070151C16 ! 3C5E5E485D15014B5AC8485A4BC7FC150E151E5D5DA25DA24A5A14035D1407A24A5AA2141FA292 ! C8FC5CA25CA35CA25CA21301A61303AB6D5A6D5A2D4479C138>I57 D<1618163C167EA316FFA24B7FA34B7FA39238073FE0A2030F ! 7FED0E1FA24B6C7EA2033C7FED3807A203707F160303F07F4B7EA20201814B7EA24A486D7EA202 ! 078192C7123FA2020E6E7EA2021E81021C140FA24A811707027881027FB6FCA291B8FCA202E0C7 ! 120149486E7FA20103834A157FA249C96C7EA24983010E161FA24983180F013C831807137E48B4 ! 4C7E000F01C092381FFF80B500F80207B6FCA448467BC553>65 D<922601FFC0EB0180031F01FC ! 130392B613070207EDC00F021F9038C00FF0913B3FFC0001F81FDAFFE09038007E3F01030180EC ! 1F7F4948C8EA0FFF4948814948814948814948814948167F485B4890CA123F191F485A000F180F ! 5B121F491707123FA2491703127FA396C7FC485AAD6C7EA2F10380A2123F7FA2001F18076D1800 ! 120F7F0007606C6C170E191E6C6D161C6C6D163C6D6C5E6D6C5E6D6C15016D6C4B5A6D6C4B5A6D ! 6C6C4A5A010001E0023FC7FCDA3FFC14FC913A1FFFC00FF8020790B512E002001580031F01FCC8 ! FC030113E0414779C450>67 D69 DI<922601FFC0497E031F01FC ! 130392B613070207EDC00F021F9038C00FF0913B3FFC0001F81FDAFFE09038007E3F01030180EC ! 1F7F4948C8EA0FFF4948814948814948814948814948167F485B4890CA123F191F485A000F180F ! 5B121F491707123FA2491703127FA396C8FC485AAC053FB612806C7EA3DD0003EBC000003F715B ! 6D82A2121F7F120F7F12076C7E807E6C7F6D7E6D7E6D6C5D6D7E6DB45D6D6DEC07BF010001F0EC ! 1F1FDA3FFCEC7E0F913B1FFFE003FC07020790B5EAF0030200EDC001031F91C9FC030113F04947 ! 79C457>I73 ! D77 DI80 D83 ! D85 ! D97 DI< ! EC3FFC49B512C0010714F090391FE003F890397F8000FC9039FE0001FE48481303485A1207485A ! 121F49EB01FC003FEC0070491400127FA35B12FFAA6C7EA3123F6D1407121F6D140F000F150E6C ! 6C141E6D143C6C6C1478C66C14F890397FC001F090393FF00FC0010FB512800101EBFC00903800 ! 3FE0282D7BAB32>IIIIIII107 DIIIII<3901FC01F800FF ! EB07FE91381FFF80EC3E3F9138787FC000071370000313E01201EBFDC09138803F8001FFEB0E00 ! 92C7FC91C8FCA35BB3A5486C7EB6FCA4222B7BAA2C>114 D<90381FFC0390B5128F000314FF38 ! 0FF007381F800048C7123F007E80A2007C8012FC81A27E7E6D90C7FC13E0EA7FFCEBFFF06C13FF ! 6C14C06C14F06C800001806C6C7F010F7FD9007F13801403020013C000E0147F153F151F7E150F ! 7EA26C1580151F7E6CEC3F006D133E6D13FE39F9F803F800F0B55AD8E03F13C026C007FCC7FC22 ! 2D7BAB2D>IIIIIII E /Fe 25 122 df<94B5913803FFE0043F02E0017F ! 13FC0303B6D8FC03B6FC031FDBFE0F1580037FDBFFBF15E04AB5D8C00790B5008013F0020701FC ! C7ECFC034A01E049DAF00713F8023F494914E04A90C7484A4813FC4A48178049495C4B17005B49 ! 495EA25D494E6D13F84B6E6F13F07613E0726F13C072EE1E007293C7FCAFBD12FEA7D8000F01E0 ! C849C9FCB3B3AC003FB6D8F803B712E0A766637DE25E>11 D<4AB5FC027F14F049B612FE0107ED ! FFC0011F16F049D9801F7F9027FFF0000313FE02FC01007F486D6E7F717F486D6E7FA2717F8583 ! A285836C5B6C5B6D5A6D5AEB0FC090C9FCA4047FB5FC033FB6FC0203B7FC143F49B612830107EC ! E003011FEBFE00017F13F090B512C0000391C7FC4813FC485B485B485BA2485B5CB5FCA291C8FC ! A35FA26E5CA26C5E6E5C6E027E7F6C6D02FEEBFFC06C6D4948ECFF806C01FE902607F87F14C06C ! 9039FFC07FF0000191B5EAC03F6C6C4B7E011F9138FE0007010302F801001480D9001F018091C8 ! FC4A417CBF4F>97 D<903807FF80B6FCA7C6FC7F7FB3A7933801FFF0041FEBFF8093B612F00383 ! 15FC038F15FF039F010080DBFFF0011F13E004C001077F93C76C13FC03FC6E7F4B6E7F4B814B6F ! 13801BC04B6F13E0A21BF0851BF8A31BFC85A31BFEAE1BFCA3611BF8A21BF0611BE0A24F13C081 ! 6F4B13806F92B51200626F4A5B03FF4A5B4A6D010F5B9126FC7FE0013F13C09127F81FFC01B55A ! 4A6CB648C7FCDAE00315F84AC615E04A013F49C8FC90C8000313E04F637BE15A>I<92380FFFF0 ! 4AB67E020F15E0023F15F891B712FE010382499026FE003F13C0011F01F0130F4901C04913E049 ! 5B90B5C74813F0485B485B5A5C5A5C5A7113E048496E13C071138071130048EE00FC95C7FC5CA2 ! B5FCAE6C7FA47E8019F86CEF01FC6E15037E6C6DED07F8806CEF0FF06C6D151F6C6EEC3FE06D6D ! EC7FC06D01F014FF6D01FC010313806D903AFFC03FFE00010391B55A01005E023F15E0020F1580 ! 020102FCC7FCDA000F13C03E417BBF48>II<92380FFFC04AB5 ! 12FC020FECFF80023F15E091B712F80103D9FE0113FE010F9039F0003FFF4901C0010F7F49496D ! 7F4990C76C7F49486E7F484980484982187F48498248173F85485BA248717EA3485B1A80A284B5 ! FCA291B9FCA41A0002C0CBFCA57EA380A27EA27E6E161F6CF03F80A26C6D167F1A006C6D5E6C6D ! 4B5A6C6D15036D6D4A5A6D6D4A5A6D01F0EC3FF06D01FCECFFE06D9026FFC00F5B010191B65A6D ! 6C4BC7FC021F15F8020715E0020092C8FC030713F041417CBF4A>III<903807FF80B6FCA7 ! C6FC7F7FB3A7EF1FFF4CB512F0040714FC041F14FF4C819326FFE03F13E00381EB000FDB83F86D ! 7FDB87F081DB8FC07FDB9F808103BFC7FC15BE03FE6E7F5D5DA25DA25DA35DB3B0B7D8F007B712 ! 80A751627AE15A>II<9038 ! 07FF80B6FCA7C6FC7F7FB3A80507B61280A7DD007F90C7FCF03FF84E5A943801FFC04D5B4D90C8 ! FC4D5AEF3FF84D5A4D5A4C5B040790C9FC4C5A4C5A4C5AEEFFE015811583038F7F039F7F03BF7F ! 92B57EA283844B804B7EDBF03F7F03E0804B6C7F4B6C7F4B7E84707F708082717F85717F717F83 ! 85717F717F8386718086B7D8C00FECFFF0A74C627BE155>107 D<903807FF80B6FCA7C6FC7F7F ! B3B3B3B3A9B712E0A723627AE12C>III<923807FFE092B6FC020715E0023F15FC91B8FC4949C66C7F0107 ! 01F0010F13E04901C001037F49496D7FD97FFEC8EA7FFE49486F7EA248496F138048496F13C048 ! 19E0A248496F13F0A24819F8A248496F13FCA34819FEA4B518FFAC6C19FEA56C6D4B13FCA26C19 ! F8A26C6D4B13F0A26C19E06E5D6C19C06C6D4B13806C6D4B13006D6C4B5A6D01C001035B6D01F0 ! 010F5B6D01FE017F5B010390B712C0010094C7FC023F15FC020F15F0020092C8FC030713E04841 ! 7CBF51>I<902607FF80EBFFF8B6011FEBFF80047F14F00383B612FC038715FF039F16C09226BF ! FE01809227FFF0003F13F8C60380010F7F6D91C76C7F6D01FC6E7F4B6E14804B804B17C04B6F13 ! E0A27313F0A27313F8A37313FCA47313FEAD611BFCA44F13F8A21BF0611BE0611BC06F92B5FC6F ! 17804E14006F4A5B6F4A5B03FF4A5B70495B04E0017F13C09226DFFC03B55A03CFB648C7FC03C3 ! 15F803C015E0043F49C8FC040313E093CBFCB3B712F0A74F5A7BBE5A>III<91393FFF80070107B538F81F80011FECFF ! 7F017F15FF3901FFF0014890C7121FD807FC1407484880484880484880A24848157FA300FF163F ! 7FA27F6DED1F0001FE92C7FC6D7E14F0ECFFC06C14FF16F016FE6C6F7E6C16E06C826C16FC6C82 ! 6C826C6C16806D16C01307010116E0D9001F15F0EC007F1501DB003F13F81607007C150100FE81 ! 177F7E173FA26D151FA27F18F07F173F6D16E06D157F6D16C06D15FF6D4A138002E0010F130002 ! FCEB7FFC01DFB65A010F15E0D8FE035D48C66C49C7FC0070010F13E035417BBF40>II<902607FFC0ED3FFEB60207B5FCA7C6EE00076D826D82B3B060 ! A460A260A26D5E6F5C6D047E7F4E806D6D0101EDFF806D6DEB07F86D01FFEB3FE06D91B55A023F ! 5D6E4A5A020314F8DA001F01C002F0C7FC51407ABE5A>III<007FB66C90B612E0A7D800 ! 1F01F0C7000FEB80006D6DDA07FCC7FC6D6D4A5A6D6D4A5A6D6D4A5A6D167F70495A6E6D485B6E ! 01E091C8FC6E6D485A6E6D485A6E4A5A70485A6EEBFE3F6E6D485A6E4A5A6F5C6F91C9FC5F6F5B ! 6F5B6F7F6F7F81836F804B804B804B805D4B80DB3FF77F04E37FDB7FC17FDBFF80804A497E4A48 ! 814A486D7F020F6E7F4A486D7F4B6D7F4A487F4A48814A486D7F4990C88049486F7F0107707FD9 ! 1FFF81B600F00103B612FCA74E3E7DBD55>I<007FB600C00107B512F8A7D8003F01E0C8381FF8 ! 00735A6D6D4B5AA26D6D4B5AA26D6D5E197F6D95C7FC6F5D6D5F6F14016D5F701303A26E6D495A ! A26E6D495AA26E6D5C181F6E5E70133F6E5E70137F6E93C8FC705BA26E6D485AA26EEC83FCA26F ! EBC3F817C76F5C17EF6F5C17FF6F5CA36F5CA26F91C9FCA26F5BA26F5BA2705AA2705AA3705AA2 ! 4C5AA25F167F94CAFCD807F05CD81FFC5C486C1301486C5C1503B512804B5AA24B5A4B5AA24B5A ! 6C49485A4BCBFC6C48485A9038D807FC391FF03FF86CB55A6C5C6C1480C649CCFCEB1FE04D5A7D ! BD55>I E /Ff 72 126 df33 DII<153E157F4B7EA9020313F0023F13FF91B612E0010715F84915FE013F814916C090 ! B87E4883484913BF4801F001837F48018001807F4849143F01FC6F7E4848150F496F7E485A8349 ! 178000FF82495D5FA56D6F1300715A6C6C6F5A95C7FC7F6C7E13FE6C7E14C06C13F86C90B5FC7E ! 6C15E06C15FC6DECFF80011F15E06D15F8010315FED9007F80020F810200818404BF7F04877F16 ! 819338807FFC173FEF0FFEA2717E83EA1F80486C6F1380487E83487EA45BA25F007F18005F7F4D ! 5A6C6C150F6D4B5A6C6C153F6D4B5A6C6D903881FFF002F013876C01FE90B55A6C90B75A6C5F6C ! 94C7FC6D15FC011F5D010715E001011580D9003F01FCC8FC020313C002005BA96FC9FC153E396E ! 78E14A>I<017E167848B46C15FE486D1401486D4A7E487F486D5CA2486D5D170F13E7267FC3FE ! 4A5AA201815E00FF6D143FA201005E177FA24D5AA2605EA201814A5BA2007F4992C7FC01C35CA2 ! 263FE7FC495A13FF5F6C49131FA26C49495A6C5B6C495C6C49137FD8007EC7FC90C85B16FFA24B ! 5BA25F5DA24B90C8FCA25E150FA24B5AA25E153FA25E157FA24B5AA25E5CA24A5BA293C9FC5CA2 ! 4A5AA25D021F15FCEF03FF4B491380023F4A13C04D13E04A484913F0A24B4913F814FF18CF4949 ! 9038FF87FCA24B1403494A14FEA2490100EBFE01A25C130FA2495AA25C013FEDFF03A24A6D14FC ! 017F1687A2494891387FCFF818FF5C487013F0A24A6E13E07113C06C90C86C13806D6F1300013C ! ED00FC3F6E7BE14A>I<137EEBFF804813C04813E04813F014F8A214FCA37E6C13FE7E137F1303 ! A7130714FCA2130FA2EB1FF8A2EB3FF0A2137FEBFFE04813C05A000F1380481300485A485A485A ! 5B6C5A5B6C5A001EC7FC172C67D54A>39 DI<123EEA7F80487E7F13F8 ! 7F6C7E6C7E000F7F6C7F6C7FC67F6D7E6D7E6D7E6D7E7F6D7F816D7F7F6E7EA26E7E6E7EA26E7E ! A214078180168080A216C080A216E0157FA316F0153FA5ED1FF8B0ED3FF0A5157F16E0A315FF16 ! C0A25C1680A25C16005C5D140FA24A5AA24A5A4A5AA24A5A5B495B5D4990C7FC5B495A495A495A ! 495A00035B485B485B003F90C8FC485A485A5B13E05B6C5A003EC9FC256E74E14A>I<157C15FE ! 4A7EAB001E17F0D87F80ED03FC01C01507D8FFF0ED1FFE01FC157F01FE15FF267FFF81010313FC ! 02E1130F001F01F14913F0000701FD017F13C06C90B71280C6EEFE00013F15F8010F15E0010315 ! 8001004AC7FC6E5B021F13F0027F13FC91B57E01036E7E010F15E0013F15F890B712FE0003EEFF ! 804801FD6D13C0001F01F1011F13F0007F01E16D13FC0281130326FFFE01010013FE01FC157F01 ! F0151FD87FC0ED07FC01801503D81E00ED00F0C71600AB6E5A157C373D77C84A>II<137E3801FFC04813E04813F04813F814FC5A14FEA314FFA27EA27E7E7E ! 6C7E130314FEA21307A2EB0FFC131FEB3FF8137FEBFFF0000313E0121F4813C0481380B512005B ! EA7FF85BEA3FC0001EC7FC182667914A>I<001FB812FC007F17FFA2BA1280A46C1800A2001F17 ! FC390A78AF4A>II<183C187F604D1380A25FA24D1300A24D5AA24D5AA260173FA24D5AA24D5AA2 ! 4C5BA24C5BA24C90C7FCA24C5AA24C5AA25F163FA24C5AA24C5AA24B5BA24B5BA24B90C8FCA24B ! 5AA24B5AA25E153FA24B5AA24B5AA24A5BA24A5BA24A90C9FCA24A5AA25D141FA24A5AA24A5AA2 ! 4A5AA2495BA2495BA24990CAFCA2495AA25C131FA2495AA2495AA2495AA2485BA2485BA24890CB ! FCA2485AA25B121FA2485AA2485AA2485AA25BA26C5AA2001ECCFC396E78E14A>III<913803FFC0023F13FC49B67E010715F0011F15FC498190B87E488348 ! 8348D9FC008002E0010F7F48018001017F4890C87F01FC153F003F707E498148486F138083496F ! 13C012FF837F19E0187FA36C5AA26C5A0006CAFCCBFCA2F0FFC0A35F19805FA24D13005F60171F ! 4D5A4D5AA24D5A4C5B4C5B4C5B041F90C7FC4C5A4C5A4C5A4B5B4B5B030F5B4B5B4B90C8FC4B5A ! 4B5A020313F04A5B4A5B4A5B4A48C9FCECFFFC495B495B495B491380013F90C8EA1F804948ED3F ! C04948ED7FE0485B4813E0000F5B485B4890B8FC5ABAFCA56C18C06C18803B5779D64A>I<9138 ! 01FFF8023FEBFF8049B612F0010715FC011F15FF017F8290B87E48838448DA000F7F4801F00101 ! 7F02C06D6C7E91C8121F48486F7E6D8183198083A26C5A6C5A6C5AEA006090C95A1900A25FA24D ! 5A171F60173FEFFFF804035B160F0303B55A0207B65A4A5D4A92C7FC17FC838318C06E816E8191 ! C7000F7F04017F706C7EEF1FFF050713807113C0837113E0A2F07FF0A2183F19F8181FA3120FEA ! 3FC0487EA2487E183F19F0187FA249EEFFE0127F6D4B13C06D5D6C6C4B138001FF151F6C01C002 ! 7F130002F049485A6C9026FF800F5B6C91B65A6C5F6C5F6C6C5E011F93C7FC010715FC010115F0 ! D9001F1480020101F8C8FC3D587AD64A>II<1818187E4DB4FC4D1380170F ! 5F177F94B5FC040314004C5B041F13F84C5B93B512C04B5C030749C7FC031F5B4B13F092B55A4A ! 1480020791C8FC4A13FC023F5B4A13E049B512804991C9FC010F13FC013F5B4913E048B55A4891 ! CAFC000F5B4813F8007F5B14C0B5CBFC5BA27F6C13C014F0001F7F6C13FE00037F6C14C06C6C7F ! 6D13F8010F7F010313FF6D806D6C13E06E13F8020F7F6E13FF0201806E14E0033F7F6F13FC0307 ! 7F03016D7E6F80043F13F0707F040713FE707F0400148083171F831703711300EF007E18183948 ! 78CE4A>60 D<120C123FEA7FC0487E13F87F13FF806C13E06C7F000F13FC6C7F00016D7E6C8001 ! 3F13F06D13FC01077F6D6D7E0100806E13F0021F7F6E13FE02037F020014C06F7F031F13F86F13 ! FE03037F6F14C06F6C7F7013F8040F7F7013FF1601706C138083A25F4CB5120016074C13FC043F ! 5B4C13E04BB55A4B91C7FC030F5B4B13F8037F13E092B55A020391C8FC020F5B4A13F8027F5B91 ! B512C001035C4949C9FC011F5B4913F090B512C0485C000749CAFC485B003F13F0485BB5128091 ! CBFC13FC5B13E06C5A6CCCFC120C394878CE4A>62 D<91383FFFE00103B512FE011FECFFE0017F ! 15F848B712FE48824817C04817E04817F0489038F0007F91C7000313F8D87FFC020013FC49153F ! 01E0151F00FFEE0FFE6D1507A56C48150F6C48ED1FFC6C48153FCA12FF040313F84C13F0161F4C ! 13E093B512C04B14004B5B4B13F84B13E04B5B4B90C7FC4B5A4B5A5E4A5B4A5B5EA24A5B93C8FC ! 5C5DAC5DA26E5A91CAFCADEC01E0EC07F84A7E4A7EA24A7EA46E5AA26E5A6E5AEC01E0375777D6 ! 4A>I<4BB47E031F13F092B512FC020314FF020F814A15E0027F8191B77E5B4902007F4901F0EB ! 1FFE4901C0130F4990C7EA03FF494880D97FF816804A804948903907F87FC04849EB3FFF4A4913 ! BF484948B612E0495B00075C495B48484915F0A2484890383FFC0F92387FF003494A7E003F4A48 ! 7E4C137F494816F8007F92C7123FA2494848141FA24B140F12FF140713004B1407AA6F140F1380 ! 020316F0127F6F141FA26D6C6CEC3FE0A2003F6F137F6D6C16C07013FF001F6E6C4813806D6E5A ! 92263FFC0F13006C6C6DB55AA26C6C6D5C6D6D5C00036E5C6D6D5C6C6D6C6C13806E6D90C7FC6C ! 6DEB07F86D6C90C7EA0FE06EED1FF0D93FFEED3FF86D6C157F6D01C0EB01FF6D01F013076D01FF ! 017F13F06D91B612E06D17C06E1680021FEDFE006E5D020315F002001580031F01FCC7FC030113 ! C03D587AD64A>II<003FB712 ! E04816FCEFFF80B97E18F0846C83846C8326003FF0C7003F1380050F13C017037113E083F07FF0 ! A2183FA219F8181FA7F03FF0A2187F19E018FF4D13C05F4D13804D1300EF3FFE933803FFFC91B7 ! 5A6018C095C7FC18C018F018FC848402F0C7000F1380050313C0050013E0F07FF0F03FF8181F19 ! FC180F19FE1807A3F003FFA86019FE180FA2181FF03FFC187FF0FFF85F050713F0053F13E0003F ! B9FC4818C01980BA120018FC606C17E018806C04FCC7FC40567DD54A>II<003FB7FC4816F0B812FC17FF848418F06C836C8328007FE0 ! 00077F1600EF3FFF717F717F1703717FA2717F727E183FA2727EA2727EA2180785A284A21A8084 ! A57213C0AF601A80A4601A00A260A261180FA24E5A183F61187F4E5AA24D5B5F4D5B051F5B5F94 ! B5C7FC04075B003FB85A485FB95A60188095C8FC17FC6C16F06C93C9FC42567ED54A>I<003FB9 ! 12FC4884BBFCA57E7E26003FF0C81203AB725A725A96C7FCA717FC4C7E4C7EA691B7FCA99138F0 ! 0003A6705A705A94C9FCA8F11F80F13FC0F17FE0AD003FBAFC5ABBFCA56C19C06C198043567DD5 ! 4A>I71 D<003FB67E4881B7FC82A35E7E6C5D26001FF8 ! CAFCB3B3B119FCF001FEF003FFAD003FBAFC5ABBFCA56C18FE6C18FC40567CD54A>76 ! D<263FFF8092383FFF804801E092B512C0B56C4A14E0A36E5CA26C19C06C6D4A14800001F0F000 ! 01FE16EF6E140FA3027FEC1FCFA36F133F023F158FA26F137FA2021F150F6F13FFA2020F14FEA2 ! EDF001A2020714FCEDF803A2020314F8EDFC07A2020114F0A2EDFE0F020014E0A2EDFF1FA2037F ! 13C0A216BF033F1380A216FF6F1300A36F5AA36F5A6F5A6F5A92C8FCB3A2263FFFF04AB5128048 ! 6D4A14C0B56C4A14E0A56C496E14C06C496E148043567DD54A>I<263FFFE091387FFFFE4801F8 ! 91B6FCB56C491580A280A36C6D6D15006C705BC66C030090C7FCECBF80A2EC9FC0A381148FA281 ! 1487A2811483A281148181A2148081A28182A2153F82A2151F82A2150F82A26F7EA2150382A215 ! 0182A2150082A28283A2163F83A2161F83160FA2831607A2831603A2831601A3707EA2177F003F ! B5FC4880B66C7FA383A26C4A6D5A6C91C7EA03FC41567CD54A>I<003FB712E04816FEB97E18E0 ! 18F884846C836C188026003FF0C714C0051F13E0050713F017017113F8187FF03FFC181FF00FFE ! A21807A219FF84A86019FEA2180FA2F01FFC183FF07FF818FF4D13F01707051F13E094B512C091 ! B81280190060606018E018804DC7FC17E002F0CAFCB3A7003FB512F04880B67EA56C5C6C5C4056 ! 7DD54A>80 D<003FB612F04815FFB812E017F88317FF846C836C8328007FE0003F7F04077F1601 ! 706C7E173F717E170F717EA2838583A75F96C7FC5FA24D5A171F4D5A177F4C485A1607043F5B91 ! B75A606095C8FC17FCA28383849126E0003F7F1607707F1600717EA2173F84171FADF103F0F107 ! F8F10FFCA4EF0FFCA29538FE1FF8003FB500C014FF486E6D13FFB66C16F0831AE0837114C06C4A ! 6E13806C4A91381FFE00CBEA03F846577DD54A>82 DI< ! 003FB912FE4884BB1280A7903BC0000FFC0001AB6C487013006CC7167EC893C7FCB3B3B3027FB6 ! 7E91B77E4982A56D5E6E5D41567CD54A>I<263FFFF092387FFFE0486D92B512F0B56C4A14F8A5 ! 6C496E14F06C496F13E0D807F8CA1300A46D5E000360A76C6C4C5AA86C6C4C5AA5ED01FCED07FF ! 6D4901805B0280150FA24B13C0A5013F90263FDFE05B02C0151FA2168FA2037F13F0A3011F5F02 ! E00107133F03FF13F8A4EDFE03D90FE102FC5BA3EDFC0102F1157FA202F314FEA20107D9F80091 ! C7FCA54B137EA2D903F7EC7F7EA202FF15FE4B133FA44B131F6D5EA36D496D5A027EC7EA03F045 ! 577ED54A>87 D<003FB612F04815F8B712FCA516F816F001C0C8FCB3B3B3B3B3A290B612F016F8 ! 16FCA56C15F86C15F0266E62E14A>91 D<121EEA7F80A2487EA27FA26C7EA26C7EA26C7EA2120F ! 7FA26C7EA26C7FA26C7FA26C7FA26D7EA26D7EA26D7EA2130F80A26D7EA26D7FA26D7FA26D7FA2 ! 6E7EA26E7EA26E7EA2140F81A26E7EA26E7FA26E7FA26E7FA26F7EA26F7EA2151F82A26F7EA26F ! 7EA26F7FA26F7FA26F7FA2707EA2707EA2161F83A2707EA2707EA2707FA2707FA2707FA2717EA2 ! 717EA2171F84A2717EA2717EA2711380A283A271130084183C396E78E14A>I<003FB612F04815 ! F8B712FCA57E7EC8120FB3B3B3B3B3A2003FB6FC5AB7FCA56C15F86C15F0266E7BE14A>II<001FB812FC007F17FFA2BA1280A46C1800A2001F17FC390A787C4A> ! I<14F0EB03F8EB07FC130FEB1FFE133FEB7FFCEBFFF84813F04813E04813801400485A485A5BA2 ! 485AA2485AA25BA212FF5BA713FC7F7F6C138014C0A37EA27E6C13806C13006C5AC65A172C66DF ! 4A>I<903801FFFE011FEBFFE0017F14F890B612FE486F7E48824882834882DA80037F91C76C7E ! 707E160F6C486E7F826C486E7FEA00F090C9FC84177FA593B5FC157F020FB6FC147F0103B7FC13 ! 0F133F90B8FC48EDFC7F48ECF0004849C7FC4813F04813C04890C8FCEA7FFC5B5B485A5BA66D15 ! FF6C6C5CA26D1407D83FFE141F6D027F13F86CD9E007B612FE6C90B9FC6C19807E6C16DF6C160F ! 6DECFC07011FDAF00314000107913980003FFE9026007FF8CAFC414078BE4A>I<383FFFF0487F ! B57EA57E7EEA000FAFEE1FF893B5FC030714E0031F14F8037F8092B67E02FD8191B87E85DCE01F ! 7FDC00077F03FC01017F4B6D6C7E03E0143F4B6E7E180F4B8192C87E7213805C844A17C084A31A ! E0197FAB19FF1AC08060A26E1780604E1300816F5C4E5A6F143F6F4A5A6F4A5A6F130303FF495B ! DCC03F5B93B65A6102FD93C7FC02FC5D6F14F8031F5C6D486C14C0902603F00149C8FC90C8EA3F ! F043577FD54A>I<92387FFFC00203B512FC021F14FF027F158049B712C04916E0010F16F05B49 ! 16F849EBC0004948C7127F4813F8485B02C0EC3FF0485B4890C8EA1FE0EF0780484892C7FC5B5B ! 123F5BA2127F5BA212FF5BAA7F127FA37F123F7FEF01F86C6CED03FC6DED07FE6C7E170F6C13C0 ! 6EEC1FFC6C6D143F6C01FCEC7FF86C01FFEB01FF6DD9F00F13F06D90B612E06D16C06D16806D16 ! 0001015D6D6C5C021F14F0020714809126007FF8C7FC374076BE4A>I<93381FFFF84C7F4C7FA5 ! 8282EE0007AF913801FF80020F13F8027F13FE49B612874915C7010F15F74915FF5B5B90B5EA80 ! 7F489038FC000F4849130302E07F48497F4849147F91C8123F485A49151F170F485A5B007F1607 ! A25BA212FF5BAB7F127F170FA27F003F161F7F173F6C7E6D157F000F16FF6D5C6C7F6E13076C01 ! F05B6C01FC133F6C01FF90B712806D90B812C06D03F714E06D15E76D15C76D15870101ECFE076D ! 4A6C14C0021FD9E0011480020390CAFC43577BD54A>II<933803FF80043F13F093B512FC0303804B80151F4B15805D92B7 ! FCEEFC074A13F04AD9C00313004C6C5A715A4A90C712304B91C7FCAB003FB812F04883B97EA56C ! 5F6C5FC7D807FEC9FCB3B3A7001FB87E48834883A56C5F6C5F39577BD64A>I<4AB46CEB1FF802 ! 0F01F090B5FC023FD9FC07148091B6001F14C0010392B6FC4918E05B5B5B4901819138F07FC091 ! 26FC003F130049486DEC3F8002E00107EC040048496D6DC7FCA248496D7FA291C8FC488349157F ! A86D15FF6C5F6E5BA26C6D495BA26C6D4990C8FC02F8131F6D6C495A9138FF81FF92B55A5F90B7 ! 5A5F485E94C9FCD9FE3F13FC020F13F00201138091CCFCA37F7E8014E46DB612E017FF6D16F049 ! 16FC90B9FC48844818E04884480180C7003F7F4848C8120101F89238003FFC4848EE0FFE491607 ! 4848707E84498200FF198090CB127FA66D17FF007F19006D5E6D5E6C6C4C5A01FC161F6CB4EE7F ! FC6C01C04A485A02F8140F6C9026FFC001B55A6C91B75AC618806D94C7FC6D5E010F16F8010316 ! E0D9007F92C8FC020F14F8DA007F90C9FC435F7CBD4A>I<383FFFF0487FB57EA57E7EEA000FAF ! EE1FFC93B57E030714E0031F804B804B8002FDB67E91B8FC85EEE01FEE80034B486C7F15F84B7F ! 4B815D4B147FA292C8FCA25CA35CB3AC003FB6017FB512F8486FB612FCB700C115FEA56C038015 ! FC6C4B6C14F847567FD54A>I<15F0EC03FC4A7E4A7EA24A7FA46E90C8FCA26E5A6E5AEC00F092 ! C9FCAC001FB512FE4880825AA37EA27EC71201B3B3A7003FB812E04817F018F8B9FCA37E18F06C ! 17E0355775D64A>I<160FEE3FC0EE7FE0EEFFF0A24B13F8A46F13F0A2EE7FE0EE3FC0EE0F0093 ! C7FCAC0107B612E04915F04915F8A57F7F90C8121FB3B3B3A9163F17F0A2167F000F16E0D83FC0 ! 14FF487E4B13C0486C5B4B1380031F13006D137F90B65A6C5D5E5E6C5D6C1580000792C7FC0001 ! 14F8D8001F13C02D7779D64A>I<383FFFE0487F80B5FCA37EA27EEA0007B0043FB6FC4C1580A2 ! 93B712C0A3701580A27015009326001FFCC7FC4D5A4D5A4C485A4C5B4C5B4C90C8FC4C5A4C5A4C ! 5AEEFFE04B5B4B5B4B90C9FC4B5A4B5A153F4B7E92B5FC02F98014FB91B67E4B6C7E4B6C7E15F8 ! 4B6C7E4B6C7E4B6C7E15804B6C7E4A6D7F4A6D7F5C717E717E717EA2717E717E717EA2717F717F ! 003FB6013FEBFFE0486F4814F0A2B76CB612F8A36C4B6C14F0A26C4B6C14E045567ED54A>I<00 ! 3FB6FC4881B77EA57E7EC8FCB3B3B3AE003FB9FC481880BA12C0A56C18806C18003A5678D54A> ! I<037FEC1FC0283FFC03FFE0EBFFF8267FFE0FD9F0037FB5003FD9F80F7F4A6D487F91B56C4880 ! 70488094B6FC7E6C02819138E07FE0C649C6EC803F4A15004A6D48131F4A4A804A6D48130FA24A ! 5CA24A5CA491C75BB3AD003FD9FC07B548B512C0486D48028314E0B603C314F04B14C7A36F14C3 ! 6C01FE038314E06C496C020114C04C3E81BD4A>IIIII ! III<263FFFF049B57E486D4980B56C4980A5 ! 6C816C81D8000F91C7127FB3B118FFA25F5FA26E140F6D6C5C6F137FDBF003B612F86D90B812FC ! 1AFE7F7F6E816E14FC020FDAF03F13FC0203DA801F13F89126007FFCC9FC473E7FBC4A>I<003F ! B500C0017FB51280486E90B612C06F5AB617E0A36C19C04B7E6C4A6D148026003FE0C8EB800001 ! 1F94C7FC6E5CA2010F5E6E1403A201075E6E1407A201035E6E140FA201015E6E141FA26D5E6F13 ! 3FA2027F5D6F137FA2023F5D6F13FFA2021F92C8FC6F5AA2020F5CEDF803A202075CEDFC07A202 ! 035CEDFE0FA202015CEDFF1FA26E5C16BFA2037F5B16FFA26F5BA36F90C9FC6F5A6F5A433D7DBC ! 4A>I<003FB500C0011FB512E0486E4914F06F5BB617F8A36C19F04B7F6C4A6D14E0C690C93807 ! F800A580017F4C5AA56E151F013F5FA316FCED03FF6E48EB803F011F5FA24B13C0A36D6C485DEF ! E07F16DF16CF033F13F0A2010794C7FCDAF87F5C83168F168715FF01035E6E14FC160317FD14FD ! A20101D9FE015B02FF14FFA24B7EA26D5EA24B137FA26E486D5ADA3FC0EB0FE0453D7EBC4A>I< ! 001FB5D8E007B512F8486E4880484B8015F8A315F06C6F5C6C4A6C5C260007FCC7D83FE0C7FC6E ! 4A5A6D6C14FF6D6D485B6D93C8FC6E6C485AEDE007DA3FF05B021F495A6E6C485AEDFC3F02075C ! 6E6C485A6EB55A8094C9FC6F5A6F5A151F5E6F5A4B7E82153F4B7E92B5FC83913801FE7F4A486C ! 7E02076D7E03F87F4A486C7E021F1307DA3FE07F4B6C7E027F6D7E4A487E4990C77F717E49486E ! 7E494881010F151F4A6E7E003FB5D8C001B512FE486E4880B649158015F0A315E06C6F15006C4A ! 6C5C413D7CBC4A>I<003FB500C090B6FC486E481580B65B03F016C0A303E016806C816C4A6C15 ! 0026003FE0C7000190C7FC60131F6E1403010F5EA26E140701075E80170F01035E800101151F6E ! 5DA26D153F6F5C147F177F6F5C143F6F13FF021F92C8FCA26F5A020F5CA2EDF80302075CA29138 ! 03FC075F15FE14014C5AEC00FFA24C5AED7F9FA25FED3FBF16FF6F5BA36F90C9FCA2815EA21503 ! 5E1507A25E150FA25E151FA25E153FA25E157F486C5CD80FF013FF487E4A90CAFC486C5A5D1407 ! EC1FFCEC7FF890B5FC6C5C5D6C5C6C5C92CBFC000113FC6C5BEB1FC0425D7CBC4A>I<000FB912 ! E04818F04818F8A619F001F0C8000713E04D13C04D13804D13004D5A4D5A4C5B6C484A5B6C484A ! 5BC9485B4C5B4C90C7FC4C5A4C5A4B5B4B13E04B5B4B5B4B90C8FC4B5A4B5A4B5A4A5B4A5B4A5B ! 4A5B4A90C9FC4A5AECFFFC495B495B495B4949EC07E04949EC0FF04990C8EA1FF8495A495A485B ! 485B485B485B485B4890C9FC4890B8FCBAFCA66C18F06C18E03D3D7BBC4A>II<121EEA7F80A2EAFFC0B3B3B3B3B3AEEA7F80A2EA1E000A6E60E14A>II E /Fg 42 123 df[<96263FFFFC93387FFF80063FB600C0021FB512F8 ! 0507B700F891B612FE053F04FF01076F7E4CB9D8C03F82040F72B812F0043F06F98393B626F800 ! 1F90B6D8F8037F030392C70001DCC0077F4B02F86E6C4AC65A031F02C092B648497F4B91C84803 ! F016804B494B4B5B92B500F84B5D4A4A4B4B4914C04A5C4A4A4B92C7FC4A5C94C95D5C4A4961A2 ! 4A49761480A2754A6E140091B5775B4C70715B7B5B75715B759438007FC07595C8FCB3A4C212FC ! AAC702FCCA02FCCBFCB3B3B3B0003FB800F0013FB9FCA99126E0001F9438E00007>146 ! 142 123 269 136 11 D[159 141 120 268 176 65 D[144 139 120 266 166 I[<0803B500C0EE01F00703B600FEEE03F8 ! 077FDBFFE015070607B800FC150F063FDDFF80143F4DBA00E0147F050F07F814FF053F07FE5B94 ! BC6C5A0407755A4C9326F8000FECF00F043F4BC86C6D5A93B700E0030FEBFE7F03034BC9000190 ! B6FC4B03F8707E4B03C0171F033F92CB12074B02FC8492B648844A03E0727E02074B854A92CD7E ! 4A4A864A4A864A4A864D8691B64886494B875B494B8794CF7E495C498B5E498B495C8D90B65A8D ! 5A5E488CA2485D227FA2485DA2223F5AA293D1FC5AFA1FF09FC7FCA25AA35DA3B6FCB37EA381A3 ! 7EA46CF90FF070F51FF8A27EA2827EA36C6F1D3F23F07E826C217F23E06D8022FF6D6E1EC06D67 ! 826D6E5213807F715113006D816D555A6D6F1B1F6E6E515A71515A6E6E1BFF6E6E505B6E6E505B ! 6E03C04F5B02016F4F5B6E03F8073F90C7FC6F6E4F5A6F02FF4E485A030F03C005075B6F03F805 ! 1F5B6F03FF057F5B030004E00303B51280043F03FE033F91C8FC040FDBFFF80107B55A7093B812 ! F804001BE0053F1A80050F4FC9FC050119F8DD003F18E0060795CAFCDE007F16F8070393CBFCDF ! 000314C0>141 143 115 268 168 I[157 139 120 266 179 I[138 138 120 265 153 I[127 138 120 265 ! 146 I[<0803B500C0EE01F00703B600FE4C7E077FDBFFE015070607B800FC150F063FDDFF8014 ! 3F4DBA00E0147F050F07F814FF053F07FE5B94BC6C5A0407755A4C9326F8000FECF00F043F4BC8 ! 6C6D5A93B700E0030FEBFE7F03034BC9000190B6FC4B03F8707E4B03C0171F033F92CB12074B02 ! FC8492B648844A03E0727E02074B854A92CD7E4A4A864A4A864A4A864D8691B64886494B875B49 ! 4B8794CF7E495C498B5E498B495C8D90B65A8D5A5E488CA2485D227FA2485DA2223F5AA293D1FC ! 5A7C5A9FC9FCA25AA35DA3B6FCB37EA36F061FB692387FFFF89DB8FCA27EA46C81A36C98C903F8 ! C7FCA2827EA36C81A27E827E827FA26D806D80A26D807F836D816D816D8180836E806E14FF6E6F ! 606E81020103F0606E816F02FE606F6E6C5F030F03E05F6F03F8177F6F03FF4CB7FC030004F003 ! 0713FD043F03FF033F13F8040F04FC0107B5487E7093B8EAE01F0400517E053FF20003050F4F13 ! 00050107F8143FDD003F06E0140F060795C81203DE007F04F8ED00F00703048093C8FCDF000302 ! E0CDFC>157 143 115 268 183 I[165 139 120 266 182 I[75 139 122 266 88 I[163 ! 139 120 266 182 75 D[121 139 120 266 140 I[204 139 120 ! 266 221 I[<97B512F0077FECFFE0060FB8FC067F17E00507B912FE051F727E94BB12F004031A ! FC040FDBF00015FF043F4AC7000715C093B600F0020015F04B0380031F8003074AC9000714FE4B ! 02F8040180033F4A7015C04B02C0053F8092B64871804A92CB6C80020702FC060314FE4A4A7280 ! 4A4A72814A4A7380A24A4A738091B64873804992CD6C80498C494A7480A2494A7480494A7481A2 ! 498D4C86498D4C8790B68B4C87488EA2488E4C87488EA293CF7E488EA3482380A24B884823C0A5 ! 4823E0A24B88A5B621F0B36C23E0A46F64A26C23C0A56C23806F64A26C2300A36C6F515CA36C6A ! 70636C6AA26C6F515CA26D697098B6FC6DDE07FE617092267FFFC05C6D4DB500F8606D6E02076E ! 4A92C7FC4F14FF6D6E4A6F495C6D4D6F5E6D6E91267FFC036D495C719028FFE0007FF05B6D6F02 ! 80D91FF8495C6E4B90C76C6C5E6E02E0496E6C495C6E6E48486E6C90B65A6E02F8704992C8FC6E ! 02FC4904835C6E02FE7001C75C6EDAFF8394B65A6E6C02C37015E06F02E3626FDAFBFC6F5D0307 ! 02FF4FC9FC6F6F6003006F4B14F0043F03C00107B612C0040F03F0017F92CAFC040392B812FC04 ! 001AF0053F07C01640050773ED01F0050073ED03F8060F84DE007F15E70700DAF0037F97C86E15 ! 078B0EC0140F7A143F7702F814FF0EFE131F9DB7FCA112F089A47817E0A38AA112C0A2781780A3 ! 781700A2785E6B8A785E6B8A795D795D795D794AC7FC795C0D0114F0796C13C0E60FFEC8FC> ! 149 180 115 268 175 81 D[165 141 120 266 175 I[<93260FFFF8163E4BB600E0157F031F ! 03FE5D037FDBFFC05B4AB800F05B020F05FE5B4A716C5A027F725A91BAEAF03F01039126FE000F ! 6E5A4902C0D9003F01FEB5FC4991C8000790B6FC4901FC15004901F0163F4949160F90B5481603 ! 4B824891CB7E4849848748498487484984A2488687485B88A24887A288A288B57EA38880A2806E ! 85A2818115F06F725A6C6E95C8FC15FF16E016FC6CEDFFE017FEEFFFF06CEFFF8019F8F1FFC06C ! 19FCF2FF806C1AE06C1AF81BFE6C747E6C1BE0886D866D1AFE6D866D876D876D876D876D7E6E86 ! 020F866E8614016E6C85151F03031A80DB003F19C01601EE001F050018E01807DE007F16F01903 ! F1003F080F15F81A031A008787090F14FCA287D83F8085486C8512FF87A288A46D86A21EF8A27F ! A36D1CF0A27F5213E07FA26D1CC06E96B5FC6E1B806E606E1B006E6002FE4E5B6E6203C05F03F0 ! 4D5B03FC057F5BDBFF8093B55A04F803035CDCFF80021F5C6E02FF49B6C7FC496C92B75AD9FC0F ! 61D9F80319F049C66149013F18804901074DC8FC49010017F890C8001F16C04803004BC9FC007C ! 04011480>102 143 115 268 129 I[<000FC312F8A6488EA404E0C7003F4AC7120303FCC8F000 ! 1F03E01C0392C9F1007F4A8A02F81E0F4A8A4A8A4849787F4A8A91CA1B7FA249203FA249201FA3 ! 49200FA3492007007F8EA4498CA848487A1380A6CC98C8FCB3B3B3B3A6031FBD12FCA90780C8FC ! >145 137 120 264 162 I[230 140 123 266 241 87 D<93387FFFFE031FB612F84AB8FC020F17E0023F17F84A17 ! FF49BA7E499126F0003F14E04901FCC700078049040114FC496D6E6C7F6F6F7F497180706E8073 ! 804980738088858885A2886D5C866D91C9806D5B6D5B6D5B6D5B9038007FC091CBFCA796B7FC05 ! 07B8FC0403B9FC167F0303BAFC153F4ABBFC0207EE007F023F15C091B600FCC7FC010315E04992 ! C8FC011F14FC4914F04914C090B65A484AC9FC485C485C485CA2485C485CA25A5DA2B6FC92CAFC ! A497B6FCA361816C60A26C6E5D6FED0FEF6C061F816FDB3FCF14E06C6EDB7F8F14FC6C02FE9126 ! 01FF0F91B512806C6E02077F6C03C0D91FFE17C06C923AFC01FFF803013F91B612F0010F4D7E01 ! 03943880007F01004CC77E021F03F802071580020103E0EC007FDA000349CDFC6A5D7ADB71>97 ! D[113 142 121 268 129 I<94387FFFF8041FB612E093B712FE0307EEFFC003 ! 3F17F092B97E020318FE4A84021F9126F8001F14804A02C0010014C091B548C74814E0494A5C49 ! 02F017F0494A5C495C494A4A14F84991C8FCA2495B90B55A5AA2485C7314F0485C7314E0487214 ! C0731480484A701300745AF20FF84896C8FCA3485CA5B6FCB07EA281A37EA36C80A36CF201FE6F ! EF03FF7EA26C6E5F6C1BFE6F170F6C1BFC6F171F6D6EEE3FF87F6D6EEE7FF06D6EEEFFE06D6E15 ! 036D02FC4B13C06D6E031F13806D6E6C027F13006E02F049485A021F02FF013F5B6E92B612F002 ! 036002001880033F4CC7FC030716F8030016C0041F4AC8FCDC007F13C0585D78DB67>I[113 ! 142 120 268 129 I<94383FFFE0040FB6FC93B712F0030716FE033F707E92B912E0020318F802 ! 0FDAFC01804A9126C0001F13FF027F91C700078091B500FC020180494A6E804902E06F7F494A6F ! 7F494A6F7F4991C97E49727F4949844B8290B51A8048854B19C04885484A19E0A248861DF0485C ! A27513F85AA3485CA21DFCA287B6FCA392BBFCA51DF8A203C0CDFCA67EA381A27EA37EA2817EF4 ! 07F86C80F40FFC7E6C6E181FA26C6EF03FF86D1A7F6F19F06D6E17FF6D6E4C13E06D6E4C13C06D ! 6E040F13806D6E5E6D02FE047F13006D6E6C4A485A6E02E002075B021F02F8023F5B6E9126FFC0 ! 07B512E0020392B75A020096C7FC033F5F030F17F8030117C0DB003F4BC8FC040315E0DC000F01 ! FCC9FC5E5D7ADB6B>I[81 142 121 269 71 I<52B47E93260FFFFC031F13F04BB600 ! E0027F7F031F03FE0103B57E92B8D8C00F800203DDF01F80020FDDFC7F1580023F94B6123F4ADA ! 003FDBF07F13C091B500F801071580010302E00101ECFE004902806D6C01F890B5FC4991C86C6D ! 7F49496F7FA249496F6D158049747E4B6F6F130090B5736C5AF507F8489838E000E04B6F93C7FC ! 4887A34887AB6C63A36C636F5D6C63A26D626F5D6D97C9FC6D6D4B5BA26D6D4B5B6D6E4A5B6D02 ! E049B55A010002F8010714C04902FF013F5C4992B7CAFC4918FC02F317F0D90FF017C0DAE01F4B ! CBFC011F010115E0DB000F01FCCCFC013F91CFFCA3137FA480A28080A214FF8115F092B812F06D ! F0FFE01BFEF3FFC06D1AF81CFE6D747E1DE06D87896D876D876D876E8791BD7E010788131F017F ! 8890BEFC000302E0C9003F814891CB7E4801FC18074A0601804849727E4849191F4A85488988B5 ! 5A88A66E616C65A26E616C656E616C6D4F5B6C6D4F5B6E96B5FC6C6D4E5C6C02C005075C6C02F0 ! 051F91C7FC6C6C01FC057F13FC6DD9FF800303B55A010F02F0031F14E06DDAFFC00107B65A0101 ! 92B9C8FC6D6C19FC020F19E0020196C9FCDA003F17F8030194CAFCDB000192CBFC6A857ADB74> ! I[114 141 119 268 129 I[49 ! 142 119 269 65 I[111 141 121 ! 268 123 107 D[50 141 119 268 65 III<94381FFFF00407B612C0047F15FC0303B87E ! 031F17F0037F17FC4ABAFC02079126FC007F14C04A02C0010780023F49C814F84A01F8033F7F91 ! B5486F7F494A6F7F4902800303804991C96C804987494970804949717F498790B548717FA2484A ! 717FA2481D80484A7114C0A2481DE0A3481DF0A24B83481DF8A3481DFCA5B61BFEAF6C1DFCA56C ! 1DF86F5FA26C1DF0A36C1DE06F5F6C1DC0A26C1D806F5F6C1D006C6E4D5BA26D6D94B55A6D6D4C ! 5C6D6E4B5C6D6E4B5C6D6E4B5C6D6E4B5C6D02FC037F91C7FC6D6E92B55A023FD9FFC0010714F8 ! 6E02FC017F5C020791B812C0020196C8FC6E6C17FC031F17F0030717C0DB007F03FCC9FC040715 ! C0DC001F01F0CAFC675D7ADB74>II114 ! D<92261FFFF8EB01F00207B638C007F8023FEDF81F91B7EAFE7F010393B5FC130F013F9038F800 ! 1F4990C71201D9FFF8EC003F4801E081484915074849814890C97E4982121F197F485A193F127F ! A2191F12FF7FA27F80806E705A02F893C8FC14FF15E06C14FEEDFFF8EEFFE06C16FF18F018FC6C ! EFFF806C18E0856C18FC6C846C727E6C856D84011F846D841303010084023F83140F020183DA00 ! 1F1780ED007F1601DC000F15C01700181F060714E0D83F801601486C8200FF84856D83A285A26D ! 83A26D19C0A37F6D1980617F6E1800616E5F6E163F6E4C5A02FC4C5A6E4B5B6E6C02075B03F002 ! 3F5B03FF0107B55A93B7C7FCD9FC7F16FCD9F03F16F0D9E00F16C0D9800193C8FC90C7003F14F8 ! 007C020349C9FC4B5D78DB5C>I[73 130 124 256 ! 91 IIIIII<0003BC12F0 ! 1CF81CFCA41CF80480C7123F03F0C84814F04802C092B612E092C915C002FC5D4A4B15804A4B15 ! 004A60604A4B5C4A4B5C4E5CA291C9B65A4D5D4D5D5B4D92C7FC4D5C000F4C5CA24D5C494B5C94 ! B65A625E4C5D4C92C8FCC95D5E4C5C4C5C4C5CA293B65A4B5D4B5DA24B92C9FC4B5C4B5CA24B4A ! EC0FFC4B5C92B65A605C4A4BEC1FF84A92C8FC5F5C4A5C4A5C4A5C1B3F91B65A495D494B16F01B ! 7F4992C9FC495C494A16FFA2494A5D495C90B6485D62484B5D484B4B13E04892C95A4B5E484EB5 ! FC484A1507484A153F4B0207B6FC4891BAFCBDFCA21CC0A37E7E565A7AD967>I ! E /Fh 61 124 df11 DI34 D39 DI<126012F012787E7E121F6C7E6C7E6C7E6C7E6C7E7F137E ! 7FA26D7E6D7EA26D7E801303806D7EA26D7EA2147FA26E7EA36E7EA281140FA281A2140781A36E ! 7EA4811401A481A280A61680B3A41600A65CA25DA414035DA44A5AA35D140FA25DA2141F5DA24A ! 5AA34AC7FCA214FEA2495AA2495A5C13075C495AA2495A49C8FCA2137E5B5B485A485A485A485A ! 48C9FC121E5A5A5A1260218C78E837>I44 DII<157815F814011403140F143F14FF ! 130790B5FCB6FC143F13F81300C7FCB3B3B3B34A7E4A7E0107EBFFC0B812FEA42F5D74DC46>49 ! DI<913803FFC0023F ! 13FC49B67E902607FE0113E0903A0FE0007FF0D93F80EB1FFC017EC76C7E496E7ED801F06E7F49 ! 8200036F7FEA07FC6D826D80486D8180A66C5BA26C90C8FCD800FC5E90C85AA260A24C5BA2604C ! 90C7FCA24C5A5F4C5A4C5AEE7FC04C5ADB03FEC8FCEDFFFC027F13E016FCEEFF80DA000113E06F ! 6C7EEE1FFC707E707E707F707F707F84717EA284717EA38483A21980A3EA0FE0487E487E487E48 ! 7EA31900A25F5B606C5A494B5A13C0003EC95B4D5A7E6C6C4A5B6C6C4A5BD803F05ED801FC4A90 ! C7FC6CB4EC1FFED97FC0495A903A1FFE01FFF06DB612C0010392C8FCD9007F13FC020713C0395F ! 7ADC46>I<171E173E177EA217FE1601A216031607A2160F161FA2163FA2167F16F7A2ED01E7ED ! 03C7A2ED0787ED0F07A2151E153CA2157815F0A2EC01E0140315C0EC0780140F1500141EA25C5C ! A25C495AA2495A495AA249C7FC131EA25B5BA25B12015B485AA2485A48C8FCA2121E5AA25A5ABA ! 12F8A4C9D80FFEC7FCB14C7EA293B512E00203B712F8A43D5E7CDD46>I<01C0ED01C0D801F015 ! 0701FE153FD9FFC0903801FF8002FE011F130091B65A5F5F5F5F5F5F4CC7FC16F801E714E001E0 ! 49C8FC91CAFCB3913801FFC0020F13F8027F13FF9026E1FF007FD9E3F8EB3FE0D9E7C0EB0FF001 ! EFC76C7E01FE6E7E4981496E7E496E13804916C06C48157F90C913E0A2EF3FF0A218F8A218FC17 ! 1FA318FEA5EA0FC0EA3FE0487E7F12FF7FA318FC5B173F4916F86C5A90C9FC007CEE7FF0A2003C ! 17E0003E16FF6C17C04C13806C7E6C6C4A13006D4A5A6C6C4A5A6C6C4A5AD800FEEC7FF0903A7F ! 8001FFC090261FF8075B6DB548C7FC010314F8010014E0DA0FFEC8FC375F79DC46>I<923801FF ! C0031F13F8037F13FE913901FF80FF913A07FC001F80DA1FF0EB07C0DA3FC06D7E4A486D7E4AC8 ! FC4948EC01784948EC0FF849484A7E4948143F011F157F495A495AA2495A5A715A4890C86C5A71 ! 5A4893C8FC5B120FA3485AA3123FA3485AED7FE0913803FFFE4A6D7E91391FC07FE091393E001F ! F000FF49EB07F802F06D7E4A6D7E01F96E7ED9FBC0814A6E7E01FF6F7E91C87F8449151F84A284 ! 5B717EA4491780A2127FA7123FA27FA3001F1800A3120F4D5A7F12076012036D4B5A6C5F806C4C ! 5A6D6C4A5A013F5E6D6C4990C7FC6E495A6D6C495AD903FEEB1FF86D6C6CB45A6D90B512C0023F ! 91C8FC020F13FC020113E0395F7ADC46>I<913801FFC0021F13F8027F13FF902601FF807F903A ! 03FE003FE0D90FF8EB0FF049486D7E49486D7E49486D7E4948804890C87F48167F49821207000F ! 707E5B001F83003F161F845B007F83A400FF83A2170FA284A71980A2127F5FA3123F7F5F121FA2 ! 000F5E6C7EA2000393B5FC6C6C15EF6C6D1301017FEC03CF6D6C148F6D6C13076D6CEB1F0FD907 ! FC013E1400903903FF01FC0100EBFFF0023F13E00203130091C8FC4D5AA460A34D5AA260A2D803 ! F84B5A487E486C5E486C15FF605E95C7FC4C5AA2494A5A494A5A6C484A5A01C05D00074B5A6DEC ! FF806C6C4990C8FCD801FCEB07FE3A00FFC03FF86DB55A011F14C0010749C9FC9038007FF0395F ! 7ADC46>57 DII65 D68 DIIIII76 ! DIII<001FBDFCA49126E0000301FCC7FC4848C76C49020F138001F86E49140301E01900491A ! 7F491A3F1C1F90C9FC003E1B0FA3003C1B07007C1CC0A300781B03A748F301E0A5CA94C7FCB3B3 ! B3A34C7F4C7F043FEBFFC0020FB9FCA45B5F7BDE66>84 DII<003FB7021FB612F0A4D8001F02F0020302FCC7FC010302C0020014C0010091C9D8 ! 3FFEC8FC4B705A027F18F0023F606E6C705A705E6E4DC9FC6E7F70153E6E5F6E7F705D6E4C5A6F ! 7E704A5A033F4B5A6F7E71495A6F4BCAFC836F6D133E6F5D836F6D5B6F4A5A17FC706C485A043F ! 495A05FF5B70130F70019FCBFC18DE7013FE705B60828284177F717E848385855F4D7F057B7F17 ! F9DC01F07F4D7F0403137F4C486C7E05807F040F7FDC1F0080041E6D7F043E7F4C8104786D7F04 ! F87F4B48814C7F03036F7E4B48814C143F030F6F7E4BC880031E81033E6F7F4B8303788103F86F ! 7F4A48834B810203717E4A48834B163F020F717E021F85023F83027F717F02FF85497F01074E7F ! 013F01F0043F13FC0003B500FC93B67EB76C020FEDFFC0A462607DDF69>88 ! D<010CEC0180011EEC03C049EC078049EC0F0049141E49141C0001153C48485C48485C90C85A48 ! 1401000E5D001E1403001C5D003C1407003892C7FCA200785C0070140EA300F0141E48141CA5D8 ! E3F8147FD8E7FCECFF80D8EFFE011D13C0B5011F13E0028014F0A26C80A36C80A26C496C13E06C ! 486D13C06C486D13806C48EC7F002C2A6CE146>92 D97 ! D<14F8EA07FFB5FCA41201EA007F133F131FB3A9EE7FF00303B5FC030F14C092393FC03FF09239 ! 7E000FFC03F8EB03FEDAFBF0EB00FFDAFFC06E7E4BEC3FE092C8121F4A82727E4A82727E5C727E ! 1A80A2841AC0A21AE0A284A21AF0AC1AE0A3601AC0A31A80601A00A24E5A6E5E180F6E4B5A616E ! 4B5ADAEF804A5ADAE7C04A5ADAC3E04990C7FCDAC1F8EB07FCDA80FCEB1FF8913A003F80FFE06F ! B51280011E010749C8FC90C813E044637CE14E>I ! II<913801FFC0020F13FC027F13FF ! 902601FF8113C0903A03FE003FE0D907F8EB0FF0D91FF06D7E49486D7E49486D7E4948804890C8 ! 1380A24848ED7FC012074916E0000F163F121F4916F0A2003F161FA2127F18F85BA312FFA290B8 ! FCA301F0CAFCA7127FA37F123FA3001F17787F120F18F86C6C16F0000316016D16E06C16036C6D ! EC07C06D6C15806D6C140F6D6CEC1F006D6C147E6D6C5CD901FFEB03F06D9038E03FE0023FB512 ! 80020749C7FC9138007FF035407CBE3E>II< ! F01FE0DA07FFECFFF0023FD9E00313F891B539F80FF0FC0103903A07FE1F81FE903B0FF800FFBE ! 01494890387FF803494890383FF0014948131F494890390FF800FC19784890C76C6C13004882A2 ! 48824980A2000F83A9000794C7FCA26D5C6C5EA26C5E6C6D495AA26D6C495A6D6C495A6E495A49 ! 6C495A902773FF07FEC8FC01F0EBFFF8023F13E02601E00790C9FC91CBFCA21203A47FA27F1201 ! 13FE6D7E6C90B67E17FC6DEDFF806D16E06D16F86D824982017F824848C81480D803FC030713C0 ! D807F0030113E04848ED007F4848EE1FF04848160F127F90CAEA07F8A200FE1703A66C17076C18 ! F06D160F003F18E06C6CEE1FC06D163F6C6CEE7F80D803FC923801FE006C6C4B5A2600FFC0EC1F ! F8D93FF0EC7FE0903B0FFF800FFF80010390B548C7FCD9003F14E0020101FCC8FC3F5C7CBE46> ! I<14F8EA07FFB5FCA41201EA007F133F131FB3A9EE1FFC93B57E030314E092390FF03FF092391F ! 800FF892393E0007FC03786D7E4B80DAF9E07FDAFBC0815D14FF92C8FC855CA25CA45CB3B2496C ! 4A7F90B5020713F8B70007B612F8A445627BE14E>I<131FEB7FC0497E487FA2487FA56C5BA26C ! 5B6D5A011FC7FC90C8FCB214F8EA03FF127FA41201EA003FA2131FB3B3AB497E90B5FCB612FEA4 ! 1F5F7CDE27>I<153EEDFF804A13C04A13E0A24A13F0A56E13E0A26E13C06E1380ED3E0092C7FC ! B2ED03F0EC1FFF0103B5FCA4EB00031400157F153FB3B3B3AAEA1FC0486C14E0486C137F487EA2 ! 16C015FF168016006C48485A13E06C48485A6C48485A390FF01FE06CB55A000191C7FC38001FF8 ! 247B86DE2B>I<14F8EA07FFB5FCA41201EA007F133F131FB3AA0407B6FCA4040014E07190C7FC ! EF3FFC18F06018804DC8FC177E5F4C5A4C5AEE07C04C5A4CC9FC167E5E4B5A4B5A1507150F4B7E ! 4B7E157F4B7E9138F9F7FFECFBE7DAFFC37F03817F15014A6C7F4A6D7E5C4A6D7E707EA2707E70 ! 7EA2707F707FA2707F717EA2717E717EA2717E848585496C82D9FFFE023F13F8B6D8FE01B612E0 ! A443627CE14A>I<14F8EA07FFB5FCA41201EA007F133F131FB3B3B3B3AB497E90B5FCB7FCA420 ! 627CE127>IIII<02F8EB7FF0D807FF ! 0103B5FCB5010F14C092393FC07FF092397E000FFC03F8EB03FEC6D9FBF06D7E90263FFFC06D7F ! 6D49EC7FE092C8123F4A82727E4A82727E5C727E1A8084A21AC0841AE0A47213F0AC1AE060A31A ! C060A21A80601A00A24E5A6E5E181F6E4B5A616E4B5A6F4A5A6F495BDAFBE04990C7FCDAF9F8EB ! 07FCDAF8FCEB1FF892393F80FFE06FB51280030749C8FC030013E093CAFCB3A2497E90B5FCB7FC ! A444597CBD4E>III<903A01FFE00380011FEBFC07017FEBFF0F3A01FF803FDF3A03F80007FFD8 ! 07E0130148487F4848147F48C8123FA248151F127E160F12FEA216077EA27FA213E06D91C7FCEA ! 7FFCEBFF806C13FCECFFE06C14FE6C6E7E6C15E06C816C816C6C80011F80010780D9007F148002 ! 0314C0EC001F030713E015010070EC007F00F0ED3FF0161F7E160FA216077EA37E17E07E160F6D ! 15C0A26DEC1F806DEC3F006D147E486C5CD8FC7EEB03F83AF83FC01FF0010FB512C0D8F00391C7 ! FC39E0007FF02C407BBE37>I<143CA6147CA514FCA31301A21303A21307130FA2131F133F13FF ! 1203000F90B61280B8FCA326000FFCC8FCB3AEEE01E0AD010714036E14C0A213036EEB07807F92 ! 38800F007F91387FC01E91383FF07C91380FFFF802035B9138007FC02B577DD537>I<02F8ED07 ! C0D807FFED3FFFB50207B5FCA40001ED000FD8007F1503013F81011F81B3B15FA45FA2130F5FA2 ! 6D6C5C171E01034B7F6E4A7F6D6C02F813FC6D90268003F0EBFFF891397FF00FC0021FB55A0207 ! 495A9126007FF8ECC000453F7BBD4E>IIIII<000FB812E0A39126C0000113C001FCC75A01F04A138048481600494A5A4914 ! 1F5F90C8485A167F5F001E4B5A5D4B5B5F003E4A90C7FC003C5C5E4B5A153F4B5AC85B4B5A5C5E ! 4A5B5C4A90C8FC5D141F4A5A5D4A5A02FFEC01E05D495B5B495B92C7FC4948EC03C0131F5C495A ! 137F495A4A1407485B5A4A140F4890C8FC48161F49153F4848ED7F80003F16FF4848140349143F ! B9FCA3333D7CBC3E>II E /Fi 15 116 df[<0A07B500E0183F0907B7 ! 6C5F50B800F8933801FF80083F05FF5E4FBA00E05D071F07FC5D96BC5D060709C05C061F09F05C ! 95BD00FC91B5FC05030AFF1303050F9426F80007EDC007053F04FCC8003F6E5A94B800800303EC ! F81F4C04FCCA6C6D5A040704E0051F6D5A4C93CB000790B7FC043F03FC18014C03F0727E4BB700 ! C0854B93CD120F4B4B864B03F886033F4B1A004B4B8792B70080874A93CF7E4A4B884A4B884A4B ! 884E884A5D4A4B884A8D91B7488995D1FC498E494B8A5F498E495DA17E495D498EA2494B8AA290 ! B75AA17F5A5FA17F5A94D3FC48A17EA35A5EA17F5AA34C7A13005AA190C8FCA35AA45EA3B7FCB3 ! A37EA382A47EA47E82A149B4FCA26CA1481380A2827EA36C82A15B7EA11500837EA15B6D81A15C ! 6D6F1F1FA27F6D6F555AA26D6F1F7F6DA15A711FFF6D6F686D6A72676E6F656E6F535B6E575B6E ! 6F65729CC7FC6E6F535A6E6F1D7F6E6F535A6E7009035B6F03E0515B6F6F515B030F6F515B6F03 ! FE097F5B6F6F6C97B5C8FC6F7007035B6F6C03F0070F5B7003FC073F5B040F03FF96B55A7004E0 ! 05035C040104FC051F148070DCFFC093B6C9FC053F04FC030F14FC050FDCFFF80103B65A050394 ! B912E005001D80061F51CAFC06071BF806001BE0071F97CBFC070119F8DF003F18C008014DCCFC ! E0000716C0E1000702E0CDFC>169 171 112 296 202 67 D[165 166 118 293 184 69 D[<0A03B500E0F01F8009 ! 07B76C173F50B800FCEFFFC0081FDDFF805D4FBA00F05D070F07FE5D077F736C5C0603BC00E05C ! 061F09F85C067F09FE5C4DBE6C48B5FC050F9426F800036F5A4D04FCC8001FECF007057F04C003 ! 016E5A4CB700FCCA6CEBFE1F040704E0050F6D5A4C0480050391B6FC043F03FCCCFC4C03F08593 ! B700C0191F03034C854B4BCD12034B4B864B03F0864B4B1B3F92B748874A93CF7E4A4B884E884A ! 4B884A4B884A5D4A8D4A4B8991B7488995D1FC498E494B8AA2494B8A495DA17E495DA17E5B494B ! 8BA290B75AA17F5A5FA17F5AA24893D37EA35A5EA17F5AA34C7A5B5AA190CAFCA35AA45EA3B7FC ! B3A37EA382A20C07B500FE94380FFFF89EBBFC7EA46C81A47E9BCA04C0C7FC827EA36C82A27E83 ! A27E837FA26D817F837F837F6D81A26D816D82A26E816E816E816E816E816E81846E70626E8203 ! 3F816F03F8626F816F03FF626F7061030004E0617003F8617003FE96B8FC040FDBFFC05F7004F0 ! 1707040104FE051F5B706CDBFFE0047F497E051F04FF0307B5487E7105FE91B6487E050194B9EA ! E007716CF4C001061F99C7FC060309FC143FDE007F08F0140F070F08C0140307014FC9FCDF001F ! 06F0EE3F80080106801607E0000704F0CEFCE1000302F8CFFC>189 171 ! 112 296 220 71 D[198 167 118 294 219 78 D[198 169 118 294 210 82 ! D[194 169 118 294 215 85 D<94B67E93B712FE030FEEFFE0037F17FE0203 ! BA12C0020F19F0023F19FC4A19FF91BC12C0499226C0001F15F04902E0C7000181496E6E6C8070 ! 031F80496E6F8049060381706F817481496E858775808A878A878AA275816D5CA26D5C75816D5C ! 6D5C6D5C6D5C023F90CAFCEC07F891CCFCA81B0F071FB8FC061FB9FC0507BAFC94BBFC160F93BC ! FC1507033F17C392B8EA80030207EEE000021F4BC7FC027F15F091B7128001034BC8FC4915F001 ! 1F15C0495D494AC9FC90B65A485D4815E05E5A485D4892CAFC5D5A5D5AA25DA2B6FC5DA363A463 ! 81637E6F5F636C6E18BF6F17FF6C0703133F6C6F4B8204E0DB0FFE816C6FDB3FFC15FC6C6F4B48 ! 6CECFFC06C03FE912603FFF0EEFFF86C6F6C010F01E017FC6DDBF801B5486C16FE011F92B71280 ! 6D4F7E010306FC7F01004E1300021F05E08002030580141FDA007F03FCC8000315FC030703E0DB ! 001F14F8DB000701FCCEFC7F6F78ED88>97 D<061FB57E050FB77E94B812F8040717FF043F18E0 ! 93BA12F8030719FE031F854B8692BC7E02034BC76C804A03E00207804A03805C023F4AC848804A ! 02F88491B6485D495D4903804B804992C9FCA2495C495C495CA2495C90B6FC5E48745C5A4C705C ! 5A755C484B705C755C755C48746C48C7FC93CBEA0FF099C9FC5AA45A5DA4B6FCB27E81A47EA382 ! 7EA36C81A26CF5FF80826C5213C0A26C6F60A26C6F4E13807F704E13006D806D515A70183F6D6F ! 4D5A6D6F4D5A6D6F5E6D03F84C5B6D6F040F5B6E02FF4C5B6E03C0157F6E03F04AB55A020703FC ! 020F49C7FC6E9226FFE001B55A020093B75A6F61031F19C003076103014EC8FCDB003F17F00407 ! 17C004004CC9FC050F15E0DD001F01F8CAFC6A6F77ED7C>99 D[137 170 119 296 155 I<95383FFFF8050FB612E094B712FE0407EEFFC0043F17F04BB912 ! FE0307727E031F85037F19F092B626FC007F80020303C0010714FE4A92C7000180021F02FC6E6C ! 804A02F0031F804A4A6F8091B6486F80494B6F804992C97E494A7080494A717F5B494A717F4C71 ! 14805B90B6487114C0A2485D7614E05A4C1AF04887A25A93CB15F8885AA21FFC5AA24B84A25A1F ! FEA4B6FCA292BDFCA61FFC1FF84BCFFCA67EA5817EA37EA36C81A36CF503F870F107FC6CF50FFE ! A26C811E1F6C816DF43FFC70197F6D1DF86D6E19FF704E13F06D6E606D6F4D13E06D6F4D13C06D ! 6F5F6D6F057F13806E6E94B512006E02FE04035B6E6E6C030F5B020703E0037F5B6E03FC0207B5 ! 5A0200DBFFE090B65A6F92B81280031F97C7FC030719FC030119F06F6C18C0040F95C8FC040117 ! F8DC003F16C0050103FCC9FCDD000791CAFC6F6F78ED80>I[<96381FFFF0060FB6FC95B712C005 ! 0716F8053F8294B9FC04031880040F18C0043F18E093B6D8FE0114F04BDBE00314F84BED80074B ! DAFE0015FC4B4A5B4B02F04914FE4B5C4B4A16FF92B6485BA24A92C7FC5C5F5C5F5CA24A4A6E14 ! FEA27414FCA24A4A6E14F87414F07414E07414C0093F1300F30FFC98C8FCB3A8BCFCABC7003F02 ! F8CBFCB3B3B3B3AE007FBA12C0AA91C97E>96 170 118 297 85 I109 DI<4BB46CEC3FFE013FB64AB512E0B8020F14FC073F14FF96B7 ! 12C04E824E16F84E824E824EEBE07F4E0100B6FC95267FFC011580F0FFF0D8000F4D4815C00101 ! 038113C06D0383494815E019006EEC87FE60EF8FF8A2EF9FF06017BF607415C017FF4E6D1580A2 ! 95C81500755B755B4D6F5B090713E0090090C7FC4D93C8FCA55FA75FB3B3AFBB7EAA49C9FC636D ! 78EC73>114 D<93263FFFFCEC07E0031FB600F0131F92B700FEEB7FF002079338FFC1FF023F94 ! B5FC91BBFC1303130F499138E0000F4901FCC87E4901E0150F90B5008015034849CAFC48498348 ! 01F0171F86484983484983A248855CA24885A31B7FB57EA28080806E725A806E6C94C8FC15E015 ! FCEDFF8016FC6CEDFFF0EFFFC018FE6CEFFFF019FE6CF0FFC01AF86C19FE6C737E876C1AF06C86 ! 6C866D19FF6D866D866D860103867F6D6C85021F851407020085031F841501DB000F1880EE003F ! 1701DD000716C0F0007F190F070115E0737ED83FC084007F190F486C84866D8486A2877FA26D85 ! A26D1BC0A27FA26E1A8063806E1A006E95B5FC6E616E5F6E4D5B6E4D5B03C05E6F4C5B03F8047F ! 5B03FE4BB55ADBFFC0020F5C04FE49B6C7FC93B85A1BF8020F60496C18C0D9F80195C8FC9026F0 ! 003F16F801C0010716C06C4801004BC9FC007EC8000791CAFC5B6F77ED6E>I E end %%EndProlog %%BeginSetup ! %%Feature: *Resolution 1016dpi TeXDict begin %%EndSetup %%Page: 1 1 ! 1 0 bop 268 -542 a Fi(GNU)92 b(Emacs)h(Reference)g(Card)1561 ! -313 y Fh(\(for)46 b(v)l(ersion)j(19\))0 110 y Fg(Starting)77 ! b(Emacs)0 454 y Fh(T)-12 b(o)47 b(en)l(ter)h(GNU)g(Emacs)g(19,)f(just)g(t)l ! (yp)t(e)h(its)f(name:)63 b Ff(emacs)0 681 y Fh(T)-12 b(o)47 ! b(read)h(in)f(a)g(\014le)g(to)g(edit,)g(see)i(Files,)e(b)t(elo)l(w.)0 ! 1083 y Fg(Lea)-6 b(ving)77 b(Emacs)0 1427 y Fh(susp)t(end)49 ! b(Emacs)e(\(or)g(iconify)h(it)f(under)h(X\))684 b Ff(C-z)0 ! 1596 y Fh(exit)47 b(Emacs)h(p)t(ermanen)l(tly)1555 b Ff(C-x)73 ! b(C-c)0 1998 y Fg(Files)0 2341 y Fe(read)46 b Fh(a)h(\014le)h(in)l(to)f ! (Emacs)1663 b Ff(C-x)73 b(C-f)0 2510 y Fe(sa)l(v)l(e)46 b Fh(a)h(\014le)g ! (bac)l(k)h(to)f(disk)1619 b Ff(C-x)73 b(C-s)0 2679 y Fh(sa)l(v)l(e)48 ! b Fe(all)h Fh(\014les)2297 b Ff(C-x)73 b(s)0 2848 y Fe(insert)47 ! b Fh(con)l(ten)l(ts)h(of)f(another)h(\014le)g(in)l(to)f(this)g(bu\013er)227 ! b Ff(C-x)73 b(i)0 3016 y Fh(replace)49 b(this)e(\014le)g(with)g(the)g(\014le) ! g(y)l(ou)h(really)g(w)l(an)l(t)332 b Ff(C-x)73 b(C-v)0 3185 ! y Fh(write)47 b(bu\013er)g(to)g(a)g(sp)t(eci\014ed)i(\014le)1251 ! b Ff(C-x)73 b(C-w)0 3587 y Fg(Getting)k(Help)0 3931 y Fh(The)47 ! b(Help)h(system)g(is)f(simple.)64 b(T)l(yp)t(e)47 b Ff(C-h)g ! Fh(and)g(follo)l(w)g(the)g(directions.)64 b(If)0 4099 y(y)l(ou)48 ! b(are)f(a)g(\014rst-time)h(user,)g(t)l(yp)t(e)f Ff(C-h)73 b(t)47 ! b Fh(for)g(a)g Fe(tutorial)p Fh(.)0 4327 y(remo)l(v)l(e)i(Help)f(windo)l(w) ! 1770 b Ff(C-x)73 b(1)0 4496 y Fh(scroll)48 b(Help)g(windo)l(w)1883 ! b Ff(ESC)73 b(C-v)0 4723 y Fh(aprop)t(os:)64 b(sho)l(w)47 b(commands)i(matc)l ! (hing)f(a)g(string)338 b Ff(C-h)73 b(a)0 4892 y Fh(sho)l(w)47 ! b(the)g(function)h(a)f(k)l(ey)h(runs)1270 b Ff(C-h)73 b(c)0 ! 5061 y Fh(describ)t(e)49 b(a)e(function)1884 b Ff(C-h)73 b(f)0 ! 5229 y Fh(get)47 b(mo)t(de-sp)t(eci\014c)j(information)1232 ! b Ff(C-h)73 b(m)0 5632 y Fg(Error)78 b(Reco)-6 b(v)g(ery)0 ! 5975 y Fe(ab)t(ort)46 b Fh(partially)i(t)l(yp)t(ed)f(or)g(executing)i ! (command)264 b Ff(C-g)0 6144 y Fe(reco)l(v)l(er)45 b Fh(a)i(\014le)h(lost)f ! (b)l(y)g(a)h(system)g(crash)487 b Ff(M-x)73 b(recover-file)0 ! 6313 y Fe(undo)46 b Fh(an)h(un)l(w)l(an)l(ted)h(c)l(hange)1403 ! b Ff(C-x)73 b(u)h Fh(or)g Ff(C-_)0 6481 y Fh(restore)48 b(a)g(bu\013er)f(to)g ! (its)g(original)h(con)l(ten)l(ts)388 b Ff(M-x)73 b(revert-buffer)0 ! 6650 y Fh(redra)l(w)47 b(garbaged)i(screen)1607 b Ff(C-l)0 ! 7052 y Fg(Incremen)-6 b(tal)77 b(Searc)-6 b(h)0 7396 y Fh(searc)l(h)49 ! b(forw)l(ard)2152 b Ff(C-s)0 7564 y Fh(searc)l(h)49 b(bac)l(kw)l(ard)2040 ! b Ff(C-r)0 7733 y Fh(regular)48 b(expression)i(searc)l(h)1515 ! b Ff(C-M-s)0 7902 y Fh(rev)l(erse)49 b(regular)f(expression)i(searc)l(h)1045 ! b Ff(C-M-r)0 8129 y Fh(select)48 b(previous)h(searc)l(h)g(string)1326 ! b Ff(M-p)0 8298 y Fh(select)48 b(next)g(later)f(searc)l(h)i(string)1241 ! b Ff(M-n)0 8467 y Fh(exit)47 b(incremen)l(tal)i(searc)l(h)1631 ! b Ff(RET)0 8636 y Fh(undo)47 b(e\013ect)h(of)g(last)f(c)l(haracter)1334 ! b Ff(DEL)0 8804 y Fh(ab)t(ort)47 b(curren)l(t)h(searc)l(h)1802 ! b Ff(C-g)0 9032 y Fh(Use)58 b Ff(C-s)e Fh(or)h Ff(C-r)f Fh(again)i(to)f(rep)t ! (eat)h(the)f(searc)l(h)h(in)f(either)h(direction.)93 b(If)0 ! 9200 y(Emacs)48 b(is)f(still)g(searc)l(hing,)j Ff(C-g)c Fh(cancels)j(only)f ! (the)f(part)g(not)g(done.)436 9427 y Fd(c)405 9430 y Fc(\015)38 ! b Fd(1993)g(F)-9 b(ree)38 b(Soft)m(w)m(are)g(F)-9 b(oundation,)38 ! b(Inc.)50 b(P)m(ermissions)37 b(on)h(bac)m(k.)50 b(v2.0)6534 ! 9589 y Fh(1)p eop %%Page: 2 2 ! 2 1 bop 0 -571 a Fg(Motion)0 -220 y Fe(en)l(tit)l(y)54 b(to)f(mo)l(v)l(e)g(o) ! l(v)l(er)1189 b(bac)l(kw)l(ard)138 b(forw)l(ard)0 -52 y Fh(c)l(haracter)2005 ! b Ff(C-b)587 b(C-f)0 117 y Fh(w)l(ord)2269 b Ff(M-b)587 b(M-f)0 ! 286 y Fh(line)2352 b Ff(C-p)587 b(C-n)0 454 y Fh(go)47 b(to)g(line)h(b)t ! (eginning)g(\(or)f(end\))801 b Ff(C-a)587 b(C-e)0 623 y Fh(sen)l(tence)2060 ! b Ff(M-a)587 b(M-e)0 792 y Fh(paragraph)1946 b Ff(M-{)587 b(M-})0 ! 961 y Fh(page)2290 b Ff(C-x)74 b([)439 b(C-x)74 b(])0 1129 ! y Fh(sexp)2301 b Ff(C-M-b)439 b(C-M-f)0 1298 y Fh(function)2067 ! b Ff(C-M-a)439 b(C-M-e)0 1467 y Fh(go)47 b(to)g(bu\013er)h(b)t(eginning)g ! (\(or)f(end\))664 b Ff(M-<)587 b(M->)0 1696 y Fh(scroll)48 ! b(to)f(next)g(screen)1818 b Ff(C-v)0 1865 y Fh(scroll)48 b(to)f(previous)i ! (screen)1574 b Ff(M-v)0 2033 y Fh(scroll)48 b(left)2481 b Ff(C-x)73 ! b(<)0 2202 y Fh(scroll)48 b(righ)l(t)2387 b Ff(C-x)73 b(>)0 ! 2371 y Fh(scroll)48 b(curren)l(t)g(line)g(to)f(cen)l(ter)h(of)f(screen)801 ! b Ff(C-u)73 b(C-l)0 2782 y Fg(Killing)k(and)i(Deleting)0 3132 ! y Fe(en)l(tit)l(y)54 b(to)f(kill)1691 b(bac)l(kw)l(ard)138 ! b(forw)l(ard)0 3301 y Fh(c)l(haracter)49 b(\(delete,)f(not)f(kill\))960 ! b Ff(DEL)587 b(C-d)0 3469 y Fh(w)l(ord)2269 b Ff(M-DEL)439 ! b(M-d)0 3638 y Fh(line)48 b(\(to)e(end)i(of)11 b(\))1633 b ! Ff(M-0)74 b(C-k)291 b(C-k)0 3807 y Fh(sen)l(tence)2060 b Ff(C-x)74 ! b(DEL)291 b(M-k)0 3975 y Fh(sexp)2301 b Ff(M--)74 b(C-M-k)143 ! b(C-M-k)0 4205 y Fh(kill)47 b Fe(region)2373 b Ff(C-w)0 4373 ! y Fh(cop)l(y)48 b(region)g(to)f(kill)g(ring)1646 b Ff(M-w)0 ! 4542 y Fh(kill)47 b(through)h(next)f(o)t(ccurrence)j(of)d Fb(char)834 ! b Ff(M-z)73 b Fb(char)0 4771 y Fh(y)l(ank)48 b(bac)l(k)g(last)f(thing)g ! (killed)1416 b Ff(C-y)0 4940 y Fh(replace)49 b(last)e(y)l(ank)h(with)e ! (previous)j(kill)894 b Ff(M-y)0 5368 y Fg(Marking)0 5718 y ! Fh(set)47 b(mark)h(here)2208 b Ff(C-@)73 b Fh(or)h Ff(C-SPC)0 ! 5887 y Fh(exc)l(hange)49 b(p)t(oin)l(t)e(and)h(mark)1490 b ! Ff(C-x)73 b(C-x)0 6116 y Fh(set)47 b(mark)h Fb(ar)-7 b(g)59 ! b Fe(w)l(ords)45 b Fh(a)l(w)l(a)l(y)1453 b Ff(M-@)0 6285 y ! Fh(mark)48 b Fe(paragraph)1962 b Ff(M-h)0 6454 y Fh(mark)48 ! b Fe(page)2360 b Ff(C-x)73 b(C-p)0 6622 y Fh(mark)48 b Fe(sexp)2371 ! b Ff(C-M-@)0 6791 y Fh(mark)48 b Fe(function)2105 b Ff(C-M-h)0 ! 6960 y Fh(mark)48 b(en)l(tire)f Fe(bu\013er)1875 b Ff(C-x)73 ! b(h)0 7370 y Fg(Query)k(Replace)0 7721 y Fh(in)l(teractiv)l(ely)49 ! b(replace)g(a)e(text)g(string)1004 b Ff(M-\045)0 7889 y Fh(using)48 ! b(regular)g(expressions)765 b Ff(M-x)73 b(query-replace-regexp)0 ! 8119 y Fh(V)-12 b(alid)48 b(resp)t(onses)i(in)d(query-replace)i(mo)t(de)f ! (are)0 8348 y Fe(replace)f Fh(this)g(one,)h(go)f(on)g(to)g(next)1107 ! b Ff(SPC)0 8517 y Fh(replace)49 b(this)e(one,)h(don't)f(mo)l(v)l(e)1318 ! b Ff(,)0 8685 y Fe(skip)48 b Fh(to)f(next)g(without)f(replacing)1153 ! b Ff(DEL)0 8854 y Fh(replace)49 b(all)e(remaining)i(matc)l(hes)1224 ! b Ff(!)0 9023 y Fe(bac)l(k)53 b(up)46 b Fh(to)h(the)g(previous)i(matc)l(h) ! 1095 b Ff(^)0 9191 y Fe(exit)48 b Fh(query-replace)1916 b Ff(ESC)0 ! 9360 y Fh(en)l(ter)48 b(recursiv)l(e)h(edit)e(\()p Ff(C-M-c)f ! Fh(to)h(exit\))896 b Ff(C-r)6534 9589 y Fh(2)p eop %%Page: 3 3 ! 3 2 bop 0 -571 a Fg(Multiple)77 b(Windo)-6 b(ws)0 -297 y Fh(delete)48 ! b(all)f(other)h(windo)l(ws)1559 b Ff(C-x)73 b(1)0 -128 y Fh(delete)48 ! b(this)f(windo)l(w)1903 b Ff(C-x)73 b(0)0 40 y Fh(split)47 ! b(windo)l(w)g(in)g(t)l(w)l(o)f(v)l(ertically)1229 b Ff(C-x)73 ! b(2)0 209 y Fh(split)47 b(windo)l(w)g(in)g(t)l(w)l(o)f(horizon)l(tally)1069 ! b Ff(C-x)73 b(3)0 419 y Fh(scroll)48 b(other)g(windo)l(w)1847 ! b Ff(C-M-v)0 588 y Fh(switc)l(h)47 b(cursor)i(to)d(another)i(windo)l(w)1038 ! b Ff(C-x)73 b(o)0 798 y Fh(shrink)48 b(windo)l(w)e(shorter)1385 ! b Ff(M-x)73 b(shrink-window)0 966 y Fh(gro)l(w)47 b(windo)l(w)g(taller)1876 ! b Ff(C-x)73 b(^)0 1135 y Fh(shrink)48 b(windo)l(w)e(narro)l(w)l(er)1571 ! b Ff(C-x)73 b({)0 1304 y Fh(gro)l(w)47 b(windo)l(w)g(wider)1860 ! b Ff(C-x)73 b(})0 1514 y Fh(select)48 b(bu\013er)g(in)f(other)h(windo)l(w) ! 1265 b Ff(C-x)73 b(4)h(b)0 1683 y Fh(displa)l(y)48 b(bu\013er)g(in)f(other)g ! (windo)l(w)1172 b Ff(C-x)73 b(4)h(C-o)0 1851 y Fh(\014nd)47 ! b(\014le)h(in)f(other)g(windo)l(w)1544 b Ff(C-x)73 b(4)h(f)0 ! 2020 y Fh(\014nd)47 b(\014le)h(read-only)g(in)f(other)g(windo)l(w)923 ! b Ff(C-x)73 b(4)h(r)0 2189 y Fh(run)47 b(Dired)h(in)f(other)h(windo)l(w)1404 ! b Ff(C-x)73 b(4)h(d)0 2357 y Fh(\014nd)47 b(tag)g(in)g(other)h(windo)l(w)1528 ! b Ff(C-x)73 b(4)h(.)0 2672 y Fg(F)-19 b(ormatting)0 2946 y ! Fh(inden)l(t)47 b(curren)l(t)h Fe(line)h Fh(\(mo)t(de-dep)t(enden)l(t\))706 ! b Ff(TAB)0 3115 y Fh(inden)l(t)47 b Fe(region)g Fh(\(mo)t(de-dep)t(enden)l ! (t\))1012 b Ff(C-M-\\)0 3283 y Fh(inden)l(t)47 b Fe(sexp)g ! Fh(\(mo)t(de-dep)t(enden)l(t\))1136 b Ff(C-M-q)0 3452 y Fh(inden)l(t)47 ! b(region)i(rigidly)e Fb(ar)-7 b(g)59 b Fh(columns)1004 b Ff(C-x)73 ! b(TAB)0 3662 y Fh(insert)48 b(newline)f(after)h(p)t(oin)l(t)1496 ! b Ff(C-o)0 3831 y Fh(mo)l(v)l(e)48 b(rest)g(of)f(line)g(v)l(ertically)i(do)l ! (wn)1047 b Ff(C-M-o)0 3999 y Fh(delete)48 b(blank)g(lines)g(around)g(p)t(oin) ! l(t)1137 b Ff(C-x)73 b(C-o)0 4168 y Fh(join)47 b(line)h(with)e(previous)j ! (\(with)d(arg,)h(next\))645 b Ff(M-^)0 4337 y Fh(delete)48 ! b(all)f(white)g(space)i(around)f(p)t(oin)l(t)891 b Ff(M-\\)0 ! 4505 y Fh(put)47 b(exactly)h(one)g(space)g(at)f(p)t(oin)l(t)1181 ! b Ff(M-SPC)0 4715 y Fh(\014ll)47 b(paragraph)2221 b Ff(M-q)0 ! 4884 y Fh(set)47 b(\014ll)h(column)2181 b Ff(C-x)73 b(f)0 5053 ! y Fh(set)47 b(pre\014x)h(eac)l(h)h(line)e(starts)h(with)1185 ! b Ff(C-x)73 b(.)0 5368 y Fg(Case)k(Change)0 5641 y Fh(upp)t(ercase)49 ! b(w)l(ord)2094 b Ff(M-u)0 5810 y Fh(lo)l(w)l(ercase)49 b(w)l(ord)2129 ! b Ff(M-l)0 5979 y Fh(capitalize)49 b(w)l(ord)2122 b Ff(M-c)0 ! 6189 y Fh(upp)t(ercase)49 b(region)2021 b Ff(C-x)73 b(C-u)0 ! 6357 y Fh(lo)l(w)l(ercase)49 b(region)2056 b Ff(C-x)73 b(C-l)0 ! 6526 y Fh(capitalize)49 b(region)1515 b Ff(M-x)73 b(capitalize-region)0 ! 6858 y Fg(The)78 b(Minibu\013er)0 7132 y Fh(The)47 b(follo)l(wing)h(k)l(eys)g ! (are)g(de\014ned)g(in)f(the)g(minibu\013er.)0 7342 y(complete)i(as)e(m)l(uc)l ! (h)h(as)g(p)t(ossible)1254 b Ff(TAB)0 7510 y Fh(complete)49 ! b(up)e(to)f(one)i(w)l(ord)1521 b Ff(SPC)0 7679 y Fh(complete)49 ! b(and)e(execute)1726 b Ff(RET)0 7848 y Fh(sho)l(w)47 b(p)t(ossible)i ! (completions)1446 b Ff(?)0 8017 y Fh(fetc)l(h)48 b(previous)g(minibu\013er)g ! (input)1141 b Ff(M-p)0 8185 y Fh(fetc)l(h)48 b(next)f(later)g(minibu\013er)h ! (input)1056 b Ff(M-n)0 8354 y Fh(regexp)48 b(searc)l(h)h(bac)l(kw)l(ard)f ! (through)g(history)585 b Ff(M-r)0 8523 y Fh(regexp)48 b(searc)l(h)h(forw)l ! (ard)f(through)f(history)698 b Ff(M-s)0 8691 y Fh(ab)t(ort)47 ! b(command)2077 b Ff(C-g)0 8901 y Fh(T)l(yp)t(e)43 b Ff(C-x)73 ! b(ESC)g(ESC)42 b Fh(to)g(edit)h(and)f(rep)t(eat)i(the)e(last)h(command)h ! (that)e(used)0 9070 y(the)47 b(minibu\013er.)64 b(The)47 b(follo)l(wing)g(k)l ! (eys)i(are)e(then)h(de\014ned.)0 9280 y(previous)h(minibu\013er)f(command) ! 1220 b Ff(M-p)0 9449 y Fh(next)47 b(minibu\013er)h(command)1464 ! b Ff(M-n)6534 9589 y Fh(3)p eop %%Page: 4 4 ! 4 3 bop 268 -542 a Fi(GNU)92 b(Emacs)h(Reference)g(Card)0 -71 ! y Fg(Bu\013ers)0 279 y Fh(select)48 b(another)g(bu\013er)1794 ! b Ff(C-x)73 b(b)0 448 y Fh(list)47 b(all)g(bu\013ers)2208 b ! Ff(C-x)73 b(C-b)0 617 y Fh(kill)47 b(a)g(bu\013er)2338 b Ff(C-x)73 ! b(k)0 1027 y Fg(T)-19 b(ransp)6 b(osing)0 1378 y Fh(transp)t(ose)49 ! b Fe(c)l(haracters)1694 b Ff(C-t)0 1546 y Fh(transp)t(ose)49 ! b Fe(w)l(ords)2002 b Ff(M-t)0 1715 y Fh(transp)t(ose)49 b Fe(lines)2101 ! b Ff(C-x)73 b(C-t)0 1884 y Fh(transp)t(ose)49 b Fe(sexps)2040 ! b Ff(C-M-t)0 2295 y Fg(Sp)6 b(elling)78 b(Chec)-6 b(k)0 2645 ! y Fh(c)l(hec)l(k)49 b(sp)t(elling)f(of)f(curren)l(t)h(w)l(ord)1207 ! b Ff(M-$)0 2814 y Fh(c)l(hec)l(k)49 b(sp)t(elling)f(of)f(all)h(w)l(ords)f(in) ! g(region)565 b Ff(M-x)73 b(ispell-region)0 2982 y Fh(c)l(hec)l(k)49 ! b(sp)t(elling)f(of)f(en)l(tire)h(bu\013er)952 b Ff(M-x)73 b(ispell-buffer)0 ! 3409 y Fg(T)-19 b(ags)0 3759 y Fh(\014nd)47 b(a)g(tag)g(\(a)g(de\014nition\)) ! 1604 b Ff(M-.)0 3928 y Fh(\014nd)47 b(next)g(o)t(ccurrence)j(of)d(tag)1396 ! b Ff(C-u)73 b(M-.)0 4096 y Fh(sp)t(ecify)48 b(a)g(new)f(tags)g(\014le)1240 ! b Ff(M-x)73 b(visit-tags-table)0 4325 y Fh(regexp)48 b(searc)l(h)h(on)f(all)f ! (\014les)h(in)f(tags)g(table)439 b Ff(M-x)73 b(tags-search)0 ! 4494 y Fh(run)47 b(query-replace)j(on)d(all)g(the)g(\014les)448 ! b Ff(M-x)73 b(tags-query-replace)0 4663 y Fh(con)l(tin)l(ue)48 ! b(last)g(tags)f(searc)l(h)i(or)e(query-replace)505 b Ff(M-,)0 ! 5074 y Fg(Shells)0 5424 y Fh(execute)49 b(a)e(shell)h(command)1514 ! b Ff(M-!)0 5593 y Fh(run)47 b(a)g(shell)h(command)h(on)e(the)g(region)900 ! b Ff(M-|)0 5761 y Fh(\014lter)47 b(region)h(through)g(a)f(shell)h(command)728 ! b Ff(C-u)73 b(M-|)0 5930 y Fh(start)47 b(a)g(shell)h(in)f(windo)l(w)g ! Ff(*shell*)784 b(M-x)73 b(shell)0 6341 y Fg(Rectangles)0 6691 ! y Fh(cop)l(y)48 b(rectangle)h(to)e(register)1493 b Ff(C-x)73 ! b(r)h(r)0 6860 y Fh(kill)47 b(rectangle)2257 b Ff(C-x)73 b(r)h(k)0 ! 7029 y Fh(y)l(ank)48 b(rectangle)2155 b Ff(C-x)73 b(r)h(y)0 ! 7197 y Fh(op)t(en)48 b(rectangle,)h(shifting)e(text)g(righ)l(t)977 ! b Ff(C-x)73 b(r)h(o)0 7366 y Fh(blank)48 b(out)f(rectangle)1472 ! b Ff(M-x)73 b(clear-rectangle)0 7535 y Fh(pre\014x)48 b(eac)l(h)g(line)g ! (with)e(a)h(string)822 b Ff(M-x)73 b(string-rectangle)0 7963 ! y Fg(Abbrevs)0 8313 y Fh(add)47 b(global)h(abbrev)1944 b Ff(C-x)73 ! b(a)h(g)0 8482 y Fh(add)47 b(mo)t(de-lo)t(cal)i(abbrev)1647 ! b Ff(C-x)73 b(a)h(l)0 8650 y Fh(add)47 b(global)h(expansion)h(for)e(this)h ! (abbrev)801 b Ff(C-x)73 b(a)h(i)f(g)0 8819 y Fh(add)47 b(mo)t(de-lo)t(cal)i ! (expansion)g(for)e(this)g(abbrev)505 b Ff(C-x)73 b(a)h(i)f(l)0 ! 8988 y Fh(explicitly)48 b(expand)g(abbrev)1534 b Ff(C-x)73 ! b(a)h(e)0 9217 y Fh(expand)48 b(previous)h(w)l(ord)e(dynamically)912 ! b Ff(M-/)6534 9589 y Fh(4)p eop %%Page: 5 5 ! 5 4 bop 0 -571 a Fg(Regular)77 b(Expressions)0 -220 y Fh(an)l(y)48 ! b(single)g(c)l(haracter)h(except)f(a)f(newline)759 b Ff(.)147 ! b Fh(\(dot\))0 -52 y(zero)48 b(or)f(more)h(rep)t(eats)1786 ! b Ff(*)0 117 y Fh(one)48 b(or)f(more)h(rep)t(eats)1825 b Ff(+)0 ! 286 y Fh(zero)48 b(or)f(one)h(rep)t(eat)1935 b Ff(?)0 454 y ! Fh(an)l(y)48 b(c)l(haracter)g(in)f(the)h(set)1590 b Ff([)74 ! b Fa(:)23 b(:)g(:)74 b Ff(])0 623 y Fh(an)l(y)48 b(c)l(haracter)g(not)f(in)g ! (the)g(set)1341 b Ff([^)73 b Fa(:)23 b(:)g(:)75 b Ff(])0 792 ! y Fh(b)t(eginning)48 b(of)f(line)2026 b Ff(^)0 961 y Fh(end)48 ! b(of)f(line)2404 b Ff($)0 1129 y Fh(quote)48 b(a)f(sp)t(ecial)h(c)l(haracter) ! h Fb(c)1408 b Ff(\\)p Fb(c)0 1298 y Fh(alternativ)l(e)48 b(\(\\or"\))1970 ! b Ff(\\|)0 1467 y Fh(grouping)2510 b Ff(\\\()73 b Fa(:)23 b(:)g(:)75 ! b Ff(\\\))0 1635 y Fb(n)11 b Fh(th)46 b(group)2428 b Ff(\\)p ! Fb(n)0 1804 y Fh(b)t(eginning)48 b(of)f(bu\013er)1889 b Ff(\\`)0 ! 1973 y Fh(end)48 b(of)f(bu\013er)2267 b Ff(\\')0 2141 y Fh(w)l(ord)47 ! b(break)2361 b Ff(\\b)0 2310 y Fh(not)47 b(b)t(eginning)h(or)f(end)h(of)f(w)l ! (ord)1255 b Ff(\\B)0 2479 y Fh(b)t(eginning)48 b(of)f(w)l(ord)1943 ! b Ff(\\<)0 2648 y Fh(end)48 b(of)f(w)l(ord)2321 b Ff(\\>)0 ! 2816 y Fh(an)l(y)48 b(w)l(ord-syn)l(tax)f(c)l(haracter)1420 ! b Ff(\\w)0 2985 y Fh(an)l(y)48 b(non-w)l(ord-syn)l(tax)g(c)l(haracter)1146 ! b Ff(\\W)0 3154 y Fh(c)l(haracter)49 b(with)d(syn)l(tax)i Fb(c)1599 ! b Ff(\\s)p Fb(c)0 3322 y Fh(c)l(haracter)49 b(with)d(syn)l(tax)i(not)f ! Fb(c)1349 b Ff(\\S)p Fb(c)0 3733 y Fg(Registers)0 4083 y Fh(sa)l(v)l(e)48 ! b(region)h(in)e(register)1707 b Ff(C-x)73 b(r)h(s)0 4252 y ! Fh(insert)48 b(register)g(con)l(ten)l(ts)g(in)l(to)f(bu\013er)960 ! b Ff(C-x)73 b(r)h(i)0 4481 y Fh(sa)l(v)l(e)48 b(v)-8 b(alue)49 ! b(of)e(p)t(oin)l(t)g(in)g(register)1239 b Ff(C-x)73 b(r)h(SPC)0 ! 4650 y Fh(jump)47 b(to)g(p)t(oin)l(t)g(sa)l(v)l(ed)i(in)e(register)1149 ! b Ff(C-x)73 b(r)h(j)0 5078 y Fg(Info)0 5428 y Fh(en)l(ter)48 ! b(the)f(Info)g(do)t(cumen)l(tation)i(reader)818 b Ff(C-h)73 ! b(i)0 5658 y Fh(Mo)l(ving)48 b(within)e(a)h(no)t(de:)141 5887 ! y(scroll)h(forw)l(ard)2070 b Ff(SPC)141 6056 y Fh(scroll)48 ! b(rev)l(erse)2118 b Ff(DEL)141 6224 y Fh(b)t(eginning)48 b(of)f(no)t(de)1811 ! b Ff(.)147 b Fh(\(dot\))0 6454 y(Mo)l(ving)48 b(b)t(et)l(w)l(een)g(no)t(des:) ! 141 6683 y Fe(next)f Fh(no)t(de)2256 b Ff(n)141 6851 y Fe(previous)47 ! b Fh(no)t(de)1973 b Ff(p)141 7020 y Fh(mo)l(v)l(e)48 b Fe(up)2364 ! b Ff(u)141 7189 y Fh(select)48 b(men)l(u)g(item)f(b)l(y)g(name)1303 ! b Ff(m)141 7358 y Fh(select)48 b Fb(n)11 b Fh(th)47 b(men)l(u)g(item)h(b)l(y) ! f(n)l(um)l(b)t(er)h(\(1{5\))528 b Fb(n)141 7526 y Fh(follo)l(w)47 ! b(cross)h(reference)i(\(return)d(with)f Ff(l)p Fh(\))631 b ! Ff(f)141 7695 y Fh(return)47 b(to)g(last)g(no)t(de)h(y)l(ou)f(sa)l(w)1211 ! b Ff(l)141 7864 y Fh(return)47 b(to)g(directory)h(no)t(de)1415 ! b Ff(d)141 8032 y Fh(go)47 b(to)g(an)l(y)g(no)t(de)h(b)l(y)f(name)1421 ! b Ff(g)0 8262 y Fh(Other:)141 8491 y(run)47 b(Info)g Fe(tutorial)1829 ! b Ff(h)141 8659 y Fh(list)47 b(Info)g(commands)1736 b Ff(?)141 ! 8828 y Fe(quit)47 b Fh(Info)2336 b Ff(q)141 8997 y Fh(searc)l(h)48 ! b(no)t(des)h(for)e(regexp)1469 b Ff(s)6534 9589 y Fh(5)p eop %%Page: 6 6 ! 6 5 bop 0 -571 a Fg(Keyb)6 b(oard)79 b(Macros)0 -220 y Fe(start)46 ! b Fh(de\014ning)i(a)f(k)l(eyb)t(oard)h(macro)1035 b Ff(C-x)73 ! b(\()0 -52 y Fe(end)47 b Fh(k)l(eyb)t(oard)h(macro)g(de\014nition)1139 ! b Ff(C-x)73 b(\))0 117 y Fe(execute)47 b Fh(last-de\014ned)i(k)l(eyb)t(oard)f ! (macro)735 b Ff(C-x)73 b(e)0 286 y Fh(app)t(end)48 b(to)f(last)g(k)l(eyb)t ! (oard)i(macro)1130 b Ff(C-u)73 b(C-x)g(\()0 454 y Fh(name)48 ! b(last)f(k)l(eyb)t(oard)i(macro)741 b Ff(M-x)74 b(name-last-kbd-macro)0 ! 623 y Fh(insert)48 b(Lisp)f(de\014nition)h(in)f(bu\013er)745 ! b Ff(M-x)73 b(insert-kbd-macro)0 1034 y Fg(Commands)79 b(Dealing)e(with)g ! (Emacs)h(Lisp)0 1384 y Fh(ev)-8 b(al)48 b Fe(sexp)f Fh(b)t(efore)h(p)t(oin)l ! (t)1661 b Ff(C-x)73 b(C-e)0 1553 y Fh(ev)-8 b(al)48 b(curren)l(t)g ! Fe(defun)1881 b Ff(C-M-x)0 1722 y Fh(ev)-8 b(al)48 b Fe(region)2031 ! b Ff(M-x)73 b(eval-region)0 1890 y Fh(ev)-8 b(al)48 b(en)l(tire)g ! Fe(bu\013er)1271 b Ff(M-x)74 b(eval-current-buffer)0 2059 y ! Fh(read)48 b(and)f(ev)-8 b(al)48 b(minibu\013er)1549 b Ff(M-ESC)0 ! 2228 y Fh(re-execute)49 b(last)e(minibu\013er)h(command)846 ! b Ff(C-x)73 b(ESC)g(ESC)0 2396 y Fh(read)48 b(and)f(ev)-8 b(al)48 ! b(Emacs)g(Lisp)f(\014le)948 b Ff(M-x)73 b(load-file)0 2565 ! y Fh(load)48 b(from)f(standard)h(system)g(directory)513 b Ff(M-x)73 ! b(load-library)0 2993 y Fg(Simple)k(Customization)0 3343 y ! Fh(Here)37 b(are)f(some)h(examples)g(of)f(binding)g(global)g(k)l(eys)h(in)f ! (Emacs)g(Lisp.)59 b(Note)0 3512 y(that)47 b(y)l(ou)g(cannot)h(sa)l(y)g ! Ff("\\M-#")p Fh(;)e(y)l(ou)h(m)l(ust)g(sa)l(y)h Ff("\\e#")p ! Fh(.)0 3741 y Ff(\(global-set-key)71 b("\\C-cg")h('goto-line\))0 ! 3910 y(\(global-set-key)f("\\C-x\\C-k")h('kill-region\))0 4079 ! y(\(global-set-key)f("\\e#")i('query-replace-regexp\))0 4308 ! y Fh(An)47 b(example)i(of)e(setting)h(a)f(v)-8 b(ariable)48 ! b(in)f(Emacs)h(Lisp:)0 4537 y Ff(\(setq)73 b(backup-by-copying-when-linked)68 ! b(t\))0 4965 y Fg(W)-19 b(riting)76 b(Commands)0 5316 y Ff(\(defun)d ! Fb(c)-7 b(ommand-name)83 b Ff(\()p Fb(ar)-7 b(gs)12 b Ff(\))148 ! 5484 y(")p Fb(do)-7 b(cumentation)11 b Ff(")148 5653 y(\(interactive)71 ! b(")p Fb(template)11 b Ff("\))148 5822 y Fb(b)-7 b(o)g(dy)12 ! b Ff(\))0 6051 y Fh(An)47 b(example:)0 6280 y Ff(\(defun)73 ! b(this-line-to-top-of-window)68 b(\(line\))148 6449 y("Reposition)j(line)i ! (point)g(is)h(on)f(to)g(top)h(of)f(window.)0 6618 y(With)g(ARG,)g(put)g ! (point)g(on)h(line)f(ARG.)0 6786 y(Negative)f(counts)h(from)g(bottom.")148 ! 6955 y(\(interactive)e("P"\))148 7124 y(\(recenter)h(\(if)h(\(null)g(line\)) ! 1181 7292 y(0)1033 7461 y(\(prefix-numeric-value)d(line\)\)\)\))0 ! 7690 y Fh(The)39 b(argumen)l(t)h(to)e Ff(interactive)f Fh(is)i(a)g(string)g ! (sp)t(ecifying)i(ho)l(w)e(to)g(get)g(the)0 7859 y(argumen)l(ts)59 ! b(when)e(the)g(function)g(is)h(called)g(in)l(teractiv)l(ely)-12 ! b(.)95 b(T)l(yp)t(e)57 b Ff(C-h)73 b(f)0 8028 y(interactive)45 ! b Fh(for)i(more)h(information.)805 8407 y Fd(Cop)m(yrigh)m(t)1364 ! 8404 y(c)1332 8407 y Fc(\015)38 b Fd(1993)g(F)-9 b(ree)38 b(Soft)m(w)m(are)g ! (F)-9 b(oundation,)38 b(Inc.)958 8542 y(designed)h(b)m(y)f(Stephen)g(Gildea,) ! i(Ma)m(y)e(1993)g(v2.0)951 8677 y(for)g(GNU)g(Emacs)e(v)m(ersion)j(19)f(on)g ! (Unix)h(systems)0 8872 y(P)m(ermission)c(is)g(gran)m(ted)g(to)g(mak)m(e)f ! (and)h(distribute)h(copies)g(of)f(this)g(card)g(pro)m(vided)h(the)f(cop)m(y-) ! 0 9007 y(righ)m(t)k(notice)f(and)h(this)f(p)s(ermission)g(notice)h(are)e ! (preserv)m(ed)h(on)g(all)i(copies.)0 9203 y(F)-9 b(or)35 b(copies)h(of)f(the) ! g(GNU)g(Emacs)f(man)m(ual,)i(write)h(to)e(the)g(F)-9 b(ree)35 ! b(Soft)m(w)m(are)g(F)-9 b(oundation,)37 b(Inc.,)0 9338 y(675)h(Massac)m(h)m ! (usetts)e(Av)m(e,)i(Cam)m(bridge)g(MA)g(02139.)6534 9589 y ! Fh(6)p eop %%Trailer end userdict /end-hook known{end-hook}if - SafetyEnclosure restore %%EOF --- 1,827 ---- %!PS-Adobe-2.0 ! %%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software %%Title: refcard.dvi %%Pages: 6 %%PageOrder: Ascend ! %%BoundingBox: 0 0 596 842 %%EndComments ! %DVIPSCommandLine: dvips refcard.dvi ! %DVIPSParameters: dpi=300, compressed, comments removed ! %DVIPSSource: TeX output 1996.03.21:2231 %%BeginProcSet: texc.pro ! /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N ! /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 ! mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} ! ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale ! isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div ! hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul ! TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} ! forall round exch round exch]setmatrix}N /@landscape{/isls true N}B ! /@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B ! /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ ! /nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N ! string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N ! end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ ! /sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] ! N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup ! length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ ! 128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub ! get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data ! dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N ! /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup ! /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx ! 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff ! setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff ! .1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N ! /cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id ! gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp ! add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add ! /gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ ! dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 ! adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 ! idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string ! putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval ! adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} ! {adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ ! adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 ! chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] ! }if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup ! length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ ! cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin ! 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul ! add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict ! /eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook ! known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X ! /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for ! 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 ! 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V ! {}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 ! getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} ! ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false ! RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 ! false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform ! round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg ! rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail ! {dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} ! B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ ! 4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ ! p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p ! a}B /bos{/SS save N}B /eos{SS restore}B end %%EndProcSet ! TeXDict begin 39158280 55380996 1000 300 300 (refcard.dvi) ! @start /Fa 1 59 df<126012F0A2126004047C830C>58 D E /Fb ! 19 122 df45 D97 D<123F1207A2120EA45AA4EA39 ! E0EA3A18EA3C0C12381270130EA3EAE01CA31318133813301360EA60C0EA3180EA1E000F ! 1D7C9C13>I<13F8EA0304120EEA1C0EEA181CEA30001270A25AA51304EA60081310EA30 ! 60EA0F800F127C9113>II<13F8EA0704 ! 120CEA1802EA38041230EA7008EA7FF0EAE000A5EA60041308EA30101360EA0F800F127C ! 9113>I103 ! DII108 ! D<391C1E078039266318C0394683A0E0384703C0008E1380A2120EA2391C0701C0A3EC03 ! 80D8380E1388A2EC0708151039701C032039300C01C01D127C9122>II<13F8EA030CEA0E06487E1218123000701380A238E00700A3130EA25BEA60 ! 185BEA30E0EA0F8011127C9115>I<380387803804C860EBD03013E0EA09C014381201A2 ! 38038070A31460380700E014C0EB0180EB8300EA0E86137890C7FCA25AA45AB4FC151A80 ! 9115>I ! 114 DI<12035AA3120EA4EAFFE0EA1C00A35AA4 ! 5AA4EAE080A2EAE100A2126612380B1A7C990E>I<381C0180EA2E03124EA2388E0700A2 ! 121CA2EA380EA438301C80A3EA383C38184D00EA0F8611127C9116>I<381C0180EA2E03 ! 124EA2388E0700A2121CA2EA380EA4EA301CA3EA383CEA1878EA0FB8EA003813301370EA ! E0605BEA81800043C7FC123C111A7C9114>121 D E /Fc 1 14 df13 D E /Fd 47 122 df<124012E012601220A31240A2128003097D8209>44 ! D<12FFA2080280860B>I<124012E0124003037D8209>I<120FEA30C0EA6060A2EA4020EA ! C030A9EA4020EA6060A2EA30C0EA0F000C137E9211>48 D<120C121C12EC120CAFEAFFC0 ! 0A137D9211>I<121FEA60C01360EAF07013301260EA0070A2136013C012011380EA0200 ! 5AEA08101210EA2020EA7FE012FF0C137E9211>II53 DI<1240EA7FFC13F8EA ! 4010EA80301320EA00401380EA0100A25A12021206A2120EA512040E147E9311>I<120F ! EA3080EA6040EA4060EAC0201330A31240EA6070EA30B0EA0F30120013201360EAE04013 ! 80EA4100123E0C137E9211>57 D<1330A21378A3139CA2EA019E130EA2EA0207A2000613 ! 80EA07FFEA0403380801C0A2001813E0EA380038FE07FC16147F9319>65 ! DII69 DII73 D<00FEEB0FE0001E140000171317A338138027A238 ! 11C047A23810E087A3EB7107A2133AA2131CA2123839FE083FE01B147F931E>77 ! D<38FC01FC381E00700017132013801213EA11C0EA10E01370A21338131C130E130F1307 ! EB03A0EB01E01300A20038136000FE132016147F9319>I80 D83 D<387FFFF03860703000401310A200801308A300001300ACEA07FF15147F ! 9318>I<38FF81FC381C00701420AD120C000E13400006138038038300EA00FC16147F93 ! 19>I<127FEAE1C0EAE040EA40601200EA07E0EA3860126012C01364A2EA61E4EA3E380E ! 0D7E8C11>97 D<12F01230A6EA33E0EA3430EA3808EA300C1306A5130CEA3808EA3430EA ! 23E00F147F9312>II<13781318A6EA0F98EA1878EA2038EA601812C0A51260EA2038EA1858EA0F ! 9E0F147F9312>IIII<12F01230A6EA33E0EA3430EA38181230 ! A9EAFC7E0F147F9312>I<1220127012201200A512F01230AB12FC06157F9409>I<12F012 ! 30A6137C133013601380EA31001233EA3F801231EA30C0136013701330EAFC7C0E147F93 ! 11>107 D<12F01230B212FC06147F9309>I<38F3E1F03834321838381C0CEA3018A938FC ! 7E3F180D7F8C1B>IIII114 DI<1210A312301270EAFF80EA3000A71380 ! A3EA1100120E09127F910D>III<38F87CF8 ! 3870703038305820A238188840138CA2380D04801306A238060300A3150D7F8C18>III E /Fe 25 122 df<90383FE3F83901F03F1C3903C03E3E ! 0007137CEA0F80151C1500A5B612C0A2390F807C00AE397FE1FF80A21F1D809C1C>11 ! D97 DIIII<137F3801E3803803C7C0EA ! 0787120FEB8380EB8000A5EAFFF8A2EA0F80AEEA7FF0A2121D809C0F>I<3803F0F0380E ! 1F38EA3C0F3838073000781380A400381300EA3C0FEA1E1CEA33F00030C7FCA3EA3FFF14 ! C06C13E014F0387801F838F00078A300701370007813F0381E03C03807FF00151B7F9118 ! >II<12 ! 1E123FA4121EC7FCA6127FA2121FAEEAFFC0A20A1E7F9D0E>I107 DI<39FF0FC07E903831E18F3A1F ! 40F20780D980FC13C0A2EB00F8AB3AFFE7FF3FF8A225127F9128>I<38FF0FC0EB31E038 ! 1F40F0EB80F8A21300AB38FFE7FFA218127F911B>II<38FF3F80EBE1E0381F80F0EB0078147C143C143EA6143C147C1478EB80F0EBC1E0 ! EB3F0090C7FCA6EAFFE0A2171A7F911B>I<3803F060380F0CE0EA1E07EA3C03127C1278 ! 12F8A61278127C123CEA1C07EA0E0FEA03F3EA0003A6EB1FFCA2161A7E9119>III<1203A45AA25AA2EA3FFC12FFEA1F00A9130CA4EA0F08EA0798EA03F00E ! 1A7F9913>I<38FF07F8A2EA1F00AC1301120F380786FFEA01F818127F911B>I<38FFC1FC ! A2381F00601380000F13C0A23807C180A23803E300A213F7EA01F613FE6C5AA21378A213 ! 3016127F9119>I<39FF8FF8FEA2391F03E030A3390F87F06013869038C6F8E03907CC78 ! C0A23903FC7D80EBF83D143F3901F01F00A20000131EEBE00EA21F127F9122>I<38FFC7 ! FCA2381F81C0380F83803807C700EA03EEEA01FC5B1200137C13FEEA01DF38039F80EA07 ! 0F380607C0380C03E038FF07FCA216127F9119>I<38FFC1FCA2381F00601380000F13C0 ! A23807C180A23803E300A213F7EA01F613FE6C5AA21378A21330A25B1270EAF8E05BEAF9 ! 800073C7FC123E161A7F9119>I E /Ff 75 126 df<126012F0AF12601200A4126012F0 ! A212600419779816>33 DII< ! 13C01201A3EA07F0EA1FFC48B4FCEA7DCF38F1C78012E1A338F1C300EA79C0127FEA1FF0 ! EA07FCEA01FE13CFEBC780EAF1C3A3EAE1C712F13879DF00EA3FFE6C5AEA07E0EA01C0A2 ! 120011207E9C16>I<38380180EA7C03EAFE07140012EE5B130E131EEAFE1C133CEA7C38 ! 1238EA0078137013F05BA212015B12035BEB8380380787C0EB0FE0EA0F0E120E121E121C ! A2EA3C0F383807C03818038013207F9C16>I<12301278127C123C121CA3123C12381278 ! 12F012E012C0060D789816>39 D<13E01201EA07C013005A121E5A123812781270A312F0 ! 5AA77E1270A312781238123C7E7E7E13C0EA01E012000B217A9C16>I<12E07E127C121C ! 121E7EEA0780120313C01201A313E01200A7120113C0A3120313801207EA0F00121E121C ! 127C12F05A0B217C9C16>II<13E0A8B512E0A33800E000A813137F9516> ! I<1238127C127EA2123E120E121E123C127C12F81260070B798416>II<127012F8A312700505788416>III<12035A5AA2 ! 5AB4FCA212F71207AEEAFFF8A30D197B9816>III<137C13 ! FC13DC1201EA039CA2EA071C120F120E121E123C1238127812F0B512E0A338001C00A538 ! 01FFC0A313197F9816>II<127012F8 ! A312701200A8127012F8A312700512789116>58 D60 D<12E07E12FC123E6C7EEA07E06C7EEA00FC133EEB1F801307131FEB3E ! 0013FCEA03F0485AEA1F80003EC7FC12FC12F05A11157E9616>62 ! DI<13F8EA03FEEA0FFF381F0F80EA3E3FEA3CFF007913C0 ! EA73C7EAF38312E71301A5138300F31380EA73C73879FF006C5AEA3E38381F03C0EA0FFF ! 00031300EA00FC12197E9816>I<13E0487EA213B0A2EA03B8A31318EA071CA5EA0E0EA2 ! EA0FFEA2487EEA1C07A3387E0FC038FF1FE0387E0FC013197F9816>II<3801F180EA07FF5AEA1F0FEA3C0712781303127000F0C7 ! FC5AA77E387003801278A2EA3C07381F0F00EA0FFE6C5AEA01F011197E9816>II<387FFFC0B5FC7EEA1C01A490C7FCA2131CA2EA1FFCA3EA ! 1C1CA290C7FC14E0A5EA7FFFB5FC7E13197F9816>I<387FFFE0B5FC7EEA1C00A41400A2 ! 131CA2EA1FFCA3EA1C1CA290C7FCA6EA7F80487E6C5A13197F9816>I<3801F180EA07FF ! 5AEA1F0FEA3C0712781303127000F0C7FC5AA4EB1FC014E014C038F003801270EA7807A2 ! EA3C0FEA1E1FEA0FFFEA07FBEA01F313197F9816>I76 D<38FC07E0EAFE0FA2383A0B80EA3B1BA513BBEA39B3A413F3EA ! 38E3A21303A538FE0FE0A313197F9816>I<387E07F038FF0FF8387F07F0381D81C0A313 ! C1121C13E1A213611371A313311339A21319131D130DA3EA7F07EAFF87EA7F0315198098 ! 16>I80 D82 DI<387F ! FFE0B5FCA2EAE0E0A400001300AFEA07FC487E6C5A13197F9816>I<387E03F038FF07F8 ! 387E03F0383800E0A4381C01C0A3137113F9A213D9A2000C1380A3EA0DDD138DA338078F ! 00A213071519809816>87 D91 ! D<12E0A27E127012781238123C121C121E120E120F7E7F12037F1201A27F12007F137013 ! 781338133C131C131E130E130F7F14801303130111207E9C16>II<1207EA1FC0EA7FF0EAFDF8EAF078EA40100D067C9816>II<120C121C123C1278127012F012E0A312F012F812781230060D789B ! 16>II<12FCA3121CA4137CEA1DFF001F1380EB ! 07C0EA1E03381C01E0A21300A41301001E13C01303381F078013FF381DFE00EA0C781319 ! 7F9816>II<133FA31307A4EA03C7EA0FF7EA3FFFEA3C1F487EEA ! 700712F012E0A412F05BEA781FEA7C3F383FFFE0EA1FF7EA07C713197F9816>II<131FEBFF805AEA03C7EB83001380A2EA7FFFB5FCA2 ! EA0380ACEA7FFC487E6C5A11197F9816>I<3803E3C0380FFFE05A381E3CC0383C1E00EA ! 380EA3EA3C1E6C5AEA1FFC5BEA3BE00038C7FCA2EA1FFC13FF4813C0EA780338F001E0EA ! E000A3EAF001387C07C0383FFF80380FFE00EA03F8131C7F9116>I<12FCA3121CA41378 ! EA1DFEEA1FFF130FEA1E07A2121CA938FF8FE0139F138F13197F9816>I<1203EA0780A2 ! EA0300C7FCA4EAFF80A31203ACEAFFFC13FE13FC0F1A7C9916>I<13301378A213301300 ! A4EA0FF8121F120FEA0038B3EA6078EAF0F0EAFFE0EA7FC0EA3F800D237E9916>I<127E ! 12FE127E120EA4EB7FE0A3EB0F00131E5B5B5BEA0FF8A213BC131EEA0E0E130FEB078038 ! 7F87F0EAFFCFEA7F871419809816>II<38F9C38038FFEFC0EBFFE0EA3E7CEA3C78EA3870AA38FE7CF8A315128091 ! 16>IIII<38 ! 03E380EA0FFBEA1FFFEA3E1FEA780FEA7007EAF00312E0A412F0EA7007EA780FEA3C1FEA ! 3FFFEA0FFBEA03E3EA0003A6EB1FF0EB3FF8EB1FF0151B7F9116>I<387F0FC038FF3FE0 ! EA7F7F3807F040EBE0005B5BA290C7FCA7EA7FFC12FF127F13127F9116>II<12035AA4EA7FFFB5FCA20007C7FCA75BEB0380A2130713 ! 873803FF005BEA00F811177F9616>II<387F1FC038FF9FE0387F1FC0381C0700A2EA0E0EA36C5AA4EA03B8A3EA ! 01F0A26C5A13127F9116>I<38FF1FE0A338380380A4EA39F3A20019130013B3A3EA1DB7 ! 1317EA1F1FEA0F1EEA0E0E13127F9116>I<387F1FC0133F131F380F1E006C5AEA03B813 ! F012016C5A12017FEA03B8EA073C131CEA0E0E387F1FC038FF3FE0387F1FC013127F9116 ! >I<387F1FC038FF9FE0387F1FC0381C0700120E130EA212075BA2EA039CA21398EA01B8 ! A2EA00F0A35BA3485A1279127BEA7F8090C7FC123C131B7F9116>I<383FFFC05AA23870 ! 0780EB0F00131EC65A13F8485A485A485A48C7FC381E01C0123C1278B5FCA312127F9116 ! >II<12E0B3AE0320779C16>I<12FCB4FC13C012031201A97F6CB4 ! FCEB7F80A2EBFF00EA01E05BA9120312FF90C7FC12FC11207E9C16>I ! E /Fg 42 123 df<903901FF81FE011F9038EFFF80903A7F80FF87C0D9FE00EB0FE03903 ! FC01FE13F8D807F013FCEE07C093C7FCA7B712F8A32707F001FCC7FCB3A33A7FFF1FFFE0 ! A32B2A7FA928>11 D65 DI<91393FF00180903903FFFE07010FEBFF ! 8F90393FF007FF9038FF80014848C7127FD807FC143F49141F4848140F485A003F15075B ! 007F1503A3484891C7FCAB6C7EEE0380A2123F7F001F15076C6C15006C6C5C6D141ED801 ! FE5C6C6C6C13F890393FF007F0010FB512C0010391C7FC9038003FF829297CA832>IIII<91393FF00180903903FFFE07010FEBFF8F90393FF007FF9038FF80014848C712 ! 7FD807FC143F49141F4848140F485A003F15075B007F1503A3484891C7FCA992387FFFFC ! A26C7E9238007F80A26C7EA26C7E120F6C7E7FD801FE14FF6C6C7E90383FF003010FB512 ! DF010314079039003FF8012E297CA836>III ! 75 DII81 DI<90387F80603903FFF0E0000F13FF38 ! 1F807F383F001F007E13071403127C00FC1301A214007EA26C140013C0EA7FFEEBFFE06C ! 13FC14FF6C1480000714C06C14E0C66C13F01307EB007FEC0FF81407140312E01401A37E ! 15F06C13036C14E0B413079038E01FC090B5120000E15B38C01FF01D297CA826>I<007F ! B712C0A39039803FC03FD87E00140700781503A20070150100F016E0A2481500A5C71500 ! B3A4017FB512E0A32B287EA730>I87 D<3803FF80000F13F0381F01FC383F80FE14 ! 7FA2EC3F80EA1F00C7FCA3EB0FFF90B5FC3807FC3FEA1FE0EA3F80127F130012FEA3147F ! 7E6CEBFFC0393F83DFFC380FFF8F3801FC031E1B7E9A21>97 DIIIII<9038FF81F00003EBE7FC390FC1FE7C381F80FC003F13FE9038007E1048EB7F00A66C ! 137EEB80FE001F5B380FC1F8381FFFE0001813800038C8FC123CA2123E383FFFF814FF6C ! 14C06C14E06C14F0121F397E0007F8007C13015A1400A36C1301007EEB03F06CEB07E039 ! 0FC01F803903FFFE0038007FF01E287E9A22>II<12 ! 07EA1FC0EA3FE0A5EA1FC0EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7DAA14>I< ! EAFFE0A3120FACEC1FFCA3EC07C0EC0F80EC1E00147C5CEBE1F0EBE3E0EBE7C0EBEFE0EB ! FFF0A280EBF3FCEBE1FE13C080EC7F80143F15C0EC1FE0EC0FF039FFFC3FFEA31F2A7EA9 ! 24>107 DI<3BFFC07F800FF0903AC1FFE03F ! FC903AC783F0F07E3B0FCE03F9C07F903ADC01FB803F01F8D9FF00138001F05BA301E05B ! AF3CFFFE1FFFC3FFF8A3351B7D9A3A>I<38FFC07F9038C1FFC09038C787E0390FCE07F0 ! 9038DC03F813F813F0A313E0AF3AFFFE3FFF80A3211B7D9A26>II<38FFE1FE9038 ! E7FF809038FE07E0390FF803F8496C7E01E07F140081A2ED7F80A9EDFF00A25DEBF0014A ! 5A01F85B9038FE0FE09038EFFF80D9E1FCC7FC01E0C8FCA9EAFFFEA321277E9A26>I<38 ! FFC1F0EBC7FCEBCE3E380FDC7F13D813F813F0143E14005BAFB5FCA3181B7E9A1C>114 ! D<3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE013FE387FFFC0 ! 6C13E06C13F0000713F8C613FC1307EAE000147C6C133CA27E14787E38FF01F038F7FFC0 ! 00C11300161B7E9A1B>I<1370A413F0A312011203A21207381FFFF0B5FCA23807F000AD ! 1438A73803F870000113F03800FFE0EB1F8015267FA51B>I<39FFE03FF8A3000F1303B1 ! 1407A2140F0007131F3A03F03BFF803801FFF338003FC3211B7D9A26>I<3AFFFE03FF80 ! A33A0FF0007800000714706D13F000035CEBFC0100015CA26C6C485AA2EBFF07017F90C7 ! FC148FEB3F8E14CEEB1FDCA2EB0FF8A36D5AA26D5AA26D5A211B7F9A24>I<3BFFFC3FFC ! 0FFEA33B0FE007E000E03B07F003F001C0A29039F807F80300031680A23B01FC0EFC0700 ! A291381EFE0F3A00FE1C7E0EA29039FF383F1E017F141C147890393FF01FB8A29138E00F ! F8011F5CA26D486C5AA36D486C5AA22F1B7F9A32>I<39FFFC0FFFA33907F003C0D803F8 ! 5B3801FC076C6C48C7FCEBFF1E6D5AEB3FF86D5AA2130F130780497E497E131EEB3C7F49 ! 6C7E496C7ED801E07F3803C00F6E7E3AFFF01FFF80A3211B7F9A24>I<3AFFFE03FF80A3 ! 3A0FF0007800000714706D13F000035CEBFC0100015CA26C6C485AA2EBFF07017F90C7FC ! 148FEB3F8E14CEEB1FDCA2EB0FF8A36D5AA26D5AA26D5AA2495AA2EA3807007C90C8FCEA ! FE0F130E5B133CEA7C78EA3FE0EA0F8021277F9A24>I<003FB51280A21300003C140038 ! 3801FE387803FC130700705B495A495A1200495A495A13FF91C7FC3901FE0380EA03FCA2 ! EA07F8380FF007121F01E0130048485A48485A00FF137F90B5FCA2191B7E9A1F>I ! E /Fh 62 124 df11 D<137E3801C180EA0301380703C0120EEB ! 018090C7FCA5B512C0EA0E01B0387F87F8151D809C17>I34 D<126012F012F812681208A3 ! 1210A2122012401280050C7C9C0C>39 D<1380EA0100120212065AA25AA25AA35AA412E0 ! AC1260A47EA37EA27EA27E12027EEA0080092A7C9E10>I<7E12407E12307EA27EA27EA3 ! 7EA41380AC1300A41206A35AA25AA25A12205A5A092A7E9E10>I<126012F0A212701210 ! A41220A212401280040C7C830C>44 DI<126012F0A212600404 ! 7C830C>I<1303A213071306A2130E130C131C1318A213381330A213701360A213E013C0 ! A21201138012031300A25A1206A2120E120CA2121C1218A21238123012701260A212E05A ! A210297E9E15>I<5A1207123F12C71207B3A5EAFFF80D1C7C9B15>49 ! DI< ! EA07E0EA1830EA201CA2EA781E130E131E1238EA001CA2131813301360EA07C0EA003013 ! 1CA2130E130FA2127012F8A3EAF00EEA401C1220EA1830EA07C0101D7E9B15>I<130CA2 ! 131C133CA2135C13DC139CEA011C120312021204120C1208121012301220124012C0B512 ! C038001C00A73801FFC0121C7F9B15>II<13F0EA030CEA0404EA0C0EEA181E1230130CEA7000A21260EAE3E0EAE4 ! 30EAE818EAF00C130EEAE0061307A51260A2EA7006EA300E130CEA1818EA0C30EA03E010 ! 1D7E9B15>I57 D<126012F0A212601200AA126012F0A2126004127C910C>I<1306A3130FA3 ! EB1780A2EB37C01323A2EB43E01341A2EB80F0A338010078A2EBFFF83802003CA3487FA2 ! 000C131F80001E5BB4EBFFF01C1D7F9C1F>65 D68 ! DII<90381F8080EBE061380180 ! 1938070007000E13035A14015A00781300A2127000F01400A6ECFFF0EC0F800070130712 ! 78A212387EA27E6C130B380180113800E06090381F80001C1E7E9C21>I<39FFF0FFF039 ! 0F000F00AC90B5FCEB000FAD39FFF0FFF01C1C7F9B1F>II76 DIII<007FB512C038700F010060130000401440A200C014201280A3000014 ! 00B1497E3803FFFC1B1C7F9B1E>84 D<39FFF01FF0390F000380EC0100B3A26C13021380 ! 00035BEA01C03800E018EB7060EB0F801C1D7F9B1F>I<39FFE00FF0391F0003C0EC0180 ! 6C1400A238078002A213C000035BA2EBE00C00011308A26C6C5AA213F8EB7820A26D5AA3 ! 6D5AA2131F6DC7FCA21306A31C1D7F9B1F>I<3AFFE1FFC0FF3A1F003E003C001E013C13 ! 186C6D1310A32607801F1320A33A03C0278040A33A01E043C080A33A00F081E100A39038 ! F900F3017913F2A2017E137E013E137CA2013C133C011C1338A20118131801081310281D ! 7F9B2B>I<39FFF07FC0390FC01E003807800CEBC00800035B6C6C5A13F000005BEB7880 ! 137C013DC7FC133E7F7F80A2EB13C0EB23E01321EB40F0497E14783801007C00027F141E ! 0006131F001F148039FF807FF01C1C7F9B1F>I92 D97 ! D<12FC121CAA137CEA1D87381E0180381C00C014E014601470A6146014E014C0381E0180 ! 38190700EA10FC141D7F9C17>IIII<13F8EA018CEA071E1206EA0E0C1300A6EAFFE0EA0E00B0EA7F ! E00F1D809C0D>II<12FC121CAA137C1387EA1D03001E1380121CAD38 ! FF9FF0141D7F9C17>I<1218123CA21218C7FCA712FC121CB0EAFF80091D7F9C0C>I<13C0 ! EA01E0A2EA00C01300A7EA07E01200B3A21260EAF0C012F1EA6180EA3E000B25839C0D> ! I<12FC121CAAEB0FE0EB0780EB06005B13105B5B13E0121DEA1E70EA1C781338133C131C ! 7F130F148038FF9FE0131D7F9C16>I<12FC121CB3A9EAFF80091D7F9C0C>I<39FC7E07E0 ! 391C838838391D019018001EEBE01C001C13C0AD3AFF8FF8FF8021127F9124>IIII<3803E080EA0E19EA1805EA3807EA7003A212E0 ! A61270A2EA38071218EA0E1BEA03E3EA0003A7EB1FF0141A7F9116>II ! I<1204A4120CA2121C123CEAFFE0EA1C00A91310A5120CEA0E20EA03C00C1A7F9910>I< ! 38FC1F80EA1C03AD1307120CEA0E1B3803E3F014127F9117>I<38FF07E0383C0380381C ! 0100A2EA0E02A2EA0F06EA0704A2EA0388A213C8EA01D0A2EA00E0A3134013127F9116> ! I<39FF3FC7E0393C0703C0001CEB01801500130B000E1382A21311000713C4A213203803 ! A0E8A2EBC06800011370A2EB8030000013201B127F911E>I<38FF0FE0381E0700EA1C06 ! EA0E046C5AEA039013B0EA01E012007F12011338EA021C1204EA0C0E487E003C138038FE ! 1FF014127F9116>I<38FF07E0383C0380381C0100A2EA0E02A2EA0F06EA0704A2EA0388 ! A213C8EA01D0A2EA00E0A31340A25BA212F000F1C7FC12F312661238131A7F9116>III E /Fi ! 15 116 df<913A03FF800380023FEBF00749B5EAFC0F01079038007F1FD91FF8EB0FFFD9 ! 7FE0130349487F4890C8FC4848157F0007163F4848151F485A170F123F5B1707127FA249 ! 92C7FC12FFAB127F7FEF0380123FA27F001F160718006C6C5D6C6C150E6C6C151E6C5E6C ! 01C05C6D6C495AD91FF8495AD907FFEB3F800101D9FFFEC7FCD9003F13F8020313803131 ! 7BB03C>67 D69 D<913A03FF800380023FEBF00749 ! B5EAFC0F01079038007F1FD91FF8EB0FFFD97FE0130349487F4890C8FC4848157F000716 ! 3F4848151F485A170F123F5B1707127FA24992C7FC12FFA90307B512FEA2127F6DD90001 ! 1380A2123FA27F121F7F120F6C7E6C7E6C7F6C6D5B6D7ED91FF85B903907FF803F010190 ! 38FFFE1FD9003FEBF8070203EBC00137317BB041>71 D ! 78 D82 D85 D97 D99 ! DII<14FF010713C0011F13F0EB7FC79038FF0FF85A13FE ! 120313FCEC07F0EC01C091C7FCA7B512FCA3D803FCC7FCB3A8387FFFF0A31D327EB119> ! I<2703F007F8EB0FF000FFD93FFFEB7FFE4A6DB5FC903CF1F03FC3E07F803D0FF3C01FE7 ! 803FC02607F780EBEF009126000FFEEB1FE001FE5C495CA2495CB3B500C1B50083B5FCA3 ! 40207D9F45>109 D<3903F007F800FFEB3FFF4A7F9039F1F03FC03A0FF3C01FE03807F7 ! 804A6C7E13FE5BA25BB3B500C1B51280A329207D9F2E>I<3803F03F00FFEBFFC001F113 ! F0EBF3C7390FF78FF80007130F13FEA29038FC07F0EC03E0EC008015005BB1B512E0A31D ! 207E9F22>114 DI E end %%EndProlog %%BeginSetup ! %%Feature: *Resolution 300dpi TeXDict begin + %%PaperSize: a4 %%EndSetup %%Page: 1 1 ! 1 0 bop 79 -160 a Fi(GNU)27 b(Emacs)g(Reference)f(Card)461 ! -92 y Fh(\(for)14 b(v)o(ersion)g(19\))0 28 y Fg(Starting)23 ! b(Emacs)0 125 y Fh(T)m(o)13 b(en)o(ter)i(GNU)f(Emacs)f(19,)g(just)h(t)o ! (yp)q(e)g(its)g(name:)j Ff(emacs)0 192 y Fh(T)m(o)c(read)h(in)g(a)f ! (\014le)h(to)g(edit,)g(see)h(Files,)e(b)q(elo)o(w.)0 ! 306 y Fg(Lea)n(ving)23 b(Emacs)0 403 y Fh(susp)q(end)15 ! b(Emacs)f(\(or)g(iconify)e(it)i(under)h(X\))202 b Ff(C-z)0 ! 453 y Fh(exit)14 b(Emacs)f(p)q(ermanen)o(tly)458 b Ff(C-x)21 ! b(C-c)0 567 y Fg(Files)0 665 y Fe(read)13 b Fh(a)h(\014le)g(in)o(to)f ! (Emacs)490 b Ff(C-x)21 b(C-f)0 715 y Fe(sa)o(v)o(e)13 ! b Fh(a)h(\014le)g(bac)o(k)g(to)f(disk)478 b Ff(C-x)21 ! b(C-s)0 764 y Fh(sa)o(v)o(e)14 b Fe(all)f Fh(\014les)678 ! b Ff(C-x)21 b(s)0 814 y Fe(insert)12 b Fh(con)o(ten)o(ts)j(of)e ! (another)h(\014le)g(in)o(to)f(this)h(bu\013er)68 b Ff(C-x)21 ! b(i)0 864 y Fh(replace)15 b(this)f(\014le)g(with)f(the)i(\014le)f(y)o ! (ou)f(really)g(w)o(an)o(t)98 b Ff(C-x)21 b(C-v)0 914 ! y Fh(write)14 b(bu\013er)h(to)f(a)f(sp)q(eci\014ed)j(\014le)369 ! b Ff(C-x)21 b(C-w)0 964 y Fh(v)o(ersion)14 b(con)o(trol)g(c)o(hec)o ! (kin/c)o(hec)o(k)o(out)310 b Ff(C-x)21 b(C-q)0 1084 y ! Fg(Getting)h(Help)0 1182 y Fh(The)14 b(Help)f(system)g(is)g(simple.)j ! (T)o(yp)q(e)d Ff(C-h)g Fh(\(or)g Ff(F1)p Fh(\))g(and)g(follo)o(w)e(the) ! i(direc-)0 1231 y(tions.)18 b(If)13 b(y)o(ou)h(are)g(a)g(\014rst-time)f ! (user,)h(t)o(yp)q(e)h Ff(C-h)21 b(t)14 b Fh(for)f(a)h ! Fe(tutorial)p Fh(.)0 1298 y(remo)o(v)o(e)f(Help)h(windo)o(w)522 ! b Ff(C-x)21 b(1)0 1347 y Fh(scroll)14 b(Help)g(windo)o(w)555 ! b Ff(C-M-v)0 1414 y Fh(aprop)q(os:)18 b(sho)o(w)c(commands)d(matc)o ! (hing)i(a)g(string)100 b Ff(C-h)21 b(a)0 1463 y Fh(sho)o(w)14 ! b(the)g(function)g(a)g(k)o(ey)f(runs)376 b Ff(C-h)21 ! b(c)0 1513 y Fh(describ)q(e)16 b(a)d(function)556 b Ff(C-h)21 ! b(f)0 1563 y Fh(get)14 b(mo)q(de-sp)q(eci\014c)g(information)361 ! b Ff(C-h)21 b(m)0 1677 y Fg(Error)j(Reco)n(v)n(ery)0 ! 1775 y Fe(ab)q(ort)13 b Fh(partially)f(t)o(yp)q(ed)j(or)f(executing)g ! (command)75 b Ff(C-g)0 1825 y Fe(reco)o(v)o(er)13 b Fh(a)g(\014le)h ! (lost)g(b)o(y)f(a)h(system)g(crash)144 b Ff(M-x)21 b(recover-file)0 ! 1874 y Fe(undo)12 b Fh(an)i(un)o(w)o(an)o(ted)g(c)o(hange)414 ! b Ff(C-x)21 b(u)h Fh(or)g Ff(C-_)0 1924 y Fh(restore)16 ! b(a)d(bu\013er)i(to)f(its)g(original)e(con)o(ten)o(ts)115 ! b Ff(M-x)21 b(revert-buffer)0 1974 y Fh(redra)o(w)14 ! b(garbaged)g(screen)476 b Ff(C-l)0 2088 y Fg(Incremen)n(tal)21 ! b(Searc)n(h)0 2186 y Fh(searc)o(h)15 b(forw)o(ard)635 ! b Ff(C-s)0 2236 y Fh(searc)o(h)15 b(bac)o(kw)o(ard)602 ! b Ff(C-r)0 2285 y Fh(regular)14 b(expression)h(searc)o(h)448 ! b Ff(C-M-s)0 2335 y Fh(rev)o(erse)16 b(regular)e(expression)h(searc)o ! (h)309 b Ff(C-M-r)0 2401 y Fh(select)15 b(previous)f(searc)o(h)i ! (string)391 b Ff(M-p)0 2451 y Fh(select)15 b(next)g(later)f(searc)o(h)h ! (string)366 b Ff(M-n)0 2501 y Fh(exit)14 b(incremen)o(tal)f(searc)o(h) ! 482 b Ff(RET)0 2551 y Fh(undo)14 b(e\013ect)h(of)f(last)f(c)o(haracter) ! 395 b Ff(DEL)0 2601 y Fh(ab)q(ort)14 b(curren)o(t)h(searc)o(h)533 ! b Ff(C-g)0 2667 y Fh(Use)18 b Ff(C-s)e Fh(or)h Ff(C-r)f ! Fh(again)f(to)i(rep)q(eat)h(the)f(searc)o(h)h(in)f(either)g(direction.) ! 27 b(If)0 2717 y(Emacs)13 b(is)h(still)f(searc)o(hing,)h ! Ff(C-g)f Fh(cancels)i(only)e(the)i(part)f(not)f(done.)129 ! 2783 y Fd(c)120 2784 y Fc(\015)e Fd(1996)e(F)m(ree)j(Soft)o(w)o(are)e ! (F)m(oundation,)j(Inc.)i(P)o(ermissions)e(on)e(bac)o(k.)k(v2.1)1929 ! 2832 y Fh(1)p eop %%Page: 2 2 ! 2 1 bop 0 -168 a Fg(Motion)0 -65 y Fe(en)o(tit)o(y)13 ! b(to)j(mo)o(v)o(e)f(o)o(v)o(er)350 b(bac)o(kw)o(ard)41 ! b(forw)o(ard)0 -15 y Fh(c)o(haracter)593 b Ff(C-b)173 ! b(C-f)0 35 y Fh(w)o(ord)670 b Ff(M-b)173 b(M-f)0 84 y ! Fh(line)694 b Ff(C-p)173 b(C-n)0 134 y Fh(go)13 b(to)h(line)f(b)q ! (eginning)h(\(or)g(end\))237 b Ff(C-a)173 b(C-e)0 184 ! y Fh(sen)o(tence)610 b Ff(M-a)173 b(M-e)0 234 y Fh(paragraph)574 ! b Ff(M-{)173 b(M-})0 284 y Fh(page)676 b Ff(C-x)21 b([)130 ! b(C-x)21 b(])0 333 y Fh(sexp)680 b Ff(C-M-b)129 b(C-M-f)0 ! 383 y Fh(function)610 b Ff(C-M-a)129 b(C-M-e)0 433 y ! Fh(go)13 b(to)h(bu\013er)h(b)q(eginning)e(\(or)h(end\))197 ! b Ff(M-<)173 b(M->)0 501 y Fh(scroll)14 b(to)f(next)i(screen)538 ! b Ff(C-v)0 551 y Fh(scroll)14 b(to)f(previous)i(screen)466 ! b Ff(M-v)0 600 y Fh(scroll)14 b(left)732 b Ff(C-x)21 ! b(<)0 650 y Fh(scroll)14 b(righ)o(t)704 b Ff(C-x)21 b(>)0 ! 700 y Fh(scroll)14 b(curren)o(t)h(line)f(to)f(cen)o(ter)j(of)d(screen) ! 238 b Ff(C-u)21 b(C-l)0 821 y Fg(Killi)o(ng)g(and)i(Deleting)0 ! 925 y Fe(en)o(tit)o(y)13 b(to)j(kill)496 b(bac)o(kw)o(ard)41 ! b(forw)o(ard)0 975 y Fh(c)o(haracter)15 b(\(delete,)g(not)f(kill\))282 ! b Ff(DEL)173 b(C-d)0 1024 y Fh(w)o(ord)670 b Ff(M-DEL)129 ! b(M-d)0 1074 y Fh(line)13 b(\(to)h(end)h(of)s(\))482 ! b Ff(M-0)21 b(C-k)86 b(C-k)0 1124 y Fh(sen)o(tence)610 ! b Ff(C-x)21 b(DEL)86 b(M-k)0 1174 y Fh(sexp)680 b Ff(M--)21 ! b(C-M-k)42 b(C-M-k)0 1242 y Fh(kill)12 b Fe(region)699 ! b Ff(C-w)0 1291 y Fh(cop)o(y)14 b(region)g(to)f(kill)g(ring)485 ! b Ff(M-w)0 1341 y Fh(kill)12 b(through)i(next)h(o)q(ccurrence)h(of)e ! Fb(char)246 b Ff(M-z)21 b Fb(char)0 1409 y Fh(y)o(ank)13 ! b(bac)o(k)h(last)g(thing)f(killed)417 b Ff(C-y)0 1459 ! y Fh(replace)15 b(last)e(y)o(ank)h(with)f(previous)i(kill)262 ! b Ff(M-y)0 1585 y Fg(Marking)0 1688 y Fh(set)15 b(mark)d(here)653 ! b Ff(C-@)21 b Fh(or)h Ff(C-SPC)0 1738 y Fh(exc)o(hange)15 ! b(p)q(oin)o(t)e(and)h(mark)438 b Ff(C-x)21 b(C-x)0 1806 ! y Fh(set)15 b(mark)d Fb(ar)n(g)17 b Fe(w)o(ords)c Fh(a)o(w)o(a)o(y)428 ! b Ff(M-@)0 1856 y Fh(mark)12 b Fe(paragraph)579 b Ff(M-h)0 ! 1906 y Fh(mark)12 b Fe(page)697 b Ff(C-x)21 b(C-p)0 1955 ! y Fh(mark)12 b Fe(sexp)700 b Ff(C-M-@)0 2005 y Fh(mark)12 ! b Fe(function)619 b Ff(C-M-h)0 2055 y Fh(mark)12 b(en)o(tire)j ! Fe(bu\013er)552 b Ff(C-x)21 b(h)0 2176 y Fg(Query)i(Replace)0 ! 2280 y Fh(in)o(teractiv)o(ely)14 b(replace)g(a)g(text)h(string)296 ! b Ff(M-\045)0 2330 y Fh(using)14 b(regular)g(expressions)226 ! b Ff(M-x)21 b(query-replace-rege)o(xp)0 2397 y Fh(V)m(alid)12 ! b(resp)q(onses)17 b(in)c(query-replace)i(mo)q(de)e(are)0 ! 2465 y Fe(replace)f Fh(this)i(one,)g(go)f(on)h(to)g(next)327 ! b Ff(SPC)0 2515 y Fh(replace)15 b(this)f(one,)f(don't)h(mo)o(v)o(e)387 ! b Ff(,)0 2565 y Fe(skip)13 b Fh(to)g(next)i(without)e(replacing)340 ! b Ff(DEL)0 2614 y Fh(replace)15 b(all)d(remaining)g(matc)o(hes)361 ! b Ff(!)0 2664 y Fe(bac)o(k)16 b(up)d Fh(to)g(the)i(previous)f(matc)o(h) ! 322 b Ff(^)0 2714 y Fe(exit)13 b Fh(query-replace)566 ! b Ff(RET)0 2764 y Fh(en)o(ter)15 b(recursiv)o(e)g(edit)f(\()p ! Ff(C-M-c)f Fh(to)h(exit\))265 b Ff(C-r)1929 2832 y Fh(2)p ! eop %%Page: 3 3 ! 3 2 bop 0 -168 a Fg(Multiple)20 b(Windo)n(ws)0 -86 y ! Fh(When)14 b(t)o(w)o(o)f(commands)f(are)i(sho)o(wn,)g(the)g(second)h ! (is)f(for)f(\\other)i(frame.")0 -24 y(delete)g(all)e(other)h(windo)o ! (ws)460 b Ff(C-x)21 b(1)0 38 y Fh(split)13 b(windo)o(w)h(in)f(t)o(w)o ! (o)g(v)o(ertically)230 b Ff(C-x)21 b(2)129 b(C-x)21 b(5)h(2)0 ! 88 y Fh(delete)15 b(this)f(windo)o(w)429 b Ff(C-x)21 ! b(0)129 b(C-x)21 b(5)h(0)0 150 y Fh(split)13 b(windo)o(w)h(in)f(t)o(w)o ! (o)g(horizon)o(tally)314 b Ff(C-x)21 b(3)0 213 y Fh(scroll)14 ! b(other)g(windo)o(w)545 b Ff(C-M-v)0 275 y Fh(switc)o(h)14 ! b(cursor)h(to)f(another)g(windo)o(w)174 b Ff(C-x)21 b(o)129 ! b(C-x)21 b(5)h(o)0 325 y Fh(select)15 b(bu\013er)g(in)f(other)g(windo)o ! (w)241 b Ff(C-x)21 b(4)h(b)85 b(C-x)21 b(5)h(b)0 375 ! y Fh(displa)o(y)13 b(bu\013er)i(in)e(other)i(windo)o(w)213 ! b Ff(C-x)21 b(4)h(C-o)41 b(C-x)21 b(5)h(C-o)0 424 y Fh(\014nd)14 ! b(\014le)g(in)f(other)i(windo)o(w)323 b Ff(C-x)21 b(4)h(f)85 ! b(C-x)21 b(5)h(f)0 474 y Fh(\014nd)14 b(\014le)g(read-only)f(in)h ! (other)g(windo)o(w)140 b Ff(C-x)21 b(4)h(r)85 b(C-x)21 ! b(5)h(r)0 524 y Fh(run)14 b(Dired)g(in)f(other)i(windo)o(w)282 ! b Ff(C-x)21 b(4)h(d)85 b(C-x)21 b(5)h(d)0 574 y Fh(\014nd)14 ! b(tag)g(in)f(other)h(windo)o(w)319 b Ff(C-x)21 b(4)h(.)85 ! b(C-x)21 b(5)h(.)0 636 y Fh(gro)o(w)13 b(windo)o(w)g(taller)554 ! b Ff(C-x)21 b(^)0 686 y Fh(shrink)14 b(windo)o(w)f(narro)o(w)o(er)464 ! b Ff(C-x)21 b({)0 736 y Fh(gro)o(w)13 b(windo)o(w)g(wider)550 ! b Ff(C-x)21 b(})0 830 y Fg(F)-6 b(ormatting)0 912 y Fh(inden)o(t)14 ! b(curren)o(t)h Fe(line)d Fh(\(mo)q(de-dep)q(enden)o(t\))209 ! b Ff(TAB)0 962 y Fh(inden)o(t)14 b Fe(region)e Fh(\(mo)q(de-dep)q ! (enden)o(t\))299 b Ff(C-M-\\)0 1012 y Fh(inden)o(t)14 ! b Fe(sexp)f Fh(\(mo)q(de-dep)q(enden)o(t\))336 b Ff(C-M-q)0 ! 1062 y Fh(inden)o(t)14 b(region)g(rigidly)e Fb(ar)n(g)17 ! b Fh(columns)295 b Ff(C-x)21 b(TAB)0 1124 y Fh(insert)15 ! b(newline)f(after)g(p)q(oin)o(t)441 b Ff(C-o)0 1174 y ! Fh(mo)o(v)o(e)12 b(rest)j(of)f(line)f(v)o(ertically)g(do)o(wn)309 ! b Ff(C-M-o)0 1224 y Fh(delete)15 b(blank)e(lines)h(around)g(p)q(oin)o ! (t)335 b Ff(C-x)21 b(C-o)0 1273 y Fh(join)13 b(line)g(with)h(previous)g ! (\(with)g(arg,)f(next\))191 b Ff(M-^)0 1323 y Fh(delete)15 ! b(all)e(white)h(space)h(around)e(p)q(oin)o(t)263 b Ff(M-\\)0 ! 1373 y Fh(put)14 b(exactly)g(one)g(space)h(at)f(p)q(oin)o(t)348 ! b Ff(M-SPC)0 1435 y Fh(\014ll)13 b(paragraph)655 b Ff(M-q)0 ! 1485 y Fh(set)15 b(\014ll)e(column)642 b Ff(C-x)21 b(f)0 ! 1535 y Fh(set)15 b(pre\014x)f(eac)o(h)h(line)e(starts)i(with)350 ! b Ff(C-x)21 b(.)0 1597 y Fh(set)15 b(face)765 b Ff(M-g)0 ! 1697 y Fg(Case)23 b(Change)0 1779 y Fh(upp)q(ercase)16 ! b(w)o(ord)618 b Ff(M-u)0 1829 y Fh(lo)o(w)o(ercase)15 ! b(w)o(ord)628 b Ff(M-l)0 1879 y Fh(capitalize)13 b(w)o(ord)627 ! b Ff(M-c)0 1941 y Fh(upp)q(ercase)16 b(region)596 b Ff(C-x)21 ! b(C-u)0 1991 y Fh(lo)o(w)o(ercase)15 b(region)606 b Ff(C-x)21 ! b(C-l)0 2085 y Fg(The)h(Minibu\013er)0 2167 y Fh(The)14 ! b(follo)o(wing)e(k)o(eys)i(are)g(de\014ned)h(in)f(the)g(minibu\013er.)0 ! 2230 y(complete)f(as)h(m)o(uc)o(h)f(as)h(p)q(ossible)370 ! b Ff(TAB)0 2279 y Fh(complete)13 b(up)h(to)g(one)g(w)o(ord)449 ! b Ff(SPC)0 2329 y Fh(complete)13 b(and)h(execute)511 ! b Ff(RET)0 2379 y Fh(sho)o(w)14 b(p)q(ossible)g(completions)425 ! b Ff(?)0 2429 y Fh(fetc)o(h)14 b(previous)h(minibu\013er)d(input)337 ! b Ff(M-p)0 2479 y Fh(fetc)o(h)14 b(next)h(later)f(minibu\013er)e(input) ! 312 b Ff(M-n)0 2528 y Fh(regexp)15 b(searc)o(h)g(bac)o(kw)o(ard)f ! (through)f(history)173 b Ff(M-r)0 2578 y Fh(regexp)15 ! b(searc)o(h)g(forw)o(ard)e(through)h(history)206 b Ff(M-s)0 ! 2628 y Fh(ab)q(ort)14 b(command)610 b Ff(C-g)0 2690 y ! Fh(T)o(yp)q(e)13 b Ff(C-x)21 b(ESC)g(ESC)12 b Fh(to)g(edit)h(and)g(rep) ! q(eat)g(the)g(last)g(command)c(that)k(used)0 2740 y(the)g ! (minibu\013er.)k(T)o(yp)q(e)c Ff(F10)f Fh(to)g(activ)n(ate)h(the)g(men) ! o(u)f(bar)h(using)f(the)h(mini-)0 2790 y(bu\013er.)1929 ! 2832 y(3)p eop %%Page: 4 4 ! 4 3 bop 79 -160 a Fi(GNU)27 b(Emacs)g(Reference)f(Card)0 ! -21 y Fg(Bu\013ers)0 82 y Fh(select)15 b(another)g(bu\013er)530 ! b Ff(C-x)21 b(b)0 132 y Fh(list)13 b(all)g(bu\013ers)653 ! b Ff(C-x)21 b(C-b)0 182 y Fh(kill)12 b(a)i(bu\013er)691 ! b Ff(C-x)21 b(k)0 303 y Fg(T)-6 b(ransp)r(osing)0 407 ! y Fh(transp)q(ose)15 b Fe(c)o(haracters)500 b Ff(C-t)0 ! 457 y Fh(transp)q(ose)15 b Fe(w)o(ords)591 b Ff(M-t)0 ! 506 y Fh(transp)q(ose)15 b Fe(lines)618 b Ff(C-x)21 b(C-t)0 ! 556 y Fh(transp)q(ose)15 b Fe(sexps)602 b Ff(C-M-t)0 ! 678 y Fg(Sp)r(elling)21 b(Chec)n(k)0 781 y Fh(c)o(hec)o(k)15 ! b(sp)q(elling)e(of)g(curren)o(t)j(w)o(ord)356 b Ff(M-$)0 ! 831 y Fh(c)o(hec)o(k)15 b(sp)q(elling)e(of)g(all)g(w)o(ords)h(in)g ! (region)166 b Ff(M-x)21 b(ispell-region)0 881 y Fh(c)o(hec)o(k)15 ! b(sp)q(elling)e(of)g(en)o(tire)i(bu\013er)282 b Ff(M-x)21 ! b(ispell-buffer)0 1006 y Fg(T)-6 b(ags)0 1110 y Fh(\014nd)14 ! b(a)g(tag)f(\(a)h(de\014nition\))473 b Ff(M-.)0 1160 ! y Fh(\014nd)14 b(next)g(o)q(ccurrence)j(of)c(tag)412 ! b Ff(C-u)21 b(M-.)0 1210 y Fh(sp)q(ecify)14 b(a)g(new)g(tags)g(\014le) ! 366 b Ff(M-x)21 b(visit-tags-table)0 1277 y Fh(regexp)15 ! b(searc)o(h)g(on)e(all)g(\014les)h(in)g(tags)g(table)129 ! b Ff(M-x)21 b(tags-search)0 1327 y Fh(run)14 b(query-replace)h(on)f ! (all)f(the)h(\014les)133 b Ff(M-x)21 b(tags-query-repla)o(ce)0 ! 1377 y Fh(con)o(tin)o(ue)14 b(last)g(tags)g(searc)o(h)h(or)e ! (query-replace)150 b Ff(M-,)0 1498 y Fg(Shells)0 1602 ! y Fh(execute)16 b(a)d(shell)h(command)444 b Ff(M-!)0 ! 1651 y Fh(run)14 b(a)g(shell)g(command)d(on)i(the)i(region)265 ! b Ff(M-|)0 1701 y Fh(\014lter)14 b(region)g(through)g(a)f(shell)h ! (command)212 b Ff(C-u)21 b(M-|)0 1751 y Fh(start)15 b(a)e(shell)h(in)f ! (windo)o(w)g Ff(*shell*)231 b(M-x)21 b(shell)0 1872 y ! Fg(Rectangles)0 1976 y Fh(cop)o(y)14 b(rectangle)h(to)e(register)442 ! b Ff(C-x)21 b(r)h(r)0 2026 y Fh(kill)12 b(rectangle)667 ! b Ff(C-x)21 b(r)h(k)0 2075 y Fh(y)o(ank)13 b(rectangle)637 ! b Ff(C-x)21 b(r)h(y)0 2125 y Fh(op)q(en)14 b(rectangle,)h(shifting)e ! (text)h(righ)o(t)288 b Ff(C-x)21 b(r)h(o)0 2175 y Fh(blank)13 ! b(out)h(rectangle)549 b Ff(C-x)21 b(r)h(c)0 2225 y Fh(pre\014x)15 ! b(eac)o(h)f(line)f(with)h(a)g(string)378 b Ff(C-x)21 ! b(r)h(t)0 2346 y Fg(Abbrevs)0 2450 y Fh(add)14 b(global)e(abbrev)574 ! b Ff(C-x)21 b(a)h(g)0 2499 y Fh(add)14 b(mo)q(de-lo)q(cal)e(abbrev)486 ! b Ff(C-x)21 b(a)h(l)0 2549 y Fh(add)14 b(global)e(expansion)i(for)f ! (this)h(abbrev)237 b Ff(C-x)21 b(a)h(i)f(g)0 2599 y Fh(add)14 ! b(mo)q(de-lo)q(cal)e(expansion)h(for)h(this)g(abbrev)149 ! b Ff(C-x)21 b(a)h(i)f(l)0 2649 y Fh(explicitly)13 b(expand)h(abbrev)453 ! b Ff(C-x)21 b(a)h(e)0 2716 y Fh(expand)14 b(previous)g(w)o(ord)g ! (dynamically)266 b Ff(M-/)1929 2832 y Fh(4)p eop %%Page: 5 5 ! 5 4 bop 0 -168 a Fg(Regular)22 b(Expressions)0 -65 y ! Fh(an)o(y)13 b(single)h(c)o(haracter)h(except)h(a)d(newline)224 ! b Ff(.)43 b Fh(\(dot\))0 -15 y(zero)15 b(or)f(more)e(rep)q(eats)529 ! b Ff(*)0 35 y Fh(one)14 b(or)g(more)f(rep)q(eats)540 ! b Ff(+)0 84 y Fh(zero)15 b(or)f(one)g(rep)q(eat)572 b ! Ff(?)0 134 y Fh(an)o(y)13 b(c)o(haracter)j(in)d(the)i(set)470 ! b Ff([)22 b Fa(:)7 b(:)g(:)20 b Ff(])0 184 y Fh(an)o(y)13 ! b(c)o(haracter)j(not)d(in)h(the)g(set)397 b Ff([^)21 ! b Fa(:)7 b(:)g(:)21 b Ff(])0 234 y Fh(b)q(eginning)13 ! b(of)h(line)597 b Ff(^)0 284 y Fh(end)14 b(of)g(line)709 ! b Ff($)0 333 y Fh(quote)14 b(a)g(sp)q(ecial)g(c)o(haracter)h ! Fb(c)416 b Ff(\\)p Fb(c)0 383 y Fh(alternativ)o(e)14 ! b(\(\\or"\))581 b Ff(\\|)0 433 y Fh(grouping)740 b Ff(\\\()21 ! b Fa(:)7 b(:)g(:)21 b Ff(\\\))0 483 y Fb(n)s Fh(th)15 ! b(group)716 b Ff(\\)p Fb(n)0 533 y Fh(b)q(eginning)13 ! b(of)h(bu\013er)558 b Ff(\\`)0 583 y Fh(end)14 b(of)g(bu\013er)670 ! b Ff(\\')0 632 y Fh(w)o(ord)14 b(break)697 b Ff(\\b)0 ! 682 y Fh(not)14 b(b)q(eginning)f(or)h(end)g(of)g(w)o(ord)370 ! b Ff(\\B)0 732 y Fh(b)q(eginning)13 b(of)h(w)o(ord)573 ! b Ff(\\<)0 782 y Fh(end)14 b(of)g(w)o(ord)685 b Ff(\\>)0 ! 832 y Fh(an)o(y)13 b(w)o(ord-syn)o(tax)h(c)o(haracter)420 ! b Ff(\\w)0 881 y Fh(an)o(y)13 b(non-w)o(ord-syn)o(tax)h(c)o(haracter) ! 339 b Ff(\\W)0 931 y Fh(c)o(haracter)15 b(with)f(syn)o(tax)g ! Fb(c)472 b Ff(\\s)p Fb(c)0 981 y Fh(c)o(haracter)15 b(with)f(syn)o(tax) ! g(not)f Fb(c)399 b Ff(\\S)p Fb(c)0 1102 y Fg(Registers)0 ! 1206 y Fh(sa)o(v)o(e)14 b(region)g(in)f(register)505 ! b Ff(C-x)21 b(r)h(s)0 1256 y Fh(insert)15 b(register)g(con)o(ten)o(ts)g ! (in)o(to)e(bu\013er)284 b Ff(C-x)21 b(r)h(i)0 1323 y ! Fh(sa)o(v)o(e)14 b(v)n(alue)f(of)h(p)q(oin)o(t)f(in)g(register)367 ! b Ff(C-x)21 b(r)h(SPC)0 1373 y Fh(jump)12 b(to)i(p)q(oin)o(t)f(sa)o(v)o ! (ed)h(in)g(register)340 b Ff(C-x)21 b(r)h(j)0 1499 y ! Fg(Info)0 1603 y Fh(en)o(ter)15 b(the)g(Info)e(do)q(cumen)o(tation)g ! (reader)242 b Ff(C-h)21 b(i)0 1671 y Fh(Mo)o(ving)13 ! b(within)g(a)g(no)q(de:)42 1738 y(scroll)g(forw)o(ard)611 ! b Ff(SPC)42 1788 y Fh(scroll)13 b(rev)o(erse)627 b Ff(DEL)42 ! 1838 y Fh(b)q(eginning)13 b(of)g(no)q(de)535 b Ff(.)43 ! b Fh(\(dot\))0 1906 y(Mo)o(ving)13 b(b)q(et)o(w)o(een)i(no)q(des:)42 ! 1973 y Fe(next)e Fh(no)q(de)666 b Ff(n)42 2023 y Fe(previous)11 ! b Fh(no)q(de)583 b Ff(p)42 2073 y Fh(mo)o(v)o(e)12 b ! Fe(up)697 b Ff(u)42 2123 y Fh(select)15 b(men)o(u)e(item)f(b)o(y)i ! (name)383 b Ff(m)42 2173 y Fh(select)15 b Fb(n)s Fh(th)f(men)o(u)f ! (item)g(b)o(y)g(n)o(um)o(b)q(er)h(\(1{9\))155 b Fb(n)42 ! 2222 y Fh(follo)o(w)11 b(cross)k(reference)i(\(return)e(with)f ! Ff(l)p Fh(\))186 b Ff(f)42 2272 y Fh(return)15 b(to)e(last)h(no)q(de)g ! (y)o(ou)g(sa)o(w)357 b Ff(l)42 2322 y Fh(return)15 b(to)e(directory)i ! (no)q(de)418 b Ff(d)42 2372 y Fh(go)13 b(to)h(an)o(y)f(no)q(de)h(b)o(y) ! g(name)418 b Ff(g)0 2439 y Fh(Other:)42 2507 y(run)14 ! b(Info)f Fe(tutorial)537 b Ff(h)42 2557 y Fh(list)13 ! b(Info)g(commands)510 b Ff(?)42 2607 y Fe(quit)12 b Fh(Info)689 ! b Ff(q)42 2657 y Fh(searc)o(h)15 b(no)q(des)f(for)g(regexp)434 ! b Ff(M-s)1929 2832 y Fh(5)p eop %%Page: 6 6 ! 6 5 bop 0 -168 a Fg(Keyb)r(oard)24 b(Macros)0 -65 y Fe(start)13 ! b Fh(de\014ning)g(a)h(k)o(eyb)q(oard)g(macro)304 b Ff(C-x)21 ! b(\()0 -15 y Fe(end)13 b Fh(k)o(eyb)q(oard)h(macro)e(de\014nition)336 ! b Ff(C-x)21 b(\))0 35 y Fe(execute)13 b Fh(last-de\014ned)i(k)o(eyb)q ! (oard)f(macro)215 b Ff(C-x)21 b(e)0 84 y Fh(app)q(end)14 ! b(to)g(last)g(k)o(eyb)q(oard)g(macro)332 b Ff(C-u)21 ! b(C-x)g(\()0 134 y Fh(name)13 b(last)g(k)o(eyb)q(oard)h(macro)218 ! b Ff(M-x)21 b(name-last-kbd-mac)o(ro)0 184 y Fh(insert)15 ! b(Lisp)e(de\014nition)h(in)f(bu\013er)221 b Ff(M-x)21 ! b(insert-kbd-macro)0 305 y Fg(Commands)h(Dealing)g(with)f(Emacs)i(Lisp) ! 0 409 y Fh(ev)n(al)13 b Fe(sexp)g Fh(b)q(efore)i(p)q(oin)o(t)490 ! b Ff(C-x)21 b(C-e)0 459 y Fh(ev)n(al)13 b(curren)o(t)j ! Fe(defun)553 b Ff(C-M-x)0 508 y Fh(ev)n(al)13 b Fe(region)598 ! b Ff(M-x)21 b(eval-region)0 558 y Fh(ev)n(al)13 b(en)o(tire)i ! Fe(bu\013er)374 b Ff(M-x)21 b(eval-current-buff)o(er)0 ! 608 y Fh(read)14 b(and)g(ev)n(al)f(minibu\013er)456 b ! Ff(M-:)0 658 y Fh(re-execute)16 b(last)e(minibu\013er)f(command)246 ! b Ff(C-x)21 b(ESC)g(ESC)0 708 y Fh(read)14 b(and)g(ev)n(al)f(Emacs)h ! (Lisp)f(\014le)280 b Ff(M-x)21 b(load-file)0 757 y Fh(load)13 ! b(from)f(standard)i(system)g(directory)152 b Ff(M-x)21 ! b(load-library)0 884 y Fg(Simple)f(Customization)0 987 ! y Fh(Here)15 b(are)f(some)f(examples)g(of)h(binding)f(global)f(k)o(eys) ! i(in)g(Emacs)f(Lisp.)0 1055 y Ff(\(global-set-key)19 ! b("\\C-cg")h('goto-line\))0 1105 y(\(global-set-key)f("\\C-x\\C-k")g ! ('kill-region\))0 1155 y(\(global-set-key)g("\\M-#")h ! ('query-replace-rege)o(xp\))0 1222 y Fh(An)14 b(example)f(of)g(setting) ! h(a)g(v)n(ariable)f(in)g(Emacs)g(Lisp:)0 1290 y Ff(\(setq)21 ! b(backup-by-copyin)o(g-whe)o(n-lin)o(ked)e(t\))0 1416 ! y Fg(W)-6 b(riting)22 b(Commands)0 1520 y Ff(\(defun)f ! Fb(c)n(ommand-name)26 b Ff(\()p Fb(ar)n(gs)s Ff(\))44 ! 1570 y(")p Fb(do)n(cumentation)s Ff(")44 1619 y(\(interactive)19 ! b(")p Fb(template)s Ff("\))44 1669 y Fb(b)n(o)n(dy)t ! Ff(\))0 1737 y Fh(An)14 b(example:)0 1805 y Ff(\(defun)21 ! b(this-line-to-to)o(p-of-)o(windo)o(w)e(\(line\))44 1854 ! y("Reposition)g(line)i(point)g(is)g(on)h(to)f(top)g(of)h(window.)0 ! 1904 y(With)f(ARG,)g(put)g(point)g(on)g(line)g(ARG.)0 ! 1954 y(Negative)f(counts)h(from)g(bottom.")44 2004 y(\(interactive)e ! ("P"\))44 2054 y(\(recenter)h(\(if)h(\(null)f(line\))349 ! 2103 y(0)305 2153 y(\(prefix-numeric-va)o(lue)f(line\)\)\)\))0 ! 2221 y Fh(The)12 b(argumen)o(t)e(to)i Ff(interactive)d ! Fh(is)i(a)g(string)h(sp)q(ecifying)f(ho)o(w)g(to)h(get)f(the)0 ! 2271 y(argumen)o(ts)16 b(when)h(the)h(function)e(is)h(called)g(in)o ! (teractiv)o(ely)m(.)26 b(T)o(yp)q(e)17 b Ff(C-h)k(f)0 ! 2321 y(interactive)12 b Fh(for)h(more)g(information.)238 ! 2466 y Fd(Cop)o(yrigh)o(t)403 2465 y(c)393 2466 y Fc(\015)f ! Fd(1996)d(F)m(ree)j(Soft)o(w)o(are)e(F)m(oundation,)j(Inc.)269 ! 2506 y(designed)e(b)o(y)i(Stephen)f(Gildea,)f(Marc)o(h)g(1996)e(v2.1) ! 281 2545 y(for)i(GNU)f(Emacs)h(v)o(ersion)h(19)e(on)h(Unix)h(systems)0 ! 2603 y(P)o(ermission)g(is)f(gran)o(ted)e(to)h(mak)o(e)h(and)f ! (distribute)i(copies)e(of)h(this)g(card)f(pro)o(vided)h(the)g(cop)o(y-) ! 0 2643 y(righ)o(t)h(notice)e(and)i(this)g(p)q(ermission)g(notice)f(are) ! g(preserv)o(ed)g(on)h(all)f(copies.)0 2701 y(F)m(or)g(copies)f(of)g ! (the)h(GNU)e(Emacs)h(man)o(ual,)i(write)e(to)g(the)h(F)m(ree)f(Soft)o ! (w)o(are)g(F)m(oundation,)i(Inc.,)0 2741 y(59)e(T)m(emple)i(Place,)f ! (Suite)h(330,)f(Boston,)g(MA)f(02111-1307)e(USA)1929 ! 2832 y Fh(6)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF diff -2rcpP --exclude=*.elc emacs-19.30/etc/refcard.tex emacs-19.31/etc/refcard.tex *** emacs-19.30/etc/refcard.tex Thu Jun 15 18:33:34 1995 --- emacs-19.31/etc/refcard.tex Fri Mar 22 17:02:33 1996 *************** *** 1,4 **** % Reference Card for GNU Emacs version 19 on Unix systems - % Time-stamp: <93/05/21 12:52:26 gildea> %**start of header \newcount\columnsperpage --- 1,3 ---- *************** *** 9,13 **** \columnsperpage=1 ! % Copyright (c) 1987, 1993 Free Software Foundation, Inc. % This file is part of GNU Emacs. --- 8,12 ---- \columnsperpage=1 ! % Copyright (c) 1987, 1993, 1996 Free Software Foundation, Inc. % This file is part of GNU Emacs. *************** *** 25,29 **** % You should have received a copy of the GNU General Public License % along with GNU Emacs; see the file COPYING. If not, write to ! % the Free Software Foundation, 675 Mass Ave, Cambridge MA 02139, USA. % This file is intended to be processed by plain TeX (TeX82). --- 24,29 ---- % You should have received a copy of the GNU General Public License % along with GNU Emacs; see the file COPYING. If not, write to ! % the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ! % Boston, MA 02111-1307, USA. % This file is intended to be processed by plain TeX (TeX82). *************** *** 52,58 **** % If there were room, it would be nice to see a section on Dired. ! \def\versionnumber{2.0} ! \def\year{1993} ! \def\version{May \year\ v\versionnumber} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill --- 52,58 ---- % If there were room, it would be nice to see a section on Dired. ! \def\versionnumber{2.1} ! \def\year{1996} ! \def\version{March \year\ v\versionnumber} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill *************** are preserved on all copies. *** 71,75 **** For copies of the GNU Emacs manual, write to the Free Software ! Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. \endgroup} --- 71,75 ---- For copies of the GNU Emacs manual, write to the Free Software ! Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \endgroup} *************** To read in a file to edit, see Files, be *** 274,285 **** \key{replace this file with the file you really want}{C-x C-v} \key{write buffer to a specified file}{C-x C-w} \section{Getting Help} ! The Help system is simple. Type \kbd{C-h} and follow the directions. ! If you are a first-time user, type \kbd{C-h t} for a {\bf tutorial}. \key{remove Help window}{C-x 1} ! \key{scroll Help window}{ESC C-v} \key{apropos: show commands matching a string}{C-h a} --- 274,287 ---- \key{replace this file with the file you really want}{C-x C-v} \key{write buffer to a specified file}{C-x C-w} + \key{version control checkin/checkout}{C-x C-q} \section{Getting Help} ! The Help system is simple. Type \kbd{C-h} (or \kbd{F1}) and follow ! the directions. If you are a first-time user, type \kbd{C-h t} for a ! {\bf tutorial}. \key{remove Help window}{C-x 1} ! \key{scroll Help window}{C-M-v} \key{apropos: show commands matching a string}{C-h a} *************** Valid responses in query-replace mode ar *** 378,406 **** \key{replace all remaining matches}{!} \key{{\bf back up} to the previous match}{^} ! \key{{\bf exit} query-replace}{ESC} \key{enter recursive edit (\kbd{C-M-c} to exit)}{C-r} \section{Multiple Windows} \key{delete all other windows}{C-x 1} ! \key{delete this window}{C-x 0} ! \key{split window in two vertically}{C-x 2} \key{split window in two horizontally}{C-x 3} \key{scroll other window}{C-M-v} - \key{switch cursor to another window}{C-x o} ! \metax{shrink window shorter}{M-x shrink-window} \key{grow window taller}{C-x ^} \key{shrink window narrower}{C-x \{} \key{grow window wider}{C-x \}} - \key{select buffer in other window}{C-x 4 b} - \key{display buffer in other window}{C-x 4 C-o} - \key{find file in other window}{C-x 4 f} - \key{find file read-only in other window}{C-x 4 r} - \key{run Dired in other window}{C-x 4 d} - \key{find tag in other window}{C-x 4 .} - \section{Formatting} --- 380,417 ---- \key{replace all remaining matches}{!} \key{{\bf back up} to the previous match}{^} ! \key{{\bf exit} query-replace}{RET} \key{enter recursive edit (\kbd{C-M-c} to exit)}{C-r} \section{Multiple Windows} + When two commands are shown, the second is for ``other frame.'' + \key{delete all other windows}{C-x 1} ! ! {\setbox0=\hbox{\kbd{0}}\advance\hsize by 0\wd0 ! \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr ! \threecol{split window in two vertically}{C-x 2\ \ \ \ }{C-x 5 2} ! \threecol{delete this window}{C-x 0\ \ \ \ }{C-x 5 0} ! }} \key{split window in two horizontally}{C-x 3} \key{scroll other window}{C-M-v} ! {\setbox0=\hbox{\kbd{0}}\advance\hsize by 2\wd0 ! \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr ! \threecol{switch cursor to another window}{C-x o}{C-x 5 o} ! ! \threecol{select buffer in other window}{C-x 4 b}{C-x 5 b} ! \threecol{display buffer in other window}{C-x 4 C-o}{C-x 5 C-o} ! \threecol{find file in other window}{C-x 4 f}{C-x 5 f} ! \threecol{find file read-only in other window}{C-x 4 r}{C-x 5 r} ! \threecol{run Dired in other window}{C-x 4 d}{C-x 5 d} ! \threecol{find tag in other window}{C-x 4 .}{C-x 5 .} ! }} ! \key{grow window taller}{C-x ^} \key{shrink window narrower}{C-x \{} \key{grow window wider}{C-x \}} \section{Formatting} *************** Valid responses in query-replace mode ar *** 421,424 **** --- 432,437 ---- \key{set prefix each line starts with}{C-x .} + \key{set face}{M-g} + \section{Case Change} *************** Valid responses in query-replace mode ar *** 429,433 **** \key{uppercase region}{C-x C-u} \key{lowercase region}{C-x C-l} - \metax{capitalize region}{M-x capitalize-region} \section{The Minibuffer} --- 442,445 ---- *************** The following keys are defined in the mi *** 446,453 **** Type \kbd{C-x ESC ESC} to edit and repeat the last command that used the ! minibuffer. The following keys are then defined. ! ! \key{previous minibuffer command}{M-p} ! \key{next minibuffer command}{M-n} \newcolumn --- 458,462 ---- Type \kbd{C-x ESC ESC} to edit and repeat the last command that used the ! minibuffer. Type \kbd{F10} to activate the menu bar using the minibuffer. \newcolumn *************** Other: *** 570,574 **** \key{list Info commands}{?} \key{{\bf quit} Info}{q} ! \key{search nodes for regexp}{s} \endindentedkeys --- 579,583 ---- \key{list Info commands}{?} \key{{\bf quit} Info}{q} ! \key{search nodes for regexp}{M-s} \endindentedkeys *************** Other: *** 589,593 **** \metax{eval {\bf region}}{M-x eval-region} \metax{eval entire {\bf buffer}}{M-x eval-current-buffer} ! \key{read and eval minibuffer}{M-ESC} \key{re-execute last minibuffer command}{C-x ESC ESC} \metax{read and eval Emacs Lisp file}{M-x load-file} --- 598,602 ---- \metax{eval {\bf region}}{M-x eval-region} \metax{eval entire {\bf buffer}}{M-x eval-current-buffer} ! \key{read and eval minibuffer}{M-:} \key{re-execute last minibuffer command}{C-x ESC ESC} \metax{read and eval Emacs Lisp file}{M-x load-file} *************** Other: *** 599,609 **** % customizations and knows Lisp syntax. ! Here are some examples of binding global keys in Emacs Lisp. Note ! that you cannot say \kbd{"\\M-\#"}; you must say \kbd{"\\e\#"}. \beginexample% (global-set-key "\\C-cg" 'goto-line) (global-set-key "\\C-x\\C-k" 'kill-region) ! (global-set-key "\\e\#" 'query-replace-regexp) \endexample --- 608,617 ---- % customizations and knows Lisp syntax. ! Here are some examples of binding global keys in Emacs Lisp. \beginexample% (global-set-key "\\C-cg" 'goto-line) (global-set-key "\\C-x\\C-k" 'kill-region) ! (global-set-key "\\M-\#" 'query-replace-regexp) \endexample diff -2rcpP --exclude=*.elc emacs-19.30/etc/rgb.txt emacs-19.31/etc/rgb.txt *** emacs-19.30/etc/rgb.txt Wed Dec 31 19:00:00 1969 --- emacs-19.31/etc/rgb.txt Thu Jan 18 23:31:47 1996 *************** *** 0 **** --- 1,788 ---- + # + # This file is not a part of GNU Emacs. It is from xc/programs/rgb/rgb.txt + # of the X11R6 X Consortium distribution, and is included here to support the + # mapping of color names to RGB values on Windows NT and Windows 95. + # + # The following copyright notice applies to this file, and was taken from + # xc/RELNOTES.TXT of the same distribution. + # + # + # Copyright (C) 1994 X Consortium + # + # Permission is hereby granted, free of charge, to any person obtaining a copy + # of this software and associated documentation files (the "Software"), to + # deal in the Software without restriction, including without limitation the + # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + # sell copies of the Software, and to permit persons to whom the Software is + # furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included in + # all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- + # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of the X Consortium shall not + # be used in advertising or otherwise to promote the sale, use or other deal- + # ings in this Software without prior written authorization from the X Consor- + # tium. + # + # X Window System is a trademark of X Consortium, Inc. + # + + 255 250 250 snow + 248 248 255 ghost white + 248 248 255 GhostWhite + 245 245 245 white smoke + 245 245 245 WhiteSmoke + 220 220 220 gainsboro + 255 250 240 floral white + 255 250 240 FloralWhite + 253 245 230 old lace + 253 245 230 OldLace + 250 240 230 linen + 250 235 215 antique white + 250 235 215 AntiqueWhite + 255 239 213 papaya whip + 255 239 213 PapayaWhip + 255 235 205 blanched almond + 255 235 205 BlanchedAlmond + 255 228 196 bisque + 255 218 185 peach puff + 255 218 185 PeachPuff + 255 222 173 navajo white + 255 222 173 NavajoWhite + 255 228 181 moccasin + 255 248 220 cornsilk + 255 255 240 ivory + 255 250 205 lemon chiffon + 255 250 205 LemonChiffon + 255 245 238 seashell + 240 255 240 honeydew + 245 255 250 mint cream + 245 255 250 MintCream + 240 255 255 azure + 240 248 255 alice blue + 240 248 255 AliceBlue + 230 230 250 lavender + 255 240 245 lavender blush + 255 240 245 LavenderBlush + 255 228 225 misty rose + 255 228 225 MistyRose + 255 255 255 white + 0 0 0 black + 47 79 79 dark slate gray + 47 79 79 DarkSlateGray + 47 79 79 dark slate grey + 47 79 79 DarkSlateGrey + 105 105 105 dim gray + 105 105 105 DimGray + 105 105 105 dim grey + 105 105 105 DimGrey + 112 128 144 slate gray + 112 128 144 SlateGray + 112 128 144 slate grey + 112 128 144 SlateGrey + 119 136 153 light slate gray + 119 136 153 LightSlateGray + 119 136 153 light slate grey + 119 136 153 LightSlateGrey + 190 190 190 gray + 190 190 190 grey + 211 211 211 light grey + 211 211 211 LightGrey + 211 211 211 light gray + 211 211 211 LightGray + 25 25 112 midnight blue + 25 25 112 MidnightBlue + 0 0 128 navy + 0 0 128 navy blue + 0 0 128 NavyBlue + 100 149 237 cornflower blue + 100 149 237 CornflowerBlue + 72 61 139 dark slate blue + 72 61 139 DarkSlateBlue + 106 90 205 slate blue + 106 90 205 SlateBlue + 123 104 238 medium slate blue + 123 104 238 MediumSlateBlue + 132 112 255 light slate blue + 132 112 255 LightSlateBlue + 0 0 205 medium blue + 0 0 205 MediumBlue + 65 105 225 royal blue + 65 105 225 RoyalBlue + 0 0 255 blue + 30 144 255 dodger blue + 30 144 255 DodgerBlue + 0 191 255 deep sky blue + 0 191 255 DeepSkyBlue + 135 206 235 sky blue + 135 206 235 SkyBlue + 135 206 250 light sky blue + 135 206 250 LightSkyBlue + 70 130 180 steel blue + 70 130 180 SteelBlue + 176 196 222 light steel blue + 176 196 222 LightSteelBlue + 173 216 230 light blue + 173 216 230 LightBlue + 176 224 230 powder blue + 176 224 230 PowderBlue + 175 238 238 pale turquoise + 175 238 238 PaleTurquoise + 0 206 209 dark turquoise + 0 206 209 DarkTurquoise + 72 209 204 medium turquoise + 72 209 204 MediumTurquoise + 64 224 208 turquoise + 0 255 255 cyan + 224 255 255 light cyan + 224 255 255 LightCyan + 95 158 160 cadet blue + 95 158 160 CadetBlue + 102 205 170 medium aquamarine + 102 205 170 MediumAquamarine + 127 255 212 aquamarine + 0 100 0 dark green + 0 100 0 DarkGreen + 85 107 47 dark olive green + 85 107 47 DarkOliveGreen + 143 188 143 dark sea green + 143 188 143 DarkSeaGreen + 46 139 87 sea green + 46 139 87 SeaGreen + 60 179 113 medium sea green + 60 179 113 MediumSeaGreen + 32 178 170 light sea green + 32 178 170 LightSeaGreen + 152 251 152 pale green + 152 251 152 PaleGreen + 0 255 127 spring green + 0 255 127 SpringGreen + 124 252 0 lawn green + 124 252 0 LawnGreen + 0 255 0 green + 127 255 0 chartreuse + 0 250 154 medium spring green + 0 250 154 MediumSpringGreen + 173 255 47 green yellow + 173 255 47 GreenYellow + 50 205 50 lime green + 50 205 50 LimeGreen + 154 205 50 yellow green + 154 205 50 YellowGreen + 34 139 34 forest green + 34 139 34 ForestGreen + 107 142 35 olive drab + 107 142 35 OliveDrab + 189 183 107 dark khaki + 189 183 107 DarkKhaki + 240 230 140 khaki + 238 232 170 pale goldenrod + 238 232 170 PaleGoldenrod + 250 250 210 light goldenrod yellow + 250 250 210 LightGoldenrodYellow + 255 255 224 light yellow + 255 255 224 LightYellow + 255 255 0 yellow + 255 215 0 gold + 238 221 130 light goldenrod + 238 221 130 LightGoldenrod + 218 165 32 goldenrod + 184 134 11 dark goldenrod + 184 134 11 DarkGoldenrod + 188 143 143 rosy brown + 188 143 143 RosyBrown + 205 92 92 indian red + 205 92 92 IndianRed + 139 69 19 saddle brown + 139 69 19 SaddleBrown + 160 82 45 sienna + 205 133 63 peru + 222 184 135 burlywood + 245 245 220 beige + 245 222 179 wheat + 244 164 96 sandy brown + 244 164 96 SandyBrown + 210 180 140 tan + 210 105 30 chocolate + 178 34 34 firebrick + 165 42 42 brown + 233 150 122 dark salmon + 233 150 122 DarkSalmon + 250 128 114 salmon + 255 160 122 light salmon + 255 160 122 LightSalmon + 255 165 0 orange + 255 140 0 dark orange + 255 140 0 DarkOrange + 255 127 80 coral + 240 128 128 light coral + 240 128 128 LightCoral + 255 99 71 tomato + 255 69 0 orange red + 255 69 0 OrangeRed + 255 0 0 red + 255 105 180 hot pink + 255 105 180 HotPink + 255 20 147 deep pink + 255 20 147 DeepPink + 255 192 203 pink + 255 182 193 light pink + 255 182 193 LightPink + 219 112 147 pale violet red + 219 112 147 PaleVioletRed + 176 48 96 maroon + 199 21 133 medium violet red + 199 21 133 MediumVioletRed + 208 32 144 violet red + 208 32 144 VioletRed + 255 0 255 magenta + 238 130 238 violet + 221 160 221 plum + 218 112 214 orchid + 186 85 211 medium orchid + 186 85 211 MediumOrchid + 153 50 204 dark orchid + 153 50 204 DarkOrchid + 148 0 211 dark violet + 148 0 211 DarkViolet + 138 43 226 blue violet + 138 43 226 BlueViolet + 160 32 240 purple + 147 112 219 medium purple + 147 112 219 MediumPurple + 216 191 216 thistle + 255 250 250 snow1 + 238 233 233 snow2 + 205 201 201 snow3 + 139 137 137 snow4 + 255 245 238 seashell1 + 238 229 222 seashell2 + 205 197 191 seashell3 + 139 134 130 seashell4 + 255 239 219 AntiqueWhite1 + 238 223 204 AntiqueWhite2 + 205 192 176 AntiqueWhite3 + 139 131 120 AntiqueWhite4 + 255 228 196 bisque1 + 238 213 183 bisque2 + 205 183 158 bisque3 + 139 125 107 bisque4 + 255 218 185 PeachPuff1 + 238 203 173 PeachPuff2 + 205 175 149 PeachPuff3 + 139 119 101 PeachPuff4 + 255 222 173 NavajoWhite1 + 238 207 161 NavajoWhite2 + 205 179 139 NavajoWhite3 + 139 121 94 NavajoWhite4 + 255 250 205 LemonChiffon1 + 238 233 191 LemonChiffon2 + 205 201 165 LemonChiffon3 + 139 137 112 LemonChiffon4 + 255 248 220 cornsilk1 + 238 232 205 cornsilk2 + 205 200 177 cornsilk3 + 139 136 120 cornsilk4 + 255 255 240 ivory1 + 238 238 224 ivory2 + 205 205 193 ivory3 + 139 139 131 ivory4 + 240 255 240 honeydew1 + 224 238 224 honeydew2 + 193 205 193 honeydew3 + 131 139 131 honeydew4 + 255 240 245 LavenderBlush1 + 238 224 229 LavenderBlush2 + 205 193 197 LavenderBlush3 + 139 131 134 LavenderBlush4 + 255 228 225 MistyRose1 + 238 213 210 MistyRose2 + 205 183 181 MistyRose3 + 139 125 123 MistyRose4 + 240 255 255 azure1 + 224 238 238 azure2 + 193 205 205 azure3 + 131 139 139 azure4 + 131 111 255 SlateBlue1 + 122 103 238 SlateBlue2 + 105 89 205 SlateBlue3 + 71 60 139 SlateBlue4 + 72 118 255 RoyalBlue1 + 67 110 238 RoyalBlue2 + 58 95 205 RoyalBlue3 + 39 64 139 RoyalBlue4 + 0 0 255 blue1 + 0 0 238 blue2 + 0 0 205 blue3 + 0 0 139 blue4 + 30 144 255 DodgerBlue1 + 28 134 238 DodgerBlue2 + 24 116 205 DodgerBlue3 + 16 78 139 DodgerBlue4 + 99 184 255 SteelBlue1 + 92 172 238 SteelBlue2 + 79 148 205 SteelBlue3 + 54 100 139 SteelBlue4 + 0 191 255 DeepSkyBlue1 + 0 178 238 DeepSkyBlue2 + 0 154 205 DeepSkyBlue3 + 0 104 139 DeepSkyBlue4 + 135 206 255 SkyBlue1 + 126 192 238 SkyBlue2 + 108 166 205 SkyBlue3 + 74 112 139 SkyBlue4 + 176 226 255 LightSkyBlue1 + 164 211 238 LightSkyBlue2 + 141 182 205 LightSkyBlue3 + 96 123 139 LightSkyBlue4 + 198 226 255 SlateGray1 + 185 211 238 SlateGray2 + 159 182 205 SlateGray3 + 108 123 139 SlateGray4 + 202 225 255 LightSteelBlue1 + 188 210 238 LightSteelBlue2 + 162 181 205 LightSteelBlue3 + 110 123 139 LightSteelBlue4 + 191 239 255 LightBlue1 + 178 223 238 LightBlue2 + 154 192 205 LightBlue3 + 104 131 139 LightBlue4 + 224 255 255 LightCyan1 + 209 238 238 LightCyan2 + 180 205 205 LightCyan3 + 122 139 139 LightCyan4 + 187 255 255 PaleTurquoise1 + 174 238 238 PaleTurquoise2 + 150 205 205 PaleTurquoise3 + 102 139 139 PaleTurquoise4 + 152 245 255 CadetBlue1 + 142 229 238 CadetBlue2 + 122 197 205 CadetBlue3 + 83 134 139 CadetBlue4 + 0 245 255 turquoise1 + 0 229 238 turquoise2 + 0 197 205 turquoise3 + 0 134 139 turquoise4 + 0 255 255 cyan1 + 0 238 238 cyan2 + 0 205 205 cyan3 + 0 139 139 cyan4 + 151 255 255 DarkSlateGray1 + 141 238 238 DarkSlateGray2 + 121 205 205 DarkSlateGray3 + 82 139 139 DarkSlateGray4 + 127 255 212 aquamarine1 + 118 238 198 aquamarine2 + 102 205 170 aquamarine3 + 69 139 116 aquamarine4 + 193 255 193 DarkSeaGreen1 + 180 238 180 DarkSeaGreen2 + 155 205 155 DarkSeaGreen3 + 105 139 105 DarkSeaGreen4 + 84 255 159 SeaGreen1 + 78 238 148 SeaGreen2 + 67 205 128 SeaGreen3 + 46 139 87 SeaGreen4 + 154 255 154 PaleGreen1 + 144 238 144 PaleGreen2 + 124 205 124 PaleGreen3 + 84 139 84 PaleGreen4 + 0 255 127 SpringGreen1 + 0 238 118 SpringGreen2 + 0 205 102 SpringGreen3 + 0 139 69 SpringGreen4 + 0 255 0 green1 + 0 238 0 green2 + 0 205 0 green3 + 0 139 0 green4 + 127 255 0 chartreuse1 + 118 238 0 chartreuse2 + 102 205 0 chartreuse3 + 69 139 0 chartreuse4 + 192 255 62 OliveDrab1 + 179 238 58 OliveDrab2 + 154 205 50 OliveDrab3 + 105 139 34 OliveDrab4 + 202 255 112 DarkOliveGreen1 + 188 238 104 DarkOliveGreen2 + 162 205 90 DarkOliveGreen3 + 110 139 61 DarkOliveGreen4 + 255 246 143 khaki1 + 238 230 133 khaki2 + 205 198 115 khaki3 + 139 134 78 khaki4 + 255 236 139 LightGoldenrod1 + 238 220 130 LightGoldenrod2 + 205 190 112 LightGoldenrod3 + 139 129 76 LightGoldenrod4 + 255 255 224 LightYellow1 + 238 238 209 LightYellow2 + 205 205 180 LightYellow3 + 139 139 122 LightYellow4 + 255 255 0 yellow1 + 238 238 0 yellow2 + 205 205 0 yellow3 + 139 139 0 yellow4 + 255 215 0 gold1 + 238 201 0 gold2 + 205 173 0 gold3 + 139 117 0 gold4 + 255 193 37 goldenrod1 + 238 180 34 goldenrod2 + 205 155 29 goldenrod3 + 139 105 20 goldenrod4 + 255 185 15 DarkGoldenrod1 + 238 173 14 DarkGoldenrod2 + 205 149 12 DarkGoldenrod3 + 139 101 8 DarkGoldenrod4 + 255 193 193 RosyBrown1 + 238 180 180 RosyBrown2 + 205 155 155 RosyBrown3 + 139 105 105 RosyBrown4 + 255 106 106 IndianRed1 + 238 99 99 IndianRed2 + 205 85 85 IndianRed3 + 139 58 58 IndianRed4 + 255 130 71 sienna1 + 238 121 66 sienna2 + 205 104 57 sienna3 + 139 71 38 sienna4 + 255 211 155 burlywood1 + 238 197 145 burlywood2 + 205 170 125 burlywood3 + 139 115 85 burlywood4 + 255 231 186 wheat1 + 238 216 174 wheat2 + 205 186 150 wheat3 + 139 126 102 wheat4 + 255 165 79 tan1 + 238 154 73 tan2 + 205 133 63 tan3 + 139 90 43 tan4 + 255 127 36 chocolate1 + 238 118 33 chocolate2 + 205 102 29 chocolate3 + 139 69 19 chocolate4 + 255 48 48 firebrick1 + 238 44 44 firebrick2 + 205 38 38 firebrick3 + 139 26 26 firebrick4 + 255 64 64 brown1 + 238 59 59 brown2 + 205 51 51 brown3 + 139 35 35 brown4 + 255 140 105 salmon1 + 238 130 98 salmon2 + 205 112 84 salmon3 + 139 76 57 salmon4 + 255 160 122 LightSalmon1 + 238 149 114 LightSalmon2 + 205 129 98 LightSalmon3 + 139 87 66 LightSalmon4 + 255 165 0 orange1 + 238 154 0 orange2 + 205 133 0 orange3 + 139 90 0 orange4 + 255 127 0 DarkOrange1 + 238 118 0 DarkOrange2 + 205 102 0 DarkOrange3 + 139 69 0 DarkOrange4 + 255 114 86 coral1 + 238 106 80 coral2 + 205 91 69 coral3 + 139 62 47 coral4 + 255 99 71 tomato1 + 238 92 66 tomato2 + 205 79 57 tomato3 + 139 54 38 tomato4 + 255 69 0 OrangeRed1 + 238 64 0 OrangeRed2 + 205 55 0 OrangeRed3 + 139 37 0 OrangeRed4 + 255 0 0 red1 + 238 0 0 red2 + 205 0 0 red3 + 139 0 0 red4 + 255 20 147 DeepPink1 + 238 18 137 DeepPink2 + 205 16 118 DeepPink3 + 139 10 80 DeepPink4 + 255 110 180 HotPink1 + 238 106 167 HotPink2 + 205 96 144 HotPink3 + 139 58 98 HotPink4 + 255 181 197 pink1 + 238 169 184 pink2 + 205 145 158 pink3 + 139 99 108 pink4 + 255 174 185 LightPink1 + 238 162 173 LightPink2 + 205 140 149 LightPink3 + 139 95 101 LightPink4 + 255 130 171 PaleVioletRed1 + 238 121 159 PaleVioletRed2 + 205 104 137 PaleVioletRed3 + 139 71 93 PaleVioletRed4 + 255 52 179 maroon1 + 238 48 167 maroon2 + 205 41 144 maroon3 + 139 28 98 maroon4 + 255 62 150 VioletRed1 + 238 58 140 VioletRed2 + 205 50 120 VioletRed3 + 139 34 82 VioletRed4 + 255 0 255 magenta1 + 238 0 238 magenta2 + 205 0 205 magenta3 + 139 0 139 magenta4 + 255 131 250 orchid1 + 238 122 233 orchid2 + 205 105 201 orchid3 + 139 71 137 orchid4 + 255 187 255 plum1 + 238 174 238 plum2 + 205 150 205 plum3 + 139 102 139 plum4 + 224 102 255 MediumOrchid1 + 209 95 238 MediumOrchid2 + 180 82 205 MediumOrchid3 + 122 55 139 MediumOrchid4 + 191 62 255 DarkOrchid1 + 178 58 238 DarkOrchid2 + 154 50 205 DarkOrchid3 + 104 34 139 DarkOrchid4 + 155 48 255 purple1 + 145 44 238 purple2 + 125 38 205 purple3 + 85 26 139 purple4 + 171 130 255 MediumPurple1 + 159 121 238 MediumPurple2 + 137 104 205 MediumPurple3 + 93 71 139 MediumPurple4 + 255 225 255 thistle1 + 238 210 238 thistle2 + 205 181 205 thistle3 + 139 123 139 thistle4 + 0 0 0 gray0 + 0 0 0 grey0 + 3 3 3 gray1 + 3 3 3 grey1 + 5 5 5 gray2 + 5 5 5 grey2 + 8 8 8 gray3 + 8 8 8 grey3 + 10 10 10 gray4 + 10 10 10 grey4 + 13 13 13 gray5 + 13 13 13 grey5 + 15 15 15 gray6 + 15 15 15 grey6 + 18 18 18 gray7 + 18 18 18 grey7 + 20 20 20 gray8 + 20 20 20 grey8 + 23 23 23 gray9 + 23 23 23 grey9 + 26 26 26 gray10 + 26 26 26 grey10 + 28 28 28 gray11 + 28 28 28 grey11 + 31 31 31 gray12 + 31 31 31 grey12 + 33 33 33 gray13 + 33 33 33 grey13 + 36 36 36 gray14 + 36 36 36 grey14 + 38 38 38 gray15 + 38 38 38 grey15 + 41 41 41 gray16 + 41 41 41 grey16 + 43 43 43 gray17 + 43 43 43 grey17 + 46 46 46 gray18 + 46 46 46 grey18 + 48 48 48 gray19 + 48 48 48 grey19 + 51 51 51 gray20 + 51 51 51 grey20 + 54 54 54 gray21 + 54 54 54 grey21 + 56 56 56 gray22 + 56 56 56 grey22 + 59 59 59 gray23 + 59 59 59 grey23 + 61 61 61 gray24 + 61 61 61 grey24 + 64 64 64 gray25 + 64 64 64 grey25 + 66 66 66 gray26 + 66 66 66 grey26 + 69 69 69 gray27 + 69 69 69 grey27 + 71 71 71 gray28 + 71 71 71 grey28 + 74 74 74 gray29 + 74 74 74 grey29 + 77 77 77 gray30 + 77 77 77 grey30 + 79 79 79 gray31 + 79 79 79 grey31 + 82 82 82 gray32 + 82 82 82 grey32 + 84 84 84 gray33 + 84 84 84 grey33 + 87 87 87 gray34 + 87 87 87 grey34 + 89 89 89 gray35 + 89 89 89 grey35 + 92 92 92 gray36 + 92 92 92 grey36 + 94 94 94 gray37 + 94 94 94 grey37 + 97 97 97 gray38 + 97 97 97 grey38 + 99 99 99 gray39 + 99 99 99 grey39 + 102 102 102 gray40 + 102 102 102 grey40 + 105 105 105 gray41 + 105 105 105 grey41 + 107 107 107 gray42 + 107 107 107 grey42 + 110 110 110 gray43 + 110 110 110 grey43 + 112 112 112 gray44 + 112 112 112 grey44 + 115 115 115 gray45 + 115 115 115 grey45 + 117 117 117 gray46 + 117 117 117 grey46 + 120 120 120 gray47 + 120 120 120 grey47 + 122 122 122 gray48 + 122 122 122 grey48 + 125 125 125 gray49 + 125 125 125 grey49 + 127 127 127 gray50 + 127 127 127 grey50 + 130 130 130 gray51 + 130 130 130 grey51 + 133 133 133 gray52 + 133 133 133 grey52 + 135 135 135 gray53 + 135 135 135 grey53 + 138 138 138 gray54 + 138 138 138 grey54 + 140 140 140 gray55 + 140 140 140 grey55 + 143 143 143 gray56 + 143 143 143 grey56 + 145 145 145 gray57 + 145 145 145 grey57 + 148 148 148 gray58 + 148 148 148 grey58 + 150 150 150 gray59 + 150 150 150 grey59 + 153 153 153 gray60 + 153 153 153 grey60 + 156 156 156 gray61 + 156 156 156 grey61 + 158 158 158 gray62 + 158 158 158 grey62 + 161 161 161 gray63 + 161 161 161 grey63 + 163 163 163 gray64 + 163 163 163 grey64 + 166 166 166 gray65 + 166 166 166 grey65 + 168 168 168 gray66 + 168 168 168 grey66 + 171 171 171 gray67 + 171 171 171 grey67 + 173 173 173 gray68 + 173 173 173 grey68 + 176 176 176 gray69 + 176 176 176 grey69 + 179 179 179 gray70 + 179 179 179 grey70 + 181 181 181 gray71 + 181 181 181 grey71 + 184 184 184 gray72 + 184 184 184 grey72 + 186 186 186 gray73 + 186 186 186 grey73 + 189 189 189 gray74 + 189 189 189 grey74 + 191 191 191 gray75 + 191 191 191 grey75 + 194 194 194 gray76 + 194 194 194 grey76 + 196 196 196 gray77 + 196 196 196 grey77 + 199 199 199 gray78 + 199 199 199 grey78 + 201 201 201 gray79 + 201 201 201 grey79 + 204 204 204 gray80 + 204 204 204 grey80 + 207 207 207 gray81 + 207 207 207 grey81 + 209 209 209 gray82 + 209 209 209 grey82 + 212 212 212 gray83 + 212 212 212 grey83 + 214 214 214 gray84 + 214 214 214 grey84 + 217 217 217 gray85 + 217 217 217 grey85 + 219 219 219 gray86 + 219 219 219 grey86 + 222 222 222 gray87 + 222 222 222 grey87 + 224 224 224 gray88 + 224 224 224 grey88 + 227 227 227 gray89 + 227 227 227 grey89 + 229 229 229 gray90 + 229 229 229 grey90 + 232 232 232 gray91 + 232 232 232 grey91 + 235 235 235 gray92 + 235 235 235 grey92 + 237 237 237 gray93 + 237 237 237 grey93 + 240 240 240 gray94 + 240 240 240 grey94 + 242 242 242 gray95 + 242 242 242 grey95 + 245 245 245 gray96 + 245 245 245 grey96 + 247 247 247 gray97 + 247 247 247 grey97 + 250 250 250 gray98 + 250 250 250 grey98 + 252 252 252 gray99 + 252 252 252 grey99 + 255 255 255 gray100 + 255 255 255 grey100 + 169 169 169 dark grey + 169 169 169 DarkGrey + 169 169 169 dark gray + 169 169 169 DarkGray + 0 0 139 dark blue + 0 0 139 DarkBlue + 0 139 139 dark cyan + 0 139 139 DarkCyan + 139 0 139 dark magenta + 139 0 139 DarkMagenta + 139 0 0 dark red + 139 0 0 DarkRed + 144 238 144 light green + 144 238 144 LightGreen diff -2rcpP --exclude=*.elc emacs-19.30/etc/viperCard.tex emacs-19.31/etc/viperCard.tex *** emacs-19.30/etc/viperCard.tex Thu Feb 16 00:32:02 1995 --- emacs-19.31/etc/viperCard.tex Thu Jan 4 14:55:14 1996 *************** We will use {\it x\/} to denote a regist *** 374,378 **** \metax{{\bf switch} to a buffer in another window}{:n, :b, {\rm or} C-x 4 {\sl buf}} \key{{\bf kill} a buffer}{:q! {\rm or} C-x k} ! \key{list exisiting {\bf buffers}}{:args {\rm or} C-x b} \section{Files} --- 374,378 ---- \metax{{\bf switch} to a buffer in another window}{:n, :b, {\rm or} C-x 4 {\sl buf}} \key{{\bf kill} a buffer}{:q! {\rm or} C-x k} ! \key{list existing {\bf buffers}}{:args {\rm or} C-x b} \section{Files} *************** There are better VI equivalents *** 665,669 **** for all of them. Also note that all Ex commands expand \% to current file name. To include a \% in the command, escape it with a $\backslash$. ! Similiarly, \# is replaced by previous file. For Viper, this is the first file in the {\sl :args} listing for that buffer. This defaults to the previous file in the VI sense if you have one window. --- 665,669 ---- for all of them. Also note that all Ex commands expand \% to current file name. To include a \% in the command, escape it with a $\backslash$. ! Similarly, \# is replaced by previous file. For Viper, this is the first file in the {\sl :args} listing for that buffer. This defaults to the previous file in the VI sense if you have one window. Binary files emacs-19.30/etc/yow.lines and emacs-19.31/etc/yow.lines differ diff -2rcpP --exclude=*.elc emacs-19.30/info/dir emacs-19.31/info/dir *** emacs-19.30/info/dir Mon Jun 5 23:20:08 1995 --- emacs-19.31/info/dir Thu Jan 25 02:13:38 1996 *************** File: dir Node: Top This is the top of t *** 7,13 **** This (the Directory node) gives a menu of major topics. Typing "d" returns here, "q" exits, "?" lists all INFO commands, "h" ! gives a primer for first-timers, "mTexinfo" visits Texinfo topic, etc. ! Or click mouse button 2 on a menu item or cross reference to select it. --- PLEASE ADD DOCUMENTATION TO THIS TREE. (See INFO topic first.) --- --- 7,14 ---- This (the Directory node) gives a menu of major topics. Typing "d" returns here, "q" exits, "?" lists all INFO commands, "h" ! gives a primer for first-timers, "mEmacs" visits the Emacs topic, etc. ! In Emacs, you can click mouse button 2 on a menu item or cross reference ! to select it. --- PLEASE ADD DOCUMENTATION TO THIS TREE. (See INFO topic first.) --- *************** File: dir Node: Top This is the top of t *** 27,28 **** --- 28,31 ---- * Dired-X: (dired-x). Dired Extra Features. * Ediff: (ediff). A comprehensive visual interface to diff & patch. + * CC mode: (ccmode). The GNU Emacs mode for editing C, C++, and + Objective-C code. diff -2rcpP --exclude=*.elc emacs-19.30/install.sh emacs-19.31/install.sh *** emacs-19.30/install.sh Sat Nov 25 01:01:26 1995 --- emacs-19.31/install.sh Sat May 25 20:17:34 1996 *************** rmprog="${RMPROG-rm}" *** 30,34 **** mkdirprog="${MKDIRPROG-mkdir}" ! tranformbasename="" transform_arg="" instcmd="$mvprog" --- 30,34 ---- mkdirprog="${MKDIRPROG-mkdir}" ! transformbasename="" transform_arg="" instcmd="$mvprog" diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/ChangeLog emacs-19.31/lib-src/ChangeLog *** emacs-19.30/lib-src/ChangeLog Fri Nov 24 23:42:31 1995 --- emacs-19.31/lib-src/ChangeLog Sat May 25 15:30:54 1996 *************** *** 1,2 **** --- 1,255 ---- + Sat May 25 15:30:10 1996 Karl Heuer + + * Version 19.31 released. + + Fri May 17 18:27:20 1996 Francesco Potorti` + + * etags.c (CNL_SAVE_DEFINEDEF): Set linecharno for use by readline. + (Pascal_functions): Increase linecharno by the correct number of + chars, inline the GET_NEW_LINE macro and delete its definition. + + Fri May 3 15:08:51 1996 Andrew Innes + + * makefile.nt (OBJDIR, BLD): Remove macro definitions. + + Fri May 3 14:27:40 1996 Andrew Innes + + * makefile.nt (LOCAL_FLAGS): Include path to NT shadow includes. + (movemail.exe, fakemail.exe): Now built under Win32.o + + * ntlib.c: Include ntlib.h. + (nt_sleep): Rename to sleep. + (getwd): Return directory. + (getlogin, cuserid, getuid, setuid, getpwuid, getpass, fchown, + sys_ctime, sys_fopen): New functions. + + * ntlib.h: New file. + + Mon Apr 29 11:43:54 1996 Richard Stallman + + * pop.c (SEND, RECV): Renamed from send, recv. + (pop_open, pop_trash): Make the trash_started code unconditional. + (socket_connection): Delete casts to void. + + Sun Apr 28 19:36:22 1996 Richard Stallman + + * movemail.c (DIRECTORY_SEP, IS_DIRECTORY_SEP): Definitions + copied from lisp.h. + + Mon Apr 22 22:50:57 1996 Andrew Innes + + * fakemail.c [WINDOWSNT]: Include ntlib.h. + + * hexl.c [DOSNT]: Include fcntl.h. + [WINDOWSNT]: Include io.h. + (main) [MSDOS]: Change conditional to DOS_NT. + + * movemail.c (access, unlink) [WINDOWSNT]: Macros undefined. + (fork, syswait, DISABLE_DIRECT_ACCESS) [WINDOWSNT]: Macros defined. + [WINDOWSNT]: Include locking.h. + (main): Update usage message. Use IS_DIRECTORY_SEP. + (main) [DISABLE_DIRECT_ACCESS]: Don't check access if defined. + (main) [WINDOWSNT]: Invoke locking instead of flock. + (main) [MAIL_USE_SYSTEM_LOCK && WINDOWSNT]: Emulate ftruncate. + (main) [MAIL_USE_POP]: Pass password to popmail if used. + Include winsock.h; don't include unix inet headers. + (popmail): Add password argument and pass it to pop_open. + Open output file in binary mode. + + * pop.c [WINDOWSNT]: Include winsock.h and ntlib.h. + Macro SOCKET_ERROR undefined. + Don't declare h_errno. + [!WINDOWSNT]: Define macros recv and send. + [!WINDOWSNT] (POP_SERVICE): Change to pop3. + (pop_open) [WINDOWSNT]: Initialize trash_started. + (have_winsock) [WINDOWSNT]: New variable. + (socket_connection) [WINDOWSNT]: Initialize winsock. + (socket_connection): Use closesocket instead of close. + (getline): Use recv instead of read. + (fullwrite): Use send instead of write. + (pop_trash): Use closesocket instead of close. + (pop_trash) [WINDOWSNT]: Cleanup winsock. + Check if being called recursively by sendline. + + * pop.h (struct _popserver): New field trash_started. + + * wakeup.c [HAVE_CONFIG_H]: Only include config.h when defined. + + Sun Apr 14 13:07:39 1996 Richard Stallman + + * hexl.c (main) [DJGPP v2]: Don't change to binary for a tty. + + Wed Apr 10 21:39:09 1996 Richard Stallman + + * etags.c [WINDOWSNT]: Include io.h. + + Wed Apr 10 18:34:20 1996 Geoff Voelker + + * makefile.nt (CTAGSOBJ): Compile with regexp support. + + Tue Apr 9 20:49:15 1996 Eli Zaretskii + + * hexl.c [DJGPP v2]: Include io.h. + (main) [DJGPP v2]: Switch standard streams to binary with setmode. + + * b2m.c (main) [MSDOS]: Switch standard streams to binary under + DJGPP v2. + + Tue Apr 2 10:39:00 1996 Richard Stallman + + * etags.c (absolute_filename): Use absolutefn. + + Sun Mar 31 14:22:03 1996 Eli Zaretskii + + * etags.c (absolutefn) [DOS_NT]: Support Novell drives whose drive + letter isn't an alphabetic character. + (main) [DOS_NT]: Use binary mode on redirected `stdout'. + (process_file) [DOS_NT]: Convert all slashes to forward style. + (absolute_filename) [DOS_NT]: Emit error message for relative + paths with a drive letter. + (absolute_filename) [DOS_NT]: Handle absolute pathnames with + DOS/NT drive letters which try to reference the parent of the root. + (absolute_dirname) [DOS_NT]: Convert all slashes to forward style. + + Wed Mar 27 23:32:29 1996 Geoff Voelker + + * makefile.nt: Change uses of del to $(DEL). + + Fri Mar 22 19:56:16 1996 Francesco Potorti` + + * etags.c (just_read_file): Reset lineno and charno on entry. + + Fri Mar 15 07:39:17 1996 Anders Lindgren + + * etags.c: Prolog language totaly rewritten. + (Prolog_functions): Rewritten from scratch. + (skip_comment, prolog_getit): Removed. + (prolog_skip_comment): New function, like old skip_comment. + (prolog_pred, prolog_atom, prolog_white): New functions. + (erlang_func, erlang_attributes): Forward declarations added. + (erlang_atom): Check if backslash ends line inside quoted atom. + + Thu Mar 14 12:11:04 1996 Francesco Potorti` + + * etags.c (absolutefn): DOS_NT version corrected. + (main): Append "/" to the dir name only if not already there. + (print_help): Explain the absolute/relative file name issue. + + Fri Mar 8 14:22:26 1996 Anders Lindgren + + * etags.c: New Languange Erlang added. + (Erlang_functions, erlang_func, erlang_attribute, erlang_atom, + erlang_white): New functions. + (Erlang_suffixes): New suffix list. + (lang_names): Erlang entry added. + (prolog_getit): Accepts headers spanning several lines. + Always name tags. + (Prolog_functions): Removed incorrect compensation for + newline characters. + (readline_internal): Zero-terminate last line. + + Wed Mar 20 18:10:06 1996 Mike Long + + * b2m.c (main): Initialize progname variable before using it. + Quote `username' in From_ header. + + Mon Mar 18 21:01:06 1996 Geoff Voelker + + * ntlib.c (getpid): New function. + + Wed Feb 21 15:52:22 1996 Richard Stallman + + * emacsclient.c (main, both definitions): + Print a newline for normal termination. + + Wed Feb 21 12:10:44 1996 Noah Friedman + + * tcp.c (main): Convert port to network byte order. + + Sat Jan 20 15:49:11 1996 Karl Heuer + + * pop.c (pop_retrieve, getline): Avoid type clashes. + + Fri Jan 19 17:52:48 1996 Karl Heuer + + * etags.c (enum sym_type, anonymous enum): Delete final comma. + + Mon Jan 15 01:17:56 1996 Paul Eggert + + * rcs2log (initialize_fullname): Add support for NIS+. + (hostname): Fully qualify the default hostname with the domainname + if the hostname lacks a `.'. + + Mon Jan 15 01:17:56 1996 Paul Eggert + + * rcs2log (initialize_fullname): Add support for NIS+. + (hostname): Fully qualify the default hostname with the domainname + if the hostname lacks a `.'. + + Wed Jan 10 14:44:16 1996 Karl Heuer + + * etags.c (consider_token): Fix typo in expression. + + Thu Jan 4 19:50:31 1996 Paul Eggert + + * etags.c (substitute): Fix spelling in message. + + Wed Jan 3 22:01:28 1996 George V. Reilly + + * makefile.nt (etags, ctags): Compile with regexp support. + (make-docfile, wakeup, etags, ctags, hexl): Ensure build + subdirectory exists before compiling. + + Tue Jan 2 23:19:56 1996 Karl Heuer + + * emacsserver.c (main): Do chmod based on existing permission. + + Wed Dec 27 09:09:37 1995 Richard Stallman + + * Makefile.in (install): Turn on read/execute permission. + + Sun Dec 3 19:31:18 1995 Richard Stallman + + * Makefile.in (LIB_STANDARD_LIBSRC): Use this instead of LIB_STANDARD. + (LOADLIBES): Use LIB_STANDARD_LIBSRC. + + Fri Dec 1 22:49:27 1995 Richard Stallman + + * Makefile.in (THIS_IS_MAKEFILE): Renamed from THIS_IS_YMAKEFILE. + + Wed Dec 7 10:39:09 1995 Francesco Potorti` + + * etags.c (pfnote): Don't make a tag for ctags if there is no name. + (getit, Asm_labels, Perl_functions, Pascal_functions, L_getit, + get_scheme, prolog_getit): Name the tag in ctags mode. + (pfnote): Truncate ctags lines to 50 chars, like it worked once. + (Perl_interpreters): Accept "@PERL@" as an interpreter. + (suggest_asking_for_help): New function. + (main, get_language_from_name): Use suggest_asking_for_help. + (main): Let get_language_from_name make language existence check. + (streq, strneq): Check the arguments #if DEBUG. + + Wed Dec 6 14:39:09 1995 Francesco Potorti` + + * etags.c (Cplusplus_suffixes): Add .M suffix for Objective C++. + (gperf): Added keywords for Objective C and GNU macros. + (sym_type): Added values to account for Objective C and GNU macros. + (begtk): The '@' character can start a token. + (objdef, methodlen, objtag): New variables for Objective C. + (consider_token, C_entries): Added code for Objective C. + (plain_C_suffixes): Add .m and .lm for Objective C. + (Yacc_suffixes): Add .ym for Objective yacc. + (GROW_LINEBUFFER): New macro. + (consider_token, C_entries, Pascal_functions): Use the new macro. + (consider_token): Take one more argument. Caller changed. + (consider_token): Use the hashing function to spot GNU macros. + (C_entries): Consider // as a comment start even in plain C for + the sake of Objective C parsing. + + Mon Dec 4 19:18:59 1995 Francesco Potorti` + + * Makefile.in (ctags): depend on etags only for simplicity; + compile with regexp support enabled. + Fri Nov 24 23:42:28 1995 Richard Stallman diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/Makefile.in emacs-19.31/lib-src/Makefile.in *** emacs-19.30/lib-src/Makefile.in Mon Nov 13 21:59:04 1995 --- emacs-19.31/lib-src/Makefile.in Fri Feb 16 21:22:31 1996 *************** *** 16,20 **** # You should have received a copy of the GNU General Public License # along with GNU Emacs; see the file COPYING. If not, write to ! # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ # Avoid trouble on systems where the `SHELL' variable might be --- 16,21 ---- # You should have received a copy of the GNU General Public License # along with GNU Emacs; see the file COPYING. If not, write to ! # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ! # Boston, MA 02111-1307, USA. # Avoid trouble on systems where the `SHELL' variable might be *************** MOVE_LIBS= *** 135,139 **** #define NO_SHORTNAMES ! #define THIS_IS_YMAKEFILE #define NOT_C_CODE #include "../src/config.h" --- 136,140 ---- #define NO_SHORTNAMES ! #define THIS_IS_MAKEFILE #define NOT_C_CODE #include "../src/config.h" *************** MOVE_LIBS= *** 147,165 **** /* Some machines don't find the standard C libraries in the usual place. */ #ifndef ORDINARY_LINK ! #ifndef LIB_STANDARD ! #define LIB_STANDARD -lc #endif #else ! #ifndef LIB_STANDARD ! #define LIB_STANDARD #endif #endif ! /* Some s/*.h files define this to request special libraries. */ #ifndef LIBS_SYSTEM #define LIBS_SYSTEM #endif ! /* Some m/*.h files define this to request special libraries. */ #ifndef LIBS_MACHINE #define LIBS_MACHINE --- 148,166 ---- /* Some machines don't find the standard C libraries in the usual place. */ #ifndef ORDINARY_LINK ! #ifndef LIB_STANDARD_LIBSRC ! #define LIB_STANDARD_LIBSRC -lc #endif #else ! #ifndef LIB_STANDARD_LIBSRC ! #define LIB_STANDARD_LIBSRC #endif #endif ! /* Some s/SYSTEM.h files define this to request special libraries. */ #ifndef LIBS_SYSTEM #define LIBS_SYSTEM #endif ! /* Some m/MACHINE.h files define this to request special libraries. */ #ifndef LIBS_MACHINE #define LIBS_MACHINE *************** MOVE_LIBS= *** 187,191 **** #endif ! LOADLIBES=LIBS_SYSTEM LIBS_MACHINE LIB_STANDARD /* We need to #define emacs to get the right versions of some files. --- 188,192 ---- #endif ! LOADLIBES=LIBS_SYSTEM LIBS_MACHINE LIB_STANDARD_LIBSRC /* We need to #define emacs to get the right versions of some files. *************** install: ${archlibdir} *** 258,264 **** --- 259,267 ---- for file in ${INSTALLABLES} ; do \ $(INSTALL_PROGRAM) $${file} ${bindir}/$${file} ; \ + chmod a+rx ${bindir}/$${file}; \ done for file in ${INSTALLABLE_SCRIPTS} ; do \ $(INSTALL_PROGRAM) ${srcdir}/$${file} ${bindir}/$${file} ; \ + chmod a+rx ${bindir}/$${file}; \ done *************** etags: ${srcdir}/etags.c $(GETOPTDEPS) $ *** 333,338 **** /* We depend on etags to assure that parallel makes don't write two etags.o files on top of each other. */ ! ctags: ${srcdir}/etags.c $(GETOPTDEPS) etags ! $(CC) ${ALL_CFLAGS} -DCTAGS -DVERSION="\"${version}\"" ${srcdir}/etags.c $(GETOPTOBJS) $(LOADLIBES) -o ctags wakeup: ${srcdir}/wakeup.c --- 336,341 ---- /* We depend on etags to assure that parallel makes don't write two etags.o files on top of each other. */ ! ctags: etags ! $(CC) ${ALL_CFLAGS} -DCTAGS -DVERSION="\"${version}\"" -DETAGS_REGEXPS ${srcdir}/etags.c $(GETOPTOBJS) $(REGEXPOBJ) $(LOADLIBES) -o ctags wakeup: ${srcdir}/wakeup.c diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/alloca.c emacs-19.31/lib-src/alloca.c *** emacs-19.30/lib-src/alloca.c Sat Nov 25 01:04:24 1995 --- emacs-19.31/lib-src/alloca.c Sat May 25 20:21:30 1996 *************** *** 26,29 **** --- 26,36 ---- #endif + #ifdef HAVE_STRING_H + #include + #endif + #ifdef HAVE_STDLIB_H + #include + #endif + #ifdef emacs #include "blockinput.h" *************** typedef char *pointer; *** 67,71 **** --- 74,80 ---- #endif + #ifndef NULL #define NULL 0 + #endif /* Different portions of Emacs need to call different versions of *************** alloca (size) *** 209,212 **** --- 218,224 ---- register pointer new = malloc (sizeof (header) + size); /* Address of header. */ + + if (new == 0) + abort(); ((header *) new)->h.next = last_alloca_header; diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/b2m.c emacs-19.31/lib-src/b2m.c *** emacs-19.30/lib-src/b2m.c Thu May 4 02:43:45 1995 --- emacs-19.31/lib-src/b2m.c Tue Apr 9 20:48:03 1996 *************** main (argc, argv) *** 90,96 **** --- 90,105 ---- #ifdef MSDOS _fmode = O_BINARY; /* all of files are treated as binary files */ + #if __DJGPP__ > 1 + if (!isatty (fileno (stdout))) + setmode (fileno (stdout), O_BINARY); + if (!isatty (fileno (stdin))) + setmode (fileno (stdin), O_BINARY); + #else /* not __DJGPP__ > 1 */ (stdout)->_flag &= ~_IOTEXT; (stdin)->_flag &= ~_IOTEXT; + #endif /* not __DJGPP__ > 1 */ #endif + progname = argv[0]; + if (argc != 1) { *************** main (argc, argv) *** 99,103 **** } labels_saved = printing = header = FALSE; - progname = argv[0]; ltoday = time (0); today = ctime (<oday); --- 108,111 ---- *************** main (argc, argv) *** 114,118 **** { printing = header = TRUE; ! printf ("From Babyl to mail by %s %s", progname, today); continue; } --- 122,126 ---- { printing = header = TRUE; ! printf ("From \"Babyl to mail by %s\" %s", progname, today); continue; } diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/cvtmail.c emacs-19.31/lib-src/cvtmail.c *** emacs-19.30/lib-src/cvtmail.c Thu Apr 13 13:21:00 1995 --- emacs-19.31/lib-src/cvtmail.c Tue Apr 9 17:17:23 1996 *************** *** 1,3 **** --- 1,4 ---- /* Copyright (C) 1985, 1994 Free Software Foundation + This file is part of GNU Emacs. *************** GNU General Public License for more deta *** 14,18 **** You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ /* cvtmail: --- 15,20 ---- You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ! Boston, MA 02111-1307, USA. */ /* cvtmail: diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/emacsclient.c emacs-19.31/lib-src/emacsclient.c *** emacs-19.30/lib-src/emacsclient.c Tue Apr 18 16:47:42 1995 --- emacs-19.31/lib-src/emacsclient.c Mon Apr 8 16:52:51 1996 *************** GNU General Public License for more deta *** 16,20 **** You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ --- 16,21 ---- You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ! Boston, MA 02111-1307, USA. */ *************** main (argc, argv) *** 172,175 **** --- 173,177 ---- rewind (out); /* re-read the output */ str = fgets (string, BUFSIZ, out); + printf ("\n"); /* Now, wait for an answer and print any messages. */ *************** main (argc, argv) *** 325,329 **** strcpy (buf, msgp->mtext); ! printf ("\n%s\n", buf); exit (0); } --- 327,333 ---- strcpy (buf, msgp->mtext); ! printf ("\n"); ! if (*buf) ! printf ("%s\n", buf); exit (0); } diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/emacsserver.c emacs-19.31/lib-src/emacsserver.c *** emacs-19.30/lib-src/emacsserver.c Wed Jun 28 16:09:44 1995 --- emacs-19.31/lib-src/emacsserver.c Tue Apr 9 17:17:41 1996 *************** GNU General Public License for more deta *** 16,20 **** You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ --- 16,21 ---- You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ! Boston, MA 02111-1307, USA. */ *************** main () *** 55,58 **** --- 56,60 ---- #include #include + #include extern int errno; *************** main () *** 90,93 **** --- 92,96 ---- FILE **openfiles; int openfiles_size; + struct stat statbuf; #ifndef convex *************** main () *** 137,141 **** } /* Only this user can send commands to this Emacs. */ ! chmod (server.sun_path, 0600); /* * Now, just wait for everything to come in.. --- 140,150 ---- } /* Only this user can send commands to this Emacs. */ ! if (stat (server.sun_path, &statbuf) < 0) ! { ! perror_1 ("bind"); ! exit (1); ! } ! ! chmod (server.sun_path, statbuf.st_mode & 0600); /* * Now, just wait for everything to come in.. diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/emacstool.c emacs-19.31/lib-src/emacstool.c *** emacs-19.30/lib-src/emacstool.c Sat Feb 26 22:50:52 1994 --- emacs-19.31/lib-src/emacstool.c Mon Jan 15 04:18:04 1996 *************** *** 2,18 **** Copyright (C) 1986, 1988, 1990, 1991 Free Software Foundation, Inc. ! This program is free software; you can redistribute it and/or modify ! it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) ! any later version. ! ! This program is distributed in the hope that it will be useful, ! but WITHOUT ANY WARRANTY; without even the implied warranty of ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! GNU General Public License for more details. ! ! You should have received a copy of the GNU General Public License ! along with this program; if not, write to the Free Software ! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* --- 2,21 ---- Copyright (C) 1986, 1988, 1990, 1991 Free Software Foundation, Inc. ! This file is part of GNU Emacs. ! ! GNU Emacs is free software; you can redistribute it and/or modify ! it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) ! any later version. ! ! GNU Emacs is distributed in the hope that it will be useful, ! but WITHOUT ANY WARRANTY; without even the implied warranty of ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! GNU General Public License for more details. ! ! You should have received a copy of the GNU General Public License ! along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ! Boston, MA 02111-1307, USA. */ /* *************** button_value (event) *** 151,155 **** * sent to emacs. * ! * The theory is that to time double clicks while ignoreing UP buttons, * we must keep track of the accumulated time. * --- 154,158 ---- * sent to emacs. * ! * The theory is that to time double clicks while ignoring UP buttons, * we must keep track of the accumulated time. * *************** int interpose_on_window(argc,argv) *** 377,381 **** { #ifndef TTERM ! int i, font_width_adjust = 1; /* hackery, and hueristics */ /* if -Wt is not supplied, then font comes out as lucida-14 (width=8) * rather than the screen.r.12 (width=7) typically used --- 380,384 ---- { #ifndef TTERM ! int i, font_width_adjust = 1; /* hackery, and heuristics */ /* if -Wt is not supplied, then font comes out as lucida-14 (width=8) * rather than the screen.r.12 (width=7) typically used diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/etags.c emacs-19.31/lib-src/etags.c *** emacs-19.30/lib-src/etags.c Mon Nov 6 12:01:16 1995 --- emacs-19.31/lib-src/etags.c Fri May 17 12:46:15 1996 *************** *** 2,5 **** --- 2,6 ---- Copyright (C) 1984, 87, 88, 89, 93, 94, 95 Free Software Foundation, Inc. and Ken Arnold + This file is not considered part of GNU Emacs. *************** GNU General Public License for more deta *** 15,20 **** You should have received a copy of the GNU General Public License ! along with this program; if not, write to the Free Software ! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* --- 16,21 ---- You should have received a copy of the GNU General Public License ! along with this program; if not, write to the Free Software Foundation, ! Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* *************** Foundation, Inc., 675 Mass Ave, Cambridg *** 26,40 **** * Sam Kendall added C++. * Francesco Potorti` reorganised C and C++ based on work by Joe Wells. - #ifdef ETAGS_REGEXPS * Regexp tags by Tom Tromey. - #endif * ! * Francesco Potorti` (pot@cnuce.cnr.it) is the current maintainer. */ ! char pot_etags_version[] = "@(#) pot revision number is 11.45"; #define TRUE 1 #define FALSE 0 #ifndef DEBUG # define DEBUG FALSE --- 27,40 ---- * Sam Kendall added C++. * Francesco Potorti` reorganised C and C++ based on work by Joe Wells. * Regexp tags by Tom Tromey. * ! * Francesco Potorti` (F.Potorti@cnuce.cnr.it) is the current maintainer. */ ! char pot_etags_version[] = "@(#) pot revision number is 11.63"; #define TRUE 1 #define FALSE 0 + #ifndef DEBUG # define DEBUG FALSE *************** char pot_etags_version[] = "@(#) pot rev *** 42,61 **** #ifdef MSDOS ! #include ! #include #endif /* MSDOS */ #ifdef WINDOWSNT ! #include ! #include ! #include ! #define MAXPATHLEN _MAX_PATH #endif #ifdef HAVE_CONFIG_H ! #include ! /* On some systems, Emacs defines static as nothing for the sake ! of unexec. We don't want that here since we don't use unexec. */ ! #undef static #endif --- 42,63 ---- #ifdef MSDOS ! # include ! # include ! # include #endif /* MSDOS */ #ifdef WINDOWSNT ! # include ! # include ! # include ! # include ! # define MAXPATHLEN _MAX_PATH #endif #ifdef HAVE_CONFIG_H ! # include ! /* On some systems, Emacs defines static as nothing for the sake ! of unexec. We don't want that here since we don't use unexec. */ ! # undef static #endif *************** extern int errno; *** 76,80 **** #ifdef ETAGS_REGEXPS ! #include #endif /* ETAGS_REGEXPS */ --- 78,82 ---- #ifdef ETAGS_REGEXPS ! # include #endif /* ETAGS_REGEXPS */ *************** extern int errno; *** 91,99 **** /* Exit codes for success and failure. */ #ifdef VMS ! #define GOOD 1 ! #define BAD 0 #else ! #define GOOD 0 ! #define BAD 1 #endif --- 93,101 ---- /* Exit codes for success and failure. */ #ifdef VMS ! # define GOOD 1 ! # define BAD 0 #else ! # define GOOD 0 ! # define BAD 1 #endif *************** extern int errno; *** 103,108 **** #define YACC 0x10000 /* yacc file */ ! #define streq(s,t) (strcmp (s, t) == 0) ! #define strneq(s,t,n) (strncmp (s, t, n) == 0) #define lowcase(c) tolower ((unsigned char)c) --- 105,110 ---- #define YACC 0x10000 /* yacc file */ ! #define streq(s,t) ((DEBUG &&!(s)&&!(t)&&(abort(),1)) || !strcmp(s,t)) ! #define strneq(s,t,n) ((DEBUG &&!(s)&&!(t)&&(abort(),1)) || !strncmp(s,t,n)) #define lowcase(c) tolower ((unsigned char)c) *************** extern int errno; *** 114,118 **** #ifdef DOS_NT ! # define absolutefn(fn) (fn[0] == '/' || (isalpha (fn[0]) && fn[1] == ':')) #else # define absolutefn(fn) (fn[0] == '/') --- 116,121 ---- #ifdef DOS_NT ! # define absolutefn(fn) (fn[0] == '/' \ ! || (fn[1] == ':' && fn[2] == '/')) #else # define absolutefn(fn) (fn[0] == '/') *************** typedef int logical; *** 130,134 **** typedef struct nd_st ! { /* sorting structure */ char *name; /* function or type name */ char *file; /* file name */ --- 133,137 ---- typedef struct nd_st ! { /* sorting structure */ char *name; /* function or type name */ char *file; /* file name */ *************** Lang_function C_entries; *** 157,160 **** --- 160,164 ---- Lang_function Cplusplus_entries; Lang_function Cstar_entries; + Lang_function Erlang_functions; Lang_function Fortran_functions; Lang_function Yacc_entries; *************** void plain_C_entries (); *** 173,176 **** --- 177,181 ---- void Cplusplus_entries (); void Cstar_entries (); + void Erlang_functions (); void Fortran_functions (); void Yacc_entries (); *************** void add_regex (); *** 195,198 **** --- 200,204 ---- void add_node (); void error (); + void suggest_asking_for_help (); void fatal (), pfatal (); void find_entries (); *************** char searchar = '/'; /* use /.../ searc *** 211,217 **** int lineno; /* line number of current line */ long charno; /* current character number */ ! ! long linecharno; /* charno of start of line; not used by C, ! but by every other language. */ char *curfile; /* current input file name */ --- 217,221 ---- int lineno; /* line number of current line */ long charno; /* current character number */ ! long linecharno; /* charno of start of line */ char *curfile; /* current input file name */ *************** NODE *head; /* the head of the binary *** 229,232 **** --- 233,239 ---- * regardless of the length of the line. */ + #define GROW_LINEBUFFER(buf,toksize) \ + while (buf.size < toksize) \ + buf.buffer = (char *) xrealloc (buf.buffer, buf.size *= 2) struct linebuffer { *************** struct linebuffer *** 236,240 **** struct linebuffer lb; /* the current line */ ! struct linebuffer token_name; /* used by C_entries as temporary area */ struct { --- 243,247 ---- struct linebuffer lb; /* the current line */ ! struct linebuffer token_name; /* used by C_entries as a temporary area */ struct { *************** struct *** 246,255 **** logical _wht[0177], _etk[0177], _itk[0177], _btk[0177]; char ! *white = " \f\t\n\013", /* white chars */ ! *endtk = " \t\n\013\"'#()[]{}=-+%*/&|^~!<>;,.:?", /* token ending chars */ ! /* token starting chars */ ! *begtk = "ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz$~", ! /* valid in-token chars */ ! *intk = "ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz$0123456789"; logical append_to_tagfile; /* -a: append to tags */ --- 253,264 ---- logical _wht[0177], _etk[0177], _itk[0177], _btk[0177]; char ! /* white chars */ ! *white = " \f\t\n\013", ! /* token ending chars */ ! *endtk = " \t\n\013\"'#()[]{}=-+%*/&|^~!<>;,.:?", ! /* token starting chars */ ! *begtk = "ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz$~@", ! /* valid in-token chars */ ! *intk = "ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz$0123456789"; logical append_to_tagfile; /* -a: append to tags */ *************** char *default_C_suffixes [] = *** 335,384 **** { "c", "h", NULL }; ! /* C++ file */ char *Cplusplus_suffixes [] = ! { "C", "H", "c++", "cc", "cpp", "cxx", "h++", "hh", "hpp", "hxx", NULL }; - /* C* file */ char *Cstar_suffixes [] = { "cs", "hs", NULL }; ! /* Fortran */ char *Fortran_suffixes [] = { "F", "f", "f90", "for", NULL }; - /* Lisp source code */ char *Lisp_suffixes [] = { "cl", "clisp", "el", "l", "lisp", "lsp", "ml", NULL }; - /* Pascal file */ char *Pascal_suffixes [] = { "p", "pas", NULL }; - /* Perl file */ char *Perl_suffixes [] = { "pl", "pm", NULL }; char *Perl_interpreters [] = ! { "perl", NULL }; - /* Pro*C file. */ char *plain_C_suffixes [] = ! { "pc", NULL }; - /* Prolog source code */ char *Prolog_suffixes [] = { "prolog", NULL }; ! /* Scheme source code */ ! /* FIXME Can't do the `SCM' or `scm' prefix with a version number */ char *Scheme_suffixes [] = { "SCM", "SM", "oak", "sch", "scheme", "scm", "sm", "t", NULL }; - /* TeX/LaTeX source code */ char *TeX_suffixes [] = ! { "bib", "clo", "cls", "ltx", "sty", "TeX", "tex", NULL }; - /* Yacc file */ char *Yacc_suffixes [] = ! { "y", NULL }; /* Table of language names and corresponding functions, file suffixes --- 344,389 ---- { "c", "h", NULL }; ! /* .M is for Objective C++ files. */ char *Cplusplus_suffixes [] = ! { "C", "H", "c++", "cc", "cpp", "cxx", "h++", "hh", "hpp", "hxx", "M", NULL}; char *Cstar_suffixes [] = { "cs", "hs", NULL }; ! char *Erlang_suffixes [] = ! { "erl", "hrl", NULL }; ! char *Fortran_suffixes [] = { "F", "f", "f90", "for", NULL }; char *Lisp_suffixes [] = { "cl", "clisp", "el", "l", "lisp", "lsp", "ml", NULL }; char *Pascal_suffixes [] = { "p", "pas", NULL }; char *Perl_suffixes [] = { "pl", "pm", NULL }; char *Perl_interpreters [] = ! { "perl", "@PERL@", NULL }; char *plain_C_suffixes [] = ! { "pc", /* Pro*C file */ ! "m", /* Objective C file */ ! "lm", /* Objective lex file */ ! NULL }; char *Prolog_suffixes [] = { "prolog", NULL }; ! /* Can't do the `SCM' or `scm' prefix with a version number. */ char *Scheme_suffixes [] = { "SCM", "SM", "oak", "sch", "scheme", "scm", "sm", "t", NULL }; char *TeX_suffixes [] = ! { "TeX", "bib", "clo", "cls", "ltx", "sty", "tex", NULL }; char *Yacc_suffixes [] = ! { "y", "ym", NULL }; /* .ym is Objective yacc file */ /* Table of language names and corresponding functions, file suffixes *************** struct lang_entry *** 396,415 **** struct lang_entry lang_names [] = { ! { "asm", Asm_labels, Asm_suffixes }, ! { "c", default_C_entries, default_C_suffixes }, ! { "c++", Cplusplus_entries, Cplusplus_suffixes }, ! { "c*", Cstar_entries, Cstar_suffixes }, ! { "fortran", Fortran_functions, Fortran_suffixes }, ! { "lisp", Lisp_functions, Lisp_suffixes }, ! { "pascal", Pascal_functions, Pascal_suffixes }, ! { "perl", Perl_functions, Perl_suffixes, Perl_interpreters }, ! { "proc", plain_C_entries, plain_C_suffixes }, ! { "prolog", Prolog_functions, Prolog_suffixes }, ! { "scheme" , Scheme_functions, Scheme_suffixes }, ! { "tex", TeX_functions, TeX_suffixes }, ! { "yacc", Yacc_entries, Yacc_suffixes }, ! { "auto", NULL }, /* default guessing scheme */ ! { "none", just_read_file }, /* regexp matching only */ ! { NULL, NULL } /* end of list */ }; --- 401,421 ---- struct lang_entry lang_names [] = { ! { "asm", Asm_labels, Asm_suffixes, NULL }, ! { "c", default_C_entries, default_C_suffixes, NULL }, ! { "c++", Cplusplus_entries, Cplusplus_suffixes, NULL }, ! { "c*", Cstar_entries, Cstar_suffixes, NULL }, ! { "erlang", Erlang_functions, Erlang_suffixes, NULL }, ! { "fortran", Fortran_functions, Fortran_suffixes, NULL }, ! { "lisp", Lisp_functions, Lisp_suffixes, NULL }, ! { "pascal", Pascal_functions, Pascal_suffixes, NULL }, ! { "perl", Perl_functions, Perl_suffixes, Perl_interpreters }, ! { "proc", plain_C_entries, plain_C_suffixes, NULL }, ! { "prolog", Prolog_functions, Prolog_suffixes, NULL }, ! { "scheme", Scheme_functions, Scheme_suffixes, NULL }, ! { "tex", TeX_functions, TeX_suffixes, NULL }, ! { "yacc", Yacc_entries, Yacc_suffixes, NULL }, ! { "auto", NULL }, /* default guessing scheme */ ! { "none", just_read_file }, /* regexp matching only */ ! { NULL, NULL } /* end of list */ }; *************** print_help () *** 455,459 **** printf ("These are the options accepted by %s. You may use unambiguous\n\ abbreviations for the long option names. A - as file name means read\n\ ! names from stdin.\n\n", progname); puts ("-a, --append\n\ --- 461,469 ---- printf ("These are the options accepted by %s. You may use unambiguous\n\ abbreviations for the long option names. A - as file name means read\n\ ! names from stdin.", progname); ! if (!CTAGS) ! printf (" Absolute names are stored in the output file as they\n\ ! are. Relative ones are stored relative to the output file's directory."); ! puts ("\n"); puts ("-a, --append\n\ *************** main (argc, argv) *** 764,768 **** fprintf (stderr, "%s: -%c option may only be given once.\n", progname, opt); ! goto usage; } tagfile = optarg; --- 774,778 ---- fprintf (stderr, "%s: -%c option may only be given once.\n", progname, opt); ! suggest_asking_for_help (); } tagfile = optarg; *************** main (argc, argv) *** 774,783 **** case 'l': argbuffer[current_arg].function = get_language_from_name (optarg); - if (argbuffer[current_arg].function == NULL) - { - fprintf (stderr, "%s: language \"%s\" not recognized.\n", - progname, optarg); - goto usage; - } argbuffer[current_arg].arg_type = at_language; ++current_arg; --- 784,787 ---- *************** main (argc, argv) *** 832,836 **** #endif /* CTAGS */ default: ! goto usage; } } --- 836,840 ---- #endif /* CTAGS */ default: ! suggest_asking_for_help (); } } *************** main (argc, argv) *** 847,871 **** { fprintf (stderr, "%s: No input files specified.\n", progname); ! ! usage: ! fprintf (stderr, "\tTry `%s --help' for a complete list of options.\n", ! progname); ! exit (BAD); } if (tagfile == NULL) ! { ! tagfile = CTAGS ? "tags" : "TAGS"; ! } cwd = etags_getcwd (); /* the current working directory */ ! strcat (cwd, "/"); if (streq (tagfile, "-")) ! { ! tagfiledir = cwd; ! } else ! { ! tagfiledir = absolute_dirname (tagfile, cwd); ! } init (); /* set up boolean "functions" */ --- 851,866 ---- { fprintf (stderr, "%s: No input files specified.\n", progname); ! suggest_asking_for_help (); } if (tagfile == NULL) ! tagfile = CTAGS ? "tags" : "TAGS"; cwd = etags_getcwd (); /* the current working directory */ ! if (cwd[strlen(cwd)-1] != '/') ! strcat (cwd, "/"); if (streq (tagfile, "-")) ! tagfiledir = cwd; else ! tagfiledir = absolute_dirname (tagfile, cwd); init (); /* set up boolean "functions" */ *************** main (argc, argv) *** 880,884 **** { if (streq (tagfile, "-")) ! tagf = stdout; else tagf = fopen (tagfile, append_to_tagfile ? "a" : "w"); --- 875,887 ---- { if (streq (tagfile, "-")) ! { ! tagf = stdout; ! #ifdef DOS_NT ! /* Switch redirected `stdout' to binary mode (setting `_fmode' ! doesn't take effect until after `stdout' is already open). */ ! if (!isatty (fileno (stdout))) ! setmode (fileno (stdout), O_BINARY); ! #endif /* DOS_NT */ ! } else tagf = fopen (tagfile, append_to_tagfile ? "a" : "w"); *************** get_language_from_name (name) *** 993,1005 **** struct lang_entry *lang; ! if (name == NULL) ! return NULL; ! for (lang = lang_names; lang->name != NULL; lang++) ! { ! if (streq (name, lang->name)) ! return lang->function; ! } ! return NULL; } --- 996,1015 ---- struct lang_entry *lang; ! if (name != NULL) ! for (lang = lang_names; lang->name != NULL; lang++) ! { ! if (streq (name, lang->name)) ! return lang->function; ! } ! fprintf (stderr, "%s: language \"%s\" not recognized.\n", ! progname, optarg); ! suggest_asking_for_help (); ! ! /* This point should never be reached. The function should either ! return a function pointer or never return. Note that a NULL ! pointer cannot be considered as an error, as it means that the ! language has not been explicitely imposed by the user ("auto"). */ ! return NULL; /* avoid warnings from compiler */ } *************** process_file (file) *** 1059,1062 **** --- 1069,1079 ---- struct stat stat_buf; FILE *inf; + #ifdef DOS_NT + char *p; + + for (p = file; *p != '\0'; p++) + if (*p == '\\') + *p = '/'; + #endif if (stat (file, &stat_buf) == 0 && !S_ISREG (stat_buf.st_mode)) *************** find_entries (file, inf) *** 1146,1149 **** --- 1163,1167 ---- extern NODE *last_node; + /* Memory leakage here: the memory block pointed by curfile is never released. The amount of memory leaked here is the sum of the *************** find_entries (file, inf) *** 1223,1227 **** void pfnote (name, is_func, linestart, linelen, lno, cno) ! char *name; /* tag name, if different from definition */ logical is_func; /* tag is a function */ char *linestart; /* start of the line where tag is */ --- 1241,1245 ---- void pfnote (name, is_func, linestart, linelen, lno, cno) ! char *name; /* tag name, or NULL if unnamed */ logical is_func; /* tag is a function */ char *linestart; /* start of the line where tag is */ *************** pfnote (name, is_func, linestart, linele *** 1230,1234 **** long cno; /* character number */ { ! register NODE *np = xnew (1, NODE); /* If ctags mode, change name "main" to M. */ --- 1248,1257 ---- long cno; /* character number */ { ! register NODE *np; ! ! if (CTAGS && name == NULL) ! return; ! ! np = xnew (1, NODE); /* If ctags mode, change name "main" to M. */ *************** pfnote (name, is_func, linestart, linele *** 1249,1258 **** /* Our char numbers are 0-base, because of C language tradition? ctags compatibility? old versions compatibility? I don't know. ! Anyway, since emacs's are 1-base we espect etags.el to take care of the difference. If we wanted to have 1-based numbers, we would uncomment the +1 below. */ np->cno = cno /* + 1 */ ; np->left = np->right = NULL; ! np->pat = savenstr (linestart, ((CTAGS && !cxref_style) ? 50 : linelen)); add_node (np, &head); --- 1272,1289 ---- /* Our char numbers are 0-base, because of C language tradition? ctags compatibility? old versions compatibility? I don't know. ! Anyway, since emacs's are 1-base we expect etags.el to take care of the difference. If we wanted to have 1-based numbers, we would uncomment the +1 below. */ np->cno = cno /* + 1 */ ; np->left = np->right = NULL; ! if (CTAGS && !cxref_style) ! { ! if (strlen (linestart) < 50) ! np->pat = concat (linestart, "$", ""); ! else ! np->pat = savenstr (linestart, 50); ! } ! else ! np->pat = savenstr (linestart, linelen); add_node (np, &head); *************** put_entries (node) *** 1370,1403 **** node->pat, node->lno, node->cno); } ! else if (!cxref_style) { ! fprintf (tagf, "%s\t%s\t", ! node->name, node->file); ! ! if (node->is_func) ! { /* a function */ ! putc (searchar, tagf); ! putc ('^', tagf); ! for (sp = node->pat; *sp; sp++) ! { ! if (*sp == '\\' || *sp == searchar) ! putc ('\\', tagf); ! putc (*sp, tagf); ! } ! putc (searchar, tagf); } else ! { /* a typedef; text pattern inadequate */ ! fprintf (tagf, "%d", node->lno); } - putc ('\n', tagf); } - else if (vgrind_style) - fprintf (stdout, "%s %s %d\n", - node->name, node->file, (node->lno + 63) / 64); - else - fprintf (stdout, "%-16s %3d %-16s %s\n", - node->name, node->lno, node->file, node->pat); /* Output subentries that follow this one */ --- 1401,1442 ---- node->pat, node->lno, node->cno); } ! else { ! if (node->name == NULL) ! error ("internal error: NULL name in ctags mode.", 0); ! if (cxref_style) ! { ! if (vgrind_style) ! fprintf (stdout, "%s %s %d\n", ! node->name, node->file, (node->lno + 63) / 64); ! else ! fprintf (stdout, "%-16s %3d %-16s %s\n", ! node->name, node->lno, node->file, node->pat); } else ! { ! fprintf (tagf, "%s\t%s\t", node->name, node->file); ! ! if (node->is_func) ! { /* a function */ ! putc (searchar, tagf); ! putc ('^', tagf); ! ! for (sp = node->pat; *sp; sp++) ! { ! if (*sp == '\\' || *sp == searchar) ! putc ('\\', tagf); ! putc (*sp, tagf); ! } ! putc (searchar, tagf); ! } ! else ! { /* a typedef; text pattern inadequate */ ! fprintf (tagf, "%d", node->lno); ! } ! putc ('\n', tagf); } } /* Output subentries that follow this one */ *************** total_size_of_entries (node) *** 1455,1459 **** enum sym_type { ! st_none, st_C_struct, st_C_enum, st_C_define, st_C_typedef, st_C_typespec }; --- 1494,1499 ---- enum sym_type { ! st_none, st_C_objprot, st_C_objimpl, st_C_objend, st_C_gnumacro, ! st_C_struct, st_C_enum, st_C_define, st_C_typedef, st_C_typespec }; *************** enum sym_type *** 1463,1466 **** --- 1503,1510 ---- struct C_stab_entry { char *name; int c_ext; enum sym_type type; } %% + @interface, 0, st_C_objprot + @protocol, 0, st_C_objprot + @implementation,0, st_C_objimpl + @end, 0, st_C_objend class, C_PLPL, st_C_struct domain, C_STAR, st_C_struct *************** static, 0, st_C_typespec *** 1484,1487 **** --- 1528,1540 ---- const, 0, st_C_typespec volatile, 0, st_C_typespec + # DEFUN used in emacs, the next three used in glibc (SYSCALL only for mach). + DEFUN, 0, st_C_gnumacro + SYSCALL, 0, st_C_gnumacro + ENTRY, 0, st_C_gnumacro + PSEUDO, 0, st_C_gnumacro + # These are defined inside C functions, so currently they are not met. + # EXFUN used in glibc, DEFVAR_* in emacs. + #EXFUN, 0, st_C_gnumacro + #DEFVAR_, 0, st_C_gnumacro %] and replace lines between %< and %> with its output. */ *************** struct C_stab_entry { char *name; int c_ *** 1494,1503 **** #define MIN_WORD_LENGTH 3 ! #define MAX_WORD_LENGTH 8 ! #define MIN_HASH_VALUE 10 ! #define MAX_HASH_VALUE 62 /* ! 21 keywords ! 53 is the maximum key range */ --- 1547,1556 ---- #define MIN_WORD_LENGTH 3 ! #define MAX_WORD_LENGTH 15 ! #define MIN_HASH_VALUE 7 ! #define MAX_HASH_VALUE 63 /* ! 29 keywords ! 57 is the maximum key range */ *************** hash (str, len) *** 1509,1525 **** static unsigned char hash_table[] = { ! 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, ! 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, ! 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, ! 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, ! 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, ! 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, ! 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, ! 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, ! 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, ! 62, 62, 62, 62, 62, 62, 62, 2, 62, 7, ! 6, 9, 15, 30, 62, 24, 62, 62, 1, 24, ! 7, 27, 13, 62, 19, 26, 18, 27, 1, 62, ! 62, 62, 62, 62, 62, 62, 62, 62, }; return len + hash_table[str[2]] + hash_table[str[0]]; --- 1562,1578 ---- static unsigned char hash_table[] = { ! 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, ! 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, ! 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, ! 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, ! 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, ! 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, ! 63, 63, 63, 63, 17, 63, 63, 63, 4, 14, ! 4, 63, 63, 63, 63, 63, 63, 63, 63, 63, ! 8, 63, 63, 0, 23, 63, 63, 63, 63, 63, ! 63, 63, 63, 63, 63, 63, 63, 28, 63, 28, ! 10, 31, 27, 18, 63, 6, 63, 63, 26, 1, ! 11, 2, 29, 63, 29, 16, 26, 13, 15, 63, ! 63, 63, 63, 63, 63, 63, 63, 63, }; return len + hash_table[str[2]] + hash_table[str[0]]; *************** in_word_set (str, len) *** 1534,1574 **** static struct C_stab_entry wordlist[] = { ! {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, ! {"",}, ! {"volatile", 0, st_C_typespec}, ! {"",}, ! {"long", 0, st_C_typespec}, ! {"char", 0, st_C_typespec}, ! {"class", C_PLPL, st_C_struct}, ! {"",}, {"",}, {"",}, {"",}, ! {"const", 0, st_C_typespec}, ! {"",}, {"",}, {"",}, {"",}, ! {"auto", 0, st_C_typespec}, ! {"",}, {"",}, ! {"define", 0, st_C_define}, ! {"",}, ! {"void", 0, st_C_typespec}, {"",}, {"",}, {"",}, - {"extern", 0, st_C_typespec}, - {"static", 0, st_C_typespec}, - {"",}, {"domain", C_STAR, st_C_struct}, ! {"",}, ! {"typedef", 0, st_C_typedef}, {"double", 0, st_C_typespec}, ! {"enum", 0, st_C_enum}, ! {"",}, {"",}, {"",}, {"",}, {"int", 0, st_C_typespec}, {"",}, ! {"float", 0, st_C_typespec}, {"",}, {"",}, {"",}, {"struct", 0, st_C_struct}, ! {"",}, {"",}, {"",}, {"",}, ! {"union", 0, st_C_struct}, ! {"",}, ! {"short", 0, st_C_typespec}, {"",}, {"",}, ! {"unsigned", 0, st_C_typespec}, ! {"signed", 0, st_C_typespec}, }; --- 1587,1631 ---- static struct C_stab_entry wordlist[] = { ! {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, ! {"SYSCALL", 0, st_C_gnumacro}, ! {"",}, {"",}, {"",}, {"",}, {"",}, ! {"DEFUN", 0, st_C_gnumacro}, {"",}, {"",}, {"",}, {"domain", C_STAR, st_C_struct}, ! {"",}, {"",}, {"",}, {"",}, {"",}, ! {"short", 0, st_C_typespec}, ! {"union", 0, st_C_struct}, ! {"void", 0, st_C_typespec}, ! {"",}, {"",}, ! {"PSEUDO", 0, st_C_gnumacro}, {"double", 0, st_C_typespec}, ! {"",}, {"",}, ! {"@end", 0, st_C_objend}, ! {"@implementation", 0, st_C_objimpl}, ! {"float", 0, st_C_typespec}, {"int", 0, st_C_typespec}, {"",}, ! {"unsigned", 0, st_C_typespec}, ! {"@interface", 0, st_C_objprot}, ! {"",}, ! {"signed", 0, st_C_typespec}, ! {"long", 0, st_C_typespec}, ! {"ENTRY", 0, st_C_gnumacro}, ! {"define", 0, st_C_define}, ! {"const", 0, st_C_typespec}, {"",}, {"",}, {"",}, + {"enum", 0, st_C_enum}, + {"volatile", 0, st_C_typespec}, + {"static", 0, st_C_typespec}, {"struct", 0, st_C_struct}, ! {"",}, {"",}, {"",}, ! {"@protocol", 0, st_C_objprot}, {"",}, {"",}, ! {"auto", 0, st_C_typespec}, ! {"",}, ! {"char", 0, st_C_typespec}, ! {"class", C_PLPL, st_C_struct}, ! {"typedef", 0, st_C_typedef}, ! {"extern", 0, st_C_typespec}, }; *************** in_word_set (str, len) *** 1581,1585 **** register char *s = wordlist[key].name; ! if (*s == *str && strneq (str + 1, s + 1, len - 1)) return &wordlist[key]; } --- 1638,1642 ---- register char *s = wordlist[key].name; ! if (*s == *str && !strncmp (str + 1, s + 1, len - 1)) return &wordlist[key]; } *************** C_symtype(str, len, c_ext) *** 1606,1610 **** * funcdef is its state variable. */ ! typedef enum { fnone, /* nothing seen */ --- 1663,1667 ---- * funcdef is its state variable. */ ! enum { fnone, /* nothing seen */ *************** typedef enum *** 1614,1626 **** flistseen, /* after parameter list */ fignore /* before open brace */ ! } FUNCST; ! FUNCST funcdef; /* * typedefs are recognized using a simple finite automaton. ! * typeddef is its state variable. */ ! typedef enum { tnone, /* nothing seen */ --- 1671,1682 ---- flistseen, /* after parameter list */ fignore /* before open brace */ ! } funcdef; /* * typedefs are recognized using a simple finite automaton. ! * typdef is its state variable. */ ! enum { tnone, /* nothing seen */ *************** typedef enum *** 1629,1634 **** tend, /* just before typedef tag */ tignore /* junk after typedef tag */ ! } TYPEDST; ! TYPEDST typdef; --- 1685,1689 ---- tend, /* just before typedef tag */ tignore /* junk after typedef tag */ ! } typdef; *************** TYPEDST typdef; *** 1638,1642 **** * variable. */ ! typedef enum { snone, /* nothing seen yet */ --- 1693,1697 ---- * variable. */ ! enum { snone, /* nothing seen yet */ *************** typedef enum *** 1645,1650 **** scolonseen, /* colon seen after struct-like tag */ sinbody /* in struct body: recognize member func defs*/ ! } STRUCTST; ! STRUCTST structdef; /* --- 1700,1704 ---- scolonseen, /* colon seen after struct-like tag */ sinbody /* in struct body: recognize member func defs*/ ! } structdef; /* *************** enum sym_type structtype; *** 1657,1663 **** /* * Yet another little state machine to deal with preprocessor lines. */ ! typedef enum { dnone, /* nothing seen */ --- 1711,1722 ---- /* + * When objdef is different from onone, objtag is the name of the class. + */ + char *objtag = ""; + + /* * Yet another little state machine to deal with preprocessor lines. */ ! enum { dnone, /* nothing seen */ *************** typedef enum *** 1665,1670 **** ddefineseen, /* '#' and 'define' seen */ dignorerest /* ignore rest of line */ ! } DEFINEST; ! DEFINEST definedef; /* --- 1724,1747 ---- ddefineseen, /* '#' and 'define' seen */ dignorerest /* ignore rest of line */ ! } definedef; ! ! /* ! * State machine for Objective C protocols and implementations. ! */ ! enum ! { ! onone, /* nothing seen */ ! oprotocol, /* @interface or @protocol seen */ ! oimplementation, /* @implementations seen */ ! otagseen, /* class name seen */ ! oparenseen, /* parenthesis before category seen */ ! ocatseen, /* category name seen */ ! oinbody, /* in @implementation body */ ! omethodsign, /* in @implementation body, after +/- */ ! omethodtag, /* after method name */ ! omethodcolon, /* after method colon */ ! omethodparm, /* after method parameter */ ! oignore /* wait for @end */ ! } objdef; /* *************** logical yacc_rules; *** 1680,1683 **** --- 1757,1765 ---- /* + * methodlen is the length of the method name stored in token_name. + */ + int methodlen; + + /* * consider_token () * checks to see if the current token is at the start of a *************** logical yacc_rules; *** 1698,1706 **** * definedef IN OUT * typdef IN OUT * next_token_is_func IN OUT */ logical ! consider_token (str, len, c, c_ext, cblev, is_func) register char *str; /* IN: token pointer */ register int len; /* IN: token length */ --- 1780,1789 ---- * definedef IN OUT * typdef IN OUT + * objdef IN OUT * next_token_is_func IN OUT */ logical ! consider_token (str, len, c, c_ext, cblev, parlev, is_func) register char *str; /* IN: token pointer */ register int len; /* IN: token length */ *************** consider_token (str, len, c, c_ext, cble *** 1708,1711 **** --- 1791,1795 ---- int c_ext; /* IN: C extensions mask */ int cblev; /* IN: curly brace level */ + int parlev; /* IN: parenthesis level */ logical *is_func; /* OUT: function found */ { *************** consider_token (str, len, c, c_ext, cble *** 1832,1851 **** /* Detect GNU macros. */ ! if (definedef == dnone) ! if (strneq (str, "DEFUN", len) /* Used in emacs */ ! #if FALSE ! These are defined inside C functions, so currently they ! are not met anyway. ! || strneq (str, "EXFUN", len) /* Used in glibc */ ! || strneq (str, "DEFVAR_", 7) /* Used in emacs */ ! #endif ! || strneq (str, "SYSCALL", len) /* Used in glibc (mach) */ ! || strneq (str, "ENTRY", len) /* Used in glibc */ ! || strneq (str, "PSEUDO", len)) /* Used in glibc */ ! ! { ! next_token_is_func = TRUE; ! return FALSE; ! } if (next_token_is_func) { --- 1916,1924 ---- /* Detect GNU macros. */ ! if (definedef == dnone && toktype == st_C_gnumacro) ! { ! next_token_is_func = TRUE; ! return FALSE; ! } if (next_token_is_func) { *************** consider_token (str, len, c, c_ext, cble *** 1856,1859 **** --- 1929,2004 ---- } + /* + * Detecting Objective C constructs. + */ + switch (objdef) + { + case onone: + switch (toktype) + { + case st_C_objprot: + objdef = oprotocol; + return FALSE; + case st_C_objimpl: + objdef = oimplementation; + return FALSE; + } + break; + case oimplementation: + /* Save the class tag for functions that may be defined inside. */ + objtag = savenstr (str, len); + objdef = oinbody; + return FALSE; + case oprotocol: + /* Save the class tag for categories. */ + objtag = savenstr (str, len); + objdef = otagseen; + *is_func = TRUE; + return TRUE; + case oparenseen: + objdef = ocatseen; + *is_func = TRUE; + return TRUE; + case oinbody: + break; + case omethodsign: + if (parlev == 0) + { + objdef = omethodtag; + methodlen = len; + GROW_LINEBUFFER (token_name, methodlen+1); + strncpy (token_name.buffer, str, len); + token_name.buffer[methodlen] = '\0'; + return TRUE; + } + return FALSE; + case omethodcolon: + if (parlev == 0) + objdef = omethodparm; + return FALSE; + case omethodparm: + if (parlev == 0) + { + objdef = omethodtag; + methodlen += len; + GROW_LINEBUFFER (token_name, methodlen+1); + strncat (token_name.buffer, str, len); + return TRUE; + } + return FALSE; + case oignore: + if (toktype == st_C_objend) + { + /* Memory leakage here: the string pointed by objtag is + never released, because many tests would be needed to + avoid breaking on incorrect input code. The amount of + memory leaked here is the sum of the lengths of the + class tags. + free (objtag); */ + objdef = onone; + } + return FALSE; + } + /* A function? */ switch (toktype) *************** do { \ *** 1906,1909 **** --- 2051,2055 ---- curlinepos = charno; \ lineno++; \ + linecharno = charno; \ charno += readline (&curlb, inf); \ lp = curlb.buffer; \ *************** do { \ *** 1923,1936 **** } while (0) #define make_tag(isfun) do \ ! { \ ! if (tok.valid) \ ! { \ ! char *name = NULL; \ ! if (tok.named) \ ! name = savestr (token_name.buffer); \ ! pfnote (name, isfun, tok.buffer, tok.linelen, tok.lineno, tok.linepos); \ ! } \ ! else if (DEBUG) abort (); \ tok.valid = FALSE; \ } while (0) --- 2069,2080 ---- } while (0) + /* Ideally this macro should never be called wihen tok.valid is FALSE, + but this would mean that the state machines always guess right. */ #define make_tag(isfun) do \ ! if (tok.valid) { \ ! char *name = NULL; \ ! if (CTAGS || tok.named) \ ! name = savestr (token_name.buffer); \ ! pfnote (name, isfun, tok.buffer, tok.linelen, tok.lineno, tok.linepos); \ tok.valid = FALSE; \ } while (0) *************** C_entries (c_ext, inf) *** 1960,1964 **** *lp = 0; ! definedef = dnone; funcdef = fnone; typdef = tnone; structdef = snone; next_token_is_func = yacc_rules = FALSE; midtoken = inquote = inchar = incomm = quotednl = FALSE; --- 2104,2109 ---- *lp = 0; ! funcdef = fnone; typdef = tnone; structdef = snone; ! definedef = dnone; objdef = onone; next_token_is_func = yacc_rules = FALSE; midtoken = inquote = inchar = incomm = quotednl = FALSE; *************** C_entries (c_ext, inf) *** 2053,2059 **** continue; } ! else if (cplpl && *lp == '/') { ! c = 0; break; } --- 2198,2204 ---- continue; } ! else if (/* cplpl && */ *lp == '/') { ! c = '\0'; break; } *************** C_entries (c_ext, inf) *** 2115,2119 **** if (endtoken (c)) { ! if (cplpl && c == ':' && *lp == ':' && begtoken(*(lp + 1))) { /* --- 2260,2264 ---- if (endtoken (c)) { ! if (c == ':' && cplpl && *lp == ':' && begtoken(*(lp + 1))) { /* *************** C_entries (c_ext, inf) *** 2129,2134 **** if (yacc_rules ! || consider_token (newlb.buffer + tokoff, toklen, ! c, c_ext, cblev, &is_func)) { if (structdef == sinbody --- 2274,2279 ---- if (yacc_rules ! || consider_token (newlb.buffer + tokoff, toklen, c, ! c_ext, cblev, parlev, &is_func)) { if (structdef == sinbody *************** C_entries (c_ext, inf) *** 2137,2148 **** /* function defined in C++ class body */ { ! int strsize = strlen(structtag) + 2 + toklen + 1; ! while (token_name.size < strsize) ! { ! token_name.size *= 2; ! token_name.buffer ! = (char *) xrealloc (token_name.buffer, ! token_name.size); ! } strcpy (token_name.buffer, structtag); strcat (token_name.buffer, "::"); --- 2282,2287 ---- /* function defined in C++ class body */ { ! GROW_LINEBUFFER (token_name, ! strlen(structtag)+2+toklen+1); strcpy (token_name.buffer, structtag); strcat (token_name.buffer, "::"); *************** C_entries (c_ext, inf) *** 2151,2163 **** tok.named = TRUE; } else { ! while (token_name.size < toklen + 1) ! { ! token_name.size *= 2; ! token_name.buffer ! = (char *) xrealloc (token_name.buffer, ! token_name.size); ! } strncpy (token_name.buffer, newlb.buffer+tokoff, toklen); --- 2290,2314 ---- tok.named = TRUE; } + else if (objdef == ocatseen) + /* Objective C category */ + { + GROW_LINEBUFFER (token_name, + strlen(objtag)+2+toklen+1); + strcpy (token_name.buffer, objtag); + strcat (token_name.buffer, "("); + strncat (token_name.buffer, + newlb.buffer+tokoff, toklen); + strcat (token_name.buffer, ")"); + tok.named = TRUE; + } + else if (objdef == omethodtag + || objdef == omethodparm) + /* Objective C method */ + { + tok.named = TRUE; + } else { ! GROW_LINEBUFFER (token_name, toklen+1); strncpy (token_name.buffer, newlb.buffer+tokoff, toklen); *************** C_entries (c_ext, inf) *** 2180,2184 **** && (funcdef == ftagseen || structdef == stagseen ! || typdef == tend)) { if (current_lb_is_new) --- 2331,2336 ---- && (funcdef == ftagseen || structdef == stagseen ! || typdef == tend ! || objdef != onone)) { if (current_lb_is_new) *************** C_entries (c_ext, inf) *** 2239,2242 **** --- 2391,2408 ---- if (definedef != dnone) break; + switch (objdef) + { + case otagseen: + objdef = oignore; + make_tag (TRUE); + break; + case omethodtag: + case omethodparm: + objdef = omethodcolon; + methodlen += 1; + GROW_LINEBUFFER (token_name, methodlen+1); + strcat (token_name.buffer, ":"); + break; + } if (structdef == stagseen) structdef = scolonseen; *************** C_entries (c_ext, inf) *** 2282,2285 **** --- 2448,2459 ---- if (definedef != dnone) break; + switch (objdef) + { + case omethodtag: + case omethodparm: + make_tag (TRUE); + objdef = oinbody; + break; + } if (funcdef != finlist && funcdef != fignore) funcdef = fnone; *************** C_entries (c_ext, inf) *** 2304,2307 **** --- 2478,2483 ---- if (definedef != dnone) break; + if (objdef == otagseen && parlev == 0) + objdef = oparenseen; switch (funcdef) { *************** C_entries (c_ext, inf) *** 2334,2337 **** --- 2510,2518 ---- if (definedef != dnone) break; + if (objdef == ocatseen && parlev == 1) + { + make_tag (TRUE); + objdef = oignore; + } if (--parlev == 0) { *************** C_entries (c_ext, inf) *** 2378,2384 **** break; case fnone: ! /* Neutralize `extern "C" {' grot and look inside structs. */ ! if (cblev == 0 && structdef == snone && typdef == tnone) ! cblev = -1; } cblev++; --- 2559,2578 ---- break; case fnone: ! switch (objdef) ! { ! case otagseen: ! make_tag (TRUE); ! objdef = oignore; ! break; ! case omethodtag: ! case omethodparm: ! make_tag (TRUE); ! objdef = oinbody; ! break; ! default: ! /* Neutralize `extern "C" {' grot and look inside structs. */ ! if (cblev == 0 && structdef == snone && typdef == tnone) ! cblev = -1; ! } } cblev++; *************** C_entries (c_ext, inf) *** 2407,2411 **** never released, because I fear to miss something and break things while freeing the area. The amount of ! memory leaked here is the sum of the lenghts of the struct tags. if (structdef == sinbody) --- 2601,2605 ---- never released, because I fear to miss something and break things while freeing the area. The amount of ! memory leaked here is the sum of the lengths of the struct tags. if (structdef == sinbody) *************** C_entries (c_ext, inf) *** 2416,2421 **** } break; ! case '=': ! case '#': case '+': case '-': case '~': case '&': case '%': case '/': case '|': case '^': case '!': case '<': case '>': case '.': case '?': if (definedef != dnone) --- 2610,2622 ---- } break; ! case '+': ! case '-': ! if (objdef == oinbody && cblev == 0) ! { ! objdef = omethodsign; ! break; ! } ! /* FALLTHRU */ ! case '=': case '#': case '~': case '&': case '%': case '/': case '|': case '^': case '!': case '<': case '>': case '.': case '?': if (definedef != dnone) *************** C_entries (c_ext, inf) *** 2426,2429 **** --- 2627,2635 ---- break; case '\0': + if (objdef == otagseen) + { + make_tag (TRUE); + objdef = oignore; + } /* If a macro spans multiple lines don't reset its state. */ if (quotednl) *************** getit (inf) *** 2554,2558 **** cp++) continue; ! pfnote (NULL, TRUE, lb.buffer, cp - lb.buffer + 1, lineno, linecharno); } --- 2760,2765 ---- cp++) continue; ! pfnote ((CTAGS) ? savenstr (dbp, cp-dbp) : NULL, TRUE, ! lb.buffer, cp - lb.buffer + 1, lineno, linecharno); } *************** Asm_labels (inf) *** 2670,2674 **** { /* Found end of label, so copy it and add it to the table. */ ! pfnote (NULL, TRUE, lb.buffer, cp - lb.buffer + 1, lineno, linecharno); } --- 2877,2881 ---- { /* Found end of label, so copy it and add it to the table. */ ! pfnote ((CTAGS) ? savenstr(lb.buffer, cp-lb.buffer) : NULL, TRUE, lb.buffer, cp - lb.buffer + 1, lineno, linecharno); } *************** Perl_functions (inf) *** 2703,2707 **** while (*cp && ! isspace(*cp) && *cp != '{') cp++; ! pfnote (NULL, TRUE, lb.buffer, cp - lb.buffer + 1, lineno, linecharno); } --- 2910,2914 ---- while (*cp && ! isspace(*cp) && *cp != '{') cp++; ! pfnote ((CTAGS) ? savenstr (lb.buffer, cp-lb.buffer) : NULL, TRUE, lb.buffer, cp - lb.buffer + 1, lineno, linecharno); } *************** Perl_functions (inf) *** 2712,2722 **** /* Pascal parsing */ - #define GET_NEW_LINE \ - { \ - linecharno = charno; lineno++; \ - charno += 1 + readline (&lb, inf); \ - dbp = lb.buffer; \ - } - /* * Locates tags for procedures & functions. Doesn't do any type- or --- 2919,2922 ---- *************** Pascal_functions (inf) *** 2732,2736 **** long save_lcno; int save_lineno, save_len; ! char c; logical /* each of these flags is TRUE iff: */ --- 2932,2936 ---- long save_lcno; int save_lineno, save_len; ! char c, *cp, *namebuf; logical /* each of these flags is TRUE iff: */ *************** Pascal_functions (inf) *** 2765,2769 **** if (c == '\0') /* if end of line */ { ! GET_NEW_LINE; if (*dbp == '\0') continue; --- 2965,2972 ---- if (c == '\0') /* if end of line */ { ! lineno++; ! linecharno = charno; ! charno += readline (&lb, inf); ! dbp = lb.buffer; if (*dbp == '\0') continue; *************** Pascal_functions (inf) *** 2846,2850 **** found_tag = FALSE; verify_tag = FALSE; ! pfnote (NULL, TRUE, tline.buffer, save_len, save_lineno, save_lcno); continue; --- 3049,3053 ---- found_tag = FALSE; verify_tag = FALSE; ! pfnote (namebuf, TRUE, tline.buffer, save_len, save_lineno, save_lcno); continue; *************** Pascal_functions (inf) *** 2853,2868 **** if (get_tagname) /* grab name of proc or fn */ { - int size; - if (*dbp == '\0') continue; /* save all values for later tagging */ ! size = strlen (lb.buffer) + 1; ! while (size > tline.size) ! { ! tline.size *= 2; ! tline.buffer = (char *) xrealloc (tline.buffer, tline.size); ! } strcpy (tline.buffer, lb.buffer); save_lineno = lineno; --- 3056,3064 ---- if (get_tagname) /* grab name of proc or fn */ { if (*dbp == '\0') continue; /* save all values for later tagging */ ! GROW_LINEBUFFER (tline, strlen (lb.buffer) + 1); strcpy (tline.buffer, lb.buffer); save_lineno = lineno; *************** Pascal_functions (inf) *** 2870,2875 **** /* grab block name */ ! for (dbp++; *dbp && (!endtoken (*dbp)); dbp++) continue; save_len = dbp - lb.buffer + 1; get_tagname = FALSE; --- 3066,3073 ---- /* grab block name */ ! for (cp = dbp + 1; *cp && (!endtoken (*cp)); cp++) continue; + namebuf = (CTAGS) ? savenstr (dbp, cp-dbp) : NULL; + dbp = cp; /* set dbp to e-o-token */ save_len = dbp - lb.buffer + 1; get_tagname = FALSE; *************** L_getit () *** 2944,2948 **** return; ! pfnote (NULL, TRUE, lb.buffer, cp - lb.buffer + 1, lineno, linecharno); } --- 3142,3147 ---- return; ! pfnote ((CTAGS) ? savenstr (dbp, cp-dbp) : NULL, TRUE, ! lb.buffer, cp - lb.buffer + 1, lineno, linecharno); } *************** get_scheme () *** 3061,3065 **** cp++) continue; ! pfnote (NULL, TRUE, lb.buffer, cp - lb.buffer + 1, lineno, linecharno); } --- 3260,3265 ---- cp++) continue; ! pfnote ((CTAGS) ? savenstr (dbp, cp-dbp) : NULL, TRUE, ! lb.buffer, cp - lb.buffer + 1, lineno, linecharno); } *************** TEX_Token (cp) *** 3270,3369 **** } ! /* Support for Prolog. */ - /* Whole head (not only functor, but also arguments) - is gotten in compound term. */ void ! prolog_getit (s) char *s; { ! char *save_s; ! int insquote, npar; ! save_s = s; ! insquote = FALSE; ! npar = 0; ! while (1) { ! if (s[0] == '\0') /* syntax error. */ ! return; ! else if (insquote && s[0] == '\'' && s[1] == '\'') ! s += 2; ! else if (s[0] == '\'') ! { ! insquote = !insquote; ! s++; } ! else if (!insquote && s[0] == '(') { ! npar++; ! s++; } ! else if (!insquote && s[0] == ')') { ! npar--; ! s++; ! if (npar == 0) ! break; ! else if (npar < 0) /* syntax error. */ ! return; ! } ! else if (!insquote && s[0] == '.' ! && (isspace (s[1]) || s[1] == '\0')) ! { /* fullstop. */ ! if (npar != 0) /* syntax error. */ ! return; ! s++; ! break; } ! else ! s++; } ! pfnote (NULL, TRUE, save_s, s-save_s, lineno, linecharno); } ! /* It is assumed that prolog predicate starts from column 0. */ void ! Prolog_functions (inf) FILE *inf; { ! void skip_comment (), prolog_getit (); - lineno = linecharno = charno = 0; while (!feof (inf)) { lineno++; linecharno += charno; ! charno = readline (&lb, inf) + 1; /* 1 for newline. */ dbp = lb.buffer; ! if (isspace (dbp[0])) /* not predicate header. */ continue; ! else if (dbp[0] == '%') /* comment. */ continue; ! else if (dbp[0] == '/' && dbp[1] == '*') /* comment. */ ! skip_comment (&lb, inf, &lineno, &linecharno); ! else /* found. */ ! prolog_getit (dbp); } } void ! skip_comment (plb, inf, plineno, plinecharno) ! struct linebuffer *plb; ! FILE *inf; ! int *plineno; /* result */ ! long *plinecharno; /* result */ { ! char *cp; ! do { ! for (cp = plb->buffer; *cp != '\0'; cp++) ! if (cp[0] == '*' && cp[1] == '/') ! return; ! (*plineno)++; ! *plinecharno += readline (plb, inf) + 1; /* 1 for newline. */ } ! while (!feof(inf)); } --- 3470,3876 ---- } ! /* ! * Prolog support (rewritten) by Anders Lindgren, Mar. 96 ! * ! * Assumes that the predicate starts at column 0. ! * Only the first clause of a predicate is added. ! */ ! void ! Prolog_functions (inf) ! FILE *inf; ! { ! int prolog_pred (); ! void prolog_skip_comment (); ! ! char * last; ! int len; ! int allocated; ! ! allocated = 0; ! len = 0; ! last = NULL; ! ! lineno = 0; ! linecharno = 0; ! charno = 0; ! ! while (!feof (inf)) ! { ! lineno++; ! linecharno += charno; ! charno = readline (&lb, inf); ! dbp = lb.buffer; ! if (dbp[0] == '\0') /* Empty line */ ! continue; ! else if (isspace (dbp[0])) /* Not a predicate */ ! continue; ! else if (dbp[0] == '/' && dbp[1] == '*') /* comment. */ ! prolog_skip_comment (&lb, inf, &lineno, &linecharno); ! else if (len = prolog_pred (dbp, last)) ! { ! /* Predicate. Store the function name so that we only ! * generates a tag for the first clause. */ ! if (last == NULL) ! last = xnew(len + 1, char); ! else if (len + 1 > allocated) ! last = (char *) xrealloc(last, len + 1); ! allocated = len + 1; ! strncpy (last, dbp, len); ! last[len] = '\0'; ! } ! } ! } ! void ! prolog_skip_comment (plb, inf) ! struct linebuffer *plb; ! FILE *inf; ! { ! char *cp; ! ! do ! { ! for (cp = plb->buffer; *cp != '\0'; cp++) ! if (cp[0] == '*' && cp[1] == '/') ! return; ! lineno++; ! linecharno += readline (plb, inf); ! } ! while (!feof(inf)); ! } ! ! /* ! * A predicate definition is added if it matches: ! * ( ! * ! * It is added to the tags database if it doesn't match the ! * name of the previous clause header. ! * ! * Return the size of the name of the predicate, or 0 if no header ! * was found. ! */ ! int ! prolog_pred (s, last) char *s; + char *last; /* Name of last clause. */ { ! int prolog_atom(); ! int prolog_white(); ! int pos; ! int len; ! ! pos = prolog_atom(s, 0); ! if (pos < 1) ! return 0; ! ! len = pos; ! pos += prolog_white(s, pos); ! ! if ((s[pos] == '(') || (s[pos] == '.')) { ! if (s[pos] == '(') ! pos++; ! ! /* Save only the first clause. */ ! if ((last == NULL) || ! (len != strlen(last)) || ! (strncmp(s, last, len) != 0)) ! { ! pfnote ((CTAGS) ? savenstr (s, len) : NULL, TRUE, ! s, pos, lineno, linecharno); ! return len; } ! } ! return 0; ! } ! ! /* ! * Consume a Prolog atom. ! * Return the number of bytes consumed, or -1 if there was an error. ! * ! * A prolog atom, in this context, could be one of: ! * - An alphanumeric sequence, starting with a lower case letter. ! * - A quoted arbitrary string. Single quotes can escape themselves. ! * Backslash quotes everything. ! */ ! int ! prolog_atom (s, pos) ! char *s; ! int pos; ! { ! int origpos; ! ! origpos = pos; ! ! if (islower(s[pos]) || (s[pos] == '_')) ! { ! /* The atom is unquoted. */ ! pos++; ! while (isalnum(s[pos]) || (s[pos] == '_')) { ! pos++; } ! return pos - origpos; ! } ! else if (s[pos] == '\'') ! { ! pos++; ! ! while (1) { ! if (s[pos] == '\'') ! { ! pos++; ! if (s[pos] != '\'') ! break; ! pos++; /* A double quote */ ! } ! else if (s[pos] == '\0') ! /* Multiline quoted atoms are ignored. */ ! return -1; ! else if (s[pos] == '\\') ! { ! if (s[pos+1] == '\0') ! return -1; ! pos += 2; ! } ! else ! pos++; } ! return pos - origpos; } ! else ! return -1; } ! /* Consume whitespace. Return the number of bytes eaten. */ ! int ! prolog_white (s, pos) ! char *s; ! int pos; ! { ! int origpos; ! ! origpos = pos; ! ! while (isspace(s[pos])) ! pos++; ! ! return pos - origpos; ! } ! ! /* ! * Support for Erlang -- Anders Lindgren, Feb 1996. ! * ! * Generates tags for functions, defines, and records. ! * ! * Assumes that Erlang functions start at column 0. ! */ void ! Erlang_functions (inf) FILE *inf; { ! int erlang_func (); ! void erlang_attribute (); ! ! char * last; ! int len; ! int allocated; ! ! allocated = 0; ! len = 0; ! last = NULL; ! ! lineno = 0; ! linecharno = 0; ! charno = 0; while (!feof (inf)) { lineno++; linecharno += charno; ! charno = readline (&lb, inf); dbp = lb.buffer; ! if (dbp[0] == '\0') /* Empty line */ continue; ! else if (isspace (dbp[0])) /* Not function nor attribute */ continue; ! else if (dbp[0] == '%') /* comment */ ! continue; ! else if (dbp[0] == '"') /* Sometimes, strings start in column one */ ! continue; ! else if (dbp[0] == '-') /* attribute, e.g. "-define" */ ! { ! erlang_attribute(dbp); ! last = NULL; ! } ! else if (len = erlang_func (dbp, last)) ! { ! /* ! * Function. Store the function name so that we only ! * generates a tag for the first clause. ! */ ! if (last == NULL) ! last = xnew(len + 1, char); ! else if (len + 1 > allocated) ! last = (char *) xrealloc(last, len + 1); ! allocated = len + 1; ! strncpy (last, dbp, len); ! last[len] = '\0'; ! } ! } ! } ! ! ! /* ! * A function definition is added if it matches: ! * ( ! * ! * It is added to the tags database if it doesn't match the ! * name of the previous clause header. ! * ! * Return the size of the name of the function, or 0 if no function ! * was found. ! */ ! int ! erlang_func (s, last) ! char *s; ! char *last; /* Name of last clause. */ ! { ! int erlang_atom (); ! int erlang_white (); ! ! int pos; ! int len; ! ! pos = erlang_atom(s, 0); ! if (pos < 1) ! return 0; ! ! len = pos; ! pos += erlang_white(s, pos); ! ! if (s[pos++] == '(') ! { ! /* Save only the first clause. */ ! if ((last == NULL) || ! (len != strlen(last)) || ! (strncmp(s, last, len) != 0)) ! { ! pfnote ((CTAGS) ? savenstr (s, len) : NULL, TRUE, ! s, pos, lineno, linecharno); ! return len; ! } } + return 0; } + + /* + * Handle attributes. Currently, tags are generated for defines + * and records. + * + * They are on the form: + * -define(foo, bar). + * -define(Foo(M, N), M+N). + * -record(graph, {vtab = notable, cyclic = true}). + */ void ! erlang_attribute (s) ! char *s; { ! int erlang_atom (); ! int erlang_white (); ! int pos; ! int len; ! ! if ((strncmp(s, "-define", 7) == 0) || ! (strncmp(s, "-record", 7) == 0)) { ! pos = 7; ! pos += erlang_white(s, pos); ! ! if (s[pos++] == '(') ! { ! pos += erlang_white(s, pos); ! ! if (len = erlang_atom(s, pos)) ! { ! pfnote ((CTAGS) ? savenstr (& s[pos], len) : NULL, TRUE, ! s, pos + len, lineno, linecharno); ! } ! } } ! return; ! } ! ! ! /* ! * Consume an Erlang atom (or variable). ! * Return the number of bytes consumed, or -1 if there was an error. ! */ ! int ! erlang_atom (s, pos) ! char *s; ! int pos; ! { ! int origpos; ! ! origpos = pos; ! ! if (isalpha (s[pos]) || s[pos] == '_') ! { ! /* The atom is unquoted. */ ! pos++; ! while (isalnum (s[pos]) || s[pos] == '_') ! pos++; ! return pos - origpos; ! } ! else if (s[pos] == '\'') ! { ! pos++; ! ! while (1) ! { ! if (s[pos] == '\'') ! { ! pos++; ! break; ! } ! else if (s[pos] == '\0') ! /* Multiline quoted atoms are ignored. */ ! return -1; ! else if (s[pos] == '\\') ! { ! if (s[pos+1] == '\0') ! return -1; ! pos += 2; ! } ! else ! pos++; ! } ! return pos - origpos; ! } ! else ! return -1; ! } ! ! /* Consume whitespace. Return the number of bytes eaten */ ! int ! erlang_white (s, pos) ! char *s; ! int pos; ! { ! int origpos; ! ! origpos = pos; ! ! while (isspace (s[pos])) ! pos++; ! ! return pos - origpos; } *************** skip_comment (plb, inf, plineno, plinech *** 3371,3375 **** /* Take a string like "/blah/" and turn it into "blah", making sure that the first and last characters are the same, and handling ! quoted separator characters. Actually, stops on the occurence of an unquoted separator. Also turns "\t" into a Tab character. Returns pointer to terminating separator. Works in place. Null --- 3878,3882 ---- /* Take a string like "/blah/" and turn it into "blah", making sure that the first and last characters are the same, and handling ! quoted separator characters. Actually, stops on the occurrence of an unquoted separator. Also turns "\t" into a Tab character. Returns pointer to terminating separator. Works in place. Null *************** substitute (in, out, regs) *** 3493,3497 **** if (!*t) { ! fprintf (stderr, "%s: pattern subtitution ends prematurely\n", progname); return NULL; --- 4000,4004 ---- if (!*t) { ! fprintf (stderr, "%s: pattern substitution ends prematurely\n", progname); return NULL; *************** readline_internal (linebuffer, stream) *** 3572,3575 **** --- 4079,4083 ---- if (c == EOF) { + *p = '\0'; chars_deleted = 0; break; *************** readline (linebuffer, stream) *** 3605,3612 **** { /* Read new line. */ - int i; long result = readline_internal (linebuffer, stream); - #ifdef ETAGS_REGEXPS /* Match against all listed patterns. */ for (i = 0; i < num_patterns; ++i) --- 4113,4120 ---- { /* Read new line. */ long result = readline_internal (linebuffer, stream); #ifdef ETAGS_REGEXPS + int i; + /* Match against all listed patterns. */ for (i = 0; i < num_patterns; ++i) *************** just_read_file (inf) *** 3661,3664 **** --- 4169,4175 ---- FILE *inf; { + lineno = 0; + charno = 0; + while (!feof (inf)) { *************** pfatal (s1) *** 3755,3758 **** --- 4266,4277 ---- } + void + suggest_asking_for_help () + { + fprintf (stderr, "\tTry `%s --help' for a complete list of options.\n", + progname); + exit (BAD); + } + /* Print error message. `s1' is printf control string, `s2' is arg for it. */ void *************** etags_getcwd () *** 3791,3800 **** getwd (path); ! p = path; ! while (*p) if (*p == '\\') ! *p++ = '/'; else ! *p++ = lowcase (*p); return strdup (path); --- 4310,4318 ---- getwd (path); ! for (p = path; *p != '\0'; p++) if (*p == '\\') ! *p = '/'; else ! *p = lowcase (*p); return strdup (path); *************** absolute_filename (file, cwd) *** 3876,3879 **** --- 4394,4403 ---- if (absolutefn (file)) res = concat (file, "", ""); + #ifdef DOS_NT + /* We don't support non-absolute filenames with a drive + letter, like `d:NAME' (it's too much hassle). */ + else if (file[1] == ':') + fatal ("%s: relative filenames with drive letters not supported", file); + #endif else res = concat (cwd, file, ""); *************** absolute_filename (file, cwd) *** 3891,3899 **** do cp--; ! while (cp >= res && *cp != '/'); if (*cp == '/') { strcpy (cp, slashp + 3); } else /* else (cp == res) */ { --- 4415,4430 ---- do cp--; ! while (cp >= res && !absolutefn (cp)); if (*cp == '/') { strcpy (cp, slashp + 3); } + #ifdef DOS_NT + /* Under MSDOS and NT we get `d:/NAME' as absolute + filename, so the luser could say `d:/../NAME'. + We silently treat this as `d:/NAME'. */ + else if (cp[1] == ':') + strcpy (cp + 3, slashp + 4); + #endif else /* else (cp == res) */ { *************** absolute_dirname (file, cwd) *** 3928,3931 **** --- 4459,4469 ---- char *slashp, *res; char save; + #ifdef DOS_NT + char *p; + + for (p = file; *p != '\0'; p++) + if (*p == '\\') + *p = '/'; + #endif slashp = etags_strrchr (file, '/'); diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/fakemail.c emacs-19.31/lib-src/fakemail.c *** emacs-19.30/lib-src/fakemail.c Sat Aug 12 14:14:41 1995 --- emacs-19.31/lib-src/fakemail.c Sun Apr 28 14:25:12 1996 *************** GNU General Public License for more deta *** 16,20 **** You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ --- 16,21 ---- You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ! Boston, MA 02111-1307, USA. */ *************** main () *** 48,51 **** --- 49,56 ---- #undef open #undef close + #endif + + #ifdef WINDOWSNT + #include "ntlib.h" #endif diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/getdate.c emacs-19.31/lib-src/getdate.c *** emacs-19.30/lib-src/getdate.c Wed Nov 22 10:39:44 1995 --- emacs-19.31/lib-src/getdate.c Tue Apr 9 17:18:04 1996 *************** *** 1,4 **** ! /* A Bison parser, made from getdate.y with Bison version GNU Bison version 1.22 */ --- 1,5 ---- ! /* A Bison parser, made from getdate.y ! by Bison version A2.5 (Andrew Consortium) */ *************** static int yyerror (); *** 116,119 **** --- 117,121 ---- #define EPOCH 1970 + #define DOOMSDAY 2038 #define HOUR(x) ((time_t)(x) * 60) #define SECSPERDAY (24L * 60L * 60L) *************** static time_t yyRelSeconds; *** 173,198 **** ! #line 155 "getdate.y" typedef union { time_t Number; enum _MERIDIAN Meridian; } YYSTYPE; - - #ifndef YYLTYPE - typedef - struct yyltype - { - int timestamp; - int first_line; - int first_column; - int last_line; - int last_column; - char *text; - } - yyltype; - - #define YYLTYPE yyltype - #endif - #include --- 175,183 ---- ! #line 156 "getdate.y" typedef union { time_t Number; enum _MERIDIAN Meridian; } YYSTYPE; #include *************** static const short yyrhs[] = { -1, *** 270,284 **** #if YYDEBUG != 0 static const short yyrline[] = { 0, ! 169, 170, 173, 176, 179, 182, 185, 188, 191, 197, ! 203, 210, 216, 226, 230, 234, 241, 245, 249, 255, ! 259, 264, 270, 276, 280, 285, 289, 296, 300, 303, ! 306, 309, 312, 315, 318, 321, 324, 327, 332, 359, ! 362 }; ! static const char * const yytname[] = { "$","error","$illegal.","tAGO","tDAY", "tDAYZONE","tID","tMERIDIAN","tMINUTE_UNIT","tMONTH","tMONTH_UNIT","tSEC_UNIT", "tSNUMBER","tUNUMBER","tZONE","tDST","':'","','","'/'","spec","item","time", ! "zone","day","date","rel","relunit","number","o_merid","" }; #endif --- 255,273 ---- #if YYDEBUG != 0 static const short yyrline[] = { 0, ! 170, 171, 174, 177, 180, 183, 186, 189, 192, 198, ! 204, 211, 217, 227, 231, 235, 242, 246, 250, 256, ! 260, 265, 271, 277, 281, 286, 290, 297, 301, 304, ! 307, 310, 313, 316, 319, 322, 325, 328, 333, 360, ! 363 }; + #endif ! ! #if YYDEBUG != 0 ! ! static const char * const yytname[] = { "$","error","$undefined.","tAGO","tDAY", "tDAYZONE","tID","tMERIDIAN","tMINUTE_UNIT","tMONTH","tMONTH_UNIT","tSEC_UNIT", "tSNUMBER","tUNUMBER","tZONE","tDST","':'","','","'/'","spec","item","time", ! "zone","day","date","rel","relunit","number","o_merid", NULL }; #endif *************** static const short yycheck[] = { 0, *** 346,357 **** }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ ! #line 3 "/usr/local/lib/bison.simple" /* Skeleton output parser for bison, ! Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 1, or (at your option) any later version. --- 335,346 ---- }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ ! #line 3 "/usr/share/bison.simple" /* Skeleton output parser for bison, ! Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) any later version. *************** static const short yycheck[] = { 0, *** 365,368 **** --- 354,361 ---- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + /* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ #ifndef alloca *************** while (0) *** 438,445 **** --- 431,446 ---- #ifdef YYPURE #ifdef YYLSP_NEEDED + #ifdef YYLEX_PARAM + #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) + #else #define YYLEX yylex(&yylval, &yylloc) + #endif + #else /* not YYLSP_NEEDED */ + #ifdef YYLEX_PARAM + #define YYLEX yylex(&yylval, YYLEX_PARAM) #else #define YYLEX yylex(&yylval) #endif + #endif /* not YYLSP_NEEDED */ #endif *************** int yyparse (void); *** 489,493 **** #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ ! #define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ #ifndef __cplusplus --- 490,494 ---- #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ ! #define __yy_memcpy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ #ifndef __cplusplus *************** int yyparse (void); *** 496,500 **** in available built-in functions on various systems. */ static void ! __yy_bcopy (from, to, count) char *from; char *to; --- 497,501 ---- in available built-in functions on various systems. */ static void ! __yy_memcpy (from, to, count) char *from; char *to; *************** __yy_bcopy (from, to, count) *** 514,518 **** in available built-in functions on various systems. */ static void ! __yy_bcopy (char *from, char *to, int count) { register char *f = from; --- 515,519 ---- in available built-in functions on various systems. */ static void ! __yy_memcpy (char *from, char *to, int count) { register char *f = from; *************** __yy_bcopy (char *from, char *to, int co *** 527,531 **** #endif ! #line 184 "/usr/local/lib/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed --- 528,532 ---- #endif ! #line 192 "/usr/share/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed *************** yynewstate: *** 660,669 **** yystacksize = YYMAXDEPTH; yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); ! __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp)); yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); ! __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp)); #ifdef YYLSP_NEEDED yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); ! __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp)); #endif #endif /* no yyoverflow */ --- 661,670 ---- yystacksize = YYMAXDEPTH; yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); ! __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp)); yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); ! __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp)); #ifdef YYLSP_NEEDED yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); ! __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp)); #endif #endif /* no yyoverflow */ *************** yyreduce: *** 826,830 **** case 3: ! #line 173 "getdate.y" { yyHaveTime++; --- 827,831 ---- case 3: ! #line 174 "getdate.y" { yyHaveTime++; *************** case 3: *** 832,836 **** break;} case 4: ! #line 176 "getdate.y" { yyHaveZone++; --- 833,837 ---- break;} case 4: ! #line 177 "getdate.y" { yyHaveZone++; *************** case 4: *** 838,842 **** break;} case 5: ! #line 179 "getdate.y" { yyHaveDate++; --- 839,843 ---- break;} case 5: ! #line 180 "getdate.y" { yyHaveDate++; *************** case 5: *** 844,848 **** break;} case 6: ! #line 182 "getdate.y" { yyHaveDay++; --- 845,849 ---- break;} case 6: ! #line 183 "getdate.y" { yyHaveDay++; *************** case 6: *** 850,854 **** break;} case 7: ! #line 185 "getdate.y" { yyHaveRel++; --- 851,855 ---- break;} case 7: ! #line 186 "getdate.y" { yyHaveRel++; *************** case 7: *** 856,860 **** break;} case 9: ! #line 191 "getdate.y" { yyHour = yyvsp[-1].Number; --- 857,861 ---- break;} case 9: ! #line 192 "getdate.y" { yyHour = yyvsp[-1].Number; *************** case 9: *** 865,869 **** break;} case 10: ! #line 197 "getdate.y" { yyHour = yyvsp[-3].Number; --- 866,870 ---- break;} case 10: ! #line 198 "getdate.y" { yyHour = yyvsp[-3].Number; *************** case 10: *** 874,878 **** break;} case 11: ! #line 203 "getdate.y" { yyHour = yyvsp[-3].Number; --- 875,879 ---- break;} case 11: ! #line 204 "getdate.y" { yyHour = yyvsp[-3].Number; *************** case 11: *** 884,888 **** break;} case 12: ! #line 210 "getdate.y" { yyHour = yyvsp[-5].Number; --- 885,889 ---- break;} case 12: ! #line 211 "getdate.y" { yyHour = yyvsp[-5].Number; *************** case 12: *** 893,897 **** break;} case 13: ! #line 216 "getdate.y" { yyHour = yyvsp[-5].Number; --- 894,898 ---- break;} case 13: ! #line 217 "getdate.y" { yyHour = yyvsp[-5].Number; *************** case 13: *** 904,908 **** break;} case 14: ! #line 226 "getdate.y" { yyTimezone = yyvsp[0].Number; --- 905,909 ---- break;} case 14: ! #line 227 "getdate.y" { yyTimezone = yyvsp[0].Number; *************** case 14: *** 911,915 **** break;} case 15: ! #line 230 "getdate.y" { yyTimezone = yyvsp[0].Number; --- 912,916 ---- break;} case 15: ! #line 231 "getdate.y" { yyTimezone = yyvsp[0].Number; *************** case 15: *** 918,922 **** break;} case 16: ! #line 235 "getdate.y" { yyTimezone = yyvsp[-1].Number; --- 919,923 ---- break;} case 16: ! #line 236 "getdate.y" { yyTimezone = yyvsp[-1].Number; *************** case 16: *** 925,929 **** break;} case 17: ! #line 241 "getdate.y" { yyDayOrdinal = 1; --- 926,930 ---- break;} case 17: ! #line 242 "getdate.y" { yyDayOrdinal = 1; *************** case 17: *** 932,936 **** break;} case 18: ! #line 245 "getdate.y" { yyDayOrdinal = 1; --- 933,937 ---- break;} case 18: ! #line 246 "getdate.y" { yyDayOrdinal = 1; *************** case 18: *** 939,943 **** break;} case 19: ! #line 249 "getdate.y" { yyDayOrdinal = yyvsp[-1].Number; --- 940,944 ---- break;} case 19: ! #line 250 "getdate.y" { yyDayOrdinal = yyvsp[-1].Number; *************** case 19: *** 946,950 **** break;} case 20: ! #line 255 "getdate.y" { yyMonth = yyvsp[-2].Number; --- 947,951 ---- break;} case 20: ! #line 256 "getdate.y" { yyMonth = yyvsp[-2].Number; *************** case 20: *** 953,957 **** break;} case 21: ! #line 259 "getdate.y" { yyMonth = yyvsp[-4].Number; --- 954,958 ---- break;} case 21: ! #line 260 "getdate.y" { yyMonth = yyvsp[-4].Number; *************** case 21: *** 961,965 **** break;} case 22: ! #line 264 "getdate.y" { /* ISO 8601 format. yyyy-mm-dd. */ --- 962,966 ---- break;} case 22: ! #line 265 "getdate.y" { /* ISO 8601 format. yyyy-mm-dd. */ *************** case 22: *** 970,974 **** break;} case 23: ! #line 270 "getdate.y" { /* e.g. 17-JUN-1992. */ --- 971,975 ---- break;} case 23: ! #line 271 "getdate.y" { /* e.g. 17-JUN-1992. */ *************** case 23: *** 979,983 **** break;} case 24: ! #line 276 "getdate.y" { yyMonth = yyvsp[-1].Number; --- 980,984 ---- break;} case 24: ! #line 277 "getdate.y" { yyMonth = yyvsp[-1].Number; *************** case 24: *** 986,990 **** break;} case 25: ! #line 280 "getdate.y" { yyMonth = yyvsp[-3].Number; --- 987,991 ---- break;} case 25: ! #line 281 "getdate.y" { yyMonth = yyvsp[-3].Number; *************** case 25: *** 994,998 **** break;} case 26: ! #line 285 "getdate.y" { yyMonth = yyvsp[0].Number; --- 995,999 ---- break;} case 26: ! #line 286 "getdate.y" { yyMonth = yyvsp[0].Number; *************** case 26: *** 1001,1005 **** break;} case 27: ! #line 289 "getdate.y" { yyMonth = yyvsp[-1].Number; --- 1002,1006 ---- break;} case 27: ! #line 290 "getdate.y" { yyMonth = yyvsp[-1].Number; *************** case 27: *** 1009,1013 **** break;} case 28: ! #line 296 "getdate.y" { yyRelSeconds = -yyRelSeconds; --- 1010,1014 ---- break;} case 28: ! #line 297 "getdate.y" { yyRelSeconds = -yyRelSeconds; *************** case 28: *** 1016,1020 **** break;} case 30: ! #line 303 "getdate.y" { yyRelSeconds += yyvsp[-1].Number * yyvsp[0].Number * 60L; --- 1017,1021 ---- break;} case 30: ! #line 304 "getdate.y" { yyRelSeconds += yyvsp[-1].Number * yyvsp[0].Number * 60L; *************** case 30: *** 1022,1026 **** break;} case 31: ! #line 306 "getdate.y" { yyRelSeconds += yyvsp[-1].Number * yyvsp[0].Number * 60L; --- 1023,1027 ---- break;} case 31: ! #line 307 "getdate.y" { yyRelSeconds += yyvsp[-1].Number * yyvsp[0].Number * 60L; *************** case 31: *** 1028,1032 **** break;} case 32: ! #line 309 "getdate.y" { yyRelSeconds += yyvsp[0].Number * 60L; --- 1029,1033 ---- break;} case 32: ! #line 310 "getdate.y" { yyRelSeconds += yyvsp[0].Number * 60L; *************** case 32: *** 1034,1038 **** break;} case 33: ! #line 312 "getdate.y" { yyRelSeconds += yyvsp[-1].Number; --- 1035,1039 ---- break;} case 33: ! #line 313 "getdate.y" { yyRelSeconds += yyvsp[-1].Number; *************** case 33: *** 1040,1044 **** break;} case 34: ! #line 315 "getdate.y" { yyRelSeconds += yyvsp[-1].Number; --- 1041,1045 ---- break;} case 34: ! #line 316 "getdate.y" { yyRelSeconds += yyvsp[-1].Number; *************** case 34: *** 1046,1050 **** break;} case 35: ! #line 318 "getdate.y" { yyRelSeconds++; --- 1047,1051 ---- break;} case 35: ! #line 319 "getdate.y" { yyRelSeconds++; *************** case 35: *** 1052,1056 **** break;} case 36: ! #line 321 "getdate.y" { yyRelMonth += yyvsp[-1].Number * yyvsp[0].Number; --- 1053,1057 ---- break;} case 36: ! #line 322 "getdate.y" { yyRelMonth += yyvsp[-1].Number * yyvsp[0].Number; *************** case 36: *** 1058,1062 **** break;} case 37: ! #line 324 "getdate.y" { yyRelMonth += yyvsp[-1].Number * yyvsp[0].Number; --- 1059,1063 ---- break;} case 37: ! #line 325 "getdate.y" { yyRelMonth += yyvsp[-1].Number * yyvsp[0].Number; *************** case 37: *** 1064,1068 **** break;} case 38: ! #line 327 "getdate.y" { yyRelMonth += yyvsp[0].Number; --- 1065,1069 ---- break;} case 38: ! #line 328 "getdate.y" { yyRelMonth += yyvsp[0].Number; *************** case 38: *** 1070,1074 **** break;} case 39: ! #line 332 "getdate.y" { if (yyHaveTime && yyHaveDate && !yyHaveRel) --- 1071,1075 ---- break;} case 39: ! #line 333 "getdate.y" { if (yyHaveTime && yyHaveDate && !yyHaveRel) *************** case 39: *** 1098,1102 **** break;} case 40: ! #line 359 "getdate.y" { yyval.Meridian = MER24; --- 1099,1103 ---- break;} case 40: ! #line 360 "getdate.y" { yyval.Meridian = MER24; *************** case 40: *** 1104,1108 **** break;} case 41: ! #line 362 "getdate.y" { yyval.Meridian = yyvsp[0].Meridian; --- 1105,1109 ---- break;} case 41: ! #line 363 "getdate.y" { yyval.Meridian = yyvsp[0].Meridian; *************** case 41: *** 1111,1115 **** } /* the action file gets copied in in place of this dollarsign */ ! #line 480 "/usr/local/lib/bison.simple" yyvsp -= yylen; --- 1112,1116 ---- } /* the action file gets copied in in place of this dollarsign */ ! #line 487 "/usr/share/bison.simple" yyvsp -= yylen; *************** yyerrhandle: *** 1307,1311 **** goto yynewstate; } ! #line 367 "getdate.y" --- 1308,1312 ---- goto yynewstate; } ! #line 368 "getdate.y" *************** Convert (Month, Day, Year, Hours, Minute *** 1560,1568 **** if (Year < 0) Year = -Year; ! if (Year < 100) Year += 1900; DaysInMonth[1] = Year % 4 == 0 && (Year % 100 != 0 || Year % 400 == 0) ? 29 : 28; ! if (Year < EPOCH || Year > 1999 || Month < 1 || Month > 12 /* Lint fluff: "conversion from long may lose accuracy" */ --- 1561,1571 ---- if (Year < 0) Year = -Year; ! if (Year < DOOMSDAY-2000) ! Year += 2000; ! else if (Year < 100) Year += 1900; DaysInMonth[1] = Year % 4 == 0 && (Year % 100 != 0 || Year % 400 == 0) ? 29 : 28; ! if (Year < EPOCH || Year >= DOOMSDAY || Month < 1 || Month > 12 /* Lint fluff: "conversion from long may lose accuracy" */ *************** RelativeMonth (Start, RelMonth) *** 1629,1633 **** return 0; tm = localtime (&Start); ! Month = 12 * tm->tm_year + tm->tm_mon + RelMonth; Year = Month / 12; Month = Month % 12 + 1; --- 1632,1636 ---- return 0; tm = localtime (&Start); ! Month = 12 * (1900 + tm->tm_year) + tm->tm_mon + RelMonth; Year = Month / 12; Month = Month % 12 + 1; diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/getdate.y emacs-19.31/lib-src/getdate.y *** emacs-19.30/lib-src/getdate.y Tue Nov 21 16:59:08 1995 --- emacs-19.31/lib-src/getdate.y Sat Mar 9 23:51:47 1996 *************** static int yyerror (); *** 95,98 **** --- 95,99 ---- #define EPOCH 1970 + #define DOOMSDAY 2038 #define HOUR(x) ((time_t)(x) * 60) #define SECSPERDAY (24L * 60L * 60L) *************** Convert (Month, Day, Year, Hours, Minute *** 617,625 **** if (Year < 0) Year = -Year; ! if (Year < 100) Year += 1900; DaysInMonth[1] = Year % 4 == 0 && (Year % 100 != 0 || Year % 400 == 0) ? 29 : 28; ! if (Year < EPOCH || Year > 1999 || Month < 1 || Month > 12 /* Lint fluff: "conversion from long may lose accuracy" */ --- 618,628 ---- if (Year < 0) Year = -Year; ! if (Year < DOOMSDAY-2000) ! Year += 2000; ! else if (Year < 100) Year += 1900; DaysInMonth[1] = Year % 4 == 0 && (Year % 100 != 0 || Year % 400 == 0) ? 29 : 28; ! if (Year < EPOCH || Year >= DOOMSDAY || Month < 1 || Month > 12 /* Lint fluff: "conversion from long may lose accuracy" */ *************** RelativeMonth (Start, RelMonth) *** 686,690 **** return 0; tm = localtime (&Start); ! Month = 12 * tm->tm_year + tm->tm_mon + RelMonth; Year = Month / 12; Month = Month % 12 + 1; --- 689,693 ---- return 0; tm = localtime (&Start); ! Month = 12 * (1900 + tm->tm_year) + tm->tm_mon + RelMonth; Year = Month / 12; Month = Month % 12 + 1; diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/getopt.c emacs-19.31/lib-src/getopt.c *** emacs-19.30/lib-src/getopt.c Sat Sep 30 14:02:40 1995 --- emacs-19.31/lib-src/getopt.c Wed May 22 17:44:40 1996 *************** *** 4,8 **** before changing it! ! Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95 Free Software Foundation, Inc. --- 4,8 ---- before changing it! ! Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. *************** *** 19,23 **** You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software ! Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ /* This tells Alpha OSF/1 not to define a getopt prototype in . --- 19,24 ---- You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software ! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, ! USA. */ /* This tells Alpha OSF/1 not to define a getopt prototype in . *************** *** 58,63 **** --- 59,78 ---- contain conflicting prototypes for getopt. */ #include + #include #endif /* GNU C library. */ + #ifdef VMS + #include + #if HAVE_STRING_H - 0 + #include + #endif + #endif + + #ifdef WIN32 + /* It's not Unix, really. See? Capital letters. */ + #include + #define getpid() GetCurrentProcessId() + #endif + #ifndef _ /* This is for other GNU distributions with internationalized messages. *************** static int first_nonopt; *** 218,221 **** --- 233,242 ---- static int last_nonopt; + /* Bash 2.0 gives us an environment variable containing flags + indicating ARGV elements that should not be considered arguments. */ + + static const char *nonoption_flags; + static int nonoption_flags_len; + /* Exchange two adjacent subsequences of ARGV. One subsequence is elements [first_nonopt,last_nonopt) *************** static int last_nonopt; *** 227,230 **** --- 248,255 ---- the new indices of the non-options in ARGV after they are moved. */ + #if defined (__STDC__) && __STDC__ + static void exchange (char **); + #endif + static void exchange (argv) *************** exchange (argv) *** 285,288 **** --- 310,316 ---- /* Initialize the internal data when the first call is made. */ + #if defined (__STDC__) && __STDC__ + static const char *_getopt_initialize (const char *); + #endif static const char * _getopt_initialize (optstring) *************** _getopt_initialize (optstring) *** 316,319 **** --- 344,362 ---- ordering = PERMUTE; + if (posixly_correct == NULL) + { + /* Bash 2.0 puts a special variable in the environment for each + command it runs, specifying which ARGV elements are the results of + file name wildcard expansion and therefore should not be + considered as options. */ + char var[100]; + sprintf (var, "_%d_GNU_nonoption_argv_flags_", getpid ()); + nonoption_flags = getenv (var); + if (nonoption_flags == NULL) + nonoption_flags_len = 0; + else + nonoption_flags_len = strlen (nonoption_flags); + } + return optstring; } *************** _getopt_internal (argc, argv, optstring, *** 392,399 **** --- 435,456 ---- } + /* Test whether ARGV[optind] points to a non-option argument. + Either it does not have option syntax, or there is an environment flag + from the shell indicating it is not an option. */ + #define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ + || (optind < nonoption_flags_len \ + && nonoption_flags[optind] == '1')) + if (nextchar == NULL || *nextchar == '\0') { /* Advance to the next ARGV-element. */ + /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been + moved back by the user (who may also have changed the arguments). */ + if (last_nonopt > optind) + last_nonopt = optind; + if (first_nonopt > optind) + first_nonopt = optind; + if (ordering == PERMUTE) { *************** _getopt_internal (argc, argv, optstring, *** 409,414 **** and extend the range of non-options previously skipped. */ ! while (optind < argc ! && (argv[optind][0] != '-' || argv[optind][1] == '\0')) optind++; last_nonopt = optind; --- 466,470 ---- and extend the range of non-options previously skipped. */ ! while (optind < argc && NONOPTION_P) optind++; last_nonopt = optind; *************** _getopt_internal (argc, argv, optstring, *** 448,452 **** either stop the scan or describe it to the caller and pass it by. */ ! if ((argv[optind][0] != '-' || argv[optind][1] == '\0')) { if (ordering == REQUIRE_ORDER) --- 504,508 ---- either stop the scan or describe it to the caller and pass it by. */ ! if (NONOPTION_P) { if (ordering == REQUIRE_ORDER) *************** _getopt_internal (argc, argv, optstring, *** 524,527 **** --- 580,584 ---- nextchar += strlen (nextchar); optind++; + optopt = 0; return '?'; } *************** _getopt_internal (argc, argv, optstring, *** 552,555 **** --- 609,614 ---- nextchar += strlen (nextchar); + + optopt = pfound->val; return '?'; } *************** _getopt_internal (argc, argv, optstring, *** 566,569 **** --- 625,629 ---- argv[0], argv[optind - 1]); nextchar += strlen (nextchar); + optopt = pfound->val; return optstring[0] == ':' ? ':' : '?'; } *************** _getopt_internal (argc, argv, optstring, *** 600,603 **** --- 660,664 ---- nextchar = (char *) ""; optind++; + optopt = 0; return '?'; } diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/getopt.h emacs-19.31/lib-src/getopt.h *** emacs-19.30/lib-src/getopt.h Mon Oct 31 07:10:42 1994 --- emacs-19.31/lib-src/getopt.h Mon Jan 29 17:13:38 1996 *************** *** 14,18 **** You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software ! Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef _GETOPT_H --- 14,19 ---- You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software ! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, ! USA. */ #ifndef _GETOPT_H diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/getopt1.c emacs-19.31/lib-src/getopt1.c *** emacs-19.30/lib-src/getopt1.c Mon Oct 31 07:08:37 1994 --- emacs-19.31/lib-src/getopt1.c Tue Apr 9 17:18:39 1996 *************** *** 15,19 **** You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software ! Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifdef HAVE_CONFIG_H --- 15,20 ---- You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software ! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, ! USA. */ #ifdef HAVE_CONFIG_H diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/hexl.c emacs-19.31/lib-src/hexl.c *** emacs-19.30/lib-src/hexl.c Wed Oct 12 16:27:01 1994 --- emacs-19.31/lib-src/hexl.c Sun Apr 28 14:25:14 1996 *************** *** 1,6 **** #include #include ! #ifdef MSDOS #include #endif --- 1,12 ---- #include #include ! #ifdef DOS_NT #include + #if __DJGPP__ >= 2 + #include + #endif + #endif + #ifdef WINDOWSNT + #include #endif *************** main (argc, argv) *** 134,141 **** char buf[18]; ! #ifdef MSDOS (stdout)->_flag &= ~_IOTEXT; /* print binary */ _setmode (fileno (stdout), O_BINARY); #endif for (;;) { --- 140,152 ---- char buf[18]; ! #ifdef DOS_NT ! #if (__DJGPP__ >= 2) || (defined WINDOWSNT) ! if (!isatty (fileno (stdout))) ! setmode (fileno (stdout), O_BINARY); ! #else (stdout)->_flag &= ~_IOTEXT; /* print binary */ _setmode (fileno (stdout), O_BINARY); #endif + #endif for (;;) { *************** main (argc, argv) *** 178,184 **** else { ! #ifdef MSDOS (fp)->_flag &= ~_IOTEXT; /* read binary */ _setmode (fileno (fp), O_BINARY); #endif address = 0; --- 189,200 ---- else { ! #ifdef DOS_NT ! #if (__DJGPP__ >= 2) || (defined WINDOWSNT) ! if (!isatty (fileno (fp))) ! setmode (fileno (fp), O_BINARY); ! #else (fp)->_flag &= ~_IOTEXT; /* read binary */ _setmode (fileno (fp), O_BINARY); + #endif #endif address = 0; diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/make-docfile.c emacs-19.31/lib-src/make-docfile.c *** emacs-19.30/lib-src/make-docfile.c Wed Jun 21 15:46:25 1995 --- emacs-19.31/lib-src/make-docfile.c Tue Apr 9 19:41:44 1996 *************** GNU General Public License for more deta *** 16,20 **** You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ /* The arguments given to this program are all the C and Lisp source files --- 16,21 ---- You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ! Boston, MA 02111-1307, USA. */ /* The arguments given to this program are all the C and Lisp source files diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/makefile.nt emacs-19.31/lib-src/makefile.nt *** emacs-19.30/lib-src/makefile.nt Wed Nov 22 13:52:43 1995 --- emacs-19.31/lib-src/makefile.nt Sat May 18 16:14:40 1996 *************** *** 25,33 **** !include ..\nt\makefile.def ! LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 -DNO_ARCHIVES=1 -I..\src ! OBJDIR = obj ! BLD = $(OBJDIR)\$(ARCH) ! LINK_FLAGS = $(ARCH_LDFLAGS) -debug:PARTIAL -machine:$(ARCH) -subsystem:console -entry:mainCRTStartup ALL = $(BLD)\make-docfile.exe \ --- 25,31 ---- !include ..\nt\makefile.def ! LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 -DNO_ARCHIVES=1 -I..\nt\inc -I..\src ! LINK_FLAGS = $(ARCH_LDFLAGS) -debug:PARTIAL -machine:$(ARCH) -subsystem:console -entry:mainCRTStartup setargv.obj ALL = $(BLD)\make-docfile.exe \ *************** ALL = $(BLD)\make-docfile.exe \ *** 35,39 **** $(BLD)\wakeup.exe \ $(BLD)\ctags.exe \ ! $(BLD)\etags.exe --- 33,39 ---- $(BLD)\wakeup.exe \ $(BLD)\ctags.exe \ ! $(BLD)\etags.exe \ ! $(BLD)\movemail.exe \ ! $(BLD)\fakemail.exe \ *************** ALL = $(BLD)\make-docfile.exe \ *** 44,50 **** # $(BLD)\server.exe \ # $(BLD)\emacstool.exe \ - # $(BLD)\fakemail.exe \ # $(BLD)\leditcfns.exe \ - # $(BLD)\movemail.exe \ # $(BLD)\emacsclient.exe \ # $(BLD)\cvtmail.exe \ --- 44,48 ---- *************** ALL = $(BLD)\make-docfile.exe \ *** 55,95 **** LIBS = $(BASE_LIBS) ! $(BLD)\make-docfile.exe: $(BLD)\make-docfile.obj $(BLD)\hexl.exe: $(BLD)\hexl.obj - $(BLD)\ctags.exe: $(BLD)\etags.exe - copy $(BLD)\etags.exe $(BLD)\ctags.exe $(BLD)\wakeup.exe: $(BLD)\wakeup.obj $(BLD)\ntlib.obj $(LINK) -out:$@ $(LINK_FLAGS) $(BLD)\wakeup.obj $(BLD)\ntlib.obj $(LIBS) ! ! make-docfile: $(BLD)\make-docfile.exe ! wakeup: $(BLD)\wakeup.exe ! etags: $(BLD)\etags.exe ! hexl: $(BLD)\hexl.exe ETAGSOBJ = $(BLD)\etags.obj \ $(BLD)\getopt.obj \ $(BLD)\getopt1.obj \ ! $(BLD)\ntlib.obj ! $(BLD)\etags.exe: $(ETAGSOBJ) $(LINK) -out:$@ $(LINK_FLAGS) $(ETAGSOBJ) $(LIBS) # # don't know what to do with these yet... # ! # $(BLD)\sorted-doc.exe: $(LIBS) $(BLD)\sorted-doc.obj ! # $(BLD)\yow.exe: $(LIBS) $(BLD)\yow.obj ! # $(BLD)\emacstool.exe: $(LIBS) $(BLD)\emacstool.obj ! # $(BLD)\env.exe: $(LIBS) $(BLD)\env.obj ! # $(BLD)\fakemail.exe: $(LIBS) $(BLD)\fakemail.obj ! # $(BLD)\leditcfns.exe: $(LIBS) $(BLD)\leditcfns.obj ! # $(BLD)\server.exe: $(LIBS) $(BLD)\server.obj ! # $(BLD)\wakeup.exe: $(LIBS) $(BLD)\wakeup.obj ! # $(BLD)\movemail.exe: $(LIBS) $(BLD)\movemail.obj ! # $(BLD)\cvtmail.exe: $(LIBS) $(BLD)\cvtmail.obj ! # $(BLD)\digest-doc.exe: $(LIBS) $(BLD)\digest-doc.obj ! # $(BLD)\emacsclient.exe: $(LIBS) $(BLD)\emacsclient.obj ! # $(BLD)\qsort.exe: $(LIBS) $(BLD)\qsort.obj ! # $(BLD)\test-distrib.exe: $(LIBS) $(BLD)\test-distrib.obj # --- 53,123 ---- LIBS = $(BASE_LIBS) ! $(BLD)\make-docfile.exe: $(BLD)\make-docfile.obj $(BLD)\ntlib.obj ! $(LINK) -out:$@ $(LINK_FLAGS) $(BLD)\make-docfile.obj $(BLD)\ntlib.obj $(LIBS) $(BLD)\hexl.exe: $(BLD)\hexl.obj $(BLD)\wakeup.exe: $(BLD)\wakeup.obj $(BLD)\ntlib.obj $(LINK) -out:$@ $(LINK_FLAGS) $(BLD)\wakeup.obj $(BLD)\ntlib.obj $(LIBS) ! $(BLD)\movemail.exe: $(BLD)\movemail.obj $(BLD)\pop.obj $(BLD)\ntlib.obj ! $(LINK) -out:$@ $(LINK_FLAGS) -debug:FULL $(BLD)\movemail.obj $(BLD)\pop.obj $(BLD)\ntlib.obj $(LIBS) wsock32.lib ! $(BLD)\fakemail.exe: $(BLD)\fakemail.obj $(BLD)\ntlib.obj ! $(LINK) -out:$@ $(LINK_FLAGS) -debug:full $(BLD)\fakemail.obj $(BLD)\ntlib.obj $(LIBS) ! ! make-docfile: $(BLD) $(BLD)\make-docfile.exe ! wakeup: $(BLD) $(BLD)\wakeup.exe ! etags: $(BLD) $(BLD)\etags.exe ! hexl: $(BLD) $(BLD)\hexl.exe ! movemail: $(BLD) $(BLD)\movemail.exe ! fakemail: $(BLD) $(BLD)\fakemail.exe ETAGSOBJ = $(BLD)\etags.obj \ $(BLD)\getopt.obj \ $(BLD)\getopt1.obj \ ! $(BLD)\ntlib.obj \ ! $(BLD)\regex.obj \ ! $(BLD)\alloca.obj ! ! $(BLD)\etags.exe: $(ETAGSOBJ) $(LINK) -out:$@ $(LINK_FLAGS) $(ETAGSOBJ) $(LIBS) + + $(BLD)\regex.obj: ../src/regex.c ../src/regex.h ../src/config.h + $(CC) $(CFLAGS) -DCONFIG_BROKETS -DINHIBIT_STRING_HEADER \ + ../src/regex.c -Fo$@ + + ETAGS_CFLAGS = -DETAGS_REGEXPS + $(BLD)\etags.obj: etags.c + $(CC) $(CFLAGS) $(ETAGS_CFLAGS) -Fo$@ etags.c + + CTAGSOBJ = $(BLD)\ctags.obj \ + $(BLD)\getopt.obj \ + $(BLD)\getopt1.obj \ + $(BLD)\ntlib.obj \ + $(BLD)\regex.obj \ + $(BLD)\alloca.obj + + $(BLD)\ctags.exe: ctags.c $(CTAGSOBJ) + $(LINK) -out:$@ $(LINK_FLAGS) $(CTAGSOBJ) $(LIBS) + + ctags.c: etags.c + - $(DEL) ctags.c + copy etags.c ctags.c + + CTAGS_CFLAGS = -DCTAGS $(ETAGS_CFLAGS) + $(BLD)\ctags.obj: ctags.c + $(CC) $(CFLAGS) $(CTAGS_CFLAGS) -Fo$@ ctags.c + # # don't know what to do with these yet... # ! # $(BLD)\sorted-doc.exe: $(BLD)\sorted-doc.obj ! # $(BLD)\yow.exe: $(BLD)\yow.obj ! # $(BLD)\emacstool.exe: $(BLD)\emacstool.obj ! # $(BLD)\leditcfns.exe: $(BLD)\leditcfns.obj ! # $(BLD)\server.exe: $(BLD)\server.obj ! # $(BLD)\cvtmail.exe: $(BLD)\cvtmail.obj ! # $(BLD)\digest-doc.exe: $(BLD)\digest-doc.obj ! # $(BLD)\emacsclient.exe: $(BLD)\emacsclient.obj ! # $(BLD)\test-distrib.exe: $(BLD)\test-distrib.obj # *************** lisp= \ *** 141,145 **** DOC = DOC $(DOC): $(BLD)\make-docfile.exe ! - del $(DOC) $(BLD)\make-docfile -d ..\src $(obj) > $(DOC) $(BLD)\make-docfile -d ..\src $(lisp) >> $(DOC) --- 169,173 ---- DOC = DOC $(DOC): $(BLD)\make-docfile.exe ! - $(DEL) $(DOC) $(BLD)\make-docfile -d ..\src $(obj) > $(DOC) $(BLD)\make-docfile -d ..\src $(lisp) >> $(DOC) *************** install: $(INSTALL_FILES) *** 170,173 **** --- 198,203 ---- $(CP) $(BLD)\hexl.exe $(INSTALL_DIR)\bin $(CP) $(BLD)\wakeup.exe $(INSTALL_DIR)\bin + $(CP) $(BLD)\movemail.exe $(INSTALL_DIR)\bin + $(CP) $(BLD)\fakemail.exe $(INSTALL_DIR)\bin - mkdir $(INSTALL_DIR)\etc $(CP) $(DOC) $(INSTALL_DIR)\etc *************** install: $(INSTALL_FILES) *** 176,183 **** # Maintenance # ! clean:; - del *~ *.pdb - $(DEL_TREE) deleted - $(DEL_TREE) obj - - del DOC* # --- 206,212 ---- # Maintenance # ! clean:; - $(DEL) *~ *.pdb DOC* - $(DEL_TREE) deleted - $(DEL_TREE) obj # *************** $(BLD)\etags.obj : \ *** 240,243 **** --- 269,273 ---- $(BLD)\fakemail.obj : \ $(SRC)\fakemail.c \ + $(SRC)\ntlib.h \ $(EMACS_ROOT)\src\s\windowsnt.h \ $(EMACS_ROOT)\src\m\intel386.h \ *************** $(BLD)\movemail.obj : \ *** 288,291 **** --- 318,332 ---- $(EMACS_ROOT)\lib-src\..\src\syswait.h \ $(EMACS_ROOT)\nt\inc\pwd.h + $(CC) $(CFLAGS) -DUSG -Fo$@ movemail.c + + $(BLD)\ntlib.obj : \ + $(SRC)\ntlib.c \ + $(SRC)\ntlib.h \ + $(EMACS_ROOT)\nt\inc\pwd.h + + $(BLD)\pop.obj : \ + $(SRC)\pop.c \ + $(SRC)\pop.h \ + $(SRC)\ntlib.h $(BLD)\profile.obj : \ diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/movemail.c emacs-19.31/lib-src/movemail.c *** emacs-19.30/lib-src/movemail.c Sun Aug 6 19:57:25 1995 --- emacs-19.31/lib-src/movemail.c Sun Apr 28 19:36:20 1996 *************** *** 1,5 **** /* movemail foo bar -- move file foo to file bar, locking file foo the way /bin/mail respects. ! Copyright (C) 1986, 1992, 1993, 1994 Free Software Foundation, Inc. This file is part of GNU Emacs. --- 1,5 ---- /* movemail foo bar -- move file foo to file bar, locking file foo the way /bin/mail respects. ! Copyright (C) 1986, 1992, 1993, 1994, 1996 Free Software Foundation, Inc. This file is part of GNU Emacs. *************** GNU General Public License for more deta *** 17,21 **** You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ /* Important notice: defining MAIL_USE_FLOCK or MAIL_USE_LOCKF *will --- 17,22 ---- You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ! Boston, MA 02111-1307, USA. */ /* Important notice: defining MAIL_USE_FLOCK or MAIL_USE_LOCKF *will *************** the Free Software Foundation, 675 Mass A *** 34,38 **** * Modified January, 1986 by Michael R. Gretzinger (Project Athena) * ! * Added POP (Post Office Protocol) service. When compiled -DPOP * movemail will accept input filename arguments of the form * "po:username". This will cause movemail to open a connection to --- 35,39 ---- * Modified January, 1986 by Michael R. Gretzinger (Project Athena) * ! * Added POP (Post Office Protocol) service. When compiled -DMAIL_USE_POP * movemail will accept input filename arguments of the form * "po:username". This will cause movemail to open a connection to *************** the Free Software Foundation, 675 Mass A *** 70,73 **** --- 71,94 ---- #endif /* MSDOS */ + #ifndef DIRECTORY_SEP + #define DIRECTORY_SEP '/' + #endif + #ifndef IS_DIRECTORY_SEP + #define IS_DIRECTORY_SEP(_c_) ((_c_) == DIRECTORY_SEP) + #endif + + #ifdef WINDOWSNT + #undef access + #undef unlink + #define fork() 0 + #define sys_wait(var) (*(var) = 0) + /* Unfortunately, Samba doesn't seem to properly lock Unix files even + though the locking call succeeds (and indeed blocks local access from + other NT programs). If you have direct file access using an NFS + client or something other than Samba, the locking call might work + properly - make sure it does before you enable this! */ + #define DISABLE_DIRECT_ACCESS + #endif /* WINDOWSNT */ + #ifdef USG #include *************** the Free Software Foundation, 675 Mass A *** 85,89 **** #endif ! #ifdef XENIX #include #endif --- 106,110 ---- #endif ! #if defined (XENIX) || defined (WINDOWSNT) #include #endif *************** main (argc, argv) *** 150,154 **** if (argc < 3) { ! fprintf (stderr, "Usage: movemail inbox destfile\n"); exit(1); } --- 171,175 ---- if (argc < 3) { ! fprintf (stderr, "Usage: movemail inbox destfile [POP-password]\n"); exit(1); } *************** main (argc, argv) *** 168,172 **** pfatal_with_name (outname); ! /* Also check that outname's directory is writeable to the real uid. */ { char *buf = (char *) xmalloc (strlen (outname) + 1); --- 189,193 ---- pfatal_with_name (outname); ! /* Also check that outname's directory is writable to the real uid. */ { char *buf = (char *) xmalloc (strlen (outname) + 1); *************** main (argc, argv) *** 174,178 **** strcpy (buf, outname); p = buf + strlen (buf); ! while (p > buf && p[-1] != '/') *--p = 0; if (p == buf) --- 195,199 ---- strcpy (buf, outname); p = buf + strlen (buf); ! while (p > buf && !IS_DIRECTORY_SEP (p[-1])) *--p = 0; if (p == buf) *************** main (argc, argv) *** 188,192 **** int status; ! status = popmail (inname + 3, outname); exit (status); } --- 209,213 ---- int status; ! status = popmail (inname + 3, outname, argc > 3 ? argv[3] : NULL); exit (status); } *************** main (argc, argv) *** 195,198 **** --- 216,221 ---- #endif /* MAIL_USE_POP */ + #ifndef DISABLE_DIRECT_ACCESS + /* Check access to input file. */ if (access (inname, R_OK | W_OK) != 0) *************** main (argc, argv) *** 228,232 **** strcpy (tempname, inname); p = tempname + strlen (tempname); ! while (p != tempname && p[-1] != '/') p--; *p = 0; --- 251,255 ---- strcpy (tempname, inname); p = tempname + strlen (tempname); ! while (p != tempname && !IS_DIRECTORY_SEP (p[-1])) p--; *p = 0; *************** main (argc, argv) *** 305,310 **** --- 328,337 ---- if (locking (indesc, LK_RLCK, 0L) < 0) pfatal_with_name (inname); #else + #ifdef WINDOWSNT + if (locking (indesc, LK_RLCK, -1L) < 0) pfatal_with_name (inname); + #else if (flock (indesc, LOCK_EX) < 0) pfatal_with_name (inname); #endif + #endif #endif /* not MAIL_USE_LOCKF */ #endif /* MAIL_USE_SYSTEM_LOCK */ *************** main (argc, argv) *** 338,342 **** #ifdef MAIL_USE_SYSTEM_LOCK ! #if defined (STRIDE) || defined (XENIX) /* Stride, xenix have file locking, but no ftruncate. This mess will do. */ close (open (inname, O_CREAT | O_TRUNC | O_RDWR, 0666)); --- 365,369 ---- #ifdef MAIL_USE_SYSTEM_LOCK ! #if defined (STRIDE) || defined (XENIX) || defined (WINDOWSNT) /* Stride, xenix have file locking, but no ftruncate. This mess will do. */ close (open (inname, O_CREAT | O_TRUNC | O_RDWR, 0666)); *************** main (argc, argv) *** 375,378 **** --- 402,408 ---- unlink (lockname); #endif /* not MAIL_USE_MMDF and not MAIL_USE_SYSTEM_LOCK */ + + #endif /* ! DISABLE_DIRECT_ACCESS */ + return 0; } *************** xmalloc (size) *** 451,457 **** --- 481,492 ---- #ifdef MAIL_USE_POP + #ifndef WINDOWSNT #include #include #include + #else + #undef _WINSOCKAPI_ + #include + #endif #include #include *************** char obuffer[BUFSIZ]; *** 477,483 **** char Errmsg[80]; ! popmail (user, outfile) char *user; char *outfile; { int nmsgs, nbytes; --- 512,519 ---- char Errmsg[80]; ! popmail (user, outfile, password) char *user; char *outfile; + char *password; { int nmsgs, nbytes; *************** popmail (user, outfile) *** 490,494 **** extern char *strerror (); ! server = pop_open (0, user, 0, POP_NO_GETPASS); if (! server) { --- 526,530 ---- extern char *strerror (); ! server = pop_open (0, user, password, POP_NO_GETPASS); if (! server) { *************** popmail (user, outfile) *** 518,522 **** fchown (mbfi, getuid (), -1); ! if ((mbf = fdopen (mbfi, "w")) == NULL) { pop_close (server); --- 554,558 ---- fchown (mbfi, getuid (), -1); ! if ((mbf = fdopen (mbfi, "wb")) == NULL) { pop_close (server); diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/ntlib.c emacs-19.31/lib-src/ntlib.c *** emacs-19.30/lib-src/ntlib.c Tue Nov 1 05:07:04 1994 --- emacs-19.31/lib-src/ntlib.c Fri May 3 14:26:50 1996 *************** *** 2,20 **** Copyright (C) 1994 Free Software Foundation, Inc. ! This file is part of GNU Emacs. ! GNU Emacs is free software; you can redistribute it and/or modify it ! under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 2, or (at your option) any later ! version. ! ! GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ! FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for ! more details. ! ! You should have received a copy of the GNU General Public License along ! with GNU Emacs; see the file COPYING. If not, write to the Free Software ! Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. Geoff Voelker (voelker@cs.washington.edu) 10-8-94 --- 2,21 ---- Copyright (C) 1994 Free Software Foundation, Inc. ! This file is part of GNU Emacs. ! GNU Emacs is free software; you can redistribute it and/or modify ! it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) ! any later version. ! ! GNU Emacs is distributed in the hope that it will be useful, ! but WITHOUT ANY WARRANTY; without even the implied warranty of ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! GNU General Public License for more details. ! ! You should have received a copy of the GNU General Public License ! along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ! Boston, MA 02111-1307, USA. Geoff Voelker (voelker@cs.washington.edu) 10-8-94 *************** *** 24,27 **** --- 25,32 ---- #include #include + #include + #include + + #include "ntlib.h" #define MAXPATHLEN _MAX_PATH *************** *** 31,35 **** This is much easier. */ void ! nt_sleep(int seconds) { Sleep (seconds * 1000); --- 36,40 ---- This is much easier. */ void ! sleep(int seconds) { Sleep (seconds * 1000); *************** int *** 40,44 **** getwd (char *dir) { ! return GetCurrentDirectory (MAXPATHLEN, dir); } --- 45,57 ---- getwd (char *dir) { ! if (GetCurrentDirectory (MAXPATHLEN, dir) > 0) ! return dir; ! return NULL; ! } ! ! int ! getpid () ! { ! return _getpid (); } *************** getppid(void) *** 88,90 **** --- 101,216 ---- exit (1); } + } + + char * + getlogin () + { + static char user_name[256]; + DWORD length = sizeof (user_name); + + if (GetUserName (user_name, &length)) + return user_name; + return NULL; + } + + char * + cuserid (char * s) + { + char * name = getlogin (); + if (s) + return strcpy (s, name ? name : ""); + return name; + } + + int + getuid () + { + return 0; + } + + int + setuid (int uid) + { + return 0; + } + + struct passwd * + getpwuid (int uid) + { + return NULL; + } + + char * + getpass (const char * prompt) + { + static char input[256]; + HANDLE in; + HANDLE err; + DWORD count; + + in = GetStdHandle (STD_INPUT_HANDLE); + err = GetStdHandle (STD_ERROR_HANDLE); + + if (in == INVALID_HANDLE_VALUE || err == INVALID_HANDLE_VALUE) + return NULL; + + if (WriteFile (err, prompt, strlen (prompt), &count, NULL)) + { + int istty = (GetFileType (in) == FILE_TYPE_CHAR); + DWORD old_flags; + int rc; + + if (istty) + { + if (GetConsoleMode (in, &old_flags)) + SetConsoleMode (in, ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT); + else + istty = 0; + } + rc = ReadFile (in, input, sizeof (input), &count, NULL); + if (count >= 2 && input[count - 2] == '\r') + input[count - 2] = '\0'; + else + { + char buf[256]; + while (ReadFile (in, buf, sizeof (buf), &count, NULL) > 0) + if (count >= 2 && buf[count - 2] == '\r') + break; + } + WriteFile (err, "\r\n", 2, &count, NULL); + if (istty) + SetConsoleMode (in, old_flags); + if (rc) + return input; + } + + return NULL; + } + + int + fchown (int fd, int uid, int gid) + { + return 0; + } + + /* Place a wrapper around the MSVC version of ctime. It returns NULL + on network directories, so we handle that case here. + (Ulrich Leodolter, 1/11/95). */ + char * + sys_ctime (const time_t *t) + { + char *str = (char *) ctime (t); + return (str ? str : "Sun Jan 01 00:00:00 1970"); + } + + FILE * + sys_fopen(const char * path, const char * mode) + { + return fopen (path, mode); + } + + int + sys_chdir (const char * path) + { + return _chdir (path); } diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/ntlib.h emacs-19.31/lib-src/ntlib.h *** emacs-19.30/lib-src/ntlib.h Wed Dec 31 19:00:00 1969 --- emacs-19.31/lib-src/ntlib.h Fri May 3 12:34:26 1996 *************** *** 0 **** --- 1,45 ---- + /* Utility and Unix shadow routines for GNU Emacs support programs on NT. + Copyright (C) 1994 Free Software Foundation, Inc. + + This file is part of GNU Emacs. + + GNU Emacs is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) any later + version. + + GNU Emacs is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with GNU Emacs; see the file COPYING. If not, write to the Free Software + Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + + */ + + #include + #include + + void sleep(int seconds); + int getwd (char *dir); + int getppid(void); + char * getlogin (); + char * cuserid (char * s); + int getuid (); + int setuid (int uid); + struct passwd * getpwuid (int uid); + char * getpass (const char * prompt); + int fchown (int fd, int uid, int gid); + + #ifndef BSTRING + #define bzero(b, l) memset(b, 0, l) + #define bcopy(s, d, l) memcpy(d, s, l) + #define bcmp(a, b, l) memcmp(a, b, l) + + #define index strchr + #define rindex strrchr + #endif + + /* end of ntlib.h */ diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/pop.c emacs-19.31/lib-src/pop.c *** emacs-19.30/lib-src/pop.c Mon Oct 24 00:39:48 1994 --- emacs-19.31/lib-src/pop.c Mon Apr 29 11:45:44 1996 *************** *** 1,4 **** /* pop.c: client routines for talking to a POP3-protocol post-office server ! Copyright (c) 1991,1993 Free Software Foundation, Inc. Written by Jonathan Kamens, jik@security.ov.com. --- 1,4 ---- /* pop.c: client routines for talking to a POP3-protocol post-office server ! Copyright (c) 1991, 1993, 1996 Free Software Foundation, Inc. Written by Jonathan Kamens, jik@security.ov.com. *************** GNU General Public License for more deta *** 17,21 **** You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifdef HAVE_CONFIG_H --- 17,22 ---- You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ! Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H *************** the Free Software Foundation, 675 Mass A *** 37,42 **** --- 38,55 ---- #include + #ifdef WINDOWSNT + #include "ntlib.h" + #include + #undef SOCKET_ERROR + #define RECV(s,buf,len,flags) recv(s,buf,len,flags) + #define SEND(s,buf,len,flags) send(s,buf,len,flags) + #define CLOSESOCKET(s) closesocket(s) + #else #include #include + #define RECV(s,buf,len,flags) read(s,buf,len) + #define SEND(s,buf,len,flags) write(s,buf,len) + #define CLOSESOCKET(s) close(s) + #endif #include *************** extern char *getlogin (/* void */); *** 76,79 **** --- 89,93 ---- extern char *getpass (/* char * */); extern char *strerror (/* int */); + extern char *index (); #ifdef KERBEROS *************** extern char *krb_realmofhost (/* char * *** 87,93 **** --- 101,109 ---- #endif /* KERBEROS */ + #ifndef WINDOWSNT #if !defined(HAVE_H_ERRNO) || !defined(HAVE_CONFIG_H) extern int h_errno; #endif + #endif static int socket_connection (/* char *, int */); *************** static char *find_crlf (/* char * */); *** 105,109 **** --- 121,129 ---- #define POP_PORT 110 #define KPOP_PORT 1109 + #ifdef WINDOWSNT + #define POP_SERVICE "pop3" /* we don't want the POP2 port! */ + #else #define POP_SERVICE "pop" + #endif #ifdef KERBEROS #ifdef KRB5 *************** pop_open (host, username, password, flag *** 268,271 **** --- 288,292 ---- server->buffer_size = GETLINE_MIN; server->in_multi = 0; + server->trash_started = 0; if (getok (server)) *************** pop_retrieve (server, message, markfrom) *** 560,564 **** */ bufsize = sizes[0] + (markfrom ? 5 : 0); ! ptr = malloc (bufsize); free ((char *) IDs); free ((char *) sizes); --- 581,585 ---- */ bufsize = sizes[0] + (markfrom ? 5 : 0); ! ptr = (char *)malloc (bufsize); free ((char *) IDs); free ((char *) sizes); *************** pop_retrieve (server, message, markfrom) *** 587,591 **** { bufsize += 5; ! ptr = realloc (ptr, bufsize); if (! ptr) { --- 608,612 ---- { bufsize += 5; ! ptr = (char *)realloc (ptr, bufsize); if (! ptr) { *************** pop_reset (server) *** 907,911 **** * pop_error. * ! * Side Effects: The popserver passed in is unuseable after this * function is called, even if an error occurs. */ --- 928,932 ---- * pop_error. * ! * Side Effects: The popserver passed in is unusable after this * function is called, even if an error occurs. */ *************** pop_quit (server) *** 938,941 **** --- 959,966 ---- } + #ifdef WINDOWSNT + static int have_winsock = 0; + #endif + /* * Function: socket_connection *************** socket_connection (host, flags) *** 981,984 **** --- 1006,1017 ---- int try_count = 0; + #ifdef WINDOWSNT + { + WSADATA winsockData; + if (WSAStartup (0x101, &winsockData) == 0) + have_winsock = 1; + } + #endif + do { *************** socket_connection (host, flags) *** 1055,1059 **** if (! *hostent->h_addr_list) { ! (void) close (sock); strcpy (pop_error, CONNECT_ERROR); strncat (pop_error, strerror (errno), --- 1088,1092 ---- if (! *hostent->h_addr_list) { ! CLOSESOCKET (sock); strcpy (pop_error, CONNECT_ERROR); strncat (pop_error, strerror (errno), *************** socket_connection (host, flags) *** 1076,1080 **** strncat (pop_error, error_message (rem), ERROR_MAX - sizeof(KRB_ERROR)); ! (void) close (sock); return (-1); } --- 1109,1113 ---- strncat (pop_error, error_message (rem), ERROR_MAX - sizeof(KRB_ERROR)); ! CLOSESOCKET (sock); return (-1); } *************** socket_connection (host, flags) *** 1133,1137 **** krb5_free_error (err_ret); ! (void) close (sock); return (-1); } --- 1166,1170 ---- krb5_free_error (err_ret); ! CLOSESOCKET (sock); return (-1); } *************** socket_connection (host, flags) *** 1150,1154 **** strncat (pop_error, krb_err_txt[rem], ERROR_MAX - sizeof (KRB_ERROR)); ! (void) close (sock); return (-1); } --- 1183,1187 ---- strncat (pop_error, krb_err_txt[rem], ERROR_MAX - sizeof (KRB_ERROR)); ! CLOSESOCKET (sock); return (-1); } *************** getline (server) *** 1234,1238 **** { server->buffer_size += GETLINE_INCR; ! server->buffer = realloc (server->buffer, server->buffer_size); if (! server->buffer) { --- 1267,1271 ---- { server->buffer_size += GETLINE_INCR; ! server->buffer = (char *)realloc (server->buffer, server->buffer_size); if (! server->buffer) { *************** getline (server) *** 1242,1247 **** } } ! ret = read (server->file, server->buffer + server->data, ! server->buffer_size - server->data - 1); if (ret < 0) { --- 1275,1280 ---- } } ! ret = RECV (server->file, server->buffer + server->data, ! server->buffer_size - server->data - 1, 0); if (ret < 0) { *************** fullwrite (fd, buf, nbytes) *** 1348,1352 **** cp = buf; ! while ((ret = write (fd, cp, nbytes)) > 0) { cp += ret; --- 1381,1385 ---- cp = buf; ! while ((ret = SEND (fd, cp, nbytes, 0)) > 0) { cp += ret; *************** fullwrite (fd, buf, nbytes) *** 1369,1373 **** * Returns: 0 for success, else for failure and puts error in pop_error. * ! * Side effects: On failure, may make the connection unuseable. */ static int --- 1402,1406 ---- * Returns: 0 for success, else for failure and puts error in pop_error. * ! * Side effects: On failure, may make the connection unusable. */ static int *************** gettermination (server) *** 1440,1444 **** * are received. * ! * Side effects: The server is unuseable after this function returns. * Changes made to the maildrop since the session was started (or * since the last pop_reset) may be lost. --- 1473,1477 ---- * are received. * ! * Side effects: The server is unusable after this function returns. * Changes made to the maildrop since the session was started (or * since the last pop_reset) may be lost. *************** pop_trash (server) *** 1467,1474 **** if (server->file >= 0) { sendline (server, "RSET"); sendline (server, "QUIT"); ! close (server->file); server->file = -1; if (server->buffer) --- 1500,1512 ---- if (server->file >= 0) { + /* avoid recursion; sendline can call pop_trash */ + if (server->trash_started) + return; + server->trash_started = 1; + sendline (server, "RSET"); sendline (server, "QUIT"); ! CLOSESOCKET (server->file); server->file = -1; if (server->buffer) *************** pop_trash (server) *** 1478,1481 **** --- 1516,1524 ---- } } + + #ifdef WINDOWSNT + if (have_winsock) + WSACleanup (); + #endif } diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/pop.h emacs-19.31/lib-src/pop.h *** emacs-19.30/lib-src/pop.h Tue Sep 27 15:49:15 1994 --- emacs-19.31/lib-src/pop.h Sun Apr 28 14:26:29 1996 *************** GNU General Public License for more deta *** 17,21 **** You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #include --- 17,22 ---- You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ! Boston, MA 02111-1307, USA. */ #include *************** struct _popserver *** 35,38 **** --- 36,40 ---- int buffer_size, buffer_index; int in_multi; + int trash_started; }; diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/profile.c emacs-19.31/lib-src/profile.c *** emacs-19.30/lib-src/profile.c Thu Jul 27 23:32:19 1995 --- emacs-19.31/lib-src/profile.c Tue Apr 9 19:42:07 1996 *************** *** 4,22 **** Author: Boaz Ben-Zvi ! This file is part of GNU Emacs. ! GNU Emacs is free software; you can redistribute it and/or modify ! it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) ! any later version. ! GNU Emacs is distributed in the hope that it will be useful, ! but WITHOUT ANY WARRANTY; without even the implied warranty of ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ --- 4,23 ---- Author: Boaz Ben-Zvi ! This file is part of GNU Emacs. ! GNU Emacs is free software; you can redistribute it and/or modify ! it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) ! any later version. ! GNU Emacs is distributed in the hope that it will be useful, ! but WITHOUT ANY WARRANTY; without even the implied warranty of ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ! Boston, MA 02111-1307, USA. */ diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/qsort.c emacs-19.31/lib-src/qsort.c *** emacs-19.30/lib-src/qsort.c Sun Sep 25 23:12:10 1994 --- emacs-19.31/lib-src/qsort.c Mon Jan 29 17:18:12 1996 *************** GNU General Public License for more deta *** 17,21 **** You should have received a copy of the GNU General Public License along with GNU QSORT; see the file COPYING. If not, write to ! the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifdef sparc --- 17,22 ---- You should have received a copy of the GNU General Public License along with GNU QSORT; see the file COPYING. If not, write to ! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ! Boston, MA 02111-1307, USA. */ #ifdef sparc *************** qsort (base_ptr, total_elems, size, cmp) *** 232,234 **** return 1; } - --- 233,234 ---- diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/rcs2log emacs-19.31/lib-src/rcs2log *** emacs-19.30/lib-src/rcs2log Sat Jul 8 14:44:04 1995 --- emacs-19.31/lib-src/rcs2log Sun Jan 14 20:17:56 1996 *************** *** 13,19 **** # Author: Paul Eggert ! # $Id: rcs2log,v 1.26 1995/07/08 18:44:04 eggert Exp $ ! # Copyright 1992, 1993, 1994, 1995 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify --- 13,19 ---- # Author: Paul Eggert ! # $Id: rcs2log,v 1.27 1996/01/15 01:17:03 eggert Exp $ ! # Copyright 1992, 1993, 1994, 1995, 1996 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify *************** EOF *** 365,369 **** initialize_fullname=` ! (cat /etc/passwd; ypmatch $authors passwd) 2>/dev/null | $AWK -F: "$awkscript" `$initialize_fullname --- 365,375 ---- initialize_fullname=` ! ( ! cat /etc/passwd ! for author in $authors ! do nismatch $author passwd.org_dir ! done ! ypmatch $authors passwd ! ) 2>/dev/null | $AWK -F: "$awkscript" `$initialize_fullname *************** case $hostname in *** 415,418 **** --- 421,433 ---- exit 1 } + + case $hostname in + *.*) ;; + *) + domainname=`(domainname) 2>/dev/null` && + case $domainname in + *.*) hostname=$hostname.$domainname + esac + esac esac diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/tcp.c emacs-19.31/lib-src/tcp.c *** emacs-19.30/lib-src/tcp.c Sat Feb 26 22:45:53 1994 --- emacs-19.31/lib-src/tcp.c Wed Feb 21 12:10:27 1996 *************** GNU General Public License for more deta *** 20,24 **** You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * --- 20,25 ---- You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to ! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ! Boston, MA 02111-1307, USA. * *************** main (argc, argv) *** 122,126 **** sockin.sin_family = host->h_addrtype; bcopy (host->h_addr, &sockin.sin_addr, host->h_length); ! sockin.sin_port = port; if ((server = socket (AF_INET, SOCK_STREAM, 0)) < 0) { --- 123,127 ---- sockin.sin_family = host->h_addrtype; bcopy (host->h_addr, &sockin.sin_addr, host->h_length); ! sockin.sin_port = htons (port); if ((server = socket (AF_INET, SOCK_STREAM, 0)) < 0) { diff -2rcpP --exclude=*.elc emacs-19.30/lib-src/wakeup.c emacs-19.31/lib-src/wakeup.c *** emacs-19.30/lib-src/wakeup.c Wed Oct 12 16:27:17 1994 --- emacs-19.31/lib-src/wakeup.c Sun Apr 28 14:26:30 1996 *************** *** 1,5 **** --- 1,7 ---- /* Program to produce output at regular intervals. */ + #ifdef HAVE_CONFIG_H #include + #endif #include diff -2rcpP --exclude=*.elc emacs-19.30/lisp/ChangeLog emacs-19.31/lisp/ChangeLog *** emacs-19.30/lisp/ChangeLog Sat Nov 25 00:35:21 1995 --- emacs-19.31/lisp/ChangeLog Sat May 25 15:31:23 1996 *************** *** 1,12532 **** ! Fri Nov 24 17:58:03 1995 Richard Stallman ! * Version 19.30 released. ! * diary-lib.el: Renamed from diary.el. ! * calendar.el, cal-tex.el: Use new name diary-lib. ! * cc-mode.el (c++-mode, objc-mode, c-mode): Doc fix. ! * font-lock.el (font-lock-make-faces): Add special code for ms-dos. ! * view.el (view-mode, view-mode-enter): Doc changes. ! (view-mode-map): Change h and ? to use describe-mode. ! Delete binding of help char. ! (view-mode-enter): Use describe-mode in message. ! Thu Nov 23 12:40:47 1995 Andreas Schwab ! * ediff-mult.el (ediff-intersect-directories): Quote symbols ! starting with `:'. ! * view.el (view-mode-enter): Replace Help-helper by help-command ! in doc string and message. ! * sort.el (sort-regexp-fields): Doc fix. ! * inf-lisp.el (inferior-lisp-load-command): Doc fix. ! * imenu.el (imenu-generic-expression, imenu--generic-function): ! Doc fix. ! * add-log.el (add-change-log-entry): Initialize add-log-full-name ! and add-log-mailing-address before prompting. ! Thu Nov 23 00:56:16 1995 Richard Stallman ! * completion.el (cmpl-make-standard-completion-syntax-table) ! (cmpl-make-c-def-completion-syntax-table): Use make-syntax-table. ! (completion-c-mode-hook): Encapsulate C-mode changes in new function. ! Either call it now or put it on c-mode-hook. ! Wed Nov 22 14:55:12 1995 Barry Warsaw ! * cc-mode.el (c-beginning-of-statement-1): CASE 3, can't just ! return t at end of let clause since this will break ! arglist-cont-nonempty lines. ! Wed Nov 22 14:03:08 1995 Geoff Voelker ! * makefile.nt (install, clean): Don't use switches to del not ! supported by Win95. ! Tue Nov 21 00:12:36 1995 Richard Stallman ! * man.el (Man-fontify-manpage, Man-cleanup-manpage): ! Convert \255 to a dash. ! * apropos.el (apropos-print): Put the item property ! on the whole printed symbol. ! (apropos-follow): Look for the item property only adjacent to point. ! Signal an error if there is none. ! Mon Nov 20 00:39:01 1995 Richard Stallman ! * apropos.el (apropos-print): Use apropos-local-map as buffer's map, ! not as a text property. ! * ediff-hook.el (menu-bar-epatch-menu, menu-bar-ediff-merge-menu) ! (menu-bar-ediff-menu): Give names to the menus. ! ! * ediff-mult.el: Renamed from ediff-meta.el. Changed provide. ! * ediff.el, ediff-util.el: Require ediff-mult. ! * ediff-hook.el (ediff-show-registry): Use renamed file ediff-mult.el. ! * array.el (array-mode): Set overwrite-mode to overwrite-mode-textual. ! * term/pc-win.el (msdos-color-aliases): Add more aliases. ! (msdos-face-setup): Change colors for bold, bold-italic, underline. ! (x-frob-font-slant): Define as no-op. ! * saveplace.el (save-place-to-alist): Handle hexl-mode specially. ! Sun Nov 19 18:24:58 1995 Erik Naggum ! * calendar.el (cal-tex-cursor-week-iso): Doc fix. ! Sun Nov 19 15:39:49 1995 Richard Stallman ! * calendar.el: ! (cal-tex-cursor-filofax-week): Renamed from cal-tex-cursor-week6. ! (cal-tex-cursor-filofax-2week): Renamed from cal-tex-cursor-week5. ! (cal-tex-cursor-week-monday): Renamed from cal-tex-cursor-week4. ! (cal-tex-cursor-week-iso): Renamed from cal-tex-cursor-week3. ! * cal-tex.el (cal-tex-version): Deleted. ! (cal-tex-cursor-year-landscape): Doc fix. ! (cal-tex-cursor-filofax-week): Renamed from cal-tex-cursor-week6. ! (cal-tex-cursor-filofax-2week): Renamed from cal-tex-cursor-week5. ! (cal-tex-cursor-week-monday): Renamed from cal-tex-cursor-week4. ! (cal-tex-cursor-week-iso): Renamed from cal-tex-cursor-week3. ! * info.el (Info-directory-list): Use source-directory. ! Sat Nov 18 10:49:47 1995 Richard Stallman ! * calendar.el (calendar-goto-info-node): Don't let ! same-window-buffer-names do its usual job--force *info* buffer ! into another window. ! * simple.el (do-auto-fill): Look at 2nd line for fill prefix ! even when on the first line. Don't accept non-whitespace prefix ! from the first line. ! * fill.el (fill-context-prefix): New arg first-line-regexp. ! * finder.el (finder-known-keywords): Delete `debugging'. ! Sat Nov 18 03:09:37 1995 Lars Magne Ingebrigtsen ! * nntp.el (nntp-open-server): Accept a second optional parameter ! for just changing virtual server. Doc fix. ! (nntp-possibly-change-server): Use it. ! (nntp-close-server): Ditto. ! Fri Nov 17 21:39:30 1995 Richard Stallman ! * cc-mode.el (c-guess-basic-syntax, c-beginning-of-statement-1): ! Do not check for c-conditional-key when skipping backwards over ! statements that look sort of like conditionals. This makes ! statements following nested functions indent correctly. CASE 9B.3 ! (unknown catchall) now gets triggered by the brace that opens a ! nested function. Also, this changes the relpos for top-level ! defun-open braces, but that will be very hard to fix, and it may ! break backward compatibility. ! * cc-mode.el (c-guess-basic-syntax): ! CASE 5H, inclass relpos should be relative to ! boi of the open brace, not the beginning of the class keyword. ! * cc-mode.el (c-fill-paragraph): Doc fix. ! Fri Nov 17 20:51:54 1995 Lars Magne Ingebrigtsen ! * gnus.el (gnus-group-quit-config): Return the quit-config instead ! of a list containing the quit-config. ! Fri Nov 17 17:34:13 1995 Andreas Schwab ! * mail-utils.el (rmail-dont-reply-to): Preserve whitespace after comma. ! Fri Nov 17 13:36:39 1995 Richard Stallman ! * etags.el (next-file): Make interactive arg t if had any prefix arg. ! * faces.el (face-color-supported-p): Return nil if no window system. ! Fri Nov 17 12:39:59 1995 Ed Reingold ! * cal-coptic.el: Fix epoch of Ethiopiac calendar. ! * cal-chinese.el: Minor fixes. ! Fri Nov 17 11:03:20 1995 Boris Goldowsky ! * indent.el (move-to-left-margin): Removed left-over code that ! made it fail on right-justified and centered text. ! * fill.el (fill-region-as-paragraph): Remove redundant "setq from". ! Don't add extra newline at end if there is no text in paragraph -- ! doing so can make fill-region loop. ! When testing for indentation exceeding fill-column, skip back over ! tabs too. ! Fri Nov 17 03:19:45 1995 Karl Heuer ! * rmail.el (rmail-retry-failure): Add missing colons in regexp. ! Use " +", not " *", to check for indented text. ! Don't make a temp buffer; just record the indent amount. Simplify. ! Fri Nov 17 00:26:48 1995 Richard Stallman ! * simple.el (do-auto-fill): Ignore the result of fill-context-prefix ! if it is empty. ! * cc-mode.el (c-common-init): Set adaptive-fill-regexp to nil. ! * fill.el (fill-context-prefix): Use adaptive-fill-regexp only if non-nil. ! Thu Nov 16 16:49:56 1995 Andreas Schwab ! * calendar.el (calendar-julian-date-string): Autoload this. ! Thu Nov 16 17:23:03 1995 Richard Stallman ! * ange-ftp.el (ange-ftp-process-handle-hash): If ! ange-ftp-hash-mark-unit is nil, don't display a message. ! (ange-ftp-process-filter): Call ange-ftp-process-handle-hash even ! if ange-ftp-hash-mark-unit is nil. ! ! Thu Nov 16 15:06:51 1995 Johan Vromans ! * forms.el: Use `buffer-substring-no-properties' instead of ! `buffer-substring' to avoid the properties being copied. ! Thu Nov 16 12:22:11 1995 Richard Stallman ! * cc-mode.el (c-beginning-of-statement, c-end-of-statement): ! New arg sentence-flag. Use that instead of interactive-p. ! (c-mode-help-address): Send bug reports to bug-gnu-emacs too. ! * fill.el (fill-context-prefix): Check adaptive-fill-function non-nil. ! Thu Nov 16 15:38:58 1995 Per Abrahamsen ! * menu-bar.el (minibuffer maps): Delete extra quote. ! Thu Nov 16 11:31:46 1995 Richard Stallman ! * info.el (Info-complete-menu-item): Don't treat `* Menu:' ! as a menu item. ! Wed Nov 15 12:24:00 1995 Richard Stallman ! * nntp.el (nntp-close-server-internal): ! Don't call nntp-possibly-change-server. ! * cplus-md.el (c++-mode): Remove autoload cookie. ! * mouse-sel.el (mouse-sel-lost-selection-hook): Undo prev change. ! * tmm.el (tmm-prompt): Delete tmm-add-prompt if we fail. ! Don't switch to *Completions* if it wasn't created. ! ! * startup.el (command-line-1): Mention F10. ! Tue Nov 14 12:34:00 1995 Richard Stallman ! * fill.el (fill-individual-paragraphs): Advance 1 line in inner loop. ! (fill-region-as-paragraph): Handle left margin extending to or past ! fill-column. ! * mouse-sel.el (mouse-sel-lost-selection-hook): Use (car selection). ! * indent.el (indent-line-to): Delete spaces before inserting a tab. ! * calendar.el (calendar-julian-from-absolute): Autoload it. ! * goto-addr.el (goto-address): Use S-mouse-2, not S-mouse-1. ! Add autoload cookie. ! * startup.el (command-line-1): Reorganize the initial help output. ! * hexl.el (hexl-mode): Set require-final-newline to nil. ! If point was at end of buffer, move it back one byte. ! Tue Nov 14 20:25:01 1995 Eric Ding ! * goto-addr.el (goto-address-highlight-p): New variable. ! (goto-address-fontify): Removed check for invisible text, ! set inhibit-point-motion-hooks instead ! Mon Nov 13 15:20:42 1995 Richard Stallman ! * vc-hooks.el (vc-locking-user): In CVS case, convert ! user number to a string. ! * vc.el (vc-directory): Require dired. ! (vc-revert-buffer): Ignore vc-suppress-confirm. ! Mon Nov 13 13:10:12 1995 Morten Welinder ! * arc-mode.el (archive-remote-regexp): Doc fix. ! Sun Nov 12 16:54:33 1995 Andreas Schwab ! * compile.el (compilation-sentinel): Use the local value of ! compilation-exit-message-function in the process buffer. ! Sun Nov 12 14:33:59 1995 Richard Stallman ! * tmm.el (tmm-define-keys): Don't define ESC ESC. ! * ffap.el: New file. ! * info.el (info-insert-file-contents-1): Various rewrites. ! Compute EXT-LEFT after removing the dot from SUFFIX. ! Sat Nov 11 00:24:12 1995 Richard Stallman ! * window.el (balance-windows): Don't count the menu bar's lines ! in the frame height. ! * menu-bar.el (delete-frame): Don't use delete-frame as event name. ! * startup.el (command-line): Don't reject unknown args here. ! (command-line-1): Detect it here. ! * dabbrev.el (dabbrev-case-replace): Doc fix. ! Fri Nov 10 19:30:48 1995 Richard Stallman ! * tmm.el: Define menu-bar mouse-1 as tmm-menubar. ! * simple.el (universal-argument-other-key): Add to existing ! unread-command-events value. ! Fri Nov 10 19:34:15 1995 Per Abrahamsen ! * xt-mouse.el (global-map): Removed bindings of down events to ignore. ! (xterm-mouse-translate): Only generate down event when bound. ! Cleanup. Support for mode line and vertical bar dragging, and ! menu-bar events. ! (xterm-mouse-x): New variable. ! (xterm-mouse-y): New variable. ! (mouse-position): Advice to use above variables. ! (xterm-mouse-event): Support menu-bar. Set xterm-mouse-x and ! xterm-mouse-y. ! Fri Nov 10 10:29:12 1995 Boris Goldowsky ! ! * add-log.el (change-log-mode): Remove incorrect "^" anchors from ! paragraph-start and -separate. ! (change-log-fill-paragraph): Use regular value of paragraph-start ! to bound paragraph to be filled, modified values only to do the ! filling. Make lines beginning with parentheses ! paragraph-starters, but not paragraph-separators. ! * cc-mode.el (c-common-init): Remove "^" from paragraph-start and ! paragraph-separate. Moved page-delimiter first in case it has a ! "^" also. ! * lisp-mode.el (lisp-mode-variables, lisp-fill-paragraph): Remove ! "^" from paragraph-start and paragraph-separate. Moved ! page-delimiter first in case it has a "^" also. ! ! * sh-script.el (sh-mode): as above. Use page-delimiter rather than ! literal "^L". ! * fill.el (fill-region-as-paragraph): Since adaptive-fill-regexp ! is supposed to match text STARTING at the left margin, use ! `looking-at' rather than `re-search-forward'. ! (fill-individual-paragraphs): Match fill-prefixes starting at ! left-margin. ! Fri Nov 10 04:55:12 1995 Erik Naggum ! * view.el (View-scroll-lines-forward): Don't recenter at end. ! Fri Nov 10 14:11:43 1995 Kevin Rodgers ! * files.el (find-file-noselect): Respect the value of ! find-file-visit-truename when FILENAME is a directory and ! find-file-run-dired is non-nil. ! Fri Nov 10 13:55:55 1995 Boris Goldowsky ! * facemenu.el (facemenu-unlisted-faces): Remove font-lock faces from ! the default list. The list of face names was out of sync; to ! prevent this from happenning again I made font-lock.el, and other ! packages that create "private" faces, put them on the list ! themselves. This should give them a better chance of being ! updated when the packages are changed. ! * calendar.el (holiday-face, calendar-today-face, diary-face): Add ! faces to facemenu-unlisted-faces before creating so that facemenu ! won't list them as faces to be added interactively. ! * viper.el: Don't list any faces in menu. ! * paren.el (show-paren-command-hook): Don't list `paren-mismatch' ! face in menu. ! * make-mode.el (makefile-space-face): Don't list in facemenu. ! * ediff-init.el: All faces added to facemenu-unlisted-faces list. ! * facemenu.el (facemenu-active-faces): Replaces function ! `facemenu-discard-redundant-faces'. This version, written by ! Simon Marshall, is faster and does not require optional ! argument for recursive re-entry. New argument FRAME allows ! check to be done relative to face definitions in any frame. ! Fri Nov 10 12:58:36 1995 Richard Stallman ! * enriched.el (enriched-next-annotation): Doc fix. ! * dos-fns.el: Fix previous change. ! Thu Nov 9 23:27:08 1995 Richard Stallman ! * make-mode.el (makefile-mode): Call makefile-define-space-face ! only if it is defined. ! (makefile-define-space-face): Create the face unconditionally; ! alter it only if have X. ! * cal-x.el: Require calendar. ! Thu Nov 9 12:40:50 1995 Richard Stallman ! * simple.el (do-auto-fill): Use fill-context-prefix. ! * fill.el (fill-region-as-paragraph): Use fill-context-prefix. ! (fill-context-prefix): New function. ! Thu Nov 9 03:20:51 1995 Simon Marshall ! * font-lock.el (font-lock-mode): Use make-local-hook. ! (font-lock-fontify-buffer): Don't preserve buffer modification here, ! it is done elsewhere, but do preserve match-data. ! (font-lock-fontify-syntactically-region, ! font-lock-fontify-keywords-region): Don't preserve buffer modification ! and temporarily install font-lock-syntax-table here. ! (font-lock-fontify-region): Do it here instead. ! (font-lock-fontify-anchored-keywords): Ensure LIMIT is end of line. ! (font-lock-match-c++-style-declaration-item-and-skip-to-next): No need ! to do end-of-line here now. ! (font-lock-keywords): Doc fix. ! (font-lock-make-face): Add the face to facemenu-unlisted-faces, from ! Boris Goldowsky . ! ! * compile.el (compilation-mode-font-lock-keywords): No leading spaces. ! Wed Nov 8 05:59:35 1995 Richard Stallman ! * apropos.el (apropos-print): Use buffer *Apropos*, not *Help*. ! (apropos-follow): Don't print a "how to get back" message. ! * awk-mode.el (awk-mode): Require cc-mode. ! * term/pc-win.el (x-display-color-p): Accept optional arg. ! * dos-fns.el (mode-line-format): Modify it, don't override it entirely. ! * startup.el (command-line): Complain about unknown options. ! Tue Nov 7 14:47:02 1995 Richard Stallman ! * simple.el (shell-command-on-region): Use region-beginning ! and region-end, to put them in the command history. ! Tue Nov 7 02:46:06 1995 Kevin Gallo ! * term/win32-win.el: New file. ! * startup.el [win32] (normal-top-level, command-line, command-line-1): ! * mouse.el [win32] (mouse-set-region): ! * faces.el [win32] (make-face, make-face-x-resource-internal): ! * facemenu.el [win32] (face-menu-read-color, list-colors-display, ! facemenu-color-equal, face-menu-get-face): ! Test for 'win32 window system as well as 'x. ! * makefile.nt (install): Change same-dir test to create test file in ! installation tree and thereby support read-only shares. ! Mon Nov 6 15:37:54 1995 Richard Stallman ! * apropos.el (apropos-follow): Fix error message. ! * startup.el (command-line): Handle = in option only if starts with --. ! * tmm.el (tmm-define-keys): New subroutine. ! (tmm-add-prompt): Use that to define keys in both maps separately. ! * term/internal.el: Rewrite for new case tables. ! Mon Nov 6 11:03:34 1995 Boris Goldowsky ! * fill.el (fill-region-as-paragraph): Don't insert extra space ! at end of filled region. ! Mon Nov 6 08:27:45 1995 Simon Marshall ! * bytecomp.el (byte-force-recompile): Make suitably interactive. ! Sat Nov 4 13:57:09 1995 Richard Stallman ! * tmm.el: Use f10 as well as M-`. ! * menu-bar.el (menu-bar-tools-menu): Always define GNUS entry. ! * bytecomp.el (byte-compile-associative): Do operations left to right. ! Sat Nov 4 23:36:01 1995 Karl Heuer ! * make-mode.el (makefile-define-space-face): Don't make face if non-X. ! Sat Nov 4 01:22:21 1995 Lars Magne Ingebrigtsen ! * nnvirtual.el, nntp.el, nnspool.el, nnml.el, nnmh.el, nnmbox.el, ! * nnmail.el, nnkiboze.el, nnheader.el, nnfolder.el, nneething.el, ! * nndoc.el, nndir.el, nnbabyl.el, gnus.el, gnus-vm.el, ! * gnus-vis.el, gnus-uu.el, gnus-score.el, gnus-msg.el, gnus-mh.el, ! * gnus-kill.el, gnus-ems.el, gnus-edit.el, gnus-cite.el, ! * gnus-cache.el, custom.el: New files. ! Fri Nov 3 21:18:13 1995 Erik Naggum ! * gnus.el, gnusmail.el, gnuspost.el, gnusmisc.el, gnus-uu.el, ! * mhspool.el, nnspool.el, nntp.el: GNUS release 4 files deleted. ! * hilit19.el: Removed old gnus hooks. ! (gnus-group-mode): Adapt to new Gnus. ! (gnus-summary-mode): Removed. ! Fri Nov 3 18:11:32 1995 Karl Heuer ! * sendmail.el (mail): Don't change directory for *mail* buffer. ! (sendmail-send-it, mail-recover): Instead, temporarily change to a ! safe directory for just the subprocess. ! * tex-mode.el (tex-send-command): Give meaningful error message. ! Fri Nov 3 12:26:02 1995 Richard Stallman ! * sendmail.el (mail-yank-clear-headers): Do nothing if ! mail-yank-ignored-headers is nil. ! * pc-select.el (pc-selection-mode): Don't mess with c-mode-map. ! * startup.el (user-mail-address): Doc fix. ! * view.el (view-mode-map): Use ordinary Help command. ! Thu Nov 2 21:58:56 1995 Daniel Pfeiffer ! * sh-script.el (sh-shells): Eliminated variable redundant with ! `interpreter-mode-alist'. ! (sh-beginning-of-command): Take into account \quoted newline. ! (sh-builtins, sh-leading-keywords, sh-other-keywords): Now three ! distinct sets for font-locking. ! (sh-font-lock-keywords-1, sh-font-lock-keywords-2): New variables ! and functions to give the user finer control over how much to fontify, ! including new distinction between keywords and builtins. ! (sh-mode): Use new features of `font-lock-defaults' and adaptation ! to skeleton changes. ! (sh-while): Fix csh, es & rc skeletons. ! * skeleton.el (skeleton-end-hook): Now defvared and responsible for ! pushing out anything following skeleton to next line. Thus this ! behaviour can now be controlled by modes. ! (skeleton-insert): Parameter `no-newline' removed. ! (skeleton-read): Take this into account. ! (skeleton-internal-1): Less spurious empty lines when wrapping. ! * sh-script.el (sh-remember-variable): Set variable to empty string, ! so as not to mess up subprocesses' environment. Not so nice for ! completion. ! * two-column.el (minor-mode-map-alist): Use substitute-key-definition ! to find the appropriate bindings for window enlarge/shrink. ! (2C-shrink-window-horizontally, 2C-enlarge-window-horizontally): ! Renamed from shrink-window-horizontally, enlarge-window-horizontally ! to avoid redefining the standard functions. ! Thu Nov 2 21:27:35 1995 Stephen Gildea ! * mh-e.el (mh-make-folder-mode-line): support mh-msg-count. ! (mh-delete-scan-msgs): use fast new mh-goto-msg. ! * mh-utils.el (mh-goto-msg): binary search (much faster!). ! (mh-prompt-for-folder): error if regular file. ! * mh-comp.el: reporter.el support. ! Thu Nov 2 15:53:02 1995 Richard Stallman ! * rmail.el (rmail-delete-message-hook): New hook. ! (rmail-delete-message, rmail-delete-forward): Run the hook. ! * rmail.el (rmail-mode-hook, rmail-get-new-mail-hook): Add defvars. ! (rmail-show-message-hook): Likewise. ! * simple.el (do-auto-fill): When choosing fill-prefix, ! don't include the left-margin indentation. ! * fill.el (fill-individual-paragraphs): Insist on nonempty header name, ! in the special mailp case. ! Thu Nov 2 15:29:22 1995 Erik Naggum ! * ehelp.el (with-electric-help): Add missing argument MINHEIGHT. ! Thu Nov 2 04:31:32 1995 Andre Spiegel ! * vc-hooks.el (vc-utc-string): Use timezone of TIMEVAL for the ! correction, not the current one. ! (vc-rcsdiff-knows-brief): New variable. ! (vc-rcs-lock-from-diff): Use it. ! * vc.el (vc-backend-diff): Use new variable vc-rcsdiff-knows-brief. ! Wed Nov 1 23:30:20 1995 Karl Heuer ! * make-mode.el: Renamed from makefile.el. ! * term/x-win.el: Don't require initial whitespace in vendor name. ! * tpu-edt.el (tpu-set-mode-line): Add element for column number. ! Tue Oct 31 19:44:58 1995 Richard Stallman ! * cc-mode.el (c-recognize-knr-p): Default now t. ! * server.el (server-log): Record the current time. ! End with newline whenever STRING doesn't end with one. ! * sh-script.el (sh-mode-map): Put sh-execute-region on C-M-x. ! Put executable-interpret on C-c C-x. ! Tue Oct 31 00:24:32 1995 Richard Stallman ! * loadup.el: Always load menu-bar. ! * msb.el (msb--toggle-menu-type): Pass t as arg. ! * startup.el (command-line-1): Say how to invoke menu bar, if not X. ! * jka-compr.el (auto-compression-mode): Make arg optional. ! * loadup.el: Fix previous change. ! Mon Oct 30 19:25:42 1995 Richard Stallman ! * mailabbrev.el (mail-abbrev-syntax-table): Fix initialization. ! * startup.el (command-line): If not X, do enable menu bar. ! Mon Oct 30 19:00:50 1995 Stephen Gildea ! * time-stamp.el: Update some doc strings. ! (time-stamp-strftime): Ignore some additional chars we might want ! to use in the future for additional controls or parameters. ! (time-stamp): Minor optimizations. ! Mon Oct 30 12:38:27 1995 Richard Stallman ! * help.el (describe-function): Call documentation just once. ! (describe-key): Likewise. ! * files.el (set-auto-mode): If mode cmds move point, obey them. ! * help.el (describe-variable): Don't call substitute-command-keys. ! * rmailsum.el (rmail-summary-overlay): Make it a permanent local. ! * vmsx.el: File deleted. ! Mon Oct 30 03:31:21 1995 Simon Marshall ! * makefile.el (makefile-define-space-face): Use frame-parameters for ! frame and display attributes. ! Sun Oct 29 17:22:51 1995 Andreas Schwab ! * loadup.el (finding existing executable versions): ! Add a period to the end of BASE. ! * arc-mode.el (archive-zoo-summarize): Handle archives ! with long file names. ! * disass.el (disassemble-internal): Handle lazy-loaded doc strings. ! (disassemble-1): Handle lazy-loaded bytecode objects. ! * etags.el (select-tags-table): Don't modify the value of ! tags-table-list. ! Sun Oct 29 15:21:43 1995 Richard Stallman ! * tmm.el (tmm-old-mb-map): Initialize to nil. ! (tmm-delete-map): Don't use tmm-old-mb-map if nil. ! (tmm-add-prompt): Bind C-n and C-p. ! Put only the shortcuts into the completion buffer's map. ! Produce the completion list by hand so as not to sort it. ! (tmm-prompt): Start at the first item in the menu. ! Don't reverse tmm-km-list; reverse compl-list instead. ! Use try-completion in last-ditch attempt to find a match. ! Rename compl-list to history. ! (tmm-get-keybind): Put more local bindings last in a menu. ! Major rewrite. ! (tmm-menubar): Handle menu-bar-final-items. ! (tmm-remove-shortcuts): Function deleted. ! (tmm-add-shortcuts): If we can't find a letter shortcut, ! use a numeric shortcut. ! * simple.el (column-number-mode): Make default value nil. ! * cc-mode.el (c-guess-basic-syntax): Verify c-access-key is non-nil ! before looking for it. ! * bytecomp.el (byte-recompile-directory): New arg FORCE. ! (byte-force-recompile): New function. ! * case-table.el (describe-buffer-case-table): Use set-char-table-range. ! Sat Oct 28 02:19:32 1995 Erik Naggum ! * iso02-syn.el: Adapt to new char-table implementation. Fix name ! of file in the first line, part number syntax of ISO standards, ! and `provide' clause. Register file with RCS. ! * ange-ftp.el (ange-ftp-ftp-name,ange-ftp-replace-name-component): ! Use posix-string-match for complex regexp in `ange-ftp-name-format'. ! (ange-ftp-process-sentinel): Quote final * in buffer name match. ! Fri Oct 27 17:40:51 1995 Noah Friedman ! * rlogin.el (rlogin): If `buffer' arg is a buffer object, ! initialize `buffer-name' to the buffer name. ! Set `buffer' to buffer actually created or returned by ! get-buffer-create. ! Set `proc' to the process actually in the new buffer, not the ! process with the name buffer-name; they may not be the same if ! buffers have been renamed. ! Thu Oct 26 18:38:26 1995 Ed Reingold ! * cal-chinese.el (calendar-chinese-sexagisimal-name): New ! function. ! (holiday-chinese-new-year,calendar-chinese-date-string): Use it. ! Thu Oct 26 14:21:26 1995 Richard Stallman ! * files.el (set-visited-file-name, basic-save-buffer): ! Set buffer-file-number consistently with find-file-noselect. ! Thu Oct 26 09:52:51 1995 Simon Marshall ! * font-lock.el: General reorganisation. ! (font-lock-fontify-syntactically-region): Renamed from ! font-lock-fontify-region. Assume that region end-points are at bol. ! Don't bother wrapping with save-excursion; caller does this. ! (font-lock-fontify-keywords-region): Renamed from ! font-lock-hack-keywords. Call font-lock-fontify-anchored-keywords if ! car of HIGHLIGHT is not a number (i.e., is another MATCHER, not a ! MATCH), for new MATCH-ANCHORED font-lock-keywords structure. ! (font-lock-fontify-region): Use them. ! (font-lock-after-change-function): Use it. Don't bother invalidating ! font-lock-cache-position; called function does this. ! (font-lock-keywords-only): Renamed from font-lock-no-comments. ! (font-lock-maximum-decoration, font-lock-maximum-size): Doc fix for new ! functionality. ! (font-lock-set-defaults, font-lock-mode): Cope if they are lists. ! (font-lock-keywords): Doc fix for new MATCH-ANCHORED structure and ! new OVERRIDE values. ! (font-lock-fontify-anchored-keywords): New function for processing the ! new MATCH-ANCHORED structure. ! (font-lock-fillin-text-property, font-lock-prepend-text-property, ! font-lock-append-text-property): New text property functions. ! (font-lock-apply-highlight): Use them for new OVERRIDE values. ! (scheme-font-lock-keywords): New variable. ! (c-font-lock-keywords-3, c++-font-lock-keywords-3): New variables. ! (font-lock-defaults-alist): Use them for Scheme, C and C++ modes. ! * fast-lock.el (fast-lock-read-cache): Set fast-lock-cache-filename. ! (fast-lock-cache-data): Don't set it here via caller's local variable. ! * fortran.el (fortran-mode): Addition for font-lock-defaults. ! (fortran-font-lock-keywords-3): Rewrite using MATCH-ANCHORED structure. ! * rmail.el (rmail-font-lock-keywords): Better citation regexp. ! * sendmail.el (mail-font-lock-keywords): Likewise. ! Thu Oct 26 02:39:28 1995 Richard Stallman ! * morse.el: New file. ! Wed Oct 25 15:23:31 1995 Richard Stallman ! * cc-mode.el (c-mode): Add autoload. ! * loadup.el: Don't load c-mode. ! * loaddefs.el: Get rid of cplus-md.el; add cc-mode.el. ! * cmacexp.el: Require cc-mode. ! * hideif.el: Provide hideif; require cc-mode. ! * help.el (describe-key, describe-key-briefly): For a mouse click, ! go to its buffer and position before looking up the key. ! Wed Oct 25 13:01:36 1995 Gregor Schmid ! * tcl-mode.el: Add support for imenu. ! Add support for font-lock-mode (thanks to ). ! Tue Oct 24 12:38:43 1995 Richard Stallman ! * files.el (set-visited-file-name): Abbreviate buffer-file-name. ! * mouse.el (mouse-drag-region): Set end-of-range after ! calling mouse-scroll-subr. ! (mouse-set-region): Don't do the sit-for on a pc frame. ! Tue Oct 24 10:29:59 1995 Brian D. Carlstrom ! * gud.el (gud-dbx-directories): New variable. ! (gud-dbx-massage-args): Use gud-dbx-directories. ! (gud-dbx-file-name): New function. ! (gud-irixdbx-marker-filter): Use gud-dbx-file-name. ! (gud-dbx-file-file): Use gud-dbx-file-name. ! * gud.el (gud-filter): Fix previous change. ! Tue Oct 24 11:44:45 1995 Ed Reingold ! * cal-menu.el (calendar-mouse-print-dates): Fix entry for Chinese ! calendar. ! * cal-chinese.el: Completely rewritten! ! Tue Oct 24 00:06:14 1995 Richard Stallman ! * add-log.el (get-method-definition, get-method-definition-1): ! Rename var md to get-method-definition-md and defvar it. ! Mon Oct 23 12:50:38 1995 Richard Stallman ! * ange-ftp.el (internal-ange-ftp-mode): ! Set comint-password-prompt-regexp locally to not match anything. ! * informat.el (Info-validate, Info-validate-node-name): ! Use buffer-substring-no-properties. ! (Info-tagify, batch-info-validate, Info-validate-tags-table): Likewise. ! * informat.el (Info-validate-tags-table): Change handling ! of newline in the loop reading node names. ! * info.el (Info-following-node-name, Info-extract-menu-node-name) ! (Info-select-node): Use buffer-substring-no-properties. ! Sun Oct 22 12:30:46 1995 Richard Stallman ! * case-table.el (copy-case-table): New function. ! (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax): ! Clear out the three extra slots. ! Sun Oct 22 02:28:11 1995 Erik Naggum ! * derived.el (derived-mode-init-mode-variables): Make proper ! syntax-table. ! * iso-syntax.el: Handle new case-table implementation. ! Sat Oct 21 13:31:39 1995 Richard Stallman ! * msb.el: Require cl only when compiling. ! Sat Oct 21 13:31:39 1995 Axel Boldt ! * electric.el (Electric-command-loop): Don't display a prompt ! if 2nd arg equals or returns 'noprompt. ! * ehelp.el: Fix key bindings. ! (electric-help-mode): Use mouse-leave-buffer-hook. ! (electric-help-retain): Remove mouse-leave-buffer-hook. ! (with-electric-help): New argument minheight. ! (electric-help-execute-extended): New function. ! (electric-help-ctrl-x-prefix): New function. ! (electric-help-command-loop): Make messages more consistent. ! Include strategic sit-for 0, so that ! pos-visible-in-window-p will return the right thing. ! Make 2nd arg of Electric-command-loop return 'noprompt if we ! are in isearch-mode. ! Eval to-be-executed at the very end. ! (ehelp-map): Electrify apropos too. ! Fri Oct 20 15:34:39 1995 Richard Stallman ! * noutline.el (outline-view-change-hook): New hook variable. ! (outline-flag-region): Run the hook. ! * informat.el (Info-validate-tags-table): Fix the scan of the ! tags table checking that the positions are right. ! (Info-validate): Use buffer-substring-no-properties. ! * dabbrev.el (dabbrev-expand): When no more expansions, ! Put back the original abbrev with its original case pattern. ! (dabbrev--find-expansion): Move buffers that are visible on the screen ! to the front of the list to be searched. ! * startup.el (normal-top-level): Set auto-save-list-file-name later, ! after calling command-line. ! Fri Oct 20 15:08:22 1995 Erik Naggum ! * comint.el (comint-exec-1): Fix previous change. ! Fri Oct 20 11:22:25 1995 Richard Stallman ! * add-log.el (add-log-current-defun): ! Handle `private', `public' in C++ class definitions. ! Thu Oct 19 01:14:59 1995 Richard Stallman ! * isearch.el (isearch-message-prefix): ! Change "wrapped" to "overwrapped" when past original start point. ! * comint.el (comint-exec-1): Don't alter EMACS envvar ! if it's already defined. ! * cplus-md.el (calculate-c++-indent): Skip over paren-group ! when looking back to determine context of a top-level line. ! Don't treat a line starting with } as a continuation. ! Wed Oct 18 21:06:59 1995 Richard Stallman ! * emacsbug.el (report-emacs-bug): Don't mention ! system-configuration-options if it is empty. ! Make it clearer what that text is. ! Tue Oct 17 14:10:19 1995 Richard Stallman ! * tex-mode.el (tex-start-of-header): Now a regexp. ! (tex-end-of-header): Likewise. ! (plain-tex-mode, latex-mode, slitex-mode, tex-region): ! Changed accordingly. ! * pc-select.el (pc-selection-mode): Add autoload cookie. ! * pc-select.el: New file. ! Mon Oct 16 22:21:38 1995 Rolf Ebert ! * ada-mode.el: ! All doc strings changed to comply with standard Emacs conventions. ! (ada-mode): Support new font-lock-mode. ! (ada-format-paramlist): Changed all `accept' to `access'. ! (ada-insert-paramlist): Changed all `accept' to `access'. ! (ada-in-comment-p): Use standard Emacs way `parse-partial-sexp'. ! (ada-font-lock-keywords-1): Change order of some alternatives. ! Mon Oct 16 17:45:22 1995 Richard Stallman ! * cc-mode.el (c-emacs-features): Don't expect integer in syntax table. ! * flow-ctrl.el (enable-flow-control): Use a char-table. ! Sun Oct 15 04:53:55 1995 Richard Stallman ! * mailabbrev.el (mail-abbrev-syntax-table): Rewrite using ! map-char-table. ! * derived.el (derived-mode-merge-syntax-tables): Rewrite using ! map-char-table. ! * hippie-exp.el (he-transfer-case): Fix typo in prev change. ! Fri Oct 13 23:14:10 1995 Michael Kifer > ! * ediff.el (ediff-version): is now autoloaded. ! * ediff-init.el: Moved defsubsts up. ! * ediff-hook.el: Now defines [window] in menu-bar-ediff-menu. ! Fri Oct 13 20:14:10 1995 Michael Kifer > ! * viper.el (vip-set-hooks): Use view-mode-hook in emacs and view ! hook in xemacs. ! (vip-read-string-with-history): minibuffer-setup-hook no longer ! waits for the user to type, if there are unread events. ! Added (vip-leave-region-active) to all simple movement commands. ! Viper now understands syntactic tables. ! Harnessed view-minor-mode. ! (vip-read-string-with-history,vip-search): won't pause inside ! macros any more. ! * viper-mous.el (vip-surrounding-word): modified to understand ! tripple clicks. ! * viper-util.el (vip-leave-region-active): new function. ! * viper-ex.el (ex-write): uses better defaults. ! * viper-macs.el (vip-record-kbd-macro): correctly escapes `.' and ! `[' now. ! Fri Oct 13 15:17:28 1995 Richard Stallman ! * help.el (variable-at-point, function-called-at-point): ! Switch temporarily to emacs-lisp-mode-syntax-table. ! * goto-addr.el: New file. ! * browse-url.el: New file. ! Fri Oct 13 1995 Anders Holst (aho@nada.kth.se) ! * hippie-exp.el: ! (hippie-expand): Removed bug - don't undo from another buffer. ! (he-reset-string): Removed bug - don't move markers. ! (he-capitalize-first): New function, defining new "case". ! (he-transfer-case): New function. ! (he-transfer-case-ok): Function removed. ! (he-substitute-string,he-ordinary-case-p,he-string-member): Use the ! new functions above, for the new case handling. ! (he-file-name-chars): New variable. ! (he-file-name-beg): Use `he-file-name-chars'. ! (he-file-name-nondirectory,he-file-name-directory, ! he-file-directory-p,he-concat-directory-file-name): New functions ! to handle VMS and PC filename formats more accurately. ! (try-complete-file-name,try-complete-file-name-partially): Use the ! new functions above. ! (try-expand-line-all-buffers,try-expand-list-all-buffers, ! try-expand-dabbrev-all-buffers): Use `case-fold-search' from the ! original buffer. ! (he-line-beg): Removed bug that made point move. ! (try-expand-all-abbrevs): Check that abbrev tables exist before use. ! (try-expand-dabbrev-visible): New try function. ! (he-search-window): New variable used by `try-expand-dabbrev-visible'. ! (he-dab-search-regexp): Function removed. ! (he-dab-search): Renamed to `he-dabbrev-search'. ! (he-dabbrev-search): Find only whole matching symbols. ! (he-dabbrev-skip-space): New variable. ! (he-dabbrev-beg): Use `he-dabbrev-skip-space'. ! (try-expand-dabbrev-from-kill,he-dabbrev-kill-search): New try ! function, with requisites. ! (try-expand-whole-kill,he-whole-kill-search,he-kill-beg): New try ! function, with requisites. ! (he-search-loc2): New variable, used by `try-expand-whole-kill' ! and `try-expand-dabbrev-from-kill'. ! (hippie-expand-try-functions-list): Added the try functions ! `try-complete-file-name-partially', `try-expand-dabbrev-from-kill' ! and `try-complete-lisp-symbol-partially'. ! (Several functions): Adjusted and corrected use of `he-tried-table'. ! Fri Oct 13 09:06:37 1995 Ed Reingold ! * cal-tex.el: Minor fixes to doc strings and other small changes. ! Thu Oct 12 13:55:26 1995 Richard Stallman ! * help.el (variable-at-point, function-called-at-point): ! Fix revious changes. ! * iso-transl.el: Handle aliases dead-acute,... ! Thu Oct 12 11:28:50 1995 Ed Reingold ! * cal-tex.el: New file. ! * calendar.el: Add autoloads and key definitions for cal-tex.el. ! * cal-menu.el: Add menu items for cal-tex.el. ! Wed Oct 11 14:26:34 1995 Robert J. Chassell ! * texinfmt.el (texinfo-unsupported): Handle commands in all capitals. ! Wed Oct 11 11:38:55 1995 Richard Stallman ! * files.el (find-alternate-file-other-window): New function. ! Wed Oct 11 01:23:31 1995 Michael Kifer ! * menu-bar.el: Moved (define-key menu-bar-ediff-menu ...) to ! ediff-hook.el, as menu-bar-ediff-menu is not defined yet. ! Wed Oct 11 00:59:00 1995 Richard Stallman ! * fill.el (adaptive-fill-function): Change defun to defvar. ! Tue Oct 10 12:52:39 1995 Richard Stallman ! * simple.el (next-completion): Specify the LIMIT arg when ! searching for text properties. ! * help.el (function-called-at-point, variable-at-point): ! Don't back up if we start at the beginning of a symbol. ! * disp-table.el (display-table-slot, set-display-table-slot): ! Get slot number from a property of its name. ! Eliminate the type-checking. ! (make-display-table): Call make-char-table the new way. ! (describe-display-table): Use slot names to access slots. ! (display-table): Give it the char-table-extra-slots property. ! (display-table-char-p, display-table-vector-p): Functions deleted. ! (display-table-slot-name-alist): Variable deleted. ! Mon Oct 9 22:30:42 1995 Andreas Schwab ! * mail-utils.el (mail-strip-quoted-names): Preserve white space ! after comma when stripping text outside of <> delims. ! Mon Oct 9 15:41:18 1995 Richard Stallman ! * view.el: Doc fixes. ! (view-highlight-face): New variable. ! (view-search): Use that variable. ! Mon Oct 9 14:01:04 1995 Roland McGrath ! * etags.el (tags-table-check-computed-list): Map ! tags-expand-table-name over lists of included tables. ! Mon Oct 9 13:44:43 1995 Erik Naggum ! * disp-table.el: New implementation with char-tables. ! Mon Oct 9 13:08:04 1995 Richard Stallman ! * xt-mouse.el: New file. ! Mon Oct 9 00:49:37 1995 Noah Friedman ! * mailabbrev.el (mail-abbrev-syntax-table): Use `equal' instead of ! `=', in case elts of syntax table are lists, not integers. ! Sun Oct 8 15:58:21 1995 Erik Naggum ! * ada-mode.el (ada-gen-treat-proc): Bind `procname' and `functype'. ! * view.el (view-exit): Delete view-overlay only if it exists. ! Sun Oct 8 14:56:12 1995 Richard Stallman ! * server.el (server-start): Try both full hostname and shortened ! hostname when deleting the socket file. ! * gud.el (gud-filter): Move the gud-display-frame call ! outside of the save-excursion. New var process-window ! controls which window to do it in. ! Sat Oct 7 00:08:29 1995 Richard Stallman ! * subr.el (make-syntax-table): Use nil for "inherit". ! Fri Oct 6 11:11:31 1995 Richard Stallman ! * bytecomp.el (byte-compile-from-buffer): Bind print-level. ! * simple.el (newline): Call barf-if-buffer-read-only. ! * iso-acc.el: Fix typo calling iso-accents-customize. ! (iso-accents-compose): If this-command is non-nil, do prompt. ! Thu Oct 5 20:54:29 1995 Michael Kifer ! * ediff-meta.el: new file. ! * ediff-hook.el: new file. ! * ediff.el: Moved menubar definitions to a new file, ediff-hook.el ! (ediff-files,ediff-merge-files): better file-name defaults. ! (ediff-split-string): new function. ! (ediff-exec-process): now handles diff args separated by space. ! (ediff-backup-extension): new variable. ! Replaced -hooks with -hook. ! (ediff-revision-key): variable deleted. ! * ediff-util.el (ediff-toggle-read-only,ediff-read-file-name): ! replaced abbreviate-file-name with ediff-abbreviate-file-name. ! (ediff-documentation): bug fix. ! (ediff-setup,ediff-really-quit): modified to work with Ediff ! session groups. ! (ediff-quit,ediff-really-quit): now ask if the user wants to delete ! buffers. ! * ediff-init.el (ediff-abbreviate-file-name): function modified. ! (ediff-truncate-string-left): new function. ! (ediff-strip-last-dir,ediff-key-press-event-p,ediff-event-point, ! ediff-event-buffer): new functions. ! (ediff-frame-has-menubar,ediff-protect-meta-chars): functions deleted. ! * ediff-wind.el (ediff-make-frame-position): fixed bugs. ! (ediff-control-frame-parameters): fixed defaults. ! * ediff-diff.el (ediff-setup-diff-regions,ediff-setup-diff-regions3, ! ediff-setup-fine-diff-regions): functions modified. ! (ediff-shell-command,ediff-shell-command-sentinel, ! ediff-shell-command-filter): deleted. ! (ediff-exec-process,ediff-process-sentinel,ediff-process-filter): new. ! Thu Oct 5 18:24:01 1995 Richard Stallman ! * appt.el (appt-disp-window): Call raise-frame. ! * view.el (View-search-regexp-forward, View-search-regexp-backward): ! If arg is empty, use view-last-regexp. ! (view-overlay): New variable, local in all buffers. ! (view-search): Highlight the match using view-overlay. ! (view-exit): Delete view-overlay. ! Wed Oct 4 11:59:54 1995 Richard Stallman ! * desktop.el (desktop-outvar): Support truncation. ! (desktop-globals-to-save): Doc fix. ! * startup.el (command-line): Init user-mail-address here, ! after reading init file. ! (normal-top-level): Not here. ! * gnuspost.el (gnus-inews-do-fcc): Use mail-file-babyl-p. ! * gnus.el (gnus-summary-save-in-mail): Use mail-file-babyl-p. ! * startup.el (auto-save-list-file-prefix): New variable. ! (normal-top-level): Use it. ! * files.el (recover-session): Use auto-save-list-file-prefix. ! * sendmail.el (mail-signature-file): New variable. ! Fix various doc strings to mention it. ! (mail-signature): Use mail-signature-file. ! * unrmail.el (unrmail): Call rmail-toggle-header. ! * isearch.el (isearch-forward): Doc fix. ! Wed Oct 4 11:15:40 1995 Andre Spiegel ! * vc.el (vc-next-action-on-file): When locking the latest trunk ! version, use empty version number. ! Sun Oct 1 16:33:43 1995 Noah Friedman ! * terminal.el (te-escape): Remove spurious partial duplicate ! definition. ! Sun Oct 1 13:59:29 1995 Richard Stallman ! * files.el (recover-session-finish): Ask only about files that ! have auto-save files now. Don't put "temp" into temp file names. ! Sat Sep 30 12:35:24 1995 Roland McGrath ! * files.el (cd): Fix interactive spec to require match if there is ! no CDPATH. ! Thu Sep 28 23:48:41 1995 Richard Stallman ! * comint.el (comint-password-prompt-regexp): Recognize ! Old Password and New password. ! Thu Sep 28 16:36:14 1995 Michael Ernst ! * ispell.el (ispell-message-text-end): Match reporter.el bug reports. ! Thu Sep 28 15:18:50 1995 Richard Stallman ! * help.el (print-help-return-message): Handle lists in ! special-display-regexps and same-window-regexps. Also in ! special-display-buffer-names and same-window-buffer-names ! * files.el (interpreter-mode-alist): Handle nawk. ! Wed Sep 27 11:25:56 1995 Richard Stallman ! * sendmail.el (sendmail-send-it): Handle FCC after all text changes. ! (mail-do-fcc): Don't add From field here. ! * undigest.el (undigestify-rmail-message): Better error messages. ! Tue Sep 26 15:33:27 1995 Richard Stallman ! * ange-ftp.el (ange-ftp-dumb-unix-host): Avoid error if HOST is nil. ! Mon Sep 25 18:14:51 1995 Richard Stallman ! * add-log.el (add-log-current-defun): Ignore quotes before fcn name. ! Mon Sep 25 14:53:24 1995 Karl Heuer ! * info.el (Info-title-face-alist): New var. ! (Info-fontify-node): Check for headings that are `underlined' with ! characters on the following line. ! Mon Sep 25 10:53:57 1995 Richard Stallman ! * help.el (help-mode): Call view-mode. ! * diary.el (mark-sexp-diary-entries): Add \ for C-M-f's sake. ! * view.el (view-mode-enter): Renamed from view-mode. Callers changed. ! Don't create local vars here. Set view-mode-auto-exit. ! Don't change local map--just set view-mode. ! (view-mode): New function toggles minor mode in the usual way. ! (view-mode-map): Put this on minor-mode-map-alist. ! (view-mode-exit): Do the exit actions only if view-mode-auto-exit. ! (View-scroll-lines-forward): Exit only if view-scroll-lines-forward. ! (view-mode-auto-exit, view-old-buffer-read-only) ! (view-old-Helper-return-blurb, view-scroll-size, view-last-regexp) ! (view-exit-action, view-return-here, view-exit-position): ! Defvar them and make them always-local. ! Mon Sep 25 06:53:32 1995 Erik Naggum ! * startup.el (command-line-1): --eval: Don't print the value. ! (command-line-1): --insert: Don't complain on --insert=file. ! Sun Sep 24 19:24:35 1995 Richard Stallman ! * replace.el (occur): Indent better for matches that contain newlines. ! Sat Sep 23 23:49:25 1995 Richard Stallman ! * jka-compr.el (auto-compression-mode): Add autoload cookie. ! Renamed from toggle-auto-compression. ! (toggle-auto-compression): Define as alias. ! Fri Sep 22 17:51:48 1995 Erik Naggum ! * cl-macs.el (get-setf-method): Protect caller's match-data from ! string-match. ! Fri Sep 22 17:33:18 1995 Karl Heuer ! * edt.el (edt-setup-default-bindings): Revert function is ! revert-buffer, not revert-file. ! Fri Sep 22 17:31:07 1995 Torbjorn Einarsson ! * f90.el: Major revision. ! Much improved and quicker highlighting using font-lock. ! Support for hilit19 removed. ! Support for imenu added. ! Changed indentation for continue statements. ! Added treatment of preprocessor directives. ! (f90-directive-comment-re) is now a regular expression. ! Many bug fixes. ! Fri Sep 22 15:36:23 1995 Ed Reingold ! * cal-menu.el (calendar-mouse-chinese-date): New function. ! (calendar-mouse-print-dates): Use it. ! Thu Sep 21 21:38:19 1995 Richard Stallman ! * sendmail.el (mail-do-fcc): Erase the ` mail-temp' buffer. ! (mail-do-fcc): Clear read-only flag in ` mail-temp' buffer. ! * undigest.el (undigestify-rmail-message): Scan back as far as start ! of message, to find end of digest. ! * rmailout.el (rmail-file-p): Function moved to mail-utils.el ! ad renamed to mail-file-babyl-p. ! (rmail-output, rmail-output-to-rmail-file): Use new name. ! * mail-utils.el (mail-file-babyl-p): Function moved from ! rmail.el and renamed. ! * sendmail.el (mail-file-babyl-p): Function deleted. ! (sendmail-send-it): Load mail-utils first thing. ! Thu Sep 21 18:01:48 1995 Erik Naggum ! * byte-opt.el (byte-boolean-vars): Update list to reflect actual ! DEFVAR_BOOL symbols in the C code. ! Thu Sep 21 16:53:08 1995 Karl Heuer ! * edt.el (edt-set-screen-width-80, edt-set-screen-width-132): ! If a terminal-specific function exists, call it. ! * edt-vt100.el (edt-set-term-width-80, edt-set-term-width-132): ! Terminal-specific functions. ! Don't redefine edt-set-screen-width-80 and edt-set-screen-width-132. ! * terminal.el (te-escape, te-escape-help): Handle non-ASCII events. ! Tue Sep 19 16:02:37 1995 Edward M. Reingold ! * cal-chinese.el: New file. ! * cal-coptic.el: New file. ! * cal-julian.el: New file. All Julian calendar related code moved here ! from calendar.el, holidays.el, and diary-lib.el. ! * cal-iso.el: New file. All ISO calendar related code moved here ! from calendar.el and diary-lib.el. ! * cal-islamic.el: New file. All Islamic calendar related code ! moved here from calendar.el, holiday.el, diary-lib.el, and ! diary-ins.el. ! * cal-hebrew.el: New file. All Hebrew calendar related code ! moved here from calendar.el, holiday.el, diary-lib.el, and ! diary-ins.el. ! * cal-move.el: New file. All functions related to movement in the ! calendar moved here from calendar.el. ! * diary.el: New file. Functions related to the diary moved from ! diary-lib.el and diary-ins.el. ! * holidays.el (holiday-hebrew): Moved to cal-hebrew. ! (holiday-islamic): Moved to cal-islamic. ! (holiday-julian): Moved to cal-julian. ! * cal-x.el (calendar-setup): Moved to calendar.el. ! * diary-lib.el: Deleted. ! (diary-date, diary-remind): New functions. ! (list-sexp-diary-entries): Mention them in doc string. ! (diary-remind-message, marking-diary-entries, ! marking-diary-entry): New variables. ! (diary-mark-sexp-diary-entries, mark-diary-entries): Rewritten to ! accomodate marking-diary-entries. ! (diary-sexp-entry): Fix indentation. ! (diary-chinese-date, diary-coptic-date, diary-ethiopic-date): ! Do autoloads. ! (diary-islamic-date, list-islamic-diary-entries, ! mark-islamic-diary-entries, mark-islamic-calendar-date-pattern): ! Moved to cal-islamic.el. ! (diary-hebrew-date, list-hebrew-diary-entries, ! mark-hebrew-diary-entries, mark-hebrew-calendar-date-pattern): ! Moved to cal-hebrew.el. ! Everything else moved to diary.el. ! * diary-ins.el: Deleted. ! (insert-islamic-diary-entry, insert-monthly-islamic-diary-entry, ! insert-yearly-islamic-diary-entry): Moved to cal-islamic.el. ! (insert-hebrew-diary-entry, insert-monthly-hebrew-diary-entry, ! insert-yearly-hebrew-diary-entry): Moved to cal-hebrew.el. ! Everything else moved to diary.el. ! * cal-menu.el (calendar-mouse-print-dates): Add Chinese and Coptic ! dates; fix astro date message. ! (calendar-mouse-2-date-menu): Add dayname to menu. ! * cal-french.el (french-calendar-special-days-array, ! calendar-french-date-string): Fix accents. ! (calendar-goto-french-date): Use reverse instead of nreverse; fix ! accents. ! (french-calendar-epoch): New variable. ! (calendar-french-from-absolute, calendar-absolute-from-french): Use it. ! * cal-dst.el: Fix commentary. ! (dst-adjust-time): Moved and renamed from solar.el. ! (dst-in-effect): New function. ! * solar.el (solar-equinoxes-solstices, solar-ephemeris-correction, ! solar-equinoxes/solstices): Rewritten. ! (solar-apparent-longitude-of-sun): Deleted. ! (solar-longitude, solar-date-next-longitude): New functions. ! (solar-adj-time-for-dst): Renamed dst-adjust-time and moved to ! cal-dst.el. ! (solar-sin-degrees, solar-cosine-degrees, solar-tangent-degrees): ! Take angle mod 360.0. ! (solar-tangent-degrees): Change to macro. ! * calendar.el (calendar-mod, calendar-absolute-from-astro, ! calendar-astro-from-absolute): New functions. ! (calendar-astro-date-string, calendar-goto-astro-day-number): Use ! them. Autoload holiday-chinese-new-year, ! calendar-goto-chinese-date, calendar-print-chinese-date, ! calendar-chinese-date-string, calendar-goto-coptic-date, ! calendar-print-coptic-date, calendar-coptic-date-string, ! calendar-goto-ethiopic-date, calendar-print-ethiopic-date, ! calendar-ethiopic-date-string, calendar-one-frame-setup, and ! calendar-two-frame-setup. (oriental-holidays): New variable for ! Chinese New Year. (calendar-mode-map): Put Chinese and Coptic ! calendar functions on keys. (calendar-setup): Moved here from ! cal-x.el. (diary-file): Mention Chinese, Coptic, and Ethiopic ! dates. (calendar-goto-today, calendar-forward-month, ! calendar-forward-year, calendar-backward-month, ! calendar-backward-year, scroll-calendar-left, ! scroll-calendar-right, scroll-calendar-left-three-months, ! scroll-calendar-right-three-months, ! calendar-cursor-to-nearest-date, calendar-forward-day, ! calendar-backward-day, calendar-forward-week, ! calendar-backward-week, calendar-beginning-of-week, ! calendar-end-of-week, calendar-beginning-of-month, ! calendar-end-of-month, calendar-beginning-of-year, ! calendar-end-of-year, calendar-cursor-to-visible-date, ! calendar-goto-date, calendar-goto-iso-date): Moved to cal-move.el. ! (calendar-goto-julian-date): Moved to cal-julian. ! (calendar-cursor-to-date, generate-calendar-month): Consider the ! space next to a one-digit date as being on that date. ! * cal-mayan.el (calendar-mayan-tzolkin-from-absolute): Use them. ! (mayan-adjusted-mod): Moved to calendar.el and renamed calendar-mod. ! * lunar.el (lunar-new-moon-time, lunar-new-moon-on-or-after) New ! functions. ! Mon Sep 18 10:45:24 1995 Richard Stallman ! * subr.el (substitute-key-definition): Do recursively scan ! where KEYMAP has nothing at all. ! * mouse.el (C-down-mouse-1): Use buffer menu, not font menu. ! (S-down-mouse-1): Put font menu here. ! * mouse.el (mouse-drag-vertical-line): New function. ! (mouse-scroll-min-lines): New variable. ! (mouse-scroll-subr): Use it. ! Sun Sep 17 10:11:08 1995 Richard Stallman ! * files.el (find-alternate-file): Kill any preexisting ` **lose**' buf. ! Thu Sep 14 10:44:41 1995 Richard Stallman ! * dunnet.el (dun-climb): Handle unknown object name. ! (dun-objnames): Add "palm" as alias for "tree". ! * indent.el (indent-for-tab-command): Get the prefix arg ! and pass it along to indent-line-function if it isn't nil. ! Thu Sep 14 03:25:26 1995 Andre Spiegel ! * vc-hooks.el (vc-fetch-master-properties): Call "cvs status" ! in the right directory, passing only the nondirectory part of ! the file name. ! (vc-find-cvs-master): Bind `mtime' locally instead of using it ! as a free variable. ! Tue Sep 12 00:31:50 1995 Erik Naggum ! * dired-x.el: Remove `dired-up-directory'. ! (dired-find-buffer-nocreate): Add optional argument `mode' like ! the function it redefines from dired.el. ! * dired.el (dired-up-directory): Add optional argument ! `other-window' to obviate the need to redefine it in dired-x.el. ! Tue Sep 12 16:57:07 1995 Richard Stallman ! * files.el (auto-mode-alist): .pl is now Perl. ! * delsel.el (clipboard-yank): Add delete-selection property. ! Mon Sep 11 19:33:17 1995 Richard Stallman ! * server.el (server-process-filter): Ignore lines that don't start ! with `Error:' or `Client:'. ! Fri Sep 8 16:43:10 1995 Andre Spiegel ! * dired.el (dired-internal-noselect): Set dired-directory ! when refreshing a buffer that displays a list of files. ! (dired-find-buffer-nocreate): Handle the case when ! dired-directory is a list. ! (dired-sort-other): Don't set mode-name if we are not in ! dired-mode. ! * vc.el (vc-dired-mode): Now a major mode derived from dired-mode. ! (vc-directory): Take DIRNAME as an argument. Ask for it in ! the minibuffer. Don't kill pre-existing vc-dired buffers ! (dired now re-uses the right one). ! (vc-file-tree-walk): New argument DIRNAME. Updated all callers. ! (vc-dired-update): New function. `g' in vc-dired-mode calls it. ! (vc-dired-reformat-line): Handle different ls -l formats. ! * vc-hooks.el (vc-locking-user): Fixed wrong parentheses. ! Fri Sep 8 13:19:17 1995 Richard Stallman ! * register.el: Rename all register-name args to `register'. ! Thu Sep 7 06:12:50 1995 Paul Eggert ! * env.el (setenv): Call set-time-zone-rule when setting TZ. ! Thu Sep 7 00:14:51 1995 Richard Stallman ! * text-mode.el (center-line): New arg NLINES. ! Do nothing for lines that are too wide. ! * hexl.el (hexl-current-address): New arg VALIDATE. ! Handle point values in the ASCII text section and in the addresses. ! (hexl-insert-char): Handle point located in the ASCII text. ! Wed Sep 6 12:42:02 1995 Richard Stallman ! * info.el (Info-suffix-list): Add .inf to MSDOS list. ! * ange-ftp.el (ange-ftp-gwp-filter): Go to process buffer ! before getting text from it. ! * mouse.el (mouse-drag-region): Record where the mouse drag has reached ! and use that to adjust the drag event before replaying it. ! * gud.el (gud-filter): Save up text that arrives while processing ! previous text. ! Wed Sep 6 14:28:03 1995 Fred Pierresteguy ! * rmailsum.el (rmail-summary-construct-io-menu): Use all of FILES. ! Also disable the menu instead of not displaying it, if FILES is empty. ! Tue Sep 5 17:28:56 1995 Richard Stallman ! * browse-url.el: New file. ! Mon Sep 4 16:25:53 1995 Richard Stallman ! * mailabbrev.el (mail-interactive-insert-alias): ! Call mail-abbrev-expand-hook. ! Sat Sep 2 12:27:45 1995 Richard Stallman ! * info.el (info-insert-file-contents): Use info-insert-file-contents-1 ! to set FULLNAME. Use call-process-region to run the decode program. ! (Info-find-node): Use info-insert-file-contents-1. ! (info-insert-file-contents-1) [MSDOS]: Don't use the dot in SUFFIX ! if FILENAME already has one. ! * dired.el (dired-internal-noselect): New arg MODE. ! If it's non-nil, switch to that nil. ! (dired-find-buffer-nocreate): New arg MODE. ! * mouse.el (mouse-drag-region): Store the right end position ! in the drag-event before replaying it at the end. ! * files.el (auto-mode-alist): Handle .f90 files. ! * dired.el (dired-internal-noselect): Use dirname when finding ! existing buffer. ! Thu Aug 31 19:48:44 1995 Richard Stallman ! * cc-compat.el: New file. ! * sendmail.el (sendmail-send-it): Use user-mail-address. ! Thu Aug 31 23:41:21 1995 Barry Warsaw ! * cc-mode.el (c-backslashify-current-line): Obsolete. ! (c-append-backslash, c-delete-backslash): Taken from c-mode.el. ! (c-backslash-region): Likewise. ! * cc-mode.el (c-indent-defun): Watch out for point being on the ! first top-level open brace in the buffer. ! * cc-mode.el (c-copy-tree, c-mapcar-defun): Define functions only ! available in XEmacs 19.12, or Emacs 19 + lucid.el. ! * cc-mode.el (c-lineup-ObjC-method-call): New implementation ! better handles 1. indentation of arguments to keyword parameters, ! 2. multiline method calls. ! * cc-mode.el (c-electric-brace): Fixed preservation of ! no-whitespace before brace. ! * cc-mode.el (c-guess-basic-syntax): CASE 5A.1: Watch out for ! c-state-cache; it may or may not be in place, but it should be ! ignored. ! * cc-mode.el (c-electric-colon): In call to c-lookup-lists, fixed ! incorrect quoting of symbols in the quoted list. ! * cc-mode.el (c-search-uplist-for-classkey): Watch out for ! embedded c-class-key keywords. ! * cc-mode.el (c-common-init): Make a deep copy of c-offsets-alist ! so that changing the buffer-local value in one buffer doesn't ! affect the global value, or other buffers. ! * cc-mode.el (c-snug-do-while): forward-sexp call could fail; ! wrap it in a c-safe. ! * cc-mode.el (c++-mode, objc-mode): comment-multi-line must be nil ! if // is the default comment style. ! Thu Aug 31 11:04:43 1995 Richard Stallman ! * ange-ftp.el (ange-ftp-vms-sans-version): Accept extra args. ! Wed Aug 30 12:01:14 1995 Richard Stallman ! * simple.el (kill-new): Compute 2nd arg to interprogram-cut-function ! based on REPLACE. ! * files.el (list-directory): Set default-directory. ! Wed Aug 30 14:37:25 1995 Per Abrahamsen ! * mouse.el (mouse-skip-word): Skip complete symbol when over a ! character with symbol syntax. ! Tue Aug 29 11:30:37 1995 Richard Stallman ! * dired-aux.el (dired-byte-compile): Report failure if output file ! is not created. ! * term/x-win.el (function-key-map): Consistently map CLEAR to C-l. ! Tue Aug 29 06:57:29 1995 Andre Spiegel ! * vc-hooks.el (vc-utc-string): New function. ! (vc-find-cvs-master): Use it to compare mtime and checkout time. ! (vc-locking-user): CVS case: *only* use checkout time. ! (vc-find-cvs-master): Don't attempt to find the RCS master file. ! Throw the full name of CVS/Entries. ! (vc-name): Doc change (special CVS case). ! (vc-after-save): Handle the case when a file is saved in the very ! second in which it was checked out. ! * vc.el (vc-dired-update-line): Don't use dired-do-redisplay. ! (vc-next-action-dired): Adjust default-directory before calling ! vc-next-action-on-file. ! (vc-next-action-on-file): Handle CVS merge in vc-dired-mode correctly. ! (vc-next-action): Ask for a check-in comment if there are "added" ! CVS files. Don't special-case single files in vc-dired-mode. ! (vc-file-clear-masterprops): Typo fix. ! (vc-latest-on-branch-p): Always true for CVS. ! (vc-directory): Header change. Do display the buffer, even if no ! locked/registered files were found. ! Mon Aug 28 11:09:11 1995 Richard Stallman ! * files.el (recover-session-finish): Catch erorr in recover-file. ! * makefile.el (makefile-font-lock-keywords): Highlight lines with ! tab followed by #, and initial spaces preceding tabs--not all ! initial spaces. ! Sun Aug 27 03:19:50 1995 Richard Stallman ! * tmm.el: Fix typo in global-map define. ! * cl-seq.el (rassoc): Definition deleted. ! * mailabbrev.el (mail-mode-syntax-table): defvar deleted. ! * edebug.el: Delete redundant defvars of built-in variables. ! * edmacro.el: Load cl only during compilation. ! (edmacro-mismatch, edmacro-subseq): New functions. ! Use them instead of mismatch and subseq. ! * hideif.el (hide-ifdef-hiding): Delete duplicate defvar. ! * modula2.el (m2-execute-monitor-command): Renamed from ! execute-monitor-command. ! Sat Aug 26 16:24:44 1995 Richard Stallman ! * refer.el (refer-every): Renamed from every. ! (refer-convert-string-to-list-of-strings): Renamed from ! convert-string-to-list-of-strings. ! * levents.el (eventp): Duplicate definition deleted. ! * ws-mode.el (wordstar-center-line): Renamed from center-line. ! (wordstar-center-region): Renamed from center-region. ! (wordstar-center-paragraph): Renamed from center-paragraph. ! * x-menu.el: Doc fixes. ! (caar, cdar): Deleted--use (car (car ...)). ! * find-file.el (ada-spec-suffix): Definition deleted. ! (ada-make-filename-from-adaname): Delete autoload. ! (ff-special-constructs): Load ada-mode before referring to ! ada-spec-suffix and ada-make-filename-from-adaname. ! * life.el (abs): Function definition deleted. ! (goto-beginning-of-buffer): Macro deleted. Use goto-char. ! (goto-end-of-buffer): Macro deleted. Use goto-char. ! (maxint): Macro deleted. ! (life-increment): Renamed from increment. ! (life-initialized): New variable. ! (life): Do (random t) only once and only when `life' is called. ! * info.el (Info-default-directory-list): Duplicate defvar deleted. ! Fri Aug 25 17:18:04 1995 Richard Stallman ! * uniquify.el: New file. ! * mailabbrev.el (rebuild-mail-abbrevs): FILE defaults to visited file. ! * executable.el (executable-set-magic): Use make-local-hook ! for after-save-hook. ! * files.el (basic-save-buffer): Doc fix. ! (after-save-hook): Add defvar. ! Fri Aug 25 14:39:29 1995 Andre Spiegel ! * vc.el: Enhanced vc-dired-mode. ! (vc-directory): Kill existing vc-dired buffers for this directory. ! Provide a better header. Corrected the check whether any files were ! found at all (don't display a listing in this case). Under CVS, ! display cvs-status rather than vc-locking-user. ! (vc-next-action-on-file): When doing a check-in in vc-dired-mode, find ! the file in another window. ! (vc-next-action-dired): Update dired listing while processing the ! files. ! (vc-next-action): Check whether a check-in comment is really needed ! for this mass operation. ! (vc-checkout): Resynch the buffer, even if it's not current. ! (vc-dired-state-info, vc-dired-update-line): New functions. ! (vc-dired-prefix-map): Added local definition for `g' and `='. ! (vc-dired-reformat-line): Simplified. Erase the hardlink count from ! the listing, because it doesn't relate to version control. ! * vc.el: Added functions to dispatch on backend release numbers. ! Under RCS, use this to find out whether new features can be used. ! (vc-rcs-release, vc-cvs-release, vc-sccs-release): New variables, may ! be set by the user. ! (vc-backend-release, vc-release-greater-or-equal, ! vc-backend-release-p): New Functions. ! (vc-do-command): Allow FILE to be nil. ! (vc-backend-checkin): When creating a branch, don't bother to unlock ! the old version if this is RCS 5.6.2 or higher. ! (vc-next-action-on-file): Allow lock-stealing only if RCS 5.6.2 or ! higher. ! (vc-backend-admin, vc-backend-checkin): If available, use ci -i ! and -j. Updated Developer's Notes. ! * vc.el (vc-backend-diff): Handle the case of a locally added CVS ! file correctly. ! * vc-hooks.el (vc-fetch-master-properties): Count cvs status ! "Needs Patch" as `needs-checkout'. ! (vc-after-save): Clear the cvs status. ! Fri Aug 25 12:39:51 1995 Roland McGrath ! * etags.el (next-file): Advance next-file-list before finding the ! file named in its car, in case finding signals an error. ! Fri Aug 25 10:15:53 1995 Richard Stallman ! * help.el (describe-function): Show file name for autoloaded fns. ! * simple.el (what-line): Print narrowed linenum with full buffer num. ! Thu Aug 24 01:24:48 1995 Tom Tromey ! * makefile.el (makefile-mode-syntax-table): "]" is a close-paren. ! (makefile-add-log-defun): Avoid error at eob. ! Wed Aug 23 19:40:22 1995 Richard Stallman ! * makefile.el: Doc fixes. ! (makefile-font-lock-keywords): Highlight lines of just whitespace. ! Tue Aug 22 16:24:49 1995 Richard Stallman ! * edebug.el (edebug-outside-post-command-idle-hook) ! (post-command-idle-hook): New variables. ! (edebug-enter, edebug-outside-excursion): Use them. ! * avoid.el (mouse-avoidance-mode): Use post-command-idle-hook. ! Use remove-hook. ! * two-column.el (2C-mode): Use make-local-hook and add-hook. ! * icomplete.el (icomplete-minibuffer-setup): Use make-local-hook ! and add and remove hooks locally. ! * ediff-util.el (ediff-profile): Use make-local-hook ! and add and remove hooks locally. ! Tue Aug 22 13:57:30 1995 Andre Spiegel ! * files.el (basic-save-buffer): Call vc-after-save, to ! support implicit locking in VC. ! * vc-hooks.el (vc-simple-command): New function. ! (vc-fetch-master-properties): CVS case: Use it. ! (vc-lock-from-permissions, vc-file-owner, vc-rcs-lock-from-diff): ! New functions. ! (vc-locking-user): Largely rewritten. Uses the above, handles RCS ! non-strict locking. Under CVS in CVSREAD-mode, learn the locking ! state from the permissions. ! (vc-find-cvs-master): Use vc-insert-file, rather than ! find-file-noselect. Greatly speeds up things. ! (vc-consult-rcs-headers): Bug fix, return status in all cases. ! * vc.el: Removed the comment that said we assume strict locking. ! (vc-next-action-dired): Don't switch to vc-parent-buffer, because ! that was already done. ! Tue Aug 22 12:43:26 1995 Richard Stallman ! * sc.el: Provide sc. ! Mon Aug 21 18:16:07 1995 Roland McGrath ! * compile.el (compilation-exit-message-function): New variable. ! (compilation-sentinel): If compilation-exit-message-function is ! non-nil, call it to produce messages for buffer and mode line. ! (grep): Use that variable to produce snazzier messages. ! Mon Aug 21 17:59:43 1995 Richard Stallman ! * paren.el: Use post-command-idle-hook. ! (show-paren-command-hook): No need to test for idleness. ! Mon Aug 21 15:28:47 1995 Andre Spiegel ! * vc-hooks.el (vc-fetch-master-properties): RCS case: get locking ! mode. CVS case: new state `locally-added'. ! (vc-locking-user): Under RCS with non-strict locking, don't trust ! the file permissions. CVS case: change which states count as ! "locked". ! (vc-consult-rcs-headers): Streamlined. Don't set vc-locking-user if ! this is called under CVS. Under RCS, use a heuristic to find the ! value of vc-checkout-model without examining the master file. ! (vc-parse-locks): Set vc-checkout-model. ! (vc-status): Comment change. ! (vc-after-save-hook, vc-after-save): The former renamed to the ! latter. Now unconditionally called by `basic-save-buffer', determines ! whether the buffer should be "locked" or not. ! (vc-checkout-model): Values are now `manual' and `implicit'. Derive ! the property on a per-file basis, supporting all possible modes. ! (vc-mode-line): No longer use dynamic after-save-hook. Changed ! references to `automatic' into `implicit'. ! * vc.el (vc-latest-on-branch-p): Under CVS, handle the case when ! the file is added, but not yet committed. ! (vc-backend-checkout): RCS case: In non-strict locking mode, force ! to overwrite the writable workfile. CVS case: Do the right thing in ! CVSREAD-mode. ! Mon Aug 21 10:47:30 1995 Richard Stallman ! * files.el (auto-mode-alist): Turn on use of makefile-mode. ! * rmailsum.el: Require rmail. ! (rmail-new-summary): Specify size in split-window. ! Call rmail-select-summary to force size to specified amount. ! Mon Aug 21 08:15:47 1995 Simon Marshall ! * fast-lock.el: New version 3.07 from author. ! (fast-lock-mode): Use buffer-file-truename, not buffer-file-name. ! (fast-lock-cache-directories, fast-lock-cache-name): Doc fixes. ! Mon Aug 21 01:18:55 1995 Richard Stallman ! * solar.el: Doc fixes. ! Sun Aug 20 15:12:09 1995 Andreas Schwab ! * icon.el: Define user options with defvar, not defconst. ! Sun Aug 20 01:05:26 1995 Richard Stallman ! * dired.el (dired-string-replace-match): Simplify using replace-match. ! * dired-aux.el (dired-expand-newtext): Function deleted. ! * bytecomp.el (byte-compiler-base-file-name): New function. ! (byte-compile-dest-file): Call byte-compiler-base-file-name. ! * jka-compr.el (jka-compr-byte-compiler-base-file-name): New function. ! Use it to handle byte-compiler-base-file-name operation. ! Sun Aug 20 00:34:10 1995 Michael Kifer > ! * viper.el (vip-set-hooks): Use view-mode-hook in emacs and view ! hook in xemacs. ! (vip-read-string-with-history): minibuffer-setup-hook no longer ! waits for the user to type, if there are unread events. ! Harnessed view-minor-mode. ! Added (vip-leave-region-active) to all simple movement commands. ! * viper-mous.el (vip-surrounding-word): modified to understand ! tripple clicks. ! * viper-util.el (vip-leave-region-active): new function. ! Sat Aug 19 12:38:16 1995 Richard Stallman ! * vc.el (file-regular-p-18): Fix test for whether to use this. ! * info.el (Info-find-emacs-command-nodes): Fix previous change. ! (Info-suffix-list): For MS-DOS, use gunzip as the only uncompressor, ! and don't include .info as suffix. ! (info-insert-file-contents-1): New function. ! (info-insert-file-contents): Use info-insert-file-contents-1. ! * macros.el (insert-kbd-macro): Express vector char modifiers with ! escape prefixes. Express big basic char codes in octal. ! Sat Aug 19 02:33:10 1995 Karl Heuer ! * hilit19.el (hilit-submit-feedback): New ftp site. ! Sat Aug 19 00:37:47 1995 Richard Stallman ! * info.el (Info-file-list-for-emacs): New variable. ! (Info-find-emacs-command-nodes): Look in those files, if appropriate. ! * files.el (basic-save-buffer): Confirm for overwriting old file ! when a file name is specified. ! Fri Aug 18 20:28:58 1995 Daniel Pfeiffer ! * skeleton.el (skeleton-newline-indent-rigidly): New variable. ! (skeleton-internal-1): Use it for indenting after \n because previous ! behaviour was only useful for `sh-script.el' and old `ada.el'. Other ! modes now get their own indentation. ! (skeleton, skeleton-modified, skeleton-point, skeleton-regions): `New' ! variables for passing between the mutually recursive functions of ! the skeleton engine. Introduced to remove compiler warnings. ! (skeleton-proxy): New argument `str' to make this settable when calling ! a skeleton as a function. ! (skeleton-insert): New argument `str' to pass down. Element `\n' ! now usually indents according to mode. Subskeletons may also have ! a list of strings as iterator. Earlier modification also removed ! meaning of `quit' -- I did not put it back in since it's useless. ! When quitting out of a subskeleton while still wrapping around text ! don't duplicate first line of that text. ! (skeleton-end-hook): New hook useful say for modes that leave a `;' on ! an empty line to indent right and then want to clean it up when doing ! a skeleton there. ! * sh-script.el (sh-newline-and-indent): Don't interpret prefix arg ! since `newline-and-indent' doesn't either. Don't turn a trailing ! quoted tab into a space. ! (sh-mode): Use new `skeleton-newline-indent-rigidly'. ! (sh-set-shell): Make maximum font-locking also hightlight keywords ! after ``' and `!'. (The latter is for ksh '93 but should't hurt other ! shells.) ! Fri Aug 18 16:36:52 1995 Andre Spiegel ! * vc.el (vc-next-action-on-file): Changed doc string, CVS case. ! (vc-backend-checkin): Clear master properties before doing the ! check-in. In the CVS case, catch error and display an appropriate ! message in the echo area. ! (vc-backend-revert): Clear master properties, because some might get ! outdated by the operation. ! (vc-backend-merge-news): Scan the output of "cvs update" and find out ! whether conflicts have occurred. ! * vc-hooks.el (vc-fetch-master-properties): ! Recognize cvs status "Unresolved Conflict". ! (vc-locking-user): Count cvs status `unresolved-conflict' as "locked". ! * vc.el (vc-finish-logentry): ! Delete the *VC-log* buffer *before* doing the ! actual check-in. That leads to a better display in case the check-in ! fails. ! * vc.el (vc-latest-on-branch-p): Defined it for CVS in the obvious way. ! (vc-next-action-on-file): Removed special CVS cases. At this level, ! CVS is now mostly handled like the other backends. ! (vc-backend-checkout): CVS case: Clear sticky tag as default when ! doing a verbose checkout. (This used to be done in ! vc-next-action-on-file.) ! * vc-hooks.el (vc-checkout-model): ! New property and access function (still simplistic). ! (vc-after-save-hook): New function. ! (vc-mode-line): When the file is locked by somebody else, make the ! buffer read-only. (Formerly this was only done for root.) Don't ! write-protect the buffer if the file is unlocked. Instead, install ! vc-after-save-hook, which "locks" the file when modifications are ! saved. ! Fri Aug 18 12:42:13 1995 Richard Stallman ! * makefile.el (makefile-space-face): New variable. ! (makefile-define-space-face): New function. ! (makefile-tab-face): Variable deleted. ! (makefile-define-tab-face): Function deleted. ! (makefile-font-lock-keywords): Highlight leading spaces, not tabs. ! Thu Aug 17 15:40:32 1995 Karl Heuer ! * hilit19.el (hilit-submit-feedback): New bug-reporting address. ! Thu Aug 17 08:46:53 1995 Andre Spiegel ! * vc.el (vc-next-action-on-file): Moved the setting of the default ! branch to vc-backend-checkout, where it belongs. ! (vc-backend-checkout): If an explicit version was specified, adjust ! the default branch accordingly. ! * vc-hooks.el (vc-top-version): Renamed to vc-master-workfile-version. ! Updated all references. ! vc.el: Changed references to vc-top-version into ! vc-master-workfile-version. ! * vc.el (vc-next-action-on-file): Query when trying to lock ! non-latest version. ! * vc.el: Let vc-cancel-version handle branches correctly, and ! behave more comfortably in the `norevert' case. ! (vc-revert-buffer1): Split part of the function into vc-buffer-context ! and vc-restore-buffer-context, so we can use it also in other ! circumstances. ! (vc-buffer-context, vc-restore-buffer-context): New functions. ! (vc-clear-headers): New function, uses the above. ! (vc-cancel-version): When `norevert', locks the most recent remaining ! version. Also, refuse to work on anything but the latest version of ! a branch. Removed the check whether the version is the user's, ! because that is difficult to decide, now that multiple branches are ! possible. ! (vc-latest-on-branch-p): New function. ! (vc-head-version): New access function to the already existing ! property. ! (vc-trunk-p, vc-branch-part): Functions moved before first use. ! Thu Aug 16 22:21:38 1995 Fred Pierresteguy ! * rmailsum.el (rmail-new-summary): Enable the Input/output menu. ! Wed Aug 16 16:13:43 1995 Richard Stallman ! * pascal.el (pascal-mode): Set comment-start. ! (pascal-toggle-completions): Doc fix. ! Wed Aug 16 10:36:06 1995 Richard Stallman ! * simple.el (blink-matching-paren-dont-ignore-comments): New var. ! (blink-matching-open): Use it. ! Also, if the matching char hasn't paren syntax, call that mismatch. ! * inf-lisp.el (inferior-lisp): Use pop-to-buffer. ! Add *inferior-lisp* to same-window-buffer-names. ! * cmuscheme.el (run-scheme): Use pop-to-buffer. ! Add *scheme* to same-window-buffer-names. ! * xscheme.el (run-scheme): Use pop-to-buffer. ! Tue Aug 15 16:02:34 1995 Karl Heuer ! * sh-script.el (sh-mode-map): Use new name skeleton-pair-insert-maybe. ! (sh-mode): Use new names skeleton-pair-alist, skeleton-pair-filter. ! Tue Aug 15 15:48:33 1995 Daniel Pfeiffer ! * skeleton.el (skeleton-pair-insert-maybe): Plain insert in Ovwrt mode ! (skeleton-insert): If skeleton doesn't fit in window, put beginning ! at top before going to _ point. ! (skeleton-internal-list): Rewritten so that resume: sections pertain ! only to inferior skeletons and make str available there ! (skeleton-read): Don't quit and remove partial skeleton when empty ! string entered for outer iterator. Added implicit argument `input'. ! (define-skeleton, skeleton-insert, skeleton-internal-list): Use `x ! rather than backquote's (` x) or own (list 'x) ! * sh-script.el (sh-test): New variable. ! (sh-if, sh-until, sh-while): Use it. ! (sh-while-getopts): Handle csh passably well. ! (sh-font-lock-keywords): Use `font-lock-variable-name-face'. ! (sh-set-shell): Respect `font-lock-maximum-decoration'. ! Tue Aug 15 08:30:32 1995 Richard Stallman ! * supercite.el (sc-attribs-extract-namestring): If name has <...>, ! treat everything before that as the full name. ! Mon Aug 14 17:56:23 1995 Karl Heuer ! * view.el: Rewrite as a minor mode. ! * viper.el (vip-set-hooks): Use view-mode-hook, not view-hook. ! Mon Aug 14 13:21:39 1995 Richard Stallman ! * files.el (basic-save-buffer-1): Pass new arg to write-region. ! Mon Aug 14 12:01:33 1995 Erik Naggum ! * files.el (insert-file-contents-literally): New function. ! (find-file-noselect): Use it if new optional argument `rawfile' is ! non-nil. ! * startup.el (command-line-1): Add option --eval to evalute an ! expression on the command line and print the result. ! Mon Aug 14 02:17:09 1995 Richard Stallman ! * paren.el (show-paren-command-hook): Do nothing if have unread events. ! Sun Aug 13 11:45:09 1995 Richard Stallman ! * mouse.el (mouse-drag-region): Unread the up-event ! rather than execute it here. ! Sat Aug 12 05:20:56 1995 Richard Stallman ! * rmail.el (rmail-convert-file): Look back for ^_ only at bol. ! * simple.el (shell-command-on-region): Don't examine order of ! point and mark; use order of START and END instead. ! Interactively pass point and mark, not region-beg and region-end. ! Thu Aug 10 16:01:19 1995 Richard Stallman ! * isearch.el (isearch-other-meta-char): Avoid bug checking whether ! a key is defined in the function key map. ! Call cancel-kbd-macro-events. ! * bytecomp.el (byte-compile-insert-header): Use 19.29, not 19.28.90 ! as limit for where dynamic docstrings are allowed. ! * server.el (server-buffer-done): Pause between client commands, ! but not after the last one. ! * files.el (recover-file): It's ok if the visited file doesn't exist. ! (recover-session-finish): Compute "file name" from autosave file ! if no visited file. ! Thu Aug 10 10:50:21 1995 Andre Spiegel ! * vc.el (vc-dired-reformat-line): Display eight character user names ! correctly. ! Thu Aug 10 09:57:30 1995 Simon Marshall ! * font-lock.el (font-lock-beginning-of-syntax-function): New variable. ! (font-lock-defaults-alist): New element to specify it. ! (font-lock-set-defaults): Set it. ! (font-lock-fontify-region): Use it when calculating the cache state. ! (font-lock-maximum-size): Add autoload cookie. ! (font-lock-fontify-region, font-lock-unfontify-region): Also wrap ! value of buffer-file-truename to avoid clash detection. ! (font-lock-hack-keywords): Likewise. Also use a while loop, not ! mapcar, when applying keywords. ! (tex-font-lock-keywords): Rewritten again. ! (scheme-font-lock-keywords): New keywords. ! (font-lock-defaults-alist): Specify defaults for them. ! * fortran.el (fortran-font-lock-keywords-1): Fix column 72 comments. ! * texinfo.el (texinfo-font-lock-keywords): Rewritten. ! (texinfo-mode): Set up font-lock-defaults for keywords only. ! * help.el (help-font-lock-keywords): New keywords. ! (help-mode): Set up font-lock-defaults. ! Wed Aug 9 18:09:15 1995 Francesco Potorti` (pot@cnuce.cnr.it) ! * man.el (Man-translate-references): Anchor the regexps. ! Tue Aug 8 13:03:51 1995 Boris Goldowsky ! * forms.el (forms-check-number-of-fields): New vbl. ! (forms-mode): Don't issue warning if vbl says not to. ! Tue Aug 8 01:14:27 1995 Richard Stallman ! * vc.el (vc-revert-buffer): In a dedicated solitary window, ! make the frame invisible instead of trying to delete window. ! * paragraphs.el (forward-paragraph): Don't overlook a paragraph-start ! line just because it ends at eob. ! * edebug.el (edebug-functionp): Return t for a bytecode function. ! * dired.el (dired-mode-map): Set up the map completely ! before storing it into dired-mode-map. ! Mon Aug 7 04:44:30 1995 Richard Stallman ! * bytecomp.el (byte-compile-insert-header): New args inbuffer and ! outbuffer. Test byte-compile-dynamic-docstrings in the initially ! current buffer. ! (byte-compile-from-buffer): Add new args to byte-compile-insert-header. ! * startup.el (command-line-1): Fix previous change. ! * bytecomp.el (byte-compile-output-docform): Check ! byte-compile-dynamic-docstrings in input buffer, not output buffer. ! Sun Aug 6 02:26:39 1995 Richard Stallman ! * delsel.el (delete-selection-pre-hook): New type value `yank'. ! (yank): Use `yank' as delete-selection property. ! * simple.el (column-number-mode, line-number-mode): Default now t. ! Sat Aug 5 02:32:33 1995 Richard Stallman ! * faces.el (set-face-background): When using face-color-supported-p, ! specify foreground, not background. ! Fri Aug 4 15:55:57 1995 Richard Stallman ! * bibtex.el (bibtex-maintain-sorted-entries): Make nil the default. ! * ps-print.el: Renamed `fsf' to `emacs' in all names. ! (ps-print-emacs-type): Renamed from emacs-type. ! Fri Aug 4 15:39:50 1995 Stephen A. Wood ! * fortran.el (fortran-auto-fill-mode, fortran-do-auto-fill, ! fortran-fill): Invoke auto filling only when past fill-column. ! Fri Aug 4 14:02:11 1995 Roland McGrath ! * compile.el (compilation-error-regexp-alist): Add regexp for Sun ! ada. ! Thu Aug 3 22:27:24 1995 Richard Stallman ! * solitaire.el: New file. ! Thu Aug 3 13:53:55 1995 Morten Welinder ! * arc-mode.el: Standardize layout of doc strings. ! Thu Aug 3 03:26:29 1995 Richard Stallman ! * rsz-mini.el (resize-minibuffer-setup): Use make-local-hook. ! * tmm.el: Don't alter bindings in minibuffer-local-must-match-map ! or completion-list-mode-map. ! (tmm-add-prompt): Use make-local-hook; add hook locally. ! (tmm-delete-map): Delete hook locally. ! * indent.el (tab-to-tab-stop): Expand abbrevs only after a word-char. ! Wed Aug 2 17:59:22 1995 Rob Riepel ! * tpu-edt.el (tpu-control-keys): New initial value, nil. ! (tpu-help): Back up one page at a time. ! (tpu-set-control-keys): New function. ! (tpu-edt-on): Call tpu-set-control-keys. ! Wed Aug 2 00:41:09 1995 Richard Stallman ! * jka-compr.el (jka-compr-load): Bind load-force-doc-strings. ! * dired-aux.el (dired-do-copy): Doc fix. ! * arc-mode.el (archive-remote-regexp): Don't accept hostnames ! ending in period. (See previous ange-ftp.el change.) ! * gud.el (gud-xdb-marker-filter): Change pattern to accept spc at end. ! Tue Aug 1 19:38:13 1995 Richard Stallman ! * ange-ftp.el (file-name-handler-alist): Don't match host name ! ending in period. ! Tue Aug 1 18:40:22 1995 Daniel Pfeiffer ! * two-column.el (2C-toggle-autoscroll, 2C-autoscroll): ! Only (sit-for 0) once for smoother scrolling. ! (2C-associated-buffer): go to same line and column. ! (2C-newline): new function. ! (2C-other): optional arg to signal missing other buffer. ! Tue Aug 1 02:36:29 1995 Richard Stallman ! * byte-opt.el (byte-optimize-nthcdr): Fix previous change. ! Mon Jul 31 16:19:04 1995 Richard Stallman ! * startup.el (command-line-1): ! Mention recover-session if there's a .saves file. ! * files.el (recover-session): Mention deletion is possible. ! (recover-session-finish): Call dired-do-flagged-delete. ! * dired.el (dired-do-flagged-delete): New arg nomessage. ! * vi.el (vi-scroll-amount, vi-shift-width): Fix syntax of doc strings. ! Mon Jul 31 05:55:56 1995 Simon Marshall ! * subr.el (run-hooks): Variable doc fix. ! (run-hooks, run-hook-with-args-until-success, ! run-hook-with-args-until-failure): Functions moved to C. ! Sun Jul 30 18:28:45 1995 Andreas Schwab ! * dired-aux.el (dired-read-shell-command): Use ! `shell-command-history' in read-string. ! Sun Jul 30 02:43:41 1995 Richard Stallman ! * iso-acc.el: Major additions by Gustavo Chaves. ! (iso-languages): New variable. ! (iso-accents-list): Now set by iso-customize-accents. ! (iso-customize-accents): New function. ! (iso-accentuate, iso-deaccentuate, iso-unaccentuate): ! (iso-accent-rassoc-unit): New functions. ! * rmail.el (rmail-unix-mail-delimiter): Allow two-letter timezone name. ! * faces.el (set-face-background): Don't treat nil as a color. ! * loadhist.el (unload-feature): Delete the file's load-history element. ! (file-set-intersect): Renamed from set-intersect. ! (file-dependents): Use new name. ! * ehelp.el (with-electric-help): Doc fix. ! * files.el (cd): When reading arg, use just directory as the default. ! * bytecomp.el (byte-compile-insert-header): If compiling for vers 18, ! arrange to set current-load-list when loading the file. ! Sat Jul 29 19:32:12 1995 Richard Stallman ! * fill.el (fill-region-as-paragraph): Don't find adaptive-fill-regexp ! on first line of paragraph if it's a paragraph-separate line. ! Don't look past the intended line. ! (adaptive-fill-function): New variable. ! (fill-region-as-paragraph): Use it. ! (colon-double-space): New variable. ! (canonically-space-region): Put two spaces after colon if necessary. ! * simple.el (do-auto-fill): Use adaptive-fill-function. ! * paragraphs.el (forward-paragraph): Don't move back over a line ! before the paragraph which doesn't start with fill-prefix unless ! that is the only line we've moved over. ! Fri Jul 28 15:51:15 1995 Michael Ernst ! * simple.el (scroll-other-window-down): Bind to S-C-M-v. Enhance ! documentation. ! Fri Jul 28 21:49:53 1995 Richard Stallman ! * info.el (Info-read-node-name-1): New function. ! (Info-read-node-name): Use Info-read-node-name-1 ! to avoid getting confused by spaces when text starts with (FILENAME). ! Fri Jul 28 16:26:10 1995 Andre Spiegel ! * vc.el (vc-resynch-buffer): New function. ! (vc-locked-example): Renamed to vc-snapshot-precondition. It now also ! checks whether any of the files are visited. ! (vc-retrieve-snapshot): If any files are visited, ask whether to ! revert their buffers. Use vc-backend-checkout and vc-resynch-buffer ! to do that, instead of vc-checkout. ! * vc.el (vc-backend-checkout): Adjust default-directory so that the ! checked-out file goes to the right place. ! Fri Jul 28 13:10:38 1995 Richard Stallman ! * dired.el (dired-insert-set-properties): Catch errors. ! * simple.el (next-line): Doc fix. ! * dabbrev.el (dabbrev-expand): Save previous point for undo. ! Thu Jul 27 18:04:03 1995 Richard Stallman ! * simple.el (do-auto-fill): Handle adaptive-fill-regexp. ! * texnfo-upd.el (texinfo-specific-section-type): ! Use buffer-substring-no-properties. ! Thu Jul 27 15:08:32 1995 Karl Heuer ! * imenu.el: (imenu-generic-lisp-expression) ! (imenu-generic-c++-expression, imenu-generic-c-expression) ! (imenu-generic-ada-expression, imenu-generic-texinfo-expression) ! (imenu-generic-latex-expression): Vars deleted; now handled by the ! major modes themselves. ! (imenu--scanning-method-alist): Var deleted. ! (imenu-default-create-index-function): Don't use that alist. ! * cplus-md.el (c++-imenu-generic-expression): Var defined. ! (c++-mode): Set imenu-generic-expression. ! * c-mode.el (c-imenu-generic-expression): Var defined. ! (c-mode): Set imenu-generic-expression. ! * tex-mode.el (latex-imenu-generic-expression): Var defined. ! (latex-mode): Set imenu-generic-expression. ! * texinfo.el (texinfo-imenu-generic-expression): Var defined. ! (texinfo-mode): Set imenu-generic-expression. ! * ada-mode.el (ada-imenu-generic-expression): Var defined. ! (ada-mode): Set imenu-generic-expression. ! * lisp-mode.el (lisp-imenu-generic-expression): Var defined. ! (lisp-mode-variables): Set imenu-generic-expression. ! * faces.el (x-font-regexp): Add \\(\\) for substring extraction. ! Thu Jul 27 11:04:08 1995 Ulrich Mueller ! * fortran.el (fortran-break-line): Fixed a bug that sometimes ! deleted first character in statement field of continuation line. ! Thu Jul 27 10:11:59 1995 Espen Skoglund ! * pascal.el (pascal-mode): Added imenu support. ! (pascal-imenu-generic-expression): New variable. ! Thu Jul 27 03:04:18 1995 Richard Stallman ! * texinfo.el (texinfo-environment-regexp): Allow whitespace at BOL. ! * isearch.el (isearch-mode-map): Don't bind tab, return, kp-N, etc. ! (isearch-other-meta-char): Special handling for keys like tab, etc. ! Wed Jul 26 16:01:29 1995 Stefan Schoef ! * bibtex.el: Add keywords and comments as per conventions. ! * bibtex.el: Changed almost all occurences of buffer-substring to ! buffer-substring-no-properties.. ! * bibtex.el (bibtex-find-entry-location, bibtex-clean-entry): ! Added support to handle invalidate buffers in a more friendly ! manner. ! * bibtex.el (bibtex-make-field): Changed to be called either ! interactively with a string (field name) or from Lisp with a list ! of two strings (FIELDNAME COMMENT). ! Wed Jul 26 13:47:14 1995 Rob Riepel ! * tpu-edt.el (tpu-version): New version. ! (tpu-help-keypad-map): New help text. ! (tpu-backward-line): Only move to BOL if not already there. ! * tpu-extras.el (tpu-backward-line): Only move to BOL if not ! already there. ! Wed Jul 26 18:19:12 1995 Richard Stallman ! * indent.el (indent-region-function): Doc fix. ! * lisp-mode.el (shared-lisp-mode-map): ! Don't bind TAB, just set indent-line-function. ! Wed Jul 26 15:40:00 Michael Kifer (kifer@cs.sunysb.edu) ! * viper-ex.el (vip-submit-report): fnc modified. ! * viper-keym.el (vip-overriding-map): new variable. ! * viper-macs.el (vip-repeat-from-history-key): new default. ! (vip-read-fast-keysequence, ex-unmap-read-args, ex-map-read-args): ! changed to use vip-read-key. ! * viper-mous.el (vip-multiclick-timeout): new default. ! (vip-surrounding-word, vip-mouse-click-get-word): fnc modified. ! * viper-util.el (vip-add-hook, vip-remove-hook): new fncs. ! * viper.el (vip-info-file-name): variable removed. ! (vip-envelop-ESC-key, vip-start-replace, vip-finish-R-mode, ! vip-start-R-mode, vip-insert-state-pre-command-sentinel, ! vip-R-state-post-command-sentinel, vip-replace-char) fncs modified. ! Tue Jul 25 18:04:33 1995 Karl Heuer ! * faces.el (x-font-regexp-weight-subnum, x-font-regexp-slant-subnum) ! (x-font-regexp-swidth-subnum, x-font-regexp-adstyle-subnum): Defconst. ! Tue Jul 25 17:01:48 1995 Richard Stallman ! * imenu.el (imenu--history-list): Don't make this buffer-local. ! (imenu): Call imenu-choose-buffer-index from interactive spec. ! Tue Jul 25 15:35:07 1995 Karl Heuer ! * subr.el (run-hook-with-args): Deleted; now in C code. ! Mon Jul 24 21:52:52 1995 Richard Stallman ! * imenu.el: Many doc fixes. ! Tue Jul 25 07:17:02 1995 Ake Stenhoff ! * perl-mode.el (perl-imenu-generic-expression) New variable. ! (perl-mode): Set imenu-generic-expression. ! * imenu.el (imenu-generic-expression): Call make-variable-buffer-local. ! (imenu-create-index-pattern): Variable deleted. ! Sat Jul 22 17:24:07 1995 Richard Stallman ! * tar-mode.el (tar-copy): Inhibit use of jka-compr handler ! when both to- and from- files would use it. ! Sat Jul 22 11:13:54 1995 Daniel Pfeiffer ! * apropos.el: Add latest changes of old library and some more. ! (apropos): Only show unbound symbols when do-all ! (apropos-documentation-check-elc-file): new copied function. ! (apropos-command): also use `apropos-do-all' when called as function. ! (apropos-print-doc): renamed from `apropos-print-documentation', i ! is numeric index, replaces parameter tem. ! (apropos-macrop): new function. ! (apropos-print): use it to differentiate macros. ! (apropos-symbol-face, apropos-keybinding-face, apropos-label-face) ! (apropos-property-face, apropos-match-face): new variables ! replace and extend the effect of `apropos-use-faces'. ! (apropos-safe-documentation): renames `safe-documentation', also ! returns a cons. ! (apropos-regexp, apropos-files-scanned, apropos-accumulator) ! (apropos-item): new variables to prevent compiler warnings. ! (apropos-value-internal, apropos-documentation-internal): new fns. ! Fri Jul 21 01:04:25 1995 Richard Stallman ! * byte-opt.el (byte-optimize-lapcode): Fix format calls. ! * imenu.el (imenu-choose-buffer-index): ! Avoid trying to select WINDOW if it is nil. ! * menu-bar.el (menu-bar-buffer-menu): Function deleted. ! (global-map): Define [menu-bar buffer] as a keymap with no fcn name. ! (menu-bar-update-buffers): After defining it, call it. ! * faces.el (make-face-bold, make-face-italic, make-face-bold-italic) ! (make-face-unbold, make-face-unitalic): ! No error if font is already bold, italic, or whatever. ! * font-lock.el (font-lock-make-faces): Redo logic for whether ! to call font-lock-make-face for a given face. ! Thu Jul 20 16:16:37 1995 Richard Stallman ! * rmail.el (rmail-insert-inbox-text): Always use movemail ! when renaming a file. ! * simple.el (indent-new-comment-line): ! fill-prefix overrides comment indentation. ! * skeleton.el (local-variables-section): Delete autoload cookie. ! (skeleton-pair-insert-maybe): Renamed from pair-insert-maybe. ! (skeleton-pair, skeleton-pair-filter, skeleton-pair-alist) ! (skeleton-pair-on-word): Renamed from pair-... ! (mirror-mode): Commented out. ! * info.el (Info-current-file): Doc fix. ! (Info-find-node): Set Info-current-file to file name as specified. ! Thu Jul 20 15:34:52 1995 Dave Love ! * mail-utils.el (mail-fetch-field): Use buffer-substring-no-properties. ! Thu Jul 20 02:13:52 1995 Richard Stallman ! * derived.el (derived-mode-set-keymap): Cope if old-map is nil. ! * menu-bar.el (menu-bar-update-yank-menu): Treat all-dashes specially. ! Wed Jul 19 11:43:14 1995 Richard Stallman ! * sendmail.el (mail-default-reply-to): Doc fix. ! Tue Jul 18 09:06:10 1995 Richard Stallman ! * backquote.el (backquote): Doc fix. ! * noutline.el (outline-next-visible-heading): Rewritten to handle ! backwards motion and handle beg/end of buffer properly. ! * menu-bar.el (menu-bar-tools-menu): Don't define gnus entry ! if no network support. ! * faces.el (x-create-frame-with-faces): ! Specify frame arg to x-color-values and frame-parameters. ! (set-face-background): Pass background-p arg to face-color-supported-p. ! Tue Jul 18 21:45:17 1995 Michael Ernst ! * ehelp.el (electric-helpify): Autoload with-electric-help, ! electric-helpify. ! Tue Jul 18 21:05:34 1995 Rolf Ebert ! * ada-mode.el (ada-ident-re): Doc fix. ! (ada-end-stmt-re): Corrected serious pb of wrong parentheses. ! (ada-subprog-start-re): Removed 'body' from the list. ! (ada-format-paramlist): Simplified a regexp. ! (ada-indent-current): On first line of the buffer, indent to column 0. ! Don't reindent if new position is the same as the old one. Thus, a ! correcly indended line is not modified. ! (ada-get-indent-subprog): Simplified a regexp. ! (ada-goto-matching-decl-start): Distinguish between normal type ! declaration and protected types, which are more like procedures. ! (ada-remove-trailing-spaces): Use save-match-data, save-restriction ! and widen when removing whitespace. ! (ada-font-lock-keywords-1): Add 'pragma' as keyword. ! (ada-font-lock-keywords-2): Allow *qualified* idents after 'end'. ! * files.el (auto-mode-alist): Recognize *.ads and *.adb as Ada ! specs and bodies. ! Tue Jul 18 15:26:23 1995 Dave Love ! * nroff-mode.el (font-lock-defaults): New variable. ! (nroff-mode-syntax-table): New variable to provide comment syntax ! for font-lock; I'm not sure if this is (or should be) necessary in ! 19.29 with font-lock-defaults. ! (nroff-font-lock-keywords): New variable. ! (nroff-mode): Install nroff syntax table and font lock keywords. ! Comment about comments in filling and line-counting. ! Tue Jul 18 14:47:21 1995 Andre Spiegel ! * vc.el (vc-do-command): Added parameter BUFFER (the default, ! if nil, is *vc*). Updated all callers. ! (vc-next-action-on-file, vc-diff, vc-version-diff, vc-backend-diff): ! Use buffer *vc-diff* for diff output instead of *vc*. ! * vc-hooks.el (vc-mode-line, vc-find-file-hook): Moved the test for ! version-controlled symbolic link from the former to the latter. ! * files.el (file-name-sans-versions): ! Recognize version control version numbers. ! Tue Jul 18 12:37:47 1995 Mike Williams ! * mouse-sel.el: Don't (require 'backquote). ! * mouse-sel.el (mouse-extend-internal): Select space in between ! "things" when extending selection, ie. we are extending to ! "thing" boundaries. ! * mouse-sel.el: Use x-lost-selection-hooks to handle loss of selection. ! (mouse-sel-lost-selection-hook): New function. ! (mouse-sel-selection-owner-p-function): Variable removed. ! (mouse-sel-selection-owner-p): Function removed. ! (mouse-sel-validate-selection): Function removed. ! * thingatpt.el (forward-same-syntax): New function. ! Sun Jul 16 14:31:08 1995 Richard Stallman ! * appt.el: Add provide. ! Sat Jul 15 11:41:42 1995 Richard Stallman ! * byte-opt.el (byte-optimize-if): Optimize (if (not foo) nil ...). ! * add-log.el (add-log-current-defun): Handle C struct definitions. ! (add-change-log-entry): Use case-sensitive search for file name. ! Find first blank line correctly. ! Fri Jul 14 15:12:07 1995 Karl Fogel ! * bookmark.el (bookmark-make): Strip text properties off name. ! (bookmark-make-cell): Use `buffer-substring-no-properties'. ! Fri Jul 14 03:38:32 1995 Richard Stallman ! * bytecomp.el (byte-compile-output-file-form): Bind print-length ! and print-level to nil. ! Thu Jul 13 21:02:01 1995 Richard Stallman ! * mouse.el (mouse-major-mode-menu): Catch quit in read-key-sequence. ! Wed Jul 12 20:25:29 1995 Richard Stallman ! * bookmark.el (bookmark-yank-word): Use buffer-substring-no-properties. ! Thu Jul 13 11:25:21 1995 Richard Stallman ! * files.el (auto-mode-alist): Move .scm.[0-9] before nroff-mode. ! Escape the second period. ! Wed Jul 12 19:22:59 1995 Richard Stallman ! * dabbrev.el (dabbrev--search): Don't let spurious match in middle ! of word obscure real match at start of same word. ! * term/x-win.el (vendor-specific-keysyms): ! In Sun keys, f36 was misnamed f35 and f37 misnamed f36. ! * fill.el (canonically-space-region): Doc fix. ! * menu-bar.el (menu-bar-help-menu): Add finder-by-keyword. ! * ediff-wind.el (ediff-skip-unsuitable-frames): Use make-frame, ! not ediff-make-frame. ! Wed Jul 12 23:10:46 1995 Richard Stallman ! * paths.el (remote-shell-program): Try rcmd also. ! Tue Jul 11 10:39:52 1995 Andre Spiegel ! * vc-hooks.el (vc-mode-line): Don't write-protect a ! VC-Log buffer. Better mode line text for initial comments. ! Streamlined the function. ! Mon Jul 10 02:59:13 1995 Richard Stallman ! * faces.el (x-create-frame-with-faces): Set background-mode ! and display-type frame parameters. ! * mouse.el (mouse-major-mode-menu): Don't call command-execute ! if lookup-key gives nil. ! * byte-opt.el (byte-optimize-nth, byte-optimize-nthcdr): ! Do nothing if form wrong length. ! (byte-optimize-multiply): Fix bug in 0 case. ! (byte-optimize-divide): Optimize (/ CONST CONST) if safe. ! Sun Jul 9 03:14:03 1995 Richard Stallman ! * fill.el (fill-region-as-paragraph): In adaptive-fill-mode, ! if paragraph has one line, take the fill prefix from it. ! (adaptive-fill-regexp): Doc fix. ! * startup.el (normal-top-level): Don't use mail-host-address ! for auto-save-list-file-name. ! * sendmail.el (mail-setup-hook): New defvar. ! (mail): Doc fix. ! Thu Jul 6 14:21:50 1995 Francesco Potorti` ! * simple.el (shell-command): Use save-match-data. ! Put the buffer in shell mode, don't use shell-command-filter. ! (shell-command-filter): Deleted. ! (shell-command-sentinel): Don't reset the mode line. ! Don't test the buffer name--what was that for, anyway?. ! Thu Jul 6 10:04:10 1995 Andre Spiegel ! * vc.el (vc-backend-merge-news): Force to refetch the ! properties after the merge. ! * vc-hooks.el (vc-locking-user): Consider a cvs file "locked" ! if its status is either 'locally-modified or 'needs-merge. ! (vc-workfile-version): Catch 'found when calling vc-find-cvs-master. ! (vc-fetch-master-properties): Handle cvs status "Needs Checkout". ! This is intended for future use. ! Thu Jul 6 04:14:54 1995 Richard Stallman ! * byte-opt.el (byte-optimize-logmumble): Fix (logior -1 ...) case. ! * cc-mode.el (c-set-style-1): Copy c-offsets-alist if nec. ! Wed Jul 5 08:00:09 1995 Richard Stallman ! * faces.el (x-frob-font-slant, x-frob-font-weight): ! Replace the adstyle field with *, if we can find it. ! * find-file.el (ff-set-point-accordingly): Doc fix. ! * vc-hooks.el (vc-fetch-master-properties): Shrink the window ! that displays the error message. ! * faces.el (set-face-background): Use face-color-supported-p. ! Tue Jul 4 15:38:12 1995 Ralf Fassel ! * fill.el (fill-individual-paragraphs): Use `adaptive-fill-regexp' ! to determine `fill-prefix' if `adaptive-fill-mode' is non-nil. ! Tue Jul 4 01:22:44 1995 Richard Stallman ! * cc-mode.el (c-common-init): Copy c-offsets-alist. ! Sun Jul 2 12:32:38 1995 Richard Stallman ! * ebuff-menu.el (electric-buffer-list): Save point before ! finding the first buffer line, and use that saved point to ! determine the buffer to use, if it is a reasonable value. ! * faces.el (face-color-gray-p): New function. ! (face-default-stipple): New variable. ! (set-face-background): Use face-default-stipple for all grays. ! (set-face-stipple): Change arg name. ! (face-color-supported-p): Use face-color-gray-p. ! * simple.el (column-number-mode): New variable and new command. ! * loaddefs.el (mode-line-format): Use column-number-mode. ! Mon Jul 17 16:14:39 1995 Richard Stallman ! * sh-script.el (interpreter-mode-alist): Delete autoload cookie. ! * executable.el (interpreter-mode-alist): Delete autoload cookie. ! Wed Jul 12 15:14:12 1995 Karl Heuer ! * comint.el (comint-kill-output): Preserve entire partial line at ! end, even if it doesn't match comint-prompt-regexp. ! Wed Jul 12 13:22:20 1995 Roland McGrath ! * copyright.el: Fixed Author: comment. This code bears no ! relation to what I wrote. ! Sun Jul 9 07:41:19 1995 Simon Marshall ! * font-lock.el: Moved font-lock-doc-string-face to bytecomp.el. ! (font-lock-fontify-region): Do all cleanups inside unwind-protect. ! (font-lock-hack-keywords): Likewise. ! (font-lock-choose-keywords): Don't eval here. ! (font-lock-set-defaults): Do it here and compile too. ! * bytecomp.el: Make executing-macro, before-change-function, ! after-change-function and font-lock-doc-string-face obsolete. ! * version.el: Do a purecopy of emacs-version for UN*X's what command. ! Sat Jul 8 09:17:23 1995 Johan Vromans ! * forms.el (forms-mode): Treat local-write-file-hooks as a list. ! Fri Jul 7 18:09:41 1995 Francesco Potorti` ! * mailalias.el (build-mail-aliases): Fixed the regexp for "^group". ! Fri Jul 7 14:43:05 1995 Daniel Pfeiffer ! * apropos.el: Restructured, largely rewritten and extended. ! (apropos-use-faces, apropos-local-map): New variables. ! (apropos-command): New name for `command-apropos' no longer in help.el. ! (apropos-value): New command. ! (apropos-documentation): New name for `super-apropos' ! (apropos-follow, apropos-mouse-follow): New commands for hypertext. ! (apropos-describe-plist): New function. ! * help.el: (command-apropos): Deleted function. This is replaced by ! apropos-command in apropos.el. ! * autoload.el: (make-autoload): Generate `(autoload ...)' form for ! `(define-skeleton ...)' ! * skeleton.el: partly rewritten and extended. ! (skeleton-filter, skeleton-untabify, skeleton-further-elements) ! (skeleton-abbrev-cleanup): New variables ! (skeleton-proxy, skeleton-abbrev-cleanup): New functions ! (skeleton-insert): Sublanguage element < must now be handled via ! `skeleton-further-elements' (used only in sh-script and ada). Lisp ! expressions can be quoted to ignore the return value. ! (skeleton-read): New name for `skeleton-internal-read' because this may ! be useful in skeletons. ! (local-variables-section): New skeleton command, might go to simple.el. ! * autoinsert.el: extended to use skeletons or call functions ! (auto-insert, auto-insert-query, auto-insert-prompt): New variables ! (auto-insert-alist): New features ! (auto-insert): New name for `insert-auto-insert-files' ! (define-auto-insert): New function ! * copyright.el: New name for generalized upd-copyr.el ! (copyright-limit, copyright-regexp): New variables ! (copyright-query): New name for `inhibit-update-copyright' ! (copyright-current-year): New name for `current-year' ! (copyright-current-gpl-version): New name for `current-gpl-version' ! (copyright-update): New name for `update-copyright' and ! `ask-to-update-copyright' ! (copyright): New skeleton command ! * executable.el: New file extracted and optimized from sh-script.el ! * sh-script.el: restructured, largely rewritten without the bugs and ! extended to cover over 15 shells. Most variables can now work as a ! lookup table, and, unless set by user, do. ! (sh-mode-syntax-table): Possibly multiple tables. ! (sh-shell): Set initially so shell or other libraries may use features. ! (sh-assignment-regexp): Replaces `sh-assignment-space'. ! (sh-here-document-word): Set to more common "EOF". ! (sh-variables): Changed semantics. ! (sh-font-lock-keywords): Much nicer. ! (sh-ancestor-alist, sh-alias-alist, sh-shells, sh-abbrevs) ! (sh-dynamic-complete-functions, sh-require-final-newline) ! (sh-comment-prefix, sh-indentation, sh-header-marker, sh-builtins) ! (sh-leading-keywords): New variables. ! (sh-use-prefix, sh-find-file-modifies, sh-query-for-magic) ! (sh-magicless-file-regexp, magic-number-alist, sh-executable) ! (sh-chmod-argument, sh-shell-is-csh, sh-tab-width) ! (sh-sh-font-lock-keywords, sh-ksh-font-lock-keywords) ! (sh-bash-font-lock-keywords, sh-csh-font-lock-keywords) ! (sh-tcsh-font-lock-keywords): Variables deleted, see also executable.el. ! (sh-mode): Shell dependent code moved to `sh-set-shell'. ! (sh-feature, sh-abbrevs, sh-syntax-table, sh-append, sh-modify): New ! functions. ! (sh-execute-region): New command. ! (sh-indexed-loop): Far more efficient code generated for sh. ! (sh-repeat, sh-tmp-file, sh-while-getopts): New skeletons. ! (sh-or-other-mode, define-sh-skeleton, sh-executable, sh-chmod) ! (sh-query-for-variable): Command deleted. ! * two-column.el: Symbols renamed to be like mode-line indicator. ! Supposed to now also work for Lucid. ! (2C-mode-map): New name for `tc-mode-map'. Additionally bound to [f2]. ! (2C-minor-mode-map) New variable. ! (2C-mode): New name for `tc-other'. ! (2C-mode-line-format): New name for `tc-mode-line-format'. ! (2C-other-buffer-hook): New variable. ! (2C-separator): New name for `tc-separator'. ! (2C-window-width): New name for `tc-window-width'. ! (2C-beyond-fill-column): New name for `tc-beyond-fill-column'. ! (2C-autoscroll, 2C-autoscroll-start): New variables. ! (2C-other): New name for `tc-other'. ! (2C-mode): New name for `tc-mode', `tc-two-columns'. ! (2C-two-columns): New function. ! (2C-associate-buffer): New name for `tc-associate-buffer'. ! (2C-split): New name for `tc-split'. ! (2C-dissociate): New name for `tc-dissociate'. ! (2C-merge): New name for `tc-merge'. ! (2C-associated-buffer): New name for `tc-associated-buffer'. ! (2C-toggle-autoscroll, 2C-autoscroll): New functions. ! (tc-scroll-line, tc-scroll-up, tc-scroll-down, tc-recenter): Deleted ! functions. ! Thu Jul 6 14:16:18 1995 Karl Heuer ! * timezone.el (timezone-parse-date): Ignore text properties. ! * find-dired.el (find-dired): Undefine the g command. ! Sun Jul 2 04:13:00 1995 Richard Stallman ! * bytecomp.el (byte-compile-obsolete): Do the funcall to compile ! the form whether or not we warn. ! * c-mode.el (calculate-c-indent-after-brace): New function. ! (calculate-c-indent, indent-c-exp): Use it. ! ! * faces.el (x-font-regexp): Include the avgwidth. ! * iso-transl.el (iso-transl-char-map): Treat m, *m like u and *u. ! Sat Jul 1 01:39:19 1995 Richard Stallman ! * subr.el (shell-quote-argument): Don't do anything, on MS-DOS. ! * sendmail.el (mail-default-reply-to): Initialize to nil. ! (mail-setup): Override it from env var if nil. ! * talk.el (talk-disconnect): Make it interactive. ! (talk-add-display): Ignore dead buffers and deleted frames. ! * font-lock.el (font-lock-make-faces): On grayscale screen, ! use grays for background, not foreground. ! * faces.el (describe-face): new function. ! Fri Jun 30 09:10:07 1995 Andre Spiegel ! * vc-hooks.el (vc-fetch-master-properties): Better error ! message in case the "cvs status" command fails. ! Fri Jun 30 16:27:02 1995 Richard Stallman ! * man.el (Man-underline-face): Doc fix. ! * mailalias.el (define-mail-alias): Doc fix. ! Fri Jun 30 19:07:05 1995 Paul Eggert ! * sendmail.el (sendmail-send-it): If mail-from-style is parens, ! don't escape all parentheses; escape only the nonmatching ones. ! * sendmail.el (sendmail-send-it): If user-full-name contains ! special characters, quote or escape them for the From: line. ! Fri Jun 30 01:12:40 1995 Richard Stallman ! * rmail.el (rmail-find-all-files): Bind case-fold-search. ! * term/x-win.el (x-colors): Doc fix. ! Fri Jun 30 00:13:38 1995 Kevin Rodgers ! * mailabbrev.el (mail-resolve-all-aliases-1): ! Downcase address before recursive call. ! Thu Jun 29 18:07:10 1995 Richard Stallman ! * time.el (display-time-filter): Move run-hooks inside let. ! * simple.el (switch-to-completions): Make a completions window if none. ! * mouse.el (mouse-selection-click-count-buffer): New variable. ! (mouse-drag-region): Set it. ! (mouse-save-then-kill): Test it. ! Thu Jun 29 17:28:26 1995 David M Smith ! * ielm.el (ielm-font-lock-keywords): New variable ! (inferior-emacs-lisp-mode): Use it for font-lock support ! Thu Jun 29 13:42:46 1995 Bryan O'Sullivan ! * ange-ftp.el (ange-ftp-normal-login): if ange-ftp-smart-gateway ! is set but ange-ftp-gateway-host is nil, use user@host ! proxy protocol. ! Thu Jun 29 10:51:47 1995 Morten Welinder ! * arc-mode.el (archive-mode): Add autoload cookie. ! * files.el (auto-mode-alist): Make archive-mode the default for ! .arc, .lzh, .zip, and .zoo files. ! Thu Jun 29 14:48:25 1995 Karl Fogel (kfogel@wombat.gnu.ai.mit.edu) ! * bookmark.el: use "Save" and "Save As" instead of the nonstandard ! "Save" and "Write", in menu item titles. ! Thu Jun 29 00:35:53 1995 Richard Stallman ! * menu-bar.el (find-tag): Delete the menu-enable property. ! * info.el (Info-goto-node, Info-search): ! In Transient Mark mode, deactivate the mark. ! * faces.el (make-face-x-resource-internal): Give special meanings ! to font "names" `italic', `bold', and `bold-italic'. ! * rmail.el (rmail-summary-by-sender): Autoload this. ! (rmail-mode-map): Add rmail-summary-by-senders. ! Wed Jun 28 06:01:36 1995 Richard Stallman ! * fill.el (current-fill-column): If fill-column is nil, return nil. ! * simple.el (do-auto-fill): No-op if (current-fill-column) is nil. ! * loadup.el: Put isearch before menu-bar. ! * loaddefs.el: Don't set up key-translation-map. ! * help-macro.el (make-help-screen): Handle help-event-list. ! Handle backspace like delete. ! * help.el: Bind f1 and help like C-h. ! * supercite.el (sc-electric-mode-map): Bind f1 and help like C-h. ! * ediff-util.el (ediff-setup-keymap): Bind f1 and help like C-h. ! * edt.el (edt-setup-default-bindings): Bind f1 and help like C-h. ! * cplus-md.el (electric-c++-terminator): Fix logic for handling colon. ! * menu-bar.el: Make more menu-enables check (not buffer-read-only). ! Add minibuffer local menu bar menus. ! * startup.el: Update copyright year in message. ! * server.el (server-process-filter): Detect error messages from server. ! Tue Jun 27 18:58:43 1995 Richard Stallman ! * edt.el (edt-emulation-on): Check window-system for x, specifically. ! Tue Jun 27 12:23:58 1995 Andre Spiegel ! * vc-hooks.el (vc-consult-rcs-headers): Use an even more ! pedantic regexp to match RCS time strings. Improved ! efficiency by using looking-at instead of re-search "\\=... ! Tue Jun 27 02:51:17 1995 Richard Stallman ! * ediff-wind.el (ediff-control-frame-parameters): ! Specify user-position. ! * imenu.el (imenu-choose-buffer-index): Understand that (menu-bar) ! doesn't specify a window. ! * startup.el (command-line): Extract arg value properly for -u. ! * subr.el (lambda): Doc fix. ! Mon Jun 26 15:40:39 1995 Ake Stenhoff ! * imenu.el (imenu-use-keymap-menu): New variable. ! (imenu-auto-rescan): New variable. ! (imenu-auto-rescan-maxout): New variable. ! (imenu-generic-expression): Doc changes. ! (imenu-generic-lisp-expression): New variable. ! (imenu-generic-c-expression): New variable. ! (imenu-example--generic-c++-expression): Changed the name to ! imenu-generic-c++-expression. ! (imenu-example--generic-texinfo-expression): Changed the name to ! imenu-generic-texinfo-expression. ! (imenu-example--generic-latex-expression): Changed the name to ! imenu-generic-latex-expression. ! (imenu--scanning-method-alist): New variable. ! (imenu--split-menu): Changed it to make the title "Index menu" ! instead of "Function menus". ! (imenu--make-index-alist): Changed to handle auto rescan. ! (imenu--create-keymap-2): New function to create a keymap. ! (imenu--create-keymap-1): New function. ! (imenu--in-alist): New function. ! (imenu-default-create-index-function): Changed to handle ! imenu--scanning-method-alist). ! (imenu--generic-extract-name): Removed. ! (imenu--generic-function): Rewritten to handle submenus. ! (imenu--mouse-menu): Changed to handle keymaps. ! Mon Jun 26 19:19:52 1995 Richard Stallman ! * paths.el (remote-shell-program): Fix typo checking /usr/bin/remsh. ! Mon Jun 26 17:04:23 1995 Eric S. Raymond ! * vc.el (vc-start-entry): Prevent lossage when doing a mass checkin ! from a VC-dired buffer. ! Mon Jun 26 21:05:21 1995 Andre Spiegel ! * vc-hooks.el (vc-consult-rcs-headers): Handle the new time ! string formats of RCS 5.7. ! Mon Jun 26 13:56:46 1995 Mike Long ! * view.el (view-file-other-window): Re-add missing argument to ! switch-buffer-other-window. ! (view-mode-map): Leave C-c alone! ! (view-mode): Doc fix. ! Mon Jun 26 07:55:44 1995 Simon Marshall ! * font-lock.el (font-lock-defaults-alist): List all keywords for C and ! Emacs Lisp modes. Doc fix. ! (font-lock-maximum-decoration): Doc fix. ! (font-lock-choose-keywords): New function. Use them. ! (font-lock-set-defaults): Use it. Doc fix. ! (lisp-font-lock-keywords): Default to lisp-font-lock-keywords-1. ! (c-font-lock-keywords): Default to c-font-lock-keywords-1. ! (c++-font-lock-keywords): Default to c++-font-lock-keywords-1. ! * fortran.el (fortran-mode): List all keywords for font-lock-defaults. ! (fortran-font-lock-keywords): Default to fortran-font-lock-keywords-1. ! Sat Jun 24 17:58:51 1995 Richard Stallman ! * rmail.el (rmail-revert): Use the default revert-buffer-function ! * simple.el (newline): Put point at right place if insert gets error. ! Sat Jun 24 00:43:32 1995 Karl Fogel ! * mail-hist.el (mail-hist-text-size-limit): New var. ! (mail-hist-text-too-long-p): New func. ! (mail-hist-add-header-contents-to-ring): call above; if the text is ! too long, then store the empty string in the history. ! Sat Jun 24 00:17:08 1995 Richard Stallman ! * pc-mode.el (pc-bindings-mode): Add autoload. ! * enriched.el (excerpt): Ignore error making `excerpt' italic. ! Fri Jun 23 23:39:14 1995 Tom Tromey ! * makefile.el (makefile-define-tab-face): New function. ! (makefile-tab-face): Don't create face here. ! (makefile-mode): Call makefile-define-tab-face. ! Fri Jun 23 18:11:26 1995 Richard Stallman ! * cc-mode.el (c-mode): Delete autoload cookie. ! * mail-hist.el: Don't autoload anything to turn on mail-hist. ! (mail-hist-enable): New function, autoloaded. ! Fri Jun 23 11:21:18 1995 Andre Spiegel ! * vc-hooks.el: Fix bug concerning vc-latest-version. ! Accessing that property left erroneous contents in the ! *vc-info* buffer, which could later be misinterpreted by ! other functions. ! (vc-insert-file): Erase the current buffer before inserting the file. ! (vc-fetch-master-properties, vc-fetch-properties): Don't erase the ! buffer because that is now done in vc-insert-file. ! (vc-fetch-properties): Kill the *vc-info* buffer when done. ! Fri Jun 23 01:52:12 1995 Paul Eggert ! * vc.el (vc-backend-admin, vc-backend-checkin): Assume that ! comments are empty if they contain only white space. ! Thu Jun 22 13:50:29 1995 Andre Spiegel ! * vc-hooks.el (vc-fetch-master-properties): Pass an absolute ! pathname to the cvs status command. This is required to make ! recursive vc-directory listings work. ! Thu Jun 22 11:59:49 1995 Ethan Bradford ! * vt-control.el (vt-keypad-on, vt-keypad-off): Updated codes sent ! to terminal to eliminate some garbage that made NCSA telnet crash. ! Thu Jun 22 00:36:05 1995 Richard Stallman ! * vip.el (vip-push-mark-silent): Use (mark t). ! * mouse.el (mouse-yank-at-click): Clear mouse-selection-click-count. ! Wed Jun 21 19:03:13 1995 Richard Stallman ! * files.el (buffer-file-truename): Duplicate definition deleted. ! * simple.el (mark-even-if-inactive): Duplicate definition deleted. ! * lisp-mode.el (eval-defun): Don't change defvar to defconst ! if it has just one argument. ! Wed Jun 21 14:26:10 1995 Richard Stallman ! * Version 19.29 released. ! * startup.el (precompute-menubar-bindings): While dumping, ! garbage-collect after each menu. ! Tue Jun 20 09:54:02 1995 Richard Stallman ! * gud.el (gud-make-debug-menu): Cope if no local map yet. ! * loaddefs.el (help-event-list): Initialize it. ! * dired-aux.el (dired-do-redisplay): Call dired-uncache. ! * simple.el (universal-argument-num-events): New variable. ! (universal-argument, universal-argument-more, negative-argument) ! (digit-argument): Set that variable. ! (universal-argument-other-key): Use that variable when unreading. ! * vc-hooks.el (vc-handle-cvs): New variable. ! (vc-find-cvs-master): Check that variable. ! Mon Jun 19 21:07:03 1995 Richard Stallman ! * vc-hooks.el (vc-fetch-properties): Add save-excursion. ! * cc-mode.el: Version 4.222 installed. Changes too much to list. ! Kept these changes previously installed here: ! (c-version): Mention that this may be modified version. ! (c-common-init, c-fill-paragraph): Remove "^" used as anchor from ! paragraph-start and paragraph-separate values, so that they will ! work with non-0 left-margin settings. ! * vc-hooks.el (vc-fetch-master-properties): Be more careful ! about killing the *vc-info* buffer. ! Mon Jun 19 18:51:08 1995 Karl Heuer ! * shell.el (shell-directory-tracker): Check for terminator after ! cd, pushd, or popd, so that we don't try to do directory tracking ! on things like "cdump". ! Don't use \\s patterns inside brackets. ! Mon Jun 19 16:27:34 1995 David K}gedal ! * tempo.el: Documented the `l' tag. ! (tempo-insert-template): Check for zmacs-regions. ! Wrapped it in unwind-protect. ! (tempo-save-named): New function. ! (tempo-insert-prompt): Added NO-INSERT parameter. ! Handles previous values better. Cleaned up interface. ! Check for already saved value. ! (tempo-remember-insertion): Function deleted. ! (tempo-insert-named): Use tempo-insert if data is not a string. ! Use tempo-lookup-named. ! (tempo-insert-prompt-compat): New function. ! (tempo-lookup-named): New function. ! Mon Jun 19 16:06:24 1995 Richard Stallman ! * simple.el (universal-argument-other-key): ! Call reset-this-command-lengths. ! Mon Jun 19 11:34:38 1995 Ed Reingold ! * solar.el (calendar-location-name, sunrise-sunset): Fix bug in ! determination of output string. ! Sun Jun 18 12:44:24 1995 Richard Stallman ! * simple.el (negative-argument, digit-argument): ! Set overriding-terminal-local-map like C-u. ! (universal-argument-map): Add binding for \e t. ! * texinfo.el (texinfo-environment-regexp): Add @ifhtml, @html. ! Sun Jun 18 12:08:17 1995 Morten Welinder ! * arc-mode.el (archive-zip-summarize): Handle per-file ! comments in central directory. ! Sun Jun 18 10:45:30 1995 Johan Vromans ! * forms.el: Remove references to mouse-major-mode-menu. ! Sun Jun 18 10:13:17 1995 Andre Spiegel ! * vc-hooks.el (vc-fetch-master-properties): Use path-separator ! for path to "cvs status" command. ! Sat Jun 17 21:24:28 1995 Karl Fogel ! * bookmark.el: Make doc strings and argument names consistent ! where necessary. ! Moved user variables to own section. ! (bookmark-alist): Better doc string. ! (bookmark-insert-current-bookmark): Doc string. ! (bookmark-insert-buffer-name): Doc string. ! (bookmark-set): Take optional NAME argument. ! (bookmark-bmenu-select): Use member to test for string's presence. ! Use a more efficent test at end, as suggested by Mikio Nakajima. ! Sat Jun 17 11:20:25 1995 Richard Stallman ! * startup.el (normal-top-level, command-line-1): ! Call precompute-menubar-bindings only if using x. ! (precompute-menubar-bindings): Don't check for x here. ! Set define-key-rebound-commands to t. ! * loadup.el: Call precompute-menubar-bindings. ! Then set define-key-rebound-commands to nil. ! * subr.el (add-hook): Use local local-variable-if-set-p. ! * info.el (Info-directory-list): If path-separator isn't available, ! bind it here. ! * vc.el (vc-do-command): Use path-separator. ! Sat Jun 17 16:18:18 1995 Andre Spiegel ! * vc.el (vc-directory): Use expand-file-name on default-directory. ! (vc-directory-exclusion-list): Add "CVS" to this list. ! Sat Jun 17 02:33:21 1995 Roland McGrath ! * ediff.el: Fixed bogus references to menu-bar-file-menu in ! define-key forms. ! Fri Jun 16 18:24:06 1995 Karl Heuer ! * isearch.el (isearch-mode-map): Bind frame events to nil. ! Fri Jun 16 19:38:19 1995 Andre Spiegel ! * vc-hooks.el (vc-fetch-properties): Don't use ! vc-backend-dispatch, as that is in vc.el. ! * vc.el (vc-register): Inhibit backups for the file's buffer ! * vc.el (vc-add-triple, vc-lookup-triple, vc-record-rename): ! Use absolute file names to access the SCCS named configuration files ! ("VC-names"). ! * vc-hooks.el (vc-consult-rcs-headers): Fix typo in prev change. ! * vc-hooks.el (vc-find-cvs-master): Exit gracefully when not ! finding CVS/Repository. ! * vc.el (vc-lookup-triple): Call vc-parse-buffer instead of ! vc-master-info. ! * vc.el (vc-retrieve-snapshot): Use vc-checkout instead of ! vc-backend-checkout, as the former also updates the current buffer. ! (vc-file-tree-walk, vc-file-tree-walk-internal): Use ! expand-file-name, so that FUNC gets called with an unabbreviated name. ! Fri Jun 16 09:09:09 1995 Richard Stallman ! * ispell.el: Reinstalled autoloads from ispell-dictionary-alist, ! ispell-menu-map, ispell-menu-lucid, and ispell-menu-map-needed. ! * vc.el (vc-backend-dispatch): Move definition before first use. ! Fri Jun 16 03:38:49 1995 Simon Marshall ! * c-mode.el (c-mode-map): Put mark-active for menu-e