#!/bin/sh #### Patch script - GNU Emacs - version 19.28 to 19.29 #### This file contains patches to turn version 19.28 of GNU Emacs into #### 19.29. To apply them, cd to the top of the Emacs source tree, and #### then type 'sh '. #### Please note, to apply this patch, you need a version of patch #### cable of handling lines greater than 2000 characters. You can #### redefine the macro MAXLINELEN in common.h from the patch #### distribution. #### You need to recompile the changed byte compiler files: #### bytecomp.el and byte-opt.el. #### Then use them to recompile all changed Lisp files #### (including those two). #### Also compile the following new Lisp files: # ada-mode.el arc-mode.el auto-show.el cal-x.el cpp.el docref.el ediff-diff.el # ediff-init.el ediff-merg.el ediff-util.el ediff-wind.el edt-mapper.el # edt-pc.el edt-vt100.el elp.el enriched.el f90.el facemenu.el fast-lock.el # find-file.el format.el hideshow.el msb.el noutline.el ps-print.el talk.el # term.el tmm.el type-break.el viper-ex.el viper-keym.el viper-macs.el # viper-mous.el viper-util.el viper.el winnt.el x-apollo.el #### Once the new Emacs is built, it is a good idea to recompile, #### with the new version, all the Lisp files for which compiled files exist. if [ -d lisp ] ; then true else if [ -d emacs-19.28/lisp ] ; then cd emacs-19.28 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 ### Put moves and renames here. (cd src; mv ChangeLog ChangeLog.4) (cd lisp; mv ChangeLog ChangeLog.4) rm build-ins.in rm etc/APPLE etc/etags.notes etc/etags.vms rm lib-src/aixcc.lex lib-src/etags-vmslib.c lib-src/make-path.c rm lisp/ada.el* rm lisp/medit.el* lisp/mim-mode.el* lisp/mim-syntax* rm lisp/netunam.el* rm lisp/tpu-doc.el* rm man/Makefile rm man/getopt.c man/texindex.c rm -rf shortnames rm src/crt0.c rm src/s/apollo.h patch -p1 << \end-of-emacs-patch-kit diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/ChangeLog emacs-19.29/ChangeLog *** emacs-19.28/ChangeLog Thu Oct 6 01:11:29 1994 --- emacs-19.29/ChangeLog Mon Jun 19 22:50:15 1995 *************** *** 1,7 **** ! Thu Oct 6 01:11:08 1994 Richard Stallman ! * Version 19.28 released. ! * configure.in: Determine HAVE_X11R6. Sun Sep 11 14:56:01 1994 Richard Stallman --- 1,431 ---- ! Mon Jun 19 22:50:10 1995 Richard Stallman ! * Versin 19.29 released. ! Sat Jun 17 08:43:47 1995 Richard Stallman ! ! * configure.in: Fix the previous change to verify that the -b ! option really solves the problem. ! ! * make-dist (nt): Explicitly include makefile.nt and makefile.def only. ! ! Fri Jun 16 11:26:47 1995 Richard Stallman ! ! * configure.in: Test whether XFree86 needs -b i486-linuxaout to link. ! ! Thu Jun 15 01:12:13 1995 Richard Stallman ! ! * configure.in: Report more clearly when there is no special ! dir to search for X includes or libraries. ! ! Tue Jun 13 17:44:10 1995 Karl Heuer ! ! * configure.in: Check for -lpthreads, not -lpthread. ! ! Fri Jun 9 22:09:46 1995 Geoff Voelker ! ! * make-dist: Copy new files nt/addpm.c and nt/emacs.bat.in. ! ! Thu Jun 8 23:09:14 1995 Karl Heuer ! ! * configure.in: Check for -lpthread. ! ! Mon Jun 5 23:09:10 1995 Karl Heuer ! ! * Makefile.in (install-arch-indep): Install info files for mh-e. ! (uninstall): Uninstall info files for dired-x, gnus, mh-e, and sc. ! ! Thu Jun 1 20:43:53 1995 Karl Heuer ! ! * configure.in (*-solaris2.5): New configuration. ! ! * make-dist: Copy new files config.nt and config.w95. ! ! Tue May 30 19:24:31 1995 Karl Heuer ! ! * configure.in: Use x_includes, not x_libraries, for -I. ! Make bitmapdir a colon-separated list. ! ! Sat May 27 23:18:21 1995 Richard Stallman ! ! * configure.in (hppa*-hp-hpux10*, m68k-hp-hpux10*): New configurations. ! ! * configure.in: Allow x_libraries and x_includes to be paths. ! ! Thu May 25 11:53:13 1995 Karl Heuer ! ! * configure.in: Fix typo. ! ! Wed May 24 16:50:02 1995 Karl Heuer ! ! * INSTALL: Clarify use of site-init.el. ! ! Mon May 22 18:28:23 1995 enami tsugutomo ! ! * configure.in: pass arg to sqrt. ! ! Thu May 18 23:52:46 1995 Karl Heuer ! ! * make-dist: Fix May 6 change. ! ! Wed May 17 15:42:16 1995 Karl Heuer ! ! * vpath.sed: Delete reference to ymakefile. ! ! Tue May 9 14:10:07 1995 David J. MacKenzie ! ! * configure.in: Use sqrt (more portable) instead of fmod in -lm ! check. ! ! Tue May 9 00:26:22 1995 Richard Stallman ! ! * make-dist: Put nt/emacs.ico and nt/emacs.rc in dist. ! ! * update-subdirs: Specify /bin/sh to run the script. ! ! Sat May 6 17:54:06 1995 Richard Stallman ! ! * make-dist: Put src/makefile.nt in dist. ! ! * configure.in (i[345]86-*-bsdi2*): New configuration. ! (vax-dec-bsd386*): Deleted. ! ! Sat May 6 17:27:25 1995 David J. MacKenzie ! ! * configure.in: Make sure CDPATH doesn't mess up PWD check. Check ! whether X bitmaps are in X11/bitmaps instead of bitmaps. Use fmod ! instead of logb in -lm check. ! ! Wed May 3 15:28:44 1995 Richard Stallman ! ! * configure.in (m68*-apollo-*): Renamed from m68*-apollo*. ! Use bsd4-3. Don't set NON_GNU_CPP. ! ! * make-dist: Don't copy in src/s/*.inp. Don't copy nt/src. ! In nt. copy various different things, but not *.cmd. ! Fix the ln commands for the subdirs of nt. ! ! Sat Apr 29 01:47:36 1995 Richard Stallman ! ! * configure.in (*-sun-sunos4.1.3*): Use sunos4shr.h. ! ! Thu Apr 27 21:23:32 1995 Karl Heuer ! ! * configure.in (*-sun-sunos4.1.3*): Use shared libraries, ! since that's what the header file expects. ! ! Mon Apr 24 14:23:35 1995 Francesco Potorti` (pot@cnuce.cnr.it) ! ! * configure.in (m68k-motorola-sysv*): Distinguish between 68030 ! and 68040 based machines when choosing options for gnucc. ! ! Thu Apr 13 00:56:10 1995 Richard Stallman ! ! * Makefile.in (top_distclean): Delete config.cache. ! ! Fri Apr 7 14:21:11 1995 Richard Stallman ! ! * Makefile.in (install-arch-indep): Delete .#* when copying subdirs. ! ! * configure.in: Use m/ncr386.h. ! ! Thu Apr 6 17:52:31 1995 Richard Stallman ! ! * Makefile.in (install-arch-indep): Undo Sep 23 change. ! ! Thu Apr 6 16:58:26 1995 Karl Heuer ! ! * make-dist (lib-src): Don't copy *.lex; it doesn't exist anymore. ! (man): Don't copy texindex.c and getopt.c; they're deleted. ! (etc): Omit `e'; it's a subdirectory. ! (etc/e): Use `../..', not `..', to reference top level. ! ! Thu Apr 6 18:00:24 1995 Simon Leinen ! ! * Makefile.in (install-arch-indep, dist): ! look for `update-subdir' in $(srcdir). ! ! Thu Apr 6 15:50:22 1995 Richard Stallman ! ! * make-dist: Include mkinstalldirs in distribution. ! ! Wed Apr 5 16:45:13 1995 Karl Heuer ! ! * make-dist: Add missing close backquote. ! ! Sun Apr 2 18:14:00 1995 Richard Stallman ! ! * make-dist: Don't distribute shortnames directory. ! ! Sun Mar 12 01:11:14 1995 Richard Stallman ! ! * Makefile.in (blessmail): Pass archlibdir to the sub-make. ! ! Sat Feb 25 22:42:47 1995 Richard Stallman ! ! * configure.in (m88k-motorola-sysv4*): Use usg5-4-2. ! ! Thu Feb 23 19:45:30 1995 Karl Heuer ! ! * configure.in (EMACS_CONFIG_OPTIONS): Use $ac_configure_args. ! ! Mon Feb 13 19:53:22 1995 Richard Stallman ! ! * configure.in (mips-sgi-irix6): New configuration. ! ! Tue Feb 7 18:50:09 1995 Richard Stallman ! ! * Makefile.in (maintainer-clean): Renamed from realclean. ! ! Thu Feb 2 11:18:47 1995 David J. MacKenzie ! ! * configure.in: Create a .gdbinit that sources the real one, if ! using a different build directory. ! ! Mon Jan 23 18:33:59 1995 Karl Heuer ! ! * configure.in: Check for sys/select.h. ! ! Mon Jan 2 03:49:12 1995 Richard Stallman ! ! * configure.in: On sunos4.1.3 and sunus4shr, set NON_GNU_CPP. ! ! Tue Dec 27 12:55:07 1994 Richard Stallman ! ! * configure.in: Handle isc 4.1 operating system. ! ! Sat Dec 10 16:50:12 1994 Richard Stallman ! ! * configure.in (rs6000-ibm-aix4.1*): New alternative. ! (rs6000-ibm-aix4*): New alternative. ! ! Tue Dec 6 18:44:31 1994 Richard Stallman ! ! * configure.in: For SVR4.2, set NON_GNU_CPP if not already set. ! ! Wed Nov 30 17:13:58 1994 David J. MacKenzie ! ! * configure.in: Don't try to make directories that are guaranteed ! to already exist. ! ! Wed Nov 23 15:16:28 1994 Richard Stallman ! ! * configure.in: Generate man/Makefile from man/Makefile.in. ! Create the man subdir. ! ! * Makefile.in (dvi): Run Make in our man subdir. ! ! * make-dist: Create subdir etc/e. ! Make links to it. ! Put man/Makefile.in in dist, instead of man/Makefile. ! ! Mon Nov 21 22:17:37 1994 David J. MacKenzie (djm@mole.gnu.ai.mit.edu) ! ! * configure.in: Add --with-pop, --with-kerberos, and ! --with-hesiod for movemail. ! ! Thu Nov 17 10:13:02 1994 Richard Stallman ! ! * configure.in (m68*-apollo*): Use s/domain.h. ! ! Mon Nov 14 23:23:00 1994 Richard Stallman ! ! * configure.in (m68*-apollo*): Set NON_GNU_CPP. ! ! Mon Nov 14 12:06:48 1994 David J. MacKenzie (djm@geech.gnu.ai.mit.edu) ! ! * configure.in: Don't add -I, -L, -R options for cc if their ! arguments would be empty. ! ! Fri Nov 11 09:54:09 1994 Richard Stallman ! ! * configure.in (i860-intel-osf1*): New alternative. ! (mips-sgi-irix5.[01]*): Distinguish from irix5*. ! (mips-sgi-irix*): Now an alias for mips-sgi-irix5*. ! ! Wed Nov 9 16:09:31 1994 David J. MacKenzie ! ! * configure.in: Make h_errno check not use nested functions. ! ! Wed Nov 9 06:47:46 1994 Richard Stallman ! ! * Makefile.in (install-arch-indep): Delete *.orig in copied dirs. ! ! Tue Nov 8 19:25:41 1994 Roland McGrath ! ! * Makefile.in (install-arch-indep): Avoid continued comment ! swallowing target line. ! ! Tue Nov 8 00:21:18 1994 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu) ! ! * configure.in: Protect a character class with `changequote'. ! ! Mon Nov 7 21:50:37 1994 Karl Heuer ! ! * configure.in: Accept `news' as a synonym for `newsos'. ! ! Thu Nov 3 15:23:24 1994 Karl Heuer ! ! * Makefile.in: Don't rm files if cd fails. ! ! Tue Nov 1 05:38:27 1994 Richard Stallman ! ! * make-dist: Put nt subdir and its subdirs in the dist. ! (lib-src): Put makefile.nt in the dist. ! (lisp): Put makefile.nt in the dist. ! ! Sat Oct 29 08:44:36 1994 David J. MacKenzie (djm@geech.gnu.ai.mit.edu) ! ! * configure.in: Change a stray `[' to `test'. ! ! Fri Oct 28 11:29:07 1994 David J. MacKenzie ! ! * configure.in: Adapt for Autoconf v2. Use the standard argument ! parser, host type canonicalizer, X11 finder, and message ! printing macros. Use the new macro names. Use `test' instead of `['. ! ! Wed Oct 26 19:18:49 1994 Richard Stallman ! ! * configure.in: Check for getpagesize. ! ! Mon Oct 17 21:44:25 1994 Richard Stallman ! ! * make-dist (msdos): Put sed* in the distribution. ! ! Mon Oct 17 03:33:32 1994 Morten Welinder ! ! * config.bat: New option, `--with-x', for configuring Emacs ! for use with the X11 system DesqView/X. ! New option, `--no-debug', for compiling Emacs without debug ! information thus saving disk space. ! (src/config.h, src/paths.h): Use `update' (which is like ! `move-if-changed') to change the file. ! (src/config.h): When configuring for X11 perform extra changes. ! (src/makefile): When configuring for X11 perform extra changes. ! (lib-src): Remove temporary files. ! (): Check that `sed', `rm', `mv', and `gcc' are available. ! ! Mon Oct 17 00:27:09 1994 Richard Stallman ! ! * Makefile.in (sharedstatedir): Substitute sharedstatedir properly. ! ! * configure.in (bitmapdirs): Default to /usr/include/X11/bitmaps. ! ! Sun Oct 16 05:20:37 1994 Richard Stallman ! ! * configure.in (EMACS_CONFIGURATION): Use $canonical as value. ! ! * configure.in (canonical): Substitute var into makefiles. ! (bitmapdir): Likewise. ! ! * Makefile.in (bitmapdir): New variable. ! (src/paths.h, paths-force): Edit PATH_BITMAPS. ! ! Sat Oct 15 23:53:15 1994 Richard Stallman ! ! * make-dist: Put update-subdirs and lisp/subdirs.el in the dist. ! ! * Makefile.in (dist, install-arch-indep): Run update-subdirs. ! * update-subdirs: New shell script. ! ! Thu Oct 13 00:02:35 1994 Richard Stallman ! ! * Makefile.in (top_distclean): Don't rm build-install. ! (SOURCES): Delete build-install.in. ! ! * make-dist: Don't distribute build-ins.in. ! * build-ins.in: File deleted. ! ! Wed Oct 12 19:29:05 1994 David J. MacKenzie (djm@duality.gnu.ai.mit.edu) ! ! * Makefile.in (mkdir): Use mkinstalldirs instead of make-path. ! ! Tue Oct 11 04:05:30 1994 Richard Stallman ! ! * Makefile.in: Use libexecdir and sharedstatedir as appropriate. ! ! * configure.in (libexecdir): Renamed from libdir. New default. ! (sharedstatedir): Renamed from statedir. New default. ! (datadir): New default. ! ! * make-dist: Don't distribute subdirs.el. ! ! Fri Oct 7 04:38:54 1994 Richard Stallman ! ! * configure.in (eaccess): Check for it. ! ! Tue Oct 4 05:00:42 1994 Richard Stallman ! ! * configure.in (mktime): Check for it. ! ! Sun Oct 2 07:30:52 1994 Paul Reilly ! ! * configure.in (motif): Add support for usage and option checking. ! ! Sat Sep 24 20:36:04 1994 Richard Stallman ! ! * configure.in (utimes): Check for it. ! ! Fri Sep 23 21:54:03 1994 Richard Stallman ! ! * Makefile.in (install-arch-indep): Don't do mkdir here. ! ! Wed Sep 21 17:56:10 1994 Richard Stallman ! ! * configure.in (arm-acorn-riscix1.1*, arm-acorn-riscix1.2*): ! riscix.h renamed to acorn.h. ! ! Wed Sep 21 17:51:58 1994 Michael Ben-Gershon (mybg@cs.huji.ac.il) ! ! * configure.in (arm-acorn-riscix1.1*, arm-acorn-riscix1.2*): ! New configurations. ! ! Wed Sep 21 12:59:04 1994 David J. MacKenzie (djm@geech.gnu.ai.mit.edu) ! ! * configure.in: Remove trailing slashes from srcdir. ! ! 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 ! ! * Makefile.in (paths-force): Depend on src/paths.h ! ! Mon Sep 19 14:13:58 1994 Karl Heuer ! ! * configure.in (config_options): Save all arguments, not just some. ! ! Sun Sep 18 14:40:00 1994 Karl Heuer ! ! * Makefile.in (install-arch-indep): Copy DOC-*, not DOC* ! ! * configure.in: Add AC_AIX. ! Add checks to set HAVE_STRUCT_UTIMBUF, HAVE_TIMEVAL, HAVE_SELECT. ! ! Sun Sep 18 04:18:20 1994 Richard Stallman ! ! * configure.in (parsing options): Simplify sed command to delete -'s. ! ! Fri Sep 16 22:06:49 1994 Karl Heuer ! ! * configure.in (config_options): New shell variable. ! Pass its value to C code in EMACS_CONFIG_OPTIONS. ! ! Fri Sep 16 19:35:47 1994 Richard Stallman ! ! * configure.in (alpha-dec-osf*): New target. ! ! * Makefile.in: Use just one FRC target. ! ! Thu Sep 15 20:02:04 1994 Richard Stallman ! ! * Makefile.in (removenullpaths, paths-force): ! Use name paths.h.tmp$$, which depends on the pid. ! ! Wed Sep 14 23:42:03 1994 Richard Stallman ! ! * Makefile.in (removenullpaths, paths-force): ! Put paths.h.tmp in top-level dir, not in src. Sun Sep 11 14:56:01 1994 Richard Stallman diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/INSTALL emacs-19.29/INSTALL *** emacs-19.28/INSTALL Mon Jun 13 11:30:51 1994 --- emacs-19.29/INSTALL Wed Jun 21 14:57:14 1995 *************** *** 18,22 **** BUILDING AND INSTALLATION: (This is for a Unix or Unix-like system. For MSDOS, see below; ! search for MSDOG.) 1) Make sure your system has enough swapping space allocated to handle --- 18,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 *************** *** 35,39 **** 2) Consult `./etc/MACHINES' to see what configuration name you should ! give to the `configure' program. That file sometimes offers hints for getting around some possible installation problems. --- 35,39 ---- 2) Consult `./etc/MACHINES' to see what configuration name you should ! give to the `configure' program. That file offers hints for getting around some possible installation problems. *************** *** 45,96 **** The CONFIGURATION-NAME argument should be a configuration name given in `./etc/MACHINES'. If omitted, `configure' will try to guess your ! system type by inspecting its environment; if it cannot, you must find ! the appropriate configuration name in `./etc/MACHINES' and specify it ! explicitly. ! ! The `--with-x', `--with-x11', and `--with-x10' options specify which ! window system Emacs should support. If you don't want X support, ! specify `--with-x=no'. If all of these options are omitted, ! `configure' will try to figure out for itself whether your system has ! X11, and arrange to use it if present. The `--x-includes=DIR' and `--x-libraries=DIR' options tell the build process where the compiler should look for the include files and ! object libraries used with the X Window System. Normally, your ! compiler should be able to find these by default; these options should ! only be necessary if you have your X Window System files installed in ! unusual places. ! ! You can specify toolkit operation when you configure Emacs; use the ! option --with-x-toolkit. ! ! Note: on some systems, it does not work to use the toolkit with shared ! libraries. ! ! The `--run-in-place' option sets up default values for the path ! variables in `./Makefile' so that Emacs will expect to find its data ! files (lisp libraries, runnable programs, and the like) in the same ! locations they occupy while Emacs builds. If you use `--run-in-place' ! then you don't need to do `make install'. ! ! `--run-in-place' is pretty much obsolete now. If you put the Emacs ! executable in a subdirectory named src, which has siblings named lisp, ! lib-src, etc, info and so on, Emacs automatically uses those sibling ! directories if the standard installation directory names don't contain ! what Emacs needs. The `--with-gcc' option specifies that the build process should compile Emacs using GCC. If you don't want to use GCC, specify ! `--with-gcc=no'. If this option is omitted, `configure' will search ! for GCC in your load path, and use it if present. ! The `--srcdir=DIR' option specifies that the configuration and build ! processes should look for the Emacs source code in DIR, when DIR is ! not the current directory. ! ! You can use `--srcdir' to build Emacs for several different machine ! types from a single source directory. Make separate build directories ! for the different configuration types, and in each one, build Emacs ! specifying the common source directory with `--srcdir'. The `--prefix=PREFIXDIR' option specifies where the installation process --- 45,79 ---- The CONFIGURATION-NAME argument should be a configuration name given in `./etc/MACHINES'. If omitted, `configure' will try to guess your ! system type; if it cannot, you must find the appropriate configuration ! name in `./etc/MACHINES' and specify it explicitly. + If you don't want X support, specify `--with-x=no'. If you omit this + option, `configure' will try to figure out for itself whether your + system has X, and arrange to use it if present. + The `--x-includes=DIR' and `--x-libraries=DIR' options tell the build process where the compiler should look for the include files and ! object libraries used with the X Window System. Normally, `configure' ! is able to find them; these options are necessary if you have your X ! Window System files installed in unusual places. These options also ! accept a list of directories, separated with colons. ! ! To get more attractive menus, you can specify an X toolkit when you ! configure Emacs; use the option `--with-x-toolkit=TOOLKIT', where ! TOOLKIT is `athena' or `motif' (`yes' and `lucid' are synonyms for ! `athena'). On some systems, it does not work to use a toolkit with ! shared libraries. The `--with-gcc' option specifies that the build process should compile Emacs using GCC. If you don't want to use GCC, specify ! `--with-gcc=no'. If you omit this option, `configure' will search ! for GCC in your path, and use it if present. ! You can build Emacs for several different machine types from a single ! source directory. To do this, you must use a version of `make' that ! supports the `VPATH' variable, such as GNU `make'. Make separate ! build directories for the different configuration types, and in each ! one, run the Emacs `configure' script. `configure' looks for the ! Emacs source code in the directory that `configure' is in. The `--prefix=PREFIXDIR' option specifies where the installation process *************** *** 98,105 **** - Emacs (and the other utilities users run) go in PREFIXDIR/bin (unless the `--exec-prefix' option says otherwise). ! - The architecture-independent files go in PREFIXDIR/lib/emacs/VERSION ! (where VERSION is the version number of Emacs, like `19.7'). - The architecture-dependent files go in ! PREFIXDIR/lib/emacs/VERSION/CONFIGURATION (where CONFIGURATION is the configuration name, like mips-dec-ultrix4.2), unless the `--exec-prefix' option says otherwise. --- 81,88 ---- - Emacs (and the other utilities users run) go in PREFIXDIR/bin (unless the `--exec-prefix' option says otherwise). ! - The architecture-independent files go in PREFIXDIR/share/emacs/VERSION ! (where VERSION is the version number of Emacs, like `19.27'). - The architecture-dependent files go in ! PREFIXDIR/libexec/emacs/VERSION/CONFIGURATION (where CONFIGURATION is the configuration name, like mips-dec-ultrix4.2), unless the `--exec-prefix' option says otherwise. *************** *** 110,114 **** - Emacs (and the other utilities users run) go in EXECDIR/bin, and - The architecture-dependent files go in ! EXECDIR/lib/emacs/VERSION/CONFIGURATION. EXECDIR/bin should be a directory that is normally in users' PATHs. --- 93,97 ---- - Emacs (and the other utilities users run) go in EXECDIR/bin, and - The architecture-dependent files go in ! EXECDIR/libexec/emacs/VERSION/CONFIGURATION. EXECDIR/bin should be a directory that is normally in users' PATHs. *************** *** 120,137 **** support for the X11 window system. ! The `configure' program does not accept abbreviations for its ! options. ! ! Note that `configure' doesn't do any compilation or installation itself. It just creates the files that influence those things: ! `./Makefile', `build-install', and `./src/config.h'. For details on ! exactly what it does, see the section called `CONFIGURATION BY HAND', ! below. When it is done, `configure' prints a description of what it did and ! leaves a copy in the file `config.status'. That file is also a shell ! script which, when run, recreates the same configuration; it contains ! the verbal description as a comment. If `configure' exits with an ! error after disturbing the status quo, it removes `config.status'. The work of `configure' can be done by editing various files in the --- 103,123 ---- support for the X11 window system. ! `configure' doesn't do any compilation or installation itself. It just creates the files that influence those things: ! `./Makefile', `lib-src/Makefile', `oldXMenu/Makefile', ! `lwlib/Makefile', `src/Makefile', and `./src/config.h'. For details ! on exactly what it does, see the section called `CONFIGURATION BY ! HAND', below. When it is done, `configure' prints a description of what it did and ! creates a shell script `config.status' which, when run, recreates the ! same configuration. If `configure' exits with an error after ! disturbing the status quo, it removes `config.status'. `configure' ! also creates a file `config.cache' that saves the results of its tests ! to make reconfiguring faster, and a file `config.log' containing compiler ! output (useful mainly for debugging `configure'). You can give ! `configure' the option `--cache-file=FILE' to use the results of the ! tests in FILE instead of `config.cache'. Set FILE to `/dev/null' to ! disable caching, for debugging `configure'. The work of `configure' can be done by editing various files in the *************** *** 141,146 **** 4) Look at `./lisp/paths.el'; if some of those values are not right ! for your system, edit the file `./lisp/site-init.el' containing Emacs ! Lisp code to override them; you probably don't want to edit paths.el itself. YOU MUST USE THE LISP FUNCTION `setq' TO ASSIGN VALUES, rather than `defvar', as used by `./lisp/paths.el'. For example, --- 127,132 ---- 4) Look at `./lisp/paths.el'; if some of those values are not right ! for your system, set up the file `./lisp/site-init.el' with Emacs ! Lisp code to override them; it is not a good idea to edit paths.el itself. YOU MUST USE THE LISP FUNCTION `setq' TO ASSIGN VALUES, rather than `defvar', as used by `./lisp/paths.el'. For example, *************** *** 151,154 **** --- 137,145 ---- news-inews-program (which is "/usr/local/inews"). + Before you override a variable this way, *look at the value* that the + variable gets by default! Make sure you know what kind of value the + variable should have. If you don't pay attention to what you are + doing, you'll make a mistake. + Note that, on some systems, the code you place in site-init.el must not use expand-file-name or any other function which may look *************** *** 163,166 **** --- 154,161 ---- else, use site-init.el. + If you set load-path to a different value in site-init.el or + site-load.el, Emacs will use *precisely* that value when it starts up + again. If you do this, you are on your own! + Note that, on some systems, the code you place in site-init.el must not use expand-file-name or any other function which may look *************** *** 177,186 **** 7) Run `make' in the top directory of the Emacs distribution to finish ! building Emacs in the standard way. The final executable file will be ! named `src/emacs'. If you want to have Emacs's executable programs ! and data files installed as well, run `make install'. - By default, Emacs installs its files in the following directories: - `/usr/local/bin' holds the executable programs users normally run - `emacs', `etags', `ctags', `b2m', `emacsclient', --- 172,184 ---- 7) Run `make' in the top directory of the Emacs distribution to finish ! building Emacs in the standard way. The final executable file is ! named `src/emacs'. You can execute this file "in place" without ! copying it, if you wish; then it automatically uses the sibling ! directories ../lisp, ../lib-src, ../info. ! ! Or you can "install" the executable and the other Emacs into their ! installed locations, with `make install'. By default, Emacs's files ! are installed in the following directories: `/usr/local/bin' holds the executable programs users normally run - `emacs', `etags', `ctags', `b2m', `emacsclient', *************** *** 187,193 **** and `rcs-checkin'. ! `/usr/local/lib/emacs/VERSION/lisp' holds the Emacs Lisp library; `VERSION' stands for the number of the Emacs version ! you are installing, like `18.59' or `19.0'. Since the lisp library changes from one version of Emacs to another, including the version number in the path --- 185,191 ---- and `rcs-checkin'. ! `/usr/local/share/emacs/VERSION/lisp' holds the Emacs Lisp library; `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 *************** *** 198,205 **** Emacs searches for its lisp files in ! `/usr/local/lib/emacs/site-lisp', then in this directory. ! `/usr/local/lib/emacs/VERSION/etc' holds the Emacs tutorial, the DOC file, the `yow' database, and other architecture-independent files Emacs might need while --- 196,203 ---- 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 file, the `yow' database, and other architecture-independent files Emacs might need while *************** *** 206,214 **** running. VERSION is as specified for `.../lisp'. ! `/usr/local/lib/emacs/lock' contains files indicating who is editing what, so Emacs can detect editing clashes between users. ! `/usr/local/lib/emacs/VERSION/CONFIGURATION-NAME' contains executable programs used by Emacs that users are not expected to run themselves. --- 204,212 ---- running. VERSION is as specified for `.../lisp'. ! `/usr/local/com/emacs/lock' contains files indicating who is editing what, so Emacs can detect editing clashes between users. ! `/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME' contains executable programs used by Emacs that users are not expected to run themselves. *************** *** 245,249 **** 9) If your system uses lock files to interlock access to mailer inbox files, ! then you might need to make the program arch-lib/movemail setuid or setgid to enable it to write the lock files. We believe this is safe. --- 243,247 ---- 9) If your system uses lock files to interlock access to mailer inbox files, ! then you might need to make the movemail program setuid or setgid to enable it to write the lock files. We believe this is safe. *************** *** 270,274 **** `datadir' indicates where to put the architecture-independent read-only data files that Emacs refers to while it runs; it ! defaults to /usr/local/lib. We create the following subdirectories under `datadir': - `emacs/VERSION/lisp', containing the Emacs lisp library, and --- 268,272 ---- `datadir' indicates where to put the architecture-independent read-only data files that Emacs refers to while it runs; it ! defaults to /usr/local/share. We create the following subdirectories under `datadir': - `emacs/VERSION/lisp', containing the Emacs lisp library, and *************** *** 282,289 **** unavailable while installing a new version. ! `statedir' indicates where to put architecture-independent data files that Emacs modifies while it runs; it defaults to ! /usr/local/lib as well. We create the following ! subdirectories under `statedir': - `emacs/lock', containing files indicating who is editing what, so Emacs can detect editing clashes between --- 280,287 ---- unavailable while installing a new version. ! `sharedstatedir' indicates where to put architecture-independent data files that Emacs modifies while it runs; it defaults to ! /usr/local/com. We create the following ! subdirectories under `sharedstatedir': - `emacs/lock', containing files indicating who is editing what, so Emacs can detect editing clashes between *************** *** 290,296 **** users. ! `libdir' indicates where to put architecture-specific data files that ! Emacs refers to as it runs; it too defaults to `/usr/local/lib'. ! We create the following subdirectories under `libdir': - `emacs/VERSION/CONFIGURATION-NAME', containing executable programs used by Emacs that users are not expected to run --- 288,294 ---- users. ! `libexecdir' indicates where to put architecture-specific data files that ! Emacs refers to as it runs; it defaults to `/usr/local/libexec'. ! We create the following subdirectories under `libexecdir': - `emacs/VERSION/CONFIGURATION-NAME', containing executable programs used by Emacs that users are not expected to run *************** *** 324,328 **** its value is used to determine the defaults for all the architecture-independent path variables - `datadir', ! `statedir', `infodir', and `mandir'. Its default value is `/usr/local'; the other variables add on `lib' or `man' to it by default. --- 322,326 ---- its value is used to determine the defaults for all the architecture-independent path variables - `datadir', ! `sharedstatedir', `infodir', and `mandir'. Its default value is `/usr/local'; the other variables add on `lib' or `man' to it by default. *************** *** 338,342 **** `exec_prefix' serves the same purpose as `prefix', but instead determines the default values for the architecture-dependent ! path variables - `bindir' and `libdir'. The above variables serve analogous purposes in the makefiles for all --- 336,340 ---- `exec_prefix' serves the same purpose as `prefix', but instead determines the default values for the architecture-dependent ! path variables - `bindir' and `libexecdir'. The above variables serve analogous purposes in the makefiles for all *************** *** 366,370 **** `lockdir' indicates the directory where Emacs keeps track of its ! locking information. Its default value, based on `statedir' (which see), is `/usr/local/lib/emacs/lock'. --- 364,368 ---- `lockdir' indicates the directory where Emacs keeps track of its ! locking information. Its default value, based on `sharedstatedir' (which see), is `/usr/local/lib/emacs/lock'. *************** *** 371,375 **** `archlibdir' indicates where Emacs installs and expects the executable files and other architecture-dependent data it uses ! while running. Its default value, based on `libdir' (which see), is `/usr/local/lib/emacs/VERSION/CONFIGURATION-NAME' (where VERSION and CONFIGURATION-NAME are as described above). --- 369,373 ---- `archlibdir' indicates where Emacs installs and expects the executable files and other architecture-dependent data it uses ! while running. Its default value, based on `libexecdir' (which see), is `/usr/local/lib/emacs/VERSION/CONFIGURATION-NAME' (where VERSION and CONFIGURATION-NAME are as described above). *************** *** 418,437 **** just a matter of substitution. - 5) If you're going to use the build-install script to build Emacs, - copy `./build-ins.in' to `./build-install', and edit the - definitions found at the top of the script. - The `configure' script is built from `configure.in' by the `autoconf' ! program. However, since Emacs has configuration requirements that ! autoconf can't meet, `configure.in' uses an marriage of custom-baked ! configuration code and autoconf macros. New versions of autoconf ! could very well break this arrangement, so it may be wise to avoid ! rebuilding `configure' from `configure.in' when possible. ! BUILDING GNU EMACS BY HAND ! Once Emacs is configured, running `make' or running the shell script ! `build-install' in the top directory performs the following steps. 1) Run `make src/paths.h' in the top directory. This produces --- 416,426 ---- just a matter of substitution. The `configure' script is built from `configure.in' by the `autoconf' ! program. You need version 2.0 or newer of `autoconf' to rebuild `configure'. BUILDING GNU EMACS BY HAND ! Once Emacs is configured, running `make' in the top directory performs ! the following steps. 1) Run `make src/paths.h' in the top directory. This produces *************** *** 461,467 **** INSTALLATION BY HAND ! The steps below are done by the shell script `build-install' or by ! running `make install' in the main directory of the Emacs ! distribution. 1) Copy `./lisp' and its subdirectories, `./etc', and the executables --- 450,455 ---- INSTALLATION BY HAND ! The steps below are done by running `make install' in the main ! directory of the Emacs distribution. 1) Copy `./lisp' and its subdirectories, `./etc', and the executables *************** *** 474,478 **** - The programs `etags', `ctags', `emacsclient', `b2m', and `rcs-checkin' are intended to be run by users; they are handled below. ! - The programs `make-docfile', `make-path', and `test-distrib' were used in building Emacs, and are not needed any more. - The programs `digest-doc' and `sorted-doc' convert a `DOC' file into --- 462,466 ---- - The programs `etags', `ctags', `emacsclient', `b2m', and `rcs-checkin' are intended to be run by users; they are handled below. ! - The programs `make-docfile' and `test-distrib' were used in building Emacs, and are not needed any more. - The programs `digest-doc' and `sorted-doc' convert a `DOC' file into *************** *** 518,526 **** 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. Type these ! commands: ! config msdos ! make install To save disk space, Emacs is built with the idea that you will execute --- 506,531 ---- 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 ! djgpp) without arguments; it will tell you if it uses dpmi memory. ! For more information about dpmi memory, consult the djgpp FAQ. ! ! To build and install Emacs, type these commands: ! ! config msdos ! 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 diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/Makefile.in emacs-19.29/Makefile.in *** emacs-19.28/Makefile.in Sun Aug 14 02:58:01 1994 --- emacs-19.29/Makefile.in Mon Jun 5 23:09:06 1995 *************** *** 23,27 **** # distribution. # ! # make realclean # Delete everything from the current directory that can be # reconstructed with this Makefile. This typically includes --- 23,27 ---- # distribution. # ! # make maintainer-clean # Delete everything from the current directory that can be # reconstructed with this Makefile. This typically includes *************** *** 83,87 **** # only such data is the locking directory; ${lockdir} is a # subdirectory of this. ! statedir=@statedir@ # Where to install and expect executable files to be run by Emacs --- 83,87 ---- # only such data is the locking directory; ${lockdir} is a # subdirectory of this. ! sharedstatedir=@sharedstatedir@ # Where to install and expect executable files to be run by Emacs *************** *** 88,92 **** # rather than directly by users, and other architecture-dependent # data. ${archlibdir} is a subdirectory of this. ! libdir=@libdir@ # Where to install Emacs's man pages, and what extension they should have. --- 88,92 ---- # rather than directly by users, and other architecture-dependent # data. ${archlibdir} is a subdirectory of this. ! libexecdir=@libexecdir@ # Where to install Emacs's man pages, and what extension they should have. *************** *** 100,103 **** --- 100,106 ---- infodir=@infodir@ + # Where to look for bitmap files. + bitmapdir=@bitmapdir@ + # Where to find the source code. The source code for Emacs's C kernel is # expected to be in ${srcdir}/src, and the source code for Emacs's *************** *** 203,207 **** @(lisppath=`echo ${lisppath} | ${removenullpaths}` ; \ buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ; \ ! sed < ${srcdir}/src/paths.h.in > src/paths.h.tmp \ -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";' \ -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${buildlisppath}'";' \ --- 206,210 ---- @(lisppath=`echo ${lisppath} | ${removenullpaths}` ; \ buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ; \ ! sed < ${srcdir}/src/paths.h.in > paths.h.tmp$$$$ \ -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";' \ -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${buildlisppath}'";' \ *************** *** 209,215 **** -e 's;\(#.*PATH_INFO\).*$$;\1 "${infodir}";' \ -e 's;\(#.*PATH_DATA\).*$$;\1 "${etcdir}";' \ -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";' \ ! -e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";') ! @${srcdir}/move-if-change src/paths.h.tmp src/paths.h # For `make all', --- 212,219 ---- -e 's;\(#.*PATH_INFO\).*$$;\1 "${infodir}";' \ -e 's;\(#.*PATH_DATA\).*$$;\1 "${etcdir}";' \ + -e 's;\(#.*PATH_BITMAPS\).*$$;\1 "${bitmapdir}";' \ -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";' \ ! -e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";') && \ ! ${srcdir}/move-if-change paths.h.tmp$$$$ src/paths.h # For `make all', *************** *** 218,228 **** # move-if-change, src/paths.h only actually changes if the user did # something notable, so the only unnecessary work we do is in building ! # src/paths.h.tmp, which isn't much. # Note that sed is not in /bin on 386bsd. ! paths-force: FRC.src.paths.h @echo "Producing \`src/paths.h' from \`src/paths.h.in'." @(lisppath=`echo ${lisppath} | ${removenullpaths}` ; \ buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ; \ ! sed < ${srcdir}/src/paths.h.in > src/paths.h.tmp \ -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";' \ -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${buildlisppath}'";' \ --- 222,235 ---- # move-if-change, src/paths.h only actually changes if the user did # something notable, so the only unnecessary work we do is in building ! # paths.h.tmp$$$$, which isn't much. # Note that sed is not in /bin on 386bsd. ! # We depend on src/paths.h here to prevent simultaneous execution of ! # that rule and this one, in a parallel make. ! # It is possible for paths.h to be updated twice--but that would happen anyway. ! paths-force: FRC src/paths.h @echo "Producing \`src/paths.h' from \`src/paths.h.in'." @(lisppath=`echo ${lisppath} | ${removenullpaths}` ; \ buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ; \ ! sed < ${srcdir}/src/paths.h.in > paths.h.tmp$$$$ \ -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";' \ -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${buildlisppath}'";' \ *************** *** 230,238 **** -e 's;\(#.*PATH_INFO\).*$$;\1 "${infodir}";' \ -e 's;\(#.*PATH_DATA\).*$$;\1 "${etcdir}";' \ -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";' \ ! -e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";') ! @${srcdir}/move-if-change src/paths.h.tmp src/paths.h ! src: lib-src FRC.src src/paths.h # This ought to depend on src/paths.h, so that in parallel make --- 237,246 ---- -e 's;\(#.*PATH_INFO\).*$$;\1 "${infodir}";' \ -e 's;\(#.*PATH_DATA\).*$$;\1 "${etcdir}";' \ + -e 's;\(#.*PATH_BITMAPS\).*$$;\1 "${bitmapdir}";' \ -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";' \ ! -e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";') && \ ! ${srcdir}/move-if-change paths.h.tmp$$$$ src/paths.h ! src: lib-src FRC src/paths.h # This ought to depend on src/paths.h, so that in parallel make *************** *** 240,244 **** # But that causes trouble in `make install' if a different prefix # is specified at that time. ! lib-src: FRC.lib-src src/paths.h .RECURSIVE: ${SUBDIR} --- 248,252 ---- # But that causes trouble in `make install' if a different prefix # is specified at that time. ! lib-src: FRC src/paths.h .RECURSIVE: ${SUBDIR} *************** *** 250,254 **** blessmail: ${SUBDIR_MAKEFILES} src FRC ! cd lib-src; $(MAKE) maybe-blessmail $(MFLAGS) MAKE='${MAKE}' Makefile: Makefile.in config.status --- 258,263 ---- blessmail: ${SUBDIR_MAKEFILES} src FRC ! cd lib-src; $(MAKE) maybe-blessmail $(MFLAGS) \ ! MAKE='${MAKE}' archlibdir='$(archlibdir)' Makefile: Makefile.in config.status *************** *** 292,297 **** (cd lib-src; \ $(MAKE) install $(MFLAGS) prefix=${prefix} \ ! exec_prefix=${exec_prefix} bindir=${bindir} libdir=${libdir} \ ! archlibdir=${archlibdir}) ${INSTALL_PROGRAM} src/emacs ${bindir}/emacs-${version} -chmod 1755 ${bindir}/emacs-${version} --- 301,306 ---- (cd lib-src; \ $(MAKE) install $(MFLAGS) prefix=${prefix} \ ! exec_prefix=${exec_prefix} bindir=${bindir} \ ! libexecdir=${libexecdir} archlibdir=${archlibdir}) ${INSTALL_PROGRAM} src/emacs ${bindir}/emacs-${version} -chmod 1755 ${bindir}/emacs-${version} *************** *** 301,304 **** --- 310,314 ---- ### Note that we copy the DOC-* files from the build etc directory ### as well as lots of things from ${srcdir}/etc. + install-arch-indep: mkdir -set ${COPYDESTS} ; \ *************** *** 310,314 **** done -set ${COPYDESTS} ; \ ! mkdir ${COPYDESTS} ; \ for dir in ${COPYDIR} ; do \ dest=$$1 ; shift ; \ --- 320,325 ---- done -set ${COPYDESTS} ; \ ! mkdir ${COPYDESTS} ; \ ! chmod ugo+rx ${COPYDESTS} ; \ for dir in ${COPYDIR} ; do \ dest=$$1 ; shift ; \ *************** *** 321,331 **** rm -rf $${subdir}/CVS ; \ rm -f $${subdir}/\#* ; \ rm -f $${subdir}/*~ ; \ done) ; \ done 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 - ); \ else true; fi thisdir=`/bin/pwd`; \ --- 332,346 ---- 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 - ); \ else true; fi thisdir=`/bin/pwd`; \ *************** *** 336,340 **** (cd $${thisdir}; ${INSTALL_DATA} ${srcdir}/info/dir ${infodir}/dir); \ fi ; \ ! for f in cl* dired-x* emacs* forms* gnus* info* sc* vip* ; do \ (cd $${thisdir}; ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f); \ done); \ --- 351,355 ---- (cd $${thisdir}; ${INSTALL_DATA} ${srcdir}/info/dir ${infodir}/dir); \ fi ; \ ! for f in cl* dired-x* emacs* forms* gnus* info* mh-e* sc* vip*; do \ (cd $${thisdir}; ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f); \ done); \ *************** *** 346,354 **** ### Build all the directories we're going to install Emacs in. Since ### we may be creating several layers of directories (for example, ! ### /usr/local/lib/emacs/19.0/mips-dec-ultrix4.2), we use make-path ! ### instead of mkdir. Not all systems' mkdirs have the `-p' flag. ! mkdir: FRC.mkdir ! ./lib-src/make-path ${COPYDESTS} ${lockdir} ${infodir} ${mandir} \ ! ${bindir} ${datadir} ${docdir} ${libdir} \ `echo ${locallisppath} | sed 's/:/ /g'` -chmod 777 ${lockdir} --- 361,369 ---- ### Build all the directories we're going to install Emacs in. Since ### we may be creating several layers of directories (for example, ! ### /usr/local/lib/emacs/19.0/mips-dec-ultrix4.2), we use mkinstalldirs ! ### instead of mkdir. Not all systems' mkdir programs have the `-p' flag. ! mkdir: FRC ! $(srcdir)/mkinstalldirs ${COPYDESTS} ${lockdir} ${infodir} ${mandir} \ ! ${bindir} ${datadir} ${docdir} ${libexecdir} \ `echo ${locallisppath} | sed 's/:/ /g'` -chmod 777 ${lockdir} *************** *** 363,367 **** $(MAKE) $(MFLAGS) uninstall \ prefix=${prefix} exec_prefix=${exec_prefix} \ ! bindir=${bindir} libdir=${libdir} archlibdir=${archlibdir}) for dir in ${lispdir} ${etcdir} ; do \ if [ -d $${dir} ]; then \ --- 378,382 ---- $(MAKE) $(MFLAGS) uninstall \ prefix=${prefix} exec_prefix=${exec_prefix} \ ! bindir=${bindir} libexecdir=${libexecdir} archlibdir=${archlibdir}) for dir in ${lispdir} ${etcdir} ; do \ if [ -d $${dir} ]; then \ *************** *** 377,393 **** fi ; \ done ! (cd ${infodir}; rm -f cl* emacs* forms* info* vip*) ! (cd ${mandir}; rm -f emacs.1 etags.1 ctags.1) ! (cd ${bindir}; rm -f emacs-${version} $(EMACS)) ! ### Some makes seem to remember that they've built something called FRC, ! ### so you can only use a given FRC once per makefile. ! FRC FRC.src.paths.h FRC.src FRC.lib-src FRC.mkdir: ! FRC.mostlyclean FRC.clean FRC.distclean FRC.realclean: # ==================== Cleaning up and miscellanea ==================== ! .PHONY: mostlyclean clean distclean realclean extraclean ### `mostlyclean' --- 392,405 ---- fi ; \ done ! (cd ${infodir} && rm -f cl* dired-x* emacs* forms* gnus* info* mh-e* sc* vip*) ! (cd ${mandir} && rm -f emacs.1 etags.1 ctags.1) ! (cd ${bindir} && rm -f emacs-${version} $(EMACS)) ! FRC: # ==================== Cleaning up and miscellanea ==================== ! .PHONY: mostlyclean clean distclean maintainer-clean extraclean ### `mostlyclean' *************** *** 396,400 **** ### target for GCC does not delete `libgcc.a', because recompiling it ### is rarely necessary and takes a lot of time. ! mostlyclean: FRC.mostlyclean (cd src; $(MAKE) $(MFLAGS) mostlyclean) (cd oldXMenu; $(MAKE) $(MFLAGS) mostlyclean) --- 408,412 ---- ### target for GCC does not delete `libgcc.a', because recompiling it ### is rarely necessary and takes a lot of time. ! mostlyclean: FRC (cd src; $(MAKE) $(MFLAGS) mostlyclean) (cd oldXMenu; $(MAKE) $(MFLAGS) mostlyclean) *************** *** 411,415 **** ### ### Delete `.dvi' files here if they are not part of the distribution. ! clean: FRC.clean (cd src; $(MAKE) $(MFLAGS) clean) (cd oldXMenu; $(MAKE) $(MFLAGS) clean) --- 423,427 ---- ### ### Delete `.dvi' files here if they are not part of the distribution. ! clean: FRC (cd src; $(MAKE) $(MFLAGS) clean) (cd oldXMenu; $(MAKE) $(MFLAGS) clean) *************** *** 425,432 **** ### distribution. top_distclean=\ ! rm -f config.status build-install ; \ rm -f Makefile ${SUBDIR_MAKEFILES} ; \ ! (cd lock ; rm -f *) ! distclean: FRC.distclean (cd src; $(MAKE) $(MFLAGS) distclean) (cd oldXMenu; $(MAKE) $(MFLAGS) distclean) --- 437,444 ---- ### distribution. top_distclean=\ ! rm -f config.status config.cache ; \ rm -f Makefile ${SUBDIR_MAKEFILES} ; \ ! (cd lock && rm -f *) ! distclean: FRC (cd src; $(MAKE) $(MFLAGS) distclean) (cd oldXMenu; $(MAKE) $(MFLAGS) distclean) *************** *** 437,441 **** ! ### `realclean' ### Delete everything from the current directory that can be ### reconstructed with this Makefile. This typically includes --- 449,453 ---- ! ### `maintainer-clean' ### Delete everything from the current directory that can be ### reconstructed with this Makefile. This typically includes *************** *** 443,457 **** ### produced by Bison, tags tables, info files, and so on. ### ! ### One exception, however: `make realclean' should not delete ### `configure' even if `configure' can be remade using a rule in the ! ### Makefile. More generally, `make realclean' should not delete ### anything that needs to exist in order to run `configure' and then ### begin to build the program. ! realclean: FRC.realclean ! (cd src; $(MAKE) $(MFLAGS) realclean) ! (cd oldXMenu; $(MAKE) $(MFLAGS) realclean) ! (cd lwlib; $(MAKE) $(MFLAGS) realclean) ! (cd lib-src; $(MAKE) $(MFLAGS) realclean) ! -(cd man && $(MAKE) $(MFLAGS) realclean) ${top_distclean} --- 455,469 ---- ### produced by Bison, tags tables, info files, and so on. ### ! ### One exception, however: `make maintainer-clean' should not delete ### `configure' even if `configure' can be remade using a rule in the ! ### Makefile. More generally, `make maintainer-clean' should not delete ### anything that needs to exist in order to run `configure' and then ### begin to build the program. ! maintainer-clean: FRC ! (cd src; $(MAKE) $(MFLAGS) maintainer-clean) ! (cd oldXMenu; $(MAKE) $(MFLAGS) maintainer-clean) ! (cd lwlib; $(MAKE) $(MFLAGS) maintainer-clean) ! (cd lib-src; $(MAKE) $(MFLAGS) maintainer-clean) ! -(cd man && $(MAKE) $(MFLAGS) maintainer-clean) ${top_distclean} *************** *** 462,466 **** extraclean: for i in ${SUBDIR}; do (cd $$i; $(MAKE) $(MFLAGS) extraclean); done ! -(cd lock; rm *) -rm config.status config-tmp-* -rm -f *~ \#* --- 474,478 ---- extraclean: for i in ${SUBDIR}; do (cd $$i; $(MAKE) $(MFLAGS) extraclean); done ! -(cd lock && rm *) -rm config.status config-tmp-* -rm -f *~ \#* *************** *** 477,481 **** ### corrected. SOURCES = ChangeLog GETTING.GNU.SOFTWARE INSTALL Makefile.in PROBLEMS \ ! README build-install.in configure make-dist move-if-change .PHONY: unlock relock --- 489,493 ---- ### corrected. SOURCES = ChangeLog GETTING.GNU.SOFTWARE INSTALL Makefile.in PROBLEMS \ ! README configure make-dist move-if-change .PHONY: unlock relock *************** *** 512,515 **** --- 524,528 ---- dist: + $(srcdir)/update-subdirs ${srcdir}/lisp cd ${srcdir}; make-dist *************** *** 519,521 **** (cd ${srcdir}/man; $(MAKE) $(MFLAGS) info) dvi: ! (cd ${srcdir}/man; $(MAKE) $(MFLAGS) dvi) --- 532,534 ---- (cd ${srcdir}/man; $(MAKE) $(MFLAGS) info) dvi: ! (cd man; $(MAKE) $(MFLAGS) dvi) diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/PROBLEMS emacs-19.29/PROBLEMS *** emacs-19.28/PROBLEMS Sat Sep 10 14:35:10 1994 --- emacs-19.29/PROBLEMS Wed Jun 21 14:58:33 1995 *************** *** 2,5 **** --- 2,243 ---- in compiling, installing and running GNU Emacs. + * Emacs exits with "X protocol error" when run with an X server for + Windows. + + A certain X server for Windows had a bug which caused this. + Supposedly the newer 32-bit version of this server doesn't have the + problem. + + * Emacs crashes at startup on MSDOS. + + Some users report that Emacs 19.29 requires dpmi memory management, + and crashes on startup if the system does not have it. We don't yet + know why this happens--perhaps these machines don't have enough real + memory, or perhaps something is wrong in Emacs or the compiler. + However, arranging to use dpmi support is a workaround. + + You can find out if you have a dpmi host by running go32 without + arguments; it will tell you if it uses dpmi memory. For more + information about dpmi memory, consult the djgpp FAQ. (djgpp + is the GNU C compiler as packaged for MSDOS.) + + Compiling Emacs under MSDOS is extremely sensitive for proper memory + configuration. If you experience problems during compilation, consider + removing some or all memory resident programs (notably disk caches) + and make sure that your memory managers are properly configured. See + the djgpp faq for configuration hints. + + * A position you specified in .Xdefaults is ignored, using twm. + + twm normally ignores "program-specified" positions. + 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. + + This results from a bug in a VERY old version of GNU Sed. To solve + the problem, install the current version of GNU Sed, then rerun + Emacs's configure script. + + * Compiling wakeup, in lib-src, says it can't make wakeup.c. + + This results from a bug in GNU Sed version 2.03. To solve the + problem, install the current version of GNU Sed, then rerun Emacs's + configure script. + + * On Sunos 4.1.1, there are errors compiling sysdep.c. + + If you get errors such as + + "sysdep.c", line 2017: undefined structure or union + "sysdep.c", line 2017: undefined structure or union + "sysdep.c", line 2019: nodename undefined + + This can result from defining LD_LIBRARY_PATH. It is very tricky + to use that environment variable with Emacs. The Emacs configure + script links many test programs with the system libraries; you must + make sure that the libraries available to configure are the same + ones available when you build Emacs. + + * The right Alt key works wrong on German HP keyboards (and perhaps + other non-English HP keyboards too). + + This is because HPUX defines the modifiers wrong in X. Here is a + shell script to fix the problem; be sure that it is run after VUE + configures the X server. + + xmodmap 2> /dev/null - << EOF + keysym Alt_L = Meta_L + keysym Alt_R = Meta_R + EOF + + xmodmap - << EOF + clear mod1 + keysym Mode_switch = NoSymbol + add mod1 = Meta_L + keysym Meta_R = Mode_switch + add mod2 = Mode_switch + EOF + + * The Emacs window disappears when you type M-q. + + Some versions of the Open Look window manager interpret M-q as a quit + command for whatever window you are typing at. If you want to use + Emacs with that window manager, you should try to configure the window + manager to use some other command. You can disable the + shortcut keys entirely by adding this line to ~/.OWdefaults: + + OpenWindows.WindowMenuAccelerators: False + + * Emacs does not notice when you release the mouse. + + There are reports that this happened with (some) Microsoft mice and + that replacing the mouse made it stop. + + * Trouble using ptys on IRIX, or running out of ptys. + + The program mkpts (which may be in `/usr/adm' or `/usr/sbin') needs to + be set-UID to root, or non-root programs like Emacs will not be able + to allocate ptys reliably. + + * On Irix 5.2, unexelfsgi.c can't find cmplrs/stsupport.h. + + The file cmplrs/stsupport.h was included in the wrong file set in the + Irix 5.2 distribution. You can find it in the optional fileset + compiler_dev, or copy it from some other Irix 5.2 system. A kludgy + workaround is to change unexelfsgi.c to include sym.h instead of + syms.h. + + * Slow startup on Linux-based GNU systems. + + People using systems based on the Linux kernel sometimes report that + startup takes 10 to 15 seconds longer than `usual'. + + This is because Emacs looks up the host name when it starts. + Normally, this takes negligible time; the extra delay is due to + improper system configuration. This problem can occur for both + networked and non-networked machines. + + Here is how to fix the configuration. It requires being root. + + ** Networked Case + + First, make sure the files `/etc/hosts' and `/etc/host.conf' both + exist. The first line in the `/etc/hosts' file should look like this + (replace HOSTNAME with your host name): + + 127.0.0.1 HOSTNAME + + Also make sure that the `/etc/host.conf' files contains the following + lines: + + order hosts, bind + multi on + + Any changes, permanent and temporary, to the host name should be + indicated in the `/etc/hosts' file, since it acts a limited local + database of addresses and names (e.g., some SLIP connections + dynamically allocate ip addresses). + + ** Non-Networked Case + + The solution described in the networked case applies here as well. + However, if you never intend to network your machine, you can use a + simpler solution: create an empty `/etc/host.conf' file. The command + `touch /etc/host.conf' suffices to create the file. The `/etc/hosts' + file is not necessary with this approach. + + * On Solaris, Dired hangs and C-g does not work. Or Emacs hangs + forever waiting for termination of a subprocess that is a zombie. + + casper@fwi.uva.nl says the problem is in X11R6. Rebuild libX11.so + after changing: + + #if ThreadedX + #define SharedX11Reqs -lthread + #endif + + to: + + #if OSMinorVersion < 4 + #if ThreadedX + #define SharedX11Reqs -lthread + #endif + #endif + + * With M-x enable-flow-control, you need to type C-\ twice + to do incremental search--a single C-\ gets no response. + + This has been traced to communicating with your machine via kermit, + with C-\ as the kermit escape character. One solution is to use + another escape character in kermit. One user did + + set escape-character 17 + + in his .kermrc file, to make C-q the kermit escape character. + + * The Motif version of Emacs paints the screen a solid color. + + This has been observed to result from the following X resource: + + Emacs*default.attributeFont: -*-courier-medium-r-*-*-*-140-*-*-*-*-iso8859-* + + That the resource has this effect indicates a bug in something, but we + do not yet know what. If it is an Emacs bug, we hope someone can + explain what the bug is so we can fix it. In the mean time, removing + the resource prevents the problem. + + * Emacs gets hung shortly after startup, on Sunos 4.1.3. + + We think this is due to a bug in Sunos. The word is that + one of these Sunos patches fixes the bug: + + 100075-11 100224-06 100347-03 100482-05 100557-02 100623-03 100804-03 101080-01 + 100103-12 100249-09 100496-02 100564-07 100630-02 100891-10 101134-01 + 100170-09 100296-04 100377-09 100507-04 100567-04 100650-02 101070-01 101145-01 + 100173-10 100305-15 100383-06 100513-04 100570-05 100689-01 101071-03 101200-02 + 100178-09 100338-05 100421-03 100536-02 100584-05 100784-01 101072-01 101207-01 + + We don't know which of these patches really matter. If you find out + which ones, please inform bug-gnu-emacs@prep.ai.mit.edu. + + * Emacs aborts while starting up, only when run without X. + + This problem often results from compiling Emacs with GCC when GCC was + installed incorrectly. The usual error in installing GCC is to + specify --includedir=/usr/include. Installation of GCC makes + corrected copies of the system header files. GCC is supposed to use + the corrected copies in preference to the original system headers. + Specifying --includedir=/usr/include causes the original system header + files to be used. On some systems, the definition of ioctl in the + original system header files is invalid for ANSI C and causes Emacs + not to work. + + The fix is to reinstall GCC, and this time do not specify --includedir + when you configure it. Then recompile Emacs. Specifying --includedir + is appropriate only in very special cases and it should *never* be the + same directory where system header files are kept. + + * The Compose key on a DEC keyboard does not work as Meta key. + + This shell command should fix it: + + xmodmap -e 'keycode 0xb1 = Meta_L' + + * Regular expressions matching bugs on SCO systems. + + On SCO, there are problems in regexp matching when Emacs is compiled + with the system compiler. The compiler version is "Microsoft C + version 6", SCO 4.2.0h Dev Sys Maintenance Supplement 01/06/93; Quick + C Compiler Version 1.00.46 (Beta). The solution is to compile with + GCC. + + * On Sunos 4, you get the error ld: Undefined symbol __lib_version. + + This is the result of using cc or gcc with the shared library meant + for acc (the Sunpro compiler). Check your LD_LIBRARY_PATH and delete + /usr/lang/SC2.0.1 or some similar directory. + * You can't select from submenus (in the X toolkit version). *************** *** 14,30 **** workaround can be found. - * On HPUX 9.05 and 9.06, C-c and C-z are not turned off in the terminal driver. - - This seems to be due to a bug in HPUX. A workaround is to start Emacs - after first setting the "susp" (suspend job) and "dsusp" (delayed - suspend job) control characters temporarily to a character that you - are not likely to type (such as C-_), and set them back after Emacs - exits. The following script should do it: - - #!/bin/sh - stty susp '^_' dsusp '^_' - emacs ${1+"$@"} - stty susp '^Z' dsusp '^Z' - * Unusable default font on SCO 3.2v4. --- 252,255 ---- *************** *** 152,157 **** If you get the additional error that the linker could not find ! lib_version.o, try extracting it fromcontained in ! X11/usr/lib/X11/libvim.a in X11R4, then use it in the link. * Error messages `Wrong number of arguments: #, 5' --- 377,382 ---- If you get the additional error that the linker could not find ! lib_version.o, try extracting it from X11/usr/lib/X11/libvim.a in ! X11R4, then use it in the link. * Error messages `Wrong number of arguments: #, 5' *************** *** 199,211 **** * Typing C-c C-c in Shell mode kills your X server. ! This happens on Linux 1.0 thru 1.04, approximately. The workaround is to define SIGNALS_VIA_CHARACTERS in config.h and recompile Emacs. ! Newer Linux versions don't have this problem. ! ! * On AIX, the Ctrl/Act key interacts strangely with Shift. - This is an AIX feature: Ctrl/Act with Shift is used for switching - virtual terminals. - * src/Makefile and lib-src/Makefile are truncated--most of the file missing. --- 424,431 ---- * Typing C-c C-c in Shell mode kills your X server. ! This happens with Linux kernel 1.0 thru 1.04, approximately. The workaround is to define SIGNALS_VIA_CHARACTERS in config.h and recompile Emacs. ! Newer Linux kernel versions don't have this problem. * src/Makefile and lib-src/Makefile are truncated--most of the file missing. *************** *** 245,249 **** toolkit. You might be able to work around this by using a nonshared libXt.a library. The real fix is to upgrade the various versions of ! unexec. We hope volunteers will do this. * `make install' fails on install-doc with `Error 141'. --- 465,470 ---- toolkit. You might be able to work around this by using a nonshared libXt.a library. The real fix is to upgrade the various versions of ! unexec and/or ralloc. We think this has been fixed on Sunos 4 ! and Solaris in version 19.29. * `make install' fails on install-doc with `Error 141'. *************** *** 619,624 **** * test-distrib says that the distribution has been clobbered * or, temacs prints "Command key out of range 0-127" ! * or, temacs runs and dumps xemacs, but xemacs totally fails to work. ! * or, temacs gets errors dumping xemacs This can be because the .elc files have been garbled. Do not be --- 840,845 ---- * test-distrib says that the distribution has been clobbered * or, temacs prints "Command key out of range 0-127" ! * or, temacs runs and dumps emacs, but emacs totally fails to work. ! * or, temacs gets errors dumping emacs This can be because the .elc files have been garbled. Do not be *************** *** 642,648 **** 2) Delete all the .elc files. 3) Recompile alloc.c with a value of PURESIZE twice as large. ! You might as well save the old alloc.o. ! 4) Remake xemacs. It should work now. ! 5) Running xemacs, do Meta-x byte-compile-file repeatedly to recreate all the .elc files that used to exist. You may need to increase the value of the variable --- 863,869 ---- 2) Delete all the .elc files. 3) Recompile alloc.c with a value of PURESIZE twice as large. ! (See puresize.h.) You might as well save the old alloc.o. ! 4) Remake emacs. It should work now. ! 5) Running emacs, do Meta-x byte-compile-file repeatedly to recreate all the .elc files that used to exist. You may need to increase the value of the variable *************** *** 651,655 **** 6) Reinstall the old alloc.o (undoing changes to alloc.c if any) and remake temacs. ! 7) Remake xemacs. It should work now, with valid .elc files. * temacs prints "Pure Lisp storage exhausted" --- 872,876 ---- 6) Reinstall the old alloc.o (undoing changes to alloc.c if any) and remake temacs. ! 7) Remake emacs. It should work now, with valid .elc files. * temacs prints "Pure Lisp storage exhausted" *************** *** 692,696 **** than the corresponding .el file. ! * The dumped Emacs (xemacs) crashes when run, trying to write pure data. Two causes have been seen for such problems. --- 913,917 ---- than the corresponding .el file. ! * The dumped Emacs crashes when run, trying to write pure data. Two causes have been seen for such problems. *************** *** 764,771 **** directory copy is ineffective. - (Exception: if you configure with --run-in-place, then the build - directory is also the installation directory; there is only one - copy of movemail, and that is the one to change.) - * Emacs spontaneously displays "I-search: " at the bottom of the screen. --- 985,988 ---- *************** *** 1009,1014 **** you can redefine Backspace in your .emacs file: (global-set-key "\b" 'delete-backward-char) ! You may then wish to put the function help-command on some ! other key. I leave to you the task of deciding which key. * Editing files through RFS gives spurious "file has changed" warnings. --- 1226,1230 ---- you can redefine Backspace in your .emacs file: (global-set-key "\b" 'delete-backward-char) ! You can probably access help-command via f1. * Editing files through RFS gives spurious "file has changed" warnings. diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/README emacs-19.29/README *** emacs-19.28/README Wed Oct 26 08:24:51 1994 --- emacs-19.29/README Tue Jun 20 14:17:16 1995 *************** *** 1,11 **** ! This directory tree holds version 19.28 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. ! Version 19.28 is quite stable; most users do not encounter any bugs. ! But if you do encounter bugs in this version, we encourage you to ! report them; your bug reports are valuable contributions to the FSF, ! since they allow us to notice and fix problems on machines we don't ! have, or in code we don't use often. See the "Bugs" node of the info ! tree for more information on how to report bugs. See the files `etc/NEWS' and `etc/news.texi' for information on new --- 1,10 ---- ! This directory tree holds version 19.29 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. ! You may encounter bugs in this release. If you do, please report ! them; your bug reports are valuable contributions to the FSF, since ! they allow us to notice and fix problems on machines we don't have, or ! in code we don't use often. See the file BUGS for more information on ! how to report bugs. See the files `etc/NEWS' and `etc/news.texi' for information on new *************** *** 30,34 **** in this directory explains how you can find and read that section using the Info files that come with Emacs.) See `etc/MAILINGLISTS' ! for more information on mailing lists relating to GNU products. The `etc' subdirectory contains several other files, named in --- 29,33 ---- in this directory explains how you can find and read that section using the Info files that come with Emacs.) See `etc/MAILINGLISTS' ! for more information on mailing lists relating to GNU packages. The `etc' subdirectory contains several other files, named in *************** *** 36,43 **** The file `configure' is a shell script to acclimate Emacs to the ! oddities of your processor and operating system. It will create two ! files named `build-install' (a shell script) and `Makefile' (a script ! for the `make' program), which help automate the process of building ! and installing emacs. See INSTALL for more detailed information. The file `configure.in' is the input used by the autoconf program to --- 35,42 ---- The file `configure' is a shell script to acclimate Emacs to the ! oddities of your processor and operating system. It creates the file ! `Makefile' (a script for the `make' program), which automates the ! process of building and installing Emacs. See INSTALL for more ! detailed information. The file `configure.in' is the input used by the autoconf program to *************** *** 71,74 **** --- 70,76 ---- `man' holds the source code for the Emacs manual. + Note that the Emacs Lisp manual sources are distributed separately. + (They are twice as large as the Emacs manual in the man subdirectory.) + `msdos' holds configuration files for compiling Emacs under MSDOG. See the file etc/MSDOS for more information. *************** *** 76,81 **** the installed one fails to distinguish more than 8 characters in a symbol name. - `shortnames' holds programs and data files for creating files of - #define's used to convert long symbol names to distinct sort ones - for C compiles that cannot distinguish more than 8 characters. `vms' holds instructions and useful files for running Emacs under VMS. --- 78,82 ---- the installed one fails to distinguish more than 8 characters in a symbol name. `vms' holds instructions and useful files for running Emacs under VMS. + `nt' holds various command files and documentation files that pertain + to running Emacs on Windows NT. Only in emacs-19.28: build-ins.in diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/config.bat emacs-19.29/config.bat *** emacs-19.28/config.bat Tue Jun 7 11:16:18 1994 --- emacs-19.29/config.bat Mon Oct 17 03:33:05 1994 *************** *** 30,57 **** rem + sed. rem ! rem You must install in directory c:/emacs or change this script, the ! rem files msdos/sed*.inp, and lisp/dos-fns.el. (The latter must be ! rem recompiled.) rem ---------------------------------------------------------------------- ! if not "%2" == "" goto usage if "%1" == "msdos" goto msdos - if "%1" == "msdos-X11" goto msdos11 :usage ! echo Usage: config msdos ! rem echo or config msdos-X11 -- don't even think about it ! echo [Read the script before you run it; also check that you have all the ! echo necessary utilities.] goto end rem ---------------------------------------------------------------------- ! :msdos11 ! set X11=y ! goto msdoscommon rem ---------------------------------------------------------------------- :msdos ! set X11= ! :msdoscommon ! rem Change to the Emacs root -- assume we are there ! rem cd c:\emacs ! rem ---------------------------------------------------------------------- Echo Configuring the source directory... cd src --- 30,93 ---- 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 ! if "%1" == "--with-x" goto withx ! if "%1" == "--no-debug" goto nodebug if "%1" == "msdos" goto msdos :usage ! echo Usage: config [--with-x] [--no-debug] msdos ! echo [Read the script before you run it.] goto end rem ---------------------------------------------------------------------- ! :withx ! set X11=Y ! shift ! goto again ! rem ---------------------------------------------------------------------- ! :nodebug ! set nodebug=Y ! shift ! goto again rem ---------------------------------------------------------------------- :msdos ! Echo Checking whether `sed' is available... ! Sed -e "w junk.$$$" junk.1 ! mv junk.1 junk.2 ! If Exist junk.2 Goto mvOk ! Echo To configure `Emacs' you need to have `mv'! ! rm -f junk.1 ! Goto End ! :mvOk ! rm -f junk.2 ! Echo Checking whether `gcc' is available... ! echo main(){} >junk.c ! gcc -c junk.c ! if exist junk.o goto gccOk ! Echo To configure `Emacs' you need to have `gcc'! ! rm -f junk.c ! Goto End ! :gccOk ! rm -f junk.c junk.o ! Rem ---------------------------------------------------------------------- Echo Configuring the source directory... cd src *************** *** 82,96 **** rem Create "paths.h" ! rm -f paths.h ! sed -f ../msdos/sed4.inp <%PATHSH% >paths.h rem Create "config.h" ! rm -f config.h config.tmp cp %CONFIGH% config.tmp if "%X11%" == "" goto src4 ! sed -f ../msdos/sed4.inp <%CONFIGH% >config.tmp :src4 ! sed -f ../msdos/sed2.inp config.h ! rm -f config.tmp rem On my system dir.h gets in the way. It's a VMS file so who cares. --- 118,134 ---- rem Create "paths.h" ! sed -f ../msdos/sed4.inp <%PATHSH% >paths.tmp ! update paths.tmp paths.h >nul ! rm -f paths.tmp rem Create "config.h" ! rm -f config.h2 config.tmp cp %CONFIGH% config.tmp if "%X11%" == "" goto src4 ! sed -f ../msdos/sed2x.inp <%CONFIGH% >config.tmp :src4 ! sed -f ../msdos/sed2.inp config.h2 ! update config.h2 config.h >nul ! rm -f config.tmp config.h2 rem On my system dir.h gets in the way. It's a VMS file so who cares. *************** *** 97,101 **** if exist dir.h ren dir.h vmsdir.h ! rem Create "makefile" from "makefile.in.in" using a context patch. rm -f makefile junk.c sed -e "1,/cpp stuff/s@^# .*$@@" <%MAKEFILEIN% >junk.c --- 135,139 ---- if exist dir.h ren dir.h vmsdir.h ! rem Create "makefile" from "makefile.in.in". rm -f makefile junk.c sed -e "1,/cpp stuff/s@^# .*$@@" <%MAKEFILEIN% >junk.c *************** *** 102,105 **** --- 140,153 ---- gcc -E junk.c | sed -f ../msdos/sed1.inp >makefile rm -f junk.c + if "%X11%" == "" goto src5 + mv makefile makefile.tmp + sed -f ../msdos/sed1x.inp makefile + rm -f makefile.tmp + :src5 + + if "%nodebug%" == "" goto src6 + sed -e "/^CFLAGS *=/s/ *-g//" makefile.tmp + mv -f makefile.tmp makefile + :src6 cd .. rem ---------------------------------------------------------------------- *************** *** 118,122 **** --- 166,186 ---- 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 ---------------------------------------------------------------------- + if "%X11%" == "" goto oldx1 + Echo Configuring the oldxmenu directory... + cd oldxmenu + sed -f ../msdos/sed5x.inp makefile + if "%nodebug%" == "" goto oldx2 + sed -e "/^CFLAGS *=/s/ *-g//" makefile.tmp + mv -f makefile.tmp makefile + :oldx2 cd .. + :oldx1 rem ---------------------------------------------------------------------- Echo Configuring the main directory... *************** *** 125,130 **** :end set X11= set MAKEFILEIN= set PATHSH= set CONFIGH= - --- 189,194 ---- :end set X11= + set nodebug= set MAKEFILEIN= set PATHSH= set CONFIGH= diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/config.guess emacs-19.29/config.guess *** emacs-19.28/config.guess Sun Sep 11 21:15:34 1994 --- emacs-19.29/config.guess Tue Jun 20 14:17:13 1995 *************** *** 1,5 **** ! #!/bin/sh ! # This script attempts to guess a canonical system name. ! # Copyright (C) 1992, 1993, 1994 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, 1993, 1994, 1995 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it *************** *** 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, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ # Written by Per Bothner . --- 15,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., 675 Mass Ave, Cambridge, MA 02139, USA. ! # ! # As a special exception to the GNU General Public License, if you ! # distribute this file as part of a program that contains a ! # configuration script generated by Autoconf, you may include it under ! # the same distribution terms that you use for the rest of that program. # Written by Per Bothner . *************** *** 55,58 **** --- 60,69 ---- 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} + exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} *************** *** 68,71 **** --- 79,85 ---- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; + i86pc:SunOS:5.*:*) + echo i386-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize *************** *** 75,79 **** exit 0 ;; sun4*:SunOS:*:*) ! echo sparc-sun-sunos${UNAME_RELEASE} exit 0 ;; sun3*:SunOS:*:*) --- 89,99 ---- exit 0 ;; sun4*:SunOS:*:*) ! case "`/usr/bin/arch -k`" in ! Series*|S4*) ! UNAME_RELEASE=`uname -v` ! ;; ! esac ! # Japanese Language versions have a version number like `4.1.3-JL'. ! echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit 0 ;; sun3*:SunOS:*:*) *************** *** 80,83 **** --- 100,112 ---- echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; + atari*:NetBSD:*:*) + echo m68k-atari-netbsd${UNAME_RELEASE} + exit 0 ;; + sun3*:NetBSD:*:*) + echo m68k-sun-netbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:NetBSD:*:*) + echo m68k-apple-netbsd${UNAME_RELEASE} + exit 0 ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} *************** *** 119,125 **** echo m68k-tektronix-bsd exit 0 ;; ! *:IRIX:*:*) ! echo mips-sgi-irix${UNAME_RELEASE} exit 0 ;; i[34]86:AIX:*:*) echo i386-ibm-aix --- 148,157 ---- echo m68k-tektronix-bsd exit 0 ;; ! *:IRIX*:*:*) ! echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit 0 ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i[34]86:AIX:*:*) echo i386-ibm-aix *************** *** 147,153 **** --- 179,206 ---- fi exit 0 ;; + *:AIX:*:4) + if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if grep bos410 /usr/include/stdio.h >/dev/null 2>&1; then + IBM_REV=4.1 + elif grep bos411 /usr/include/stdio.h >/dev/null 2>&1; then + IBM_REV=4.1.1 + else + IBM_REV=4.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit 0 ;; *:AIX:*:*) echo rs6000-ibm-aix exit 0 ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit 0 ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit 0 ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx *************** *** 169,177 **** 9000/8?? ) HP_ARCH=hppa1.0 ;; esac ! case ${UNAME_RELEASE} in ! *.B7.* ) HPUX_REV=7 ;; ! *.[B0]8.* ) HPUX_REV=8 ;; ! *.09.* ) HPUX_REV=9 ;; ! esac echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; --- 222,226 ---- 9000/8?? ) HP_ARCH=hppa1.0 ;; esac ! HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; *************** *** 218,234 **** echo hppa1.0-hp-osf exit 0 ;; ! C1*:ConvexOS:*:* | convex:ConvexOS:C1:*) echo c1-convex-bsd exit 0 ;; ! C2*:ConvexOS:*:* | convex:ConvexOS:C2:*) ! echo c2-convex-bsd exit 0 ;; ! CRAY*X-MP:UNICOS:*:*) ! echo xmp-cray-unicos exit 0 ;; ! CRAY*Y-MP:UNICOS:*:*) ! echo ymp-cray-unicos exit 0 ;; ! CRAY-2:UNICOS:*:*) echo cray2-cray-unicos exit 0 ;; --- 267,301 ---- echo hppa1.0-hp-osf exit 0 ;; ! parisc*:Lites*:*:*) ! echo hppa1.1-hp-lites ! exit 0 ;; ! C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit 0 ;; ! C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) ! if getsysinfo -f scalar_acc ! then echo c32-convex-bsd ! else echo c2-convex-bsd ! fi ! exit 0 ;; ! C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) ! echo c34-convex-bsd exit 0 ;; ! C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) ! echo c38-convex-bsd exit 0 ;; ! C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) ! echo c4-convex-bsd exit 0 ;; ! CRAY*X-MP:*:*:*) ! echo xmp-cray-unicos ! exit 0 ;; ! CRAY*Y-MP:*:*:*) ! echo ymp-cray-unicos${UNAME_RELEASE} ! exit 0 ;; ! CRAY*C90:*:*:*) ! echo c90-cray-unicos${UNAME_RELEASE} ! exit 0 ;; ! CRAY-2:*:*:*) echo cray2-cray-unicos exit 0 ;; *************** *** 236,244 **** echo m68k-hp-netbsd${UNAME_RELEASE} exit 0 ;; ! i[34]86:BSD/386:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*) ! echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/(.*//'` exit 0 ;; *:NetBSD:*:*) --- 303,311 ---- echo m68k-hp-netbsd${UNAME_RELEASE} exit 0 ;; ! i[34]86:BSD/386:*:* | *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*) ! echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; *:NetBSD:*:*) *************** *** 245,252 **** echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` exit 0 ;; *:Linux:*:*) ! echo ${UNAME_MACHINE}-unknown-linux exit 0 ;; ! i[34]86:UNIX_SV:4.*:* | i[34]86:SYSTEM_V:4.*:*) if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE} --- 312,348 ---- echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` exit 0 ;; + *:GNU:*:*) + echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; *:Linux:*:*) ! # Systems without a BFD linker ! if test -d /usr/lib/ldscripts/. ; then ! : ! else ! echo "${UNAME_MACHINE}-unknown-linuxoldld" ! exit 0 ! fi ! # Determine whether the default compiler is a.out or elf ! cat >dummy.c </dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 ! rm -f dummy.c dummy;; ! # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions ! # are messed up and put the nodename in both sysname and nodename. ! i[34]86:DYNIX/ptx:4*:*) ! echo i386-sequent-sysv4 exit 0 ;; ! i[34]86:*:4.*:* | i[34]86:SYSTEM_V:4.*:*) if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE} *************** *** 256,266 **** exit 0 ;; i[34]86:*:3.2:*) ! if /bin/uname -X 2>/dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 echo ${UNAME_MACHINE}-unknown-sco$UNAME_REL - elif test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 echo ${UNAME_MACHINE}-unknown-sco$UNAME_REL else echo ${UNAME_MACHINE}-unknown-sysv32 *************** *** 267,278 **** fi exit 0 ;; - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions - # are messed up and put the nodename in both sysname and nodename. - i[34]86:DYNIX/ptx:4*:*) - echo i386-sequent-sysv4 - exit 0 ;; Intel:Mach:3*:*) echo i386-unknown-mach3 exit 0 ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then --- 363,372 ---- fi exit 0 ;; Intel:Mach:3*:*) echo i386-unknown-mach3 exit 0 ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit 0 ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then *************** *** 288,297 **** M680[234]0:*:R3V[567]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; ! 3[34]??:*:4.0:*) ! uname -p 2>/dev/null | grep 86 >/dev/null \ ! && echo i486-ncr-sysv4 && exit 0 ;; ! 33[56]0,3???:*:4.0:*) ! uname -p 2>/dev/null | grep 86 >/dev/null \ ! && echo i486-ncr-sysv4.3 && exit 0 ;; m680[234]0:LynxOS:2.2*:*) echo m68k-lynx-lynxos${UNAME_RELEASE} --- 382,391 ---- M680[234]0:*:R3V[567]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; ! 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0) ! uname -p 2>/dev/null | grep 86 >/dev/null \ ! && echo i486-ncr-sysv4.3 && exit 0 ;; ! 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) ! uname -p 2>/dev/null | grep 86 >/dev/null \ ! && echo i486-ncr-sysv4 && exit 0 ;; m680[234]0:LynxOS:2.2*:*) echo m68k-lynx-lynxos${UNAME_RELEASE} *************** *** 334,338 **** printf ("mips-sony-bsd\n"); exit (0); #else ! printf ("m68k-sony-newsos\n"); exit (0); #endif #endif --- 428,439 ---- printf ("mips-sony-bsd\n"); exit (0); #else ! #include ! printf ("m68k-sony-newsos%s\n", ! #ifdef NEWSOS4 ! "4" ! #else ! "" ! #endif ! ); exit (0); #endif #endif *************** *** 407,410 **** --- 508,537 ---- test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } + + # Convex versions that predate uname can use getsysinfo(1) + + if [ -x /usr/convex/getsysinfo ] + then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit 0 ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + c34*) + echo c34-convex-bsd + exit 0 ;; + c38*) + echo c38-convex-bsd + exit 0 ;; + c4*) + echo c4-convex-bsd + exit 0 ;; + esac + fi #echo '(Unable to guess system type)' 1>&2 diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/config.sub emacs-19.29/config.sub *** emacs-19.28/config.sub Sun Sep 11 21:15:33 1994 --- emacs-19.29/config.sub Tue Jun 20 14:17:13 1995 *************** *** 1,24 **** ! #!/bin/sh # Configuration validation subroutine script, version 1.1. ! # Copyright (C) 1991, 1992, 1993, 1994 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 - #it under the terms of the GNU General Public License as published by - #the Free Software Foundation; either version 2 of the License, 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. - - # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. --- 1,28 ---- ! #! /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 + # it under the terms of the GNU General Public License as published by + # the Free Software Foundation; either version 2 of the License, 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. + + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under + # the same distribution terms that you use for the rest of that program. # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. *************** *** 39,42 **** --- 43,55 ---- # It is wrong to echo any other type of specification. + if [ x$1 = x ] + then + echo Configuration name missing. 1>&2 + echo "Usage: $0 CPU-MFR-OPSYS" 1>&2 + echo "or $0 ALIAS" 1>&2 + echo where ALIAS is a recognized configuration type. 1>&2 + exit 1 + fi + # First pass through any local machine types. case $1 in *************** *** 101,105 **** basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'` ;; ! -lynx) os=-lynxos ;; --- 114,118 ---- basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'` ;; ! -lynx*) os=-lynxos ;; *************** *** 107,110 **** --- 120,126 ---- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; esac *************** *** 116,120 **** | tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \ | alpha | we32k | ns16k | clipper | sparclite | i370 | sh \ ! | powerpc | sparc64 | 1750a | dsp16xx) basic_machine=$basic_machine-unknown ;; --- 132,138 ---- | 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 ;; *************** *** 131,135 **** | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \ | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \ ! | sh-* | powerpc-* | sparc64-*) ;; # Recognize the various machine names and aliases which stand --- 149,154 ---- | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \ | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \ ! | pdp11-* | sh-* | powerpc-* | sparc64-* | mips64-* | mipsel-* \ ! | mips64el-* | mips64orion-* | mips64orionel-*) ;; # Recognize the various machine names and aliases which stand *************** *** 332,335 **** --- 351,360 ---- basic_machine=m68000-convergent ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; ncr3000) basic_machine=i486-ncr *************** *** 404,407 **** --- 429,435 ---- basic_machine=i386-ibm ;; + rm[46]00) + basic_machine=mips-siemens + ;; rtpc | rtpc-*) basic_machine=romp-ibm *************** *** 448,451 **** --- 476,483 ---- os=-sunos4 ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; sun3 | sun3-*) basic_machine=m68k-sun *************** *** 464,467 **** --- 496,503 ---- basic_machine=m68k-ncr ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; ultra3) basic_machine=a29k-nyu *************** *** 510,513 **** --- 546,552 ---- basic_machine=vax-dec ;; + pdp11) + basic_machine=pdp11-dec + ;; we32k) basic_machine=we32k-att *************** *** 555,558 **** --- 594,603 ---- os=-solaris2 ;; + -unixware* | svr4*) + os=-sysv4 + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux|'` + ;; # First accept the basic system types. # The portable systems comes first. *************** *** 567,571 **** | -hiux* | -386bsd* | -netbsd* | -freebsd* | -riscix* \ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \ ! | -ptx*) ;; -sunos5*) --- 612,616 ---- | -hiux* | -386bsd* | -netbsd* | -freebsd* | -riscix* \ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \ ! | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta | -udi | -eabi) ;; -sunos5*) *************** *** 593,596 **** --- 638,648 ---- os=-sysv ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; -triton*) os=-sysv3 *************** *** 639,645 **** --- 691,703 ---- os=-riscix1.2 ;; + pdp11-*) + os=-none + ;; *-dec | vax-*) os=-ultrix4.2 ;; + m68*-apollo) + os=-domain + ;; i386-sun) os=-sunos4.0.2 *************** *** 711,714 **** --- 769,775 ---- os=-irix ;; + *-siemens) + os=-sysv4 + ;; *-masscomp) os=-rtu *************** *** 761,764 **** --- 822,828 ---- -ptx*) vendor=sequent + ;; + -vxworks*) + vendor=wrs ;; esac diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/configure emacs-19.29/configure *** emacs-19.28/configure Sun Oct 16 04:17:37 1994 --- emacs-19.29/configure Tue Jun 20 01:58:03 1995 *************** *** 1,339 **** ! #!/bin/sh ! #### Configuration script for GNU Emacs ! #### Copyright (C) 1992, 1994 Free Software Foundation, Inc. ! #### This script requires autoconf version 1.9 or later. ! ! ### Don't edit this script! ! ### This script was automatically generated by the `autoconf' program ! ### from the file `./configure.in'. ! ### To rebuild it, execute the command ! ### autoconf ! ### in the this directory. ! ! ### 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. ! ! ### Since Emacs has configuration requirements that autoconf can't ! ### meet, this file is an unholy marriage of custom-baked ! ### configuration code and autoconf macros. ! ### ! ### We use the m4 quoting characters [ ] (as established by the ! ### autoconf system) to include large sections of raw sewage - Oops, I ! ### mean, shell code - in the final configuration script. ! ### ! ### Usage: configure config_name ! ### ! ### If configure succeeds, it leaves its status in config.status. ! ### If configure fails after disturbing the status quo, ! ### config.status is removed. ! ! ### Remove any more than one leading "." element from the path name. ! ### If we don't remove them, then another "./" will be prepended to ! ### the file name each time we use config.status, and the program name ! ### will get larger and larger. This wouldn't be a problem, except ! ### that since progname gets recorded in all the Makefiles this script ! ### produces, move-if-change thinks they're different when they're ! ### not. ! ### ! ### It would be nice if we could put the ./ in a \( \) group and then ! ### apply the * operator to that, so we remove as many leading ./././'s ! ### as are present, but some seds (like Ultrix's sed) don't allow you to ! ### apply * to a \( \) group. Bleah. ! progname="`echo $0 | sed 's:^\./\./:\./:'`" ! ### Establish some default values. ! run_in_place= ! single_tree= ! prefix='/usr/local' ! exec_prefix='${prefix}' ! bindir='${exec_prefix}/bin' ! datadir='${prefix}/lib' ! statedir='${prefix}/lib' ! libdir='${exec_prefix}/lib' ! mandir='${prefix}/man/man1' ! infodir='${prefix}/info' ! lispdir='${datadir}/emacs/${version}/lisp' ! locallisppath='${datadir}/emacs/site-lisp' ! lisppath='${locallisppath}:${lispdir}' ! etcdir='${datadir}/emacs/${version}/etc' ! lockdir='${statedir}/emacs/lock' ! archlibdir='${libdir}/emacs/${version}/${configuration}' ! docdir='${datadir}/emacs/${version}/etc' ! # On Sun systems, people sometimes set up the variable CPP ! # with a value that is a directory, not an executable at all. ! # Detect that case, and ignore that value. ! if [ "x$CPP" != x ] && [ -d "$CPP" ]; ! then ! CPP= ! fi ! # We cannot use this variable in the case statement below, because many ! # /bin/sh's have broken semantics for "case". Unfortunately, you must ! # actually edit the clause itself. ! # path_options="prefix | exec_prefix | bindir | libdir | etcdir | datadir" ! # path_options="$path_options | archlibdir | statedir | mandir | infodir" ! # path_options="$path_options | lispdir | lockdir | lisppath | locallisppath" ! ! #### Usage messages. ! ! short_usage="Usage: ${progname} CONFIGURATION [-OPTION[=VALUE] ...] ! ! Set compilation and installation parameters for GNU Emacs, and report. ! CONFIGURATION specifies the machine and operating system to build for. ! --with-x Support the X Window System. ! --with-x=no Don't support X. ! --with-x-toolkit Use an X toolkit. ! --with-x-toolkit=no Don't use an X toolkit. ! --with-gcc Use GCC to compile Emacs. ! --with-gcc=no Don't use GCC to compile Emacs. ! --x-includes=DIR Search for X header files in DIR. ! --x-libraries=DIR Search for X libraries in DIR. ! --run-in-place Use libraries and data files directly out of the ! source tree. ! --single-tree=DIR Has the effect of creating a directory tree at DIR ! which looks like: ! .../DIR/bin/CONFIGNAME (emacs, etags, etc.) ! .../DIR/bin/CONFIGNAME/etc (movemail, etc.) ! .../DIR/common/lisp (emacs' lisp files) ! .../DIR/common/site-lisp (local lisp files) ! .../DIR/common/lib (DOC, TUTORIAL, etc.) ! .../DIR/common/lock (lockfiles) ! --srcdir=DIR Look for the Emacs source files in DIR. ! --prefix=DIR Install files below DIR. Defaults to \`${prefix}'. ! ! You may also specify any of the \`path' variables found in Makefile.in, ! including --bindir, --libdir, --etcdir, --infodir, and so on. This allows ! you to override a single default location when configuring. ! ! If successful, ${progname} leaves its status in config.status. If ! unsuccessful after disturbing the status quo, it removes config.status." ! ! ! #### Option processing. ! ! ### Record all the arguments, so we can save them in config.status. ! arguments="$@" ! ! ### Shell Magic: Quote the quoted arguments in ARGUMENTS. At a later date, ! ### in order to get the arguments back in $@, we have to do an ! ### `eval set x "$quoted_arguments"; shift'. ! quoted_arguments= ! for i in "$@"; do ! quoted_arguments="$quoted_arguments '$i'" ! done ! ### Don't use shift -- that destroys the argument list, which autoconf needs ! ### to produce config.status. It turns out that "set - ${arguments}" doesn't ! ### work portably. ! ### However, it also turns out that many shells cannot expand ${10} at all. ! ### So using an index variable doesn't work either. It is possible to use ! ### some shell magic to make 'set x "$arguments"; shift' work portably. ! while [ $# != 0 ]; do ! arg="$1"; shift ! case "${arg}" in ! ! ## Anything starting with a hyphen we assume is an option. ! -* ) ! ## Separate the switch name from the value it's being given. ! case "${arg}" in ! -*=*) ! opt=`echo ${arg} | sed 's:^-*\([^=]*\)=.*$:\1:'` ! val=`echo ${arg} | sed 's:^-*[^=]*=\(.*\)$:\1:'` ! valomitted=no ! ;; ! -*) ! ## If FOO is a boolean argument, --FOO is equivalent to ! ## --FOO=yes. Otherwise, the value comes from the next ! ## argument - see below. ! opt=`echo ${arg} | sed 's:^-*\(.*\)$:\1:'` ! val="yes" ! valomitted=yes ! ;; ! esac ! ! ## Change `-' in the option name to `_'. ! optname="${opt}" ! opt="`echo ${opt} | tr - _`" ! ! ## Process the option. ! case "${opt}" in ! ! ## Has the user specified which window systems they want to support? ! "with_x" | "with_x11" | "with_x10" ) ! ## Make sure the value given was either "yes" or "no". ! case "${val}" in ! y | ye | yes ) val=yes ;; ! n | no ) val=no ;; ! * ) ! (echo "${progname}: the \`--${optname}' option is supposed to have a boolean value. ! Set it to either \`yes' or \`no'." ! echo "${short_usage}") >&2 ! exit 1 ! ;; ! esac ! eval "${opt}=\"${val}\"" ! ;; ! ## Has the user specified which toolkit they want to support? ! "with_x_toolkit" ) ! case "${val}" in ! y | ye | yes ) val=athena ;; ! n | no ) val=no ;; ! l | lu | luc | luci | lucid ) val=lucid ;; ! a | at | ath | athe | athena ) val=athena ;; ! # These don't currently work. ! # m | mo | mot | moti | motif ) val=motif ;; ! # o | op | ope | open | open- | open-l | open-lo \ ! # | open-loo | open-look ) val=open-look ;; ! * ) ! ( ! #echo "${progname}: the \`--${optname}' option is supposed to have a value ! #which is \`yes', \`no', \`lucid', \`athena', \`motif' or \`open-look'." ! echo "${progname}: the \`--${optname}' option is supposed to have a value ! which is \`yes', \`no', \`lucid', or \`athena'. ! Currently, \`yes', \`athena' and \`lucid' are synonyms." ! echo "${short_usage}") >&2 ! exit 1 ! ;; ! esac ! eval "${opt}=\"${val}\"" ! ;; ! ## Has the user specified whether or not they want GCC? ! "with_gcc" | "with_gnu_cc" ) ! ## Make sure the value given was either "yes" or "no". ! case "${val}" in ! y | ye | yes ) val=yes ;; ! n | no ) val=no ;; ! * ) ! (echo "${progname}: the \`--${optname}' option is supposed to have a boolean value. ! Set it to either \`yes' or \`no'." ! echo "${short_usage}") >&2 ! exit 1 ! ;; ! esac ! eval "${opt}=\"${val}\"" ! ;; ! ## Has the user specified a source directory? ! "srcdir" ) ! ## If the value was omitted, get it from the next argument. ! if [ "${valomitted}" = "yes" ]; then ! ## Get the next argument from the argument list, if there is one. ! if [ $# = 0 ]; then ! (echo "${progname}: You must give a value for the \`--${optname}' option, as in ! \`--${optname}=FOO'." ! echo "${short_usage}") >&2 ! exit 1 ! fi ! val="$1"; shift ! fi ! srcdir="${val}" ! ;; ! ## Has the user tried to tell us where the X files are? ! ## I think these are dopey, but no less than three alpha ! ## testers, at large sites, have said they have their X files ! ## installed in odd places. ! "x_includes" ) ! ## If the value was omitted, get it from the next argument. ! if [ "${valomitted}" = "yes" ]; then ! ## Get the next argument from the argument list, if there is one. ! if [ $# = 0 ]; then ! (echo "${progname}: You must give a value for the \`--${optname}' option, as in ! \`--${optname}=/usr/local/X11/include'." ! echo "${short_usage}") >&2 ! exit 1 ! fi ! val="$1"; shift ! fi ! x_includes="${val}" ! ;; ! "x_libraries" ) ! ## If the value was omitted, get it from the next argument. ! if [ "${valomitted}" = "yes" ]; then ! ## Get the next argument from the argument list, if there is one. ! if [ $# = 0 ]; then ! (echo "${progname}: You must give a value for the \`--${optname}' option, as in ! \`--${optname}=/usr/local/X11/lib'." ! echo "${short_usage}") >&2 ! exit 1 ! fi ! val="$1"; shift ! fi ! x_libraries="${val}" ! ;; ! ## Should this use the "development" file organization? ! "run_in_place" ) ! single_tree= ! run_in_place=1 ! ;; ! ! ## Should this use the "single tree" file organization? ! "single_tree" ) ! run_in_place= ! single_tree=1 ! ;; ! ! ## Has the user specified one of the path options? ! prefix | exec_prefix | bindir | libdir | etcdir | datadir | \ ! archlibdir | statedir | mandir | infodir | lispdir | lockdir | \ ! lisppath | locallisppath | docdir ) ! ## If the value was omitted, get it from the next argument. ! if [ "${valomitted}" = "yes" ]; then ! if [ $# = 0 ]; then ! (echo \ ! "$progname: You must give a value for the \`--${optname}' option,"; ! echo \ ! "as in \`--${optname}=`eval echo '$'$optname`.'" ! echo "$short_usage") >&2 ! exit 1 ! fi ! val="$1"; shift ! fi ! eval "${opt}=\"${val}\"" ! eval "${opt}_specified=1" ! ;; ! ! ## Verbose flag, tested by autoconf macros. ! "verbose" ) ! verbose=yes ! ;; ! ! ## Has the user asked for some help? ! "usage" | "help" ) ! if [ "x$PAGER" = x ] ! then ! echo "${short_usage}" | more ! else ! echo "${short_usage}" | $PAGER ! fi ! exit ! ;; ! ## We ignore all other options silently. ! esac ;; ! ## Anything not starting with a hyphen we assume is a ! ## configuration name. ! *) ! configuration=${arg} ;; --- 1,286 ---- ! #! /bin/sh + # Guess values for system-dependent variables and create Makefiles. + # Generated automatically using autoconf version 2.4 + # Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc. + # + # This configure script is free software; the Free Software Foundation + # gives unlimited permission to copy, distribute and modify it. ! # Defaults: ! ac_help= ! ac_default_prefix=/usr/local ! # Any additions from configure.in: ! ac_help="$ac_help ! --with-gcc use GCC to compile Emacs" ! ac_help="$ac_help ! --with-pop support POP for mail retrieval" ! ac_help="$ac_help ! --with-kerberos support Kerberos-authenticated POP" ! ac_help="$ac_help ! --with-hesiod support Hesiod to get the POP server host" ! ac_help="$ac_help ! --with-x-toolkit=KIT use an X toolkit (KIT = yes/lucid/athena/motif)" ! ac_help="$ac_help ! --with-x use the X Window System" ! ! # Initialize some variables set by options. ! # The variables have the same names as the options, with ! # dashes changed to underlines. ! build=NONE ! cache_file=./config.cache ! exec_prefix=NONE ! host=NONE ! no_create= ! nonopt=NONE ! no_recursion= ! prefix=NONE ! program_prefix=NONE ! program_suffix=NONE ! program_transform_name=s,x,x, ! silent= ! site= ! srcdir= ! target=NONE ! verbose= ! x_includes=NONE ! x_libraries=NONE ! # Initialize some other variables. ! subdirs= ! ac_prev= ! for ac_option ! do ! # If the previous option needs an argument, assign it. ! if test -n "$ac_prev"; then ! eval "$ac_prev=\$ac_option" ! ac_prev= ! continue ! fi ! case "$ac_option" in ! -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; ! *) ac_optarg= ;; ! esac ! # Accept the important Cygnus configure options, so we can diagnose typos. ! case "$ac_option" in ! -build | --build | --buil | --bui | --bu | --b) ! ac_prev=build ;; ! -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*) ! build="$ac_optarg" ;; ! ! -cache-file | --cache-file | --cache-fil | --cache-fi \ ! | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ! ac_prev=cache_file ;; ! -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ ! | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) ! cache_file="$ac_optarg" ;; ! ! -disable-* | --disable-*) ! ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` ! # Reject names that are not valid shell variable names. ! if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then ! { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } ! fi ! ac_feature=`echo $ac_feature| sed 's/-/_/g'` ! eval "enable_${ac_feature}=no" ;; ! -enable-* | --enable-*) ! ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` ! # Reject names that are not valid shell variable names. ! if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then ! { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } ! fi ! ac_feature=`echo $ac_feature| sed 's/-/_/g'` ! case "$ac_option" in ! *=*) ;; ! *) ac_optarg=yes ;; ! esac ! eval "enable_${ac_feature}='$ac_optarg'" ;; ! ! -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ ! | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ ! | --exec | --exe | --ex) ! ac_prev=exec_prefix ;; ! -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ ! | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ ! | --exec=* | --exe=* | --ex=*) ! exec_prefix="$ac_optarg" ;; ! ! -gas | --gas | --ga | --g) ! # Obsolete; use --with-gas. ! with_gas=yes ;; ! ! -help | --help | --hel | --he) ! # Omit some internal or obsolete options to make the list less imposing. ! # This message is too long to be a string in the A/UX 3.1 sh. ! cat << EOF ! Usage: configure [options] [host] ! Options: [defaults in brackets after descriptions] ! Configuration: ! --cache-file=FILE cache test results in FILE ! --help print this message ! --no-create do not create output files ! --quiet, --silent do not print \`checking...' messages ! --version print the version of autoconf that created configure ! Directory and file names: ! --prefix=PREFIX install architecture-independent files in PREFIX ! [$ac_default_prefix] ! --exec-prefix=PREFIX install architecture-dependent files in PREFIX ! [same as prefix] ! --srcdir=DIR find the sources in DIR [configure dir or ..] ! --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 ! Host type: ! --build=BUILD configure for building on BUILD [BUILD=HOST] ! --host=HOST configure for HOST [guessed] ! --target=TARGET configure for TARGET [TARGET=HOST] ! Features and packages: ! --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) ! --enable-FEATURE[=ARG] include FEATURE [ARG=yes] ! --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] ! --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) ! --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 ;; ! ! -host | --host | --hos | --ho) ! ac_prev=host ;; ! -host=* | --host=* | --hos=* | --ho=*) ! host="$ac_optarg" ;; ! ! -nfp | --nfp | --nf) ! # Obsolete; use --without-fp. ! with_fp=no ;; ! ! -no-create | --no-create | --no-creat | --no-crea | --no-cre \ ! | --no-cr | --no-c) ! no_create=yes ;; ! ! -no-recursion | --no-recursion | --no-recursio | --no-recursi \ ! | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ! no_recursion=yes ;; ! ! -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ! ac_prev=prefix ;; ! -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) ! prefix="$ac_optarg" ;; ! ! -program-prefix | --program-prefix | --program-prefi | --program-pref \ ! | --program-pre | --program-pr | --program-p) ! ac_prev=program_prefix ;; ! -program-prefix=* | --program-prefix=* | --program-prefi=* \ ! | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) ! program_prefix="$ac_optarg" ;; ! ! -program-suffix | --program-suffix | --program-suffi | --program-suff \ ! | --program-suf | --program-su | --program-s) ! ac_prev=program_suffix ;; ! -program-suffix=* | --program-suffix=* | --program-suffi=* \ ! | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) ! program_suffix="$ac_optarg" ;; ! ! -program-transform-name | --program-transform-name \ ! | --program-transform-nam | --program-transform-na \ ! | --program-transform-n | --program-transform- \ ! | --program-transform | --program-transfor \ ! | --program-transfo | --program-transf \ ! | --program-trans | --program-tran \ ! | --progr-tra | --program-tr | --program-t) ! ac_prev=program_transform_name ;; ! -program-transform-name=* | --program-transform-name=* \ ! | --program-transform-nam=* | --program-transform-na=* \ ! | --program-transform-n=* | --program-transform-=* \ ! | --program-transform=* | --program-transfor=* \ ! | --program-transfo=* | --program-transf=* \ ! | --program-trans=* | --program-tran=* \ ! | --progr-tra=* | --program-tr=* | --program-t=*) ! program_transform_name="$ac_optarg" ;; ! ! -q | -quiet | --quiet | --quie | --qui | --qu | --q \ ! | -silent | --silent | --silen | --sile | --sil) ! silent=yes ;; ! ! -site | --site | --sit) ! ac_prev=site ;; ! -site=* | --site=* | --sit=*) ! site="$ac_optarg" ;; ! ! -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ! ac_prev=srcdir ;; ! -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) ! srcdir="$ac_optarg" ;; ! ! -target | --target | --targe | --targ | --tar | --ta | --t) ! ac_prev=target ;; ! -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) ! target="$ac_optarg" ;; ! ! -v | -verbose | --verbose | --verbos | --verbo | --verb) ! verbose=yes ;; ! ! -version | --version | --versio | --versi | --vers) ! echo "configure generated by autoconf version 2.4" ! exit 0 ;; ! -with-* | --with-*) ! ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` ! # Reject names that are not valid shell variable names. ! if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then ! { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } ! fi ! ac_package=`echo $ac_package| sed 's/-/_/g'` ! case "$ac_option" in ! *=*) ;; ! *) ac_optarg=yes ;; ! esac ! eval "with_${ac_package}='$ac_optarg'" ;; ! ! -without-* | --without-*) ! ac_package=`echo $ac_option|sed -e 's/-*without-//'` ! # Reject names that are not valid shell variable names. ! if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then ! { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } ! fi ! ac_package=`echo $ac_package| sed 's/-/_/g'` ! eval "with_${ac_package}=no" ;; ! ! --x) ! # Obsolete; use --with-x. ! with_x=yes ;; ! ! -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ ! | --x-incl | --x-inc | --x-in | --x-i) ! ac_prev=x_includes ;; ! -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ ! | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) ! x_includes="$ac_optarg" ;; ! ! -x-libraries | --x-libraries | --x-librarie | --x-librari \ ! | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ! ac_prev=x_libraries ;; ! -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ ! | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) ! x_libraries="$ac_optarg" ;; ! ! -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } ;; ! *) ! if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then ! echo "configure: warning: $ac_option: invalid host type" 1>&2 ! fi ! if test "x$nonopt" != xNONE; then ! { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ! fi ! nonopt="$ac_option" ;; *************** *** 341,406 **** done ! ### Get the arguments back. See the diatribe on Shell Magic above. ! eval set x "$quoted_arguments"; shift ! if [ "${configuration}" = "" ]; then ! echo '- You did not tell me what kind of host system you want to configure. ! - I will attempt to guess the kind of system this is.' 1>&2 ! guesssys=`echo ${progname} | sed 's/configure$/config.guess/'` ! if configuration=`${guesssys}` ; then ! echo "- Looks like this is a ${configuration}" 1>&2 else ! echo '- Failed to guess the system type. You need to tell me.' 1>&2 ! echo "${short_usage}" >&2 ! exit 1 fi fi ! #### Decide where the source is. ! case "${srcdir}" in ! ## If it's not specified, see if `.' or `..' might work. ! "" ) ! confdir=`echo $0 | sed 's|//|/|' | sed 's|/[^/]*$||'` ! if [ -f $confdir/src/lisp.h -a -f $confdir/lisp/version.el ]; then ! srcdir="${confdir}" ! else ! if [ -f "./src/lisp.h" -a -f "./lisp/version.el" ]; then ! srcdir='.' ! else ! if [ -f "../src/lisp.h" -a -f "../lisp/version.el" ]; then ! srcdir='..' ! else ! (echo "\ ! ${progname}: Neither the current directory nor its parent seem to ! contain the Emacs sources. If you do not want to build Emacs in its ! source tree, you should run \`${progname}' in the directory in which ! you wish to build Emacs, using its \`--srcdir' option to say where the ! sources may be found." ! echo "${short_usage}") >&2 ! exit 1 ! fi ! fi ! fi ! ;; ! ## Otherwise, check if the directory they specified is okay. ! * ) ! if [ ! -d "${srcdir}" -o ! -f "${srcdir}/src/lisp.h" -o ! -f "${srcdir}/lisp/version.el" ]; then ! (echo "\ ! ${progname}: The directory specified with the \`--srcdir' option, ! \`${srcdir}', doesn't seem to contain the Emacs sources. You should ! either run the \`${progname}' script at the top of the Emacs source ! tree, or use the \`--srcdir' option to specify where the Emacs sources ! are." ! echo "${short_usage}") >&2 ! exit 1 ! fi ! ;; ! esac #### Make srcdir absolute, if it isn't already. It's important to #### avoid running the path through pwd unnecessary, since pwd can ! #### give you automounter prefixes, which can go away. case "${srcdir}" in /* ) ;; --- 288,487 ---- done ! if test -n "$ac_prev"; then ! { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } ! fi ! ! trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 ! ! # File descriptor usage: ! # 0 standard input ! # 1 file creation ! # 2 errors and warnings ! # 3 some systems may open it to /dev/tty ! # 4 used on the Kubota Titan ! # 6 checking for... messages and results ! # 5 compiler messages saved in config.log ! if test "$silent" = yes; then ! exec 6>/dev/null ! else ! exec 6>&1 ! fi ! exec 5>./config.log ! ! echo "\ ! This file contains any messages produced by compilers while ! running configure, to aid debugging if configure makes a mistake. ! " 1>&5 ! ! # Strip out --no-create and --no-recursion so they do not pile up. ! # Also quote any args containing shell metacharacters. ! ac_configure_args= ! for ac_arg ! do ! case "$ac_arg" in ! -no-create | --no-create | --no-creat | --no-crea | --no-cre \ ! | --no-cr | --no-c) ;; ! -no-recursion | --no-recursion | --no-recursio | --no-recursi \ ! | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; ! *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) ! ac_configure_args="$ac_configure_args '$ac_arg'" ;; ! *) ac_configure_args="$ac_configure_args $ac_arg" ;; ! esac ! done ! ! # NLS nuisances. ! # Only set LANG and LC_ALL to C if already set. ! # These must not be set unconditionally because not all systems understand ! # e.g. LANG=C (notably SCO). ! if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi ! if test "${LANG+set}" = set; then LANG=C; export LANG; fi ! ! # confdefs.h avoids OS command line length limits that DEFS can exceed. ! rm -rf conftest* confdefs.h ! # AIX cpp loses on an empty file, so make sure it contains at least a newline. ! echo > confdefs.h ! ! # A filename unique to this package, relative to the directory that ! # configure is in, which we can look for to find out if srcdir is correct. ! ac_unique_file=src/lisp.h ! # Find the source files, if location was not specified. ! if test -z "$srcdir"; then ! ac_srcdir_defaulted=yes ! # Try the directory containing this script, then its parent. ! ac_prog=$0 ! ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` ! test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. ! srcdir=$ac_confdir ! if test ! -r $srcdir/$ac_unique_file; then ! srcdir=.. ! fi ! else ! ac_srcdir_defaulted=no ! fi ! if test ! -r $srcdir/$ac_unique_file; then ! if test "$ac_srcdir_defaulted" = yes; then ! { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } else ! { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } fi fi + srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` ! # Prefer explicitly selected file to automatically selected ones. ! if test -z "$CONFIG_SITE"; then ! if test "x$prefix" != xNONE; then ! CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" ! else ! CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" ! fi ! fi ! for ac_site_file in $CONFIG_SITE; do ! if test -r "$ac_site_file"; then ! echo "loading site script $ac_site_file" ! . "$ac_site_file" ! fi ! done ! if test -r "$cache_file"; then ! echo "loading cache $cache_file" ! . $cache_file ! else ! echo "creating cache $cache_file" ! > $cache_file ! fi ! 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 2>&5' ! ac_link='${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 ! # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. ! if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then ! ac_n= ac_c=' ! ' ac_t=' ' ! else ! ac_n=-n ac_c= ac_t= ! fi ! else ! ac_n= ac_c='\c' ac_t= ! fi ! ! ! ! ! bindir='${exec_prefix}/bin' ! datadir='${prefix}/share' ! sharedstatedir='${prefix}/com' ! libexecdir='${exec_prefix}/libexec' ! mandir='${prefix}/man/man1' ! infodir='${prefix}/info' ! lispdir='${datadir}/emacs/${version}/lisp' ! locallisppath='${datadir}/emacs/site-lisp' ! lisppath='${locallisppath}:${lispdir}' ! etcdir='${datadir}/emacs/${version}/etc' ! lockdir='${sharedstatedir}/emacs/lock' ! archlibdir='${libexecdir}/emacs/${version}/${configuration}' ! docdir='${datadir}/emacs/${version}/etc' ! ! # Check whether --with-gcc or --without-gcc was given. ! withval="$with_gcc" ! if test -n "$withval"; then ! : ! fi ! ! # Check whether --with-pop or --without-pop was given. ! withval="$with_pop" ! if test -n "$withval"; then ! cat >> confdefs.h <<\EOF ! #define MAIL_USE_POP 1 ! EOF ! ! fi ! ! # Check whether --with-kerberos or --without-kerberos was given. ! withval="$with_kerberos" ! if test -n "$withval"; then ! cat >> confdefs.h <<\EOF ! #define KERBEROS 1 ! EOF ! ! fi ! ! # Check whether --with-hesiod or --without-hesiod was given. ! withval="$with_hesiod" ! if test -n "$withval"; then ! cat >> confdefs.h <<\EOF ! #define HESIOD 1 ! EOF ! ! fi ! ! # Check whether --with-x-toolkit or --without-x-toolkit was given. ! withval="$with_x_toolkit" ! if test -n "$withval"; then ! case "${withval}" in ! y | ye | yes ) val=athena ;; ! n | no ) val=no ;; ! l | lu | luc | luci | lucid ) val=lucid ;; ! a | at | ath | athe | athena ) val=athena ;; ! m | mo | mot | moti | motif ) val=motif ;; ! * ) ! { echo "configure: error: the \`--with-x-toolkit' option is supposed to have a value ! which is \`yes', \`no', \`lucid', \`athena', or \`motif'. ! Currently, \`yes', \`athena' and \`lucid' are synonyms." 1>&2; exit 1; } ! ;; ! esac ! with_x_toolkit=$val ! ! fi ! #### Make srcdir absolute, if it isn't already. It's important to #### avoid running the path through pwd unnecessary, since pwd can ! #### give you automounter prefixes, which can go away. We do all this ! #### so Emacs can find its files when run uninstalled. case "${srcdir}" in /* ) ;; *************** *** 408,412 **** ## We may be able to use the $PWD environment variable to make this ## absolute. But sometimes PWD is inaccurate. ! if [ "${PWD}" != "" ] && [ "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`" ] ; then srcdir="$PWD" else --- 489,496 ---- ## We may be able to use the $PWD environment variable to make this ## absolute. But sometimes PWD is inaccurate. ! ## Make sure CDPATH doesn't affect cd (in case PWD is relative). ! CDPATH= ! if test "${PWD}" != "" && test "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`" ; ! then srcdir="$PWD" else *************** *** 418,429 **** #### Check if the source directory already has a configured system in it. ! if [ `pwd` != `(cd ${srcdir} && pwd)` ] \ ! && [ -f "${srcdir}/src/config.h" ] ; then ! (echo "${progname}: WARNING: The directory tree \`${srcdir}' is being used" ! echo " as a build directory right now; it has been configured in its own" ! echo " right. To configure in another directory as well, you MUST" ! echo " use GNU make. If you do not have GNU make, then you must" ! echo " now do \`make distclean' in ${srcdir}," ! echo " and then run ${progname} again.") >&2 extrasub='/^VPATH[ ]*=/c\ vpath %.c $(srcdir)\ --- 502,514 ---- #### Check if the source directory already has a configured system in it. ! if test `pwd` != `(cd ${srcdir} && pwd)` \ ! && test -f "${srcdir}/src/config.h" ; then ! echo "configure: warning: The directory tree \`${srcdir}' is being used ! as a build directory right now; it has been configured in its own ! right. To configure in another directory as well, you MUST ! use GNU make. If you do not have GNU make, then you must ! now do \`make distclean' in ${srcdir}, ! and then run $0 again." 1>&2 ! extrasub='/^VPATH[ ]*=/c\ vpath %.c $(srcdir)\ *************** *** 435,445 **** fi - ### Make the necessary directories, if they don't exist. - for dir in ./src ./lib-src ./cpp ./oldXMenu ./lwlib ./etc ; do - if [ ! -d ${dir} ]; then - mkdir ${dir} - fi - done - #### Given the configuration name, set machfile and opsysfile to the #### names of the m/*.h and s/*.h files we should use. --- 520,523 ---- *************** *** 446,454 **** ### Canonicalize the configuration name. ! echo "Checking the configuration name" ! if canonical=`${srcdir}/config.sub "${configuration}"` ; then : ; else ! exit $? fi ### If you add support for a new configuration, add code to this ### switch statement to recognize your configuration name and select --- 524,577 ---- ### Canonicalize the configuration name. ! ! ac_aux_dir= ! for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do ! if test -f $ac_dir/install-sh; then ! ac_aux_dir=$ac_dir ! ac_install_sh="$ac_aux_dir/install-sh -c" ! break ! elif test -f $ac_dir/install.sh; then ! ac_aux_dir=$ac_dir ! ac_install_sh="$ac_aux_dir/install.sh -c" ! break ! fi ! done ! if test -z "$ac_aux_dir"; then ! { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } fi + ac_config_guess=$ac_aux_dir/config.guess + ac_config_sub=$ac_aux_dir/config.sub + ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + + # Make sure we can run config.sub. + if $ac_config_sub sun4 >/dev/null 2>&1; then : + else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } + fi + + echo $ac_n "checking host system type""... $ac_c" 1>&6 + + host_alias=$host + case "$host_alias" in + NONE) + case $nonopt in + NONE) + if host_alias=`$ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; + esac + + host=`$ac_config_sub $host_alias` + host_cpu=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` + host_vendor=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'` + host_os=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'` + echo "$ac_t""$host" 1>&6 + canonical=$host + configuration=$host_alias + + ### If you add support for a new configuration, add code to this ### switch statement to recognize your configuration name and select *************** *** 474,478 **** ### confusion between `system' and `release' levels'." ! machine='' opsys='' unported='false' case "${canonical}" in --- 597,601 ---- ### confusion between `system' and `release' levels'." ! machine='' opsys='' unported=no case "${canonical}" in *************** *** 491,494 **** --- 614,625 ---- ;; + ## Acorn RISCiX: + arm-acorn-riscix1.1* ) + machine=acorn opsys=riscix1-1 + ;; + arm-acorn-riscix1.2* | arm-acorn-riscix ) + machine=acorn opsys=riscix1-2 + ;; + ## Alliant machines ## Strictly speaking, we need the version of the alliant operating *************** *** 504,507 **** --- 635,642 ---- ;; + alpha-dec-osf* ) + machine=alpha opsys=osf1 + ;; + ## Altos 3068 m68*-altos-sysv* ) *************** *** 514,520 **** ;; ! ## Appallings - I mean, Apollos - running Domain ! m68*-apollo* ) ! machine=apollo opsys=bsd4-2 ;; --- 649,655 ---- ;; ! ## Apollo, Domain/OS ! m68*-apollo-* ) ! machine=apollo opsys=bsd4-3 ;; *************** *** 605,612 **** m68k-motorola-sysv* | m68000-motorola-sysv* ) machine=delta opsys=usg5-3 ! if [ -z "`type gnucc | grep 'not found'`" ] ! then CC=gnucc else ! if [ -z "`type gcc | grep 'not found'`" ] then CC=gcc else CC=cc --- 740,751 ---- m68k-motorola-sysv* | m68000-motorola-sysv* ) machine=delta opsys=usg5-3 ! if test -z "`type gnucc | grep 'not found'`" ! then ! if test -s /etc/167config ! then CC="gnucc -m68040" ! else CC="gnucc -m68881" ! fi else ! if test -z "`type gcc | grep 'not found'`" then CC=gcc else CC=cc *************** *** 615,619 **** ;; m88k-motorola-sysv4* ) ! machine=delta88k opsys=usg5-4 ;; m88k-motorola-sysv* | m88k-motorola-m88kbcs* ) --- 754,762 ---- ;; m88k-motorola-sysv4* ) ! # jbotte@bnr.ca says that UNIX_System_V 4.0 R40V4.3 m88k mc88110 ! # needs POSIX_SIGNALS and therefore needs usg5-4-2. ! # I hope there are not other 4.0 versions for this machine ! # which really need usg5-4 instead. ! machine=delta88k opsys=usg5-4-2 ;; m88k-motorola-sysv* | m88k-motorola-m88kbcs* ) *************** *** 675,679 **** machine=hp9000s300 opsys=bsd4-3 ;; ! ## HP/UX 7, 8 and 9 are supported on these machines. m68*-hp-hpux* ) case "`uname -r`" in --- 818,822 ---- machine=hp9000s300 opsys=bsd4-3 ;; ! ## HP/UX 7, 8, 9, and 10 are supported on these machines. m68*-hp-hpux* ) case "`uname -r`" in *************** *** 683,686 **** --- 826,830 ---- *.08.* ) machine=hp9000s300 opsys=hpux8 ;; *.09.* ) machine=hp9000s300 opsys=hpux9 ;; + *.10.* ) machine=hp9000s300 opsys=hpux9shr ;; *) machine=hp9000s300 opsys=hpux ;; esac *************** *** 700,703 **** --- 844,850 ---- machine=hp800 opsys=hpux9 ;; + hppa*-hp-hpux10* ) + machine=hp800 opsys=hpux9shr + ;; ## HP 9000 series 700 and 800, running HP/UX *************** *** 738,741 **** --- 885,894 ---- machine=ibmrs6000 opsys=aix3-2-5 ;; + rs6000-ibm-aix4.1* | powerpc-ibm-aix4.1* ) + machine=ibmrs6000 opsys=aix4-1 + ;; + rs6000-ibm-aix4* | powerpc-ibm-aix4* ) + machine=ibmrs6000 opsys=aix4 + ;; rs6000-ibm-aix* | powerpc-ibm-aix* ) machine=ibmrs6000 opsys=aix3-2 *************** *** 781,785 **** ;; ! ## Sequent Symmetry i[345]86-sequent-bsd* ) machine=symmetry opsys=bsd4-3 --- 934,938 ---- ;; ! ## Sequent Symmetry running Dynix i[345]86-sequent-bsd* ) machine=symmetry opsys=bsd4-3 *************** *** 786,795 **** ;; ## Unspecified sysv on an ncr machine defaults to svr4.2. ## (Plain usg5-4 doesn't turn on POSIX signals, which we need.) i[345]86-ncr-sysv* ) ! machine=intel386 opsys=usg5-4-2 ;; ## Intel 860 i860-*-sysv4* ) --- 939,960 ---- ;; + ## Sequent Symmetry running DYNIX/ptx + ## Use the old cpp rather than the newer ANSI one. + i[345]86-sequent-ptx* ) + machine=sequent-ptx opsys=ptx + NON_GNU_CPP="/lib/cpp" + ;; + ## Unspecified sysv on an ncr machine defaults to svr4.2. ## (Plain usg5-4 doesn't turn on POSIX signals, which we need.) i[345]86-ncr-sysv* ) ! machine=ncr386 opsys=usg5-4-2 ;; + ## Intel Paragon OSF/1 + i860-intel-osf1* ) + machine=paragon opsys=osf1 NON_GNU_CPP=/usr/mach/lib/cpp + ;; + ## Intel 860 i860-*-sysv4* ) *************** *** 903,911 **** machine=iris4d opsys=irix3-3 ;; ! mips-sgi-irix5* ) machine=iris4d opsys=irix5-0 ;; ! mips-sgi-irix4* | mips-sgi-irix* ) ! machine=iris4d opsys=irix4-0 ;; --- 1068,1082 ---- machine=iris4d opsys=irix3-3 ;; ! mips-sgi-irix4* ) ! machine=iris4d opsys=irix4-0 ! ;; ! mips-sgi-irix6* ) ! machine=iris4d opsys=irix6-0 ! ;; ! mips-sgi-irix5.[01]* ) machine=iris4d opsys=irix5-0 ;; ! mips-sgi-irix5* | mips-sgi-irix* ) ! machine=iris4d opsys=irix5-2 ;; *************** *** 917,927 **** machine=news opsys=bsd4-3 ;; ! m68*-sony-newsos3*) machine=news opsys=bsd4-3 ;; ! mips-sony-bsd* | mips-sony-newsos4* ) machine=news-risc opsys=bsd4-3 ;; ! mips-sony-newsos* ) machine=news-risc opsys=newsos5 ;; --- 1088,1098 ---- machine=news opsys=bsd4-3 ;; ! m68*-sony-newsos3* | m68*-sony-news3*) machine=news opsys=bsd4-3 ;; ! mips-sony-bsd* | mips-sony-newsos4* | mips-sony-news4*) machine=news-risc opsys=bsd4-3 ;; ! mips-sony-news* ) machine=news-risc opsys=newsos5 ;; *************** *** 941,945 **** i[345]86-*-* ) machine=intel386 ;; sparc* ) machine=sparc ;; ! * ) unported=true ;; esac case "${canonical}" in --- 1112,1116 ---- i[345]86-*-* ) machine=intel386 ;; sparc* ) machine=sparc ;; ! * ) unported=yes ;; esac case "${canonical}" in *************** *** 947,955 **** i[345]86-*-sunos4 ) opsys=sunos4-0 ;; *-sunos4.0* ) opsys=sunos4-0 ;; ! *-sunos4.1.3* ) opsys=sunos4-1-3 ! NON_GCC_TEST_OPTIONS=-Bstatic ! GCC_TEST_OPTIONS=-static ;; - *-sunos4shr* ) opsys=sunos4shr ;; *-sunos4* | *-sunos ) opsys=sunos4-1 NON_GCC_TEST_OPTIONS=-Bstatic --- 1118,1124 ---- i[345]86-*-sunos4 ) opsys=sunos4-0 ;; *-sunos4.0* ) opsys=sunos4-0 ;; ! *-sunos4.1.3* | *-sunos4shr* ) opsys=sunos4shr ! NON_GNU_CPP=/usr/lib/cpp ;; *-sunos4* | *-sunos ) opsys=sunos4-1 NON_GCC_TEST_OPTIONS=-Bstatic *************** *** 964,967 **** --- 1133,1140 ---- NON_GNU_CPP=/usr/ccs/lib/cpp ;; + *-sunos5.5* | *-solaris2.5* ) + opsys=sol2-5 + NON_GNU_CPP=/usr/ccs/lib/cpp + ;; *-sunos5* | *-solaris* ) opsys=sol2 *************** *** 1023,1031 **** *-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* ) opsys=bsd4-2 ;; *-bsd4.3* | *-ultrix* ) opsys=bsd4-3 ;; - *-bsd386* | *-bsdi* ) opsys=bsd386 ;; *-sysv[01]* | *-sysvr[01]* ) opsys=usg5-0 ;; *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;; *-vms* ) opsys=vms ;; ! * ) unported=true esac ;; --- 1196,1203 ---- *-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* ) opsys=bsd4-2 ;; *-bsd4.3* | *-ultrix* ) opsys=bsd4-3 ;; *-sysv[01]* | *-sysvr[01]* ) opsys=usg5-0 ;; *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;; *-vms* ) opsys=vms ;; ! * ) unported=yes esac ;; *************** *** 1050,1053 **** --- 1222,1226 ---- *-isc2.2* ) opsys=isc2-2 ;; *-isc4.0* ) opsys=isc4-0 ;; + *-isc4.* ) opsys=isc4-1 ;; *-isc* ) opsys=isc3-0 ;; *-esix5* ) opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;; *************** *** 1056,1060 **** *-linux* ) opsys=linux ;; *-sco3.2v4* ) opsys=sco4 ; NON_GNU_CPP=/lib/cpp ;; ! *-bsd386* | *-bsdi* ) opsys=bsd386 ;; *-386bsd* ) opsys=386bsd ;; *-freebsd* ) opsys=freebsd ;; --- 1229,1234 ---- *-linux* ) opsys=linux ;; *-sco3.2v4* ) opsys=sco4 ; NON_GNU_CPP=/lib/cpp ;; ! *-bsd386* | *-bsdi1* ) opsys=bsd386 ;; ! *-bsdi2* ) opsys=bsdos2 ;; *-386bsd* ) opsys=386bsd ;; *-freebsd* ) opsys=freebsd ;; *************** *** 1065,1069 **** * ) ! unported=true ;; esac --- 1239,1243 ---- * ) ! unported=yes ;; esac *************** *** 1075,1079 **** ### runs, it's cleaner to make it explicit in the case statement ### above. ! if [ x"${opsys}" = x ]; then case "${canonical}" in *-gnu* ) opsys=gnu ;; --- 1249,1253 ---- ### runs, it's cleaner to make it explicit in the case statement ### above. ! if test x"${opsys}" = x; then case "${canonical}" in *-gnu* ) opsys=gnu ;; *************** *** 1089,1095 **** NON_GNU_CPP=/usr/lib/cpp opsys=usg5-4 ;; ! *-sysv4.2 | *-sysvr4.2 ) opsys=usg5-4-2 ;; * ) ! unported=true ;; esac --- 1263,1273 ---- NON_GNU_CPP=/usr/lib/cpp opsys=usg5-4 ;; ! *-sysv4.2 | *-sysvr4.2 ) ! if [ x$NON_GNU_CPP = x ]; then ! NON_GNU_CPP=/usr/ccs/lib/cpp ! fi ! opsys=usg5-4-2 ;; * ) ! unported=yes ;; esac *************** *** 1096,1104 **** fi ! if $unported ; then ! (echo "${progname}: Emacs hasn't been ported to \`${canonical}' systems." ! echo "${progname}: Check \`etc/MACHINES' for recognized configuration names." ! ) >&2 ! exit 1 fi --- 1274,1281 ---- fi ! ! if test $unported = yes; then ! { echo "configure: error: Emacs hasn't been ported to \`${canonical}' systems. ! Check \`etc/MACHINES' for recognized configuration names." 1>&2; exit 1; } fi *************** *** 1107,1189 **** - trap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15 - trap 'rm -fr confdefs* $ac_clean_files' 0 - - # Save the original args if we used an alternate arg parser. - ac_configure_temp="${configure_args-$*}" - # Strip out --no-create and --norecursion so they don't pile up. - configure_args= - for ac_arg in $ac_configure_temp; do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -norecursion | --norecursion | --norecursio | --norecursi \ - | --norecurs | --norecur | --norecu | --norec | --nore | --nor) ;; - *) configure_args="$configure_args $ac_arg" ;; - esac - done - - # NLS nuisances. - # These must not be set unconditionally because not all systems understand - # e.g. LANG=C (notably SCO). - if test "${LC_ALL+set}" = 'set'; then LC_ALL=C; export LC_ALL; fi - if test "${LANG+set}" = 'set'; then LANG=C; export LANG; fi - - # confdefs.h avoids OS command line length limits that DEFS can exceed. - rm -rf conftest* confdefs.h - # AIX cpp loses on an empty file, so make sure it contains at least a newline. - echo > confdefs.h - - # A filename unique to this package, relative to the directory that - # configure is in, which we can look for to find out if srcdir is correct. - ac_unique_file=lisp - - # Find the source files, if location was not specified. - if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then `..'. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi - fi - if test ! -r $srcdir/$ac_unique_file; then - if test x$ac_srcdir_defaulted = xyes; then - echo "configure: can not find sources in ${ac_confdir} or .." >&2; exit 1 - else - echo "configure: can not find sources in ${srcdir}" >&2; exit 1 - fi - fi - ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='${CPP}' - ac_compile='${CC-cc} $CFLAGS $LDFLAGS conftest.${ac_ext} -o conftest $LIBS >/dev/null 2>&1' - - - - - #### Choose a compiler. ! if [ "x$CC" = x ] ! then true ! else cc_specified=1 ! fi case ${with_gcc} in ! "yes" ) CC="gcc" GCC=1 ;; ! "no" ) ! if [ "x$CC" = x ] ! then CC=cc; ! else true; ! fi ! ;; ! * ) ! if test -z "$CC"; then ! # Extract the first word of `gcc', so it can be a program name with args. ! set ac_dummy gcc; ac_word=$2 ! test -n "$silent" || echo "checking for $ac_word" IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do --- 1284,1302 ---- #### Choose a compiler. ! test -n "$CC" && cc_specified=yes case ${with_gcc} in ! "yes" ) CC="gcc" GCC=yes ;; ! "no" ) : ${CC=cc} ;; ! * ) # Extract the first word of "gcc", so it can be a program name with args. ! set dummy gcc; 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}:" for ac_dir in $PATH; do *************** *** 1190,1194 **** test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ! CC="gcc" break fi --- 1303,1307 ---- test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ! ac_cv_prog_CC="gcc" break fi *************** *** 1195,1222 **** done IFS="$ac_save_ifs" fi ! test -z "$CC" && CC="cc" ! test -n "$CC" && test -n "$verbose" && echo " setting CC to $CC" ! # Find out if we are using GNU C, under whatever name. ! cat > conftest.c < conftest.out 2>&1 ! if egrep yes conftest.out >/dev/null 2>&1; then ! GCC=1 # For later tests. fi rm -f conftest* ! esac #### Some systems specify a CPP to use unless we are using GCC. #### Now that we know whether we are using GCC, we can decide whether #### to use that one. ! if [ "x$NON_GNU_CPP" = x ] || [ x$GCC = x1 ] || [ "x$CPP" != x ] ! then true ! else CPP="$NON_GNU_CPP" fi --- 1308,1378 ---- done IFS="$ac_save_ifs" + test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="cc" + 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 ! ! echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.c <&5 | egrep yes >/dev/null 2>&1; then ! ac_cv_prog_gcc=yes ! else ! ac_cv_prog_gcc=no ! fi ! fi ! echo "$ac_t""$ac_cv_prog_gcc" 1>&6 ! if test $ac_cv_prog_gcc = yes; then ! GCC=yes ! if test "${CFLAGS+set}" != set; then ! echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_prog_gcc_g'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! echo 'void f(){}' > conftest.c ! if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then ! ac_cv_prog_gcc_g=yes ! else ! ac_cv_prog_gcc_g=no fi rm -f conftest* ! ! fi ! echo "$ac_t""$ac_cv_prog_gcc_g" 1>&6 ! if test $ac_cv_prog_gcc_g = yes; then ! CFLAGS="-g -O" ! else ! CFLAGS="-O" ! fi ! fi ! else ! GCC= ! test "${CFLAGS+set}" = set || CFLAGS="-g" ! fi ! esac + # On Suns, sometimes $CPP names a directory. + if test -n "$CPP" && test -d "$CPP"; then + CPP= + fi + #### Some systems specify a CPP to use unless we are using GCC. #### Now that we know whether we are using GCC, we can decide whether #### to use that one. ! if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x ! then CPP="$NON_GNU_CPP" fi *************** *** 1225,1235 **** #### Now that we know whether we are using GCC, we can decide whether #### to use that one. ! if [ "x$NON_GNU_CC" = x ] || [ x$GCC = x1 ] || [ x$cc_specified = x1 ] ! then true ! else CC="$NON_GNU_CC" fi ! if [ x$GCC = x1 ] && [ "x$GCC_TEST_OPTIONS" != x ] then CC="$CC $GCC_TEST_OPTIONS" --- 1381,1391 ---- #### Now that we know whether we are using GCC, we can decide whether #### to use that one. ! if test "x$NON_GNU_CC" != x && test x$GCC != xyes && ! test x$cc_specified != xyes ! then CC="$NON_GNU_CC" fi ! if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x then CC="$CC $GCC_TEST_OPTIONS" *************** *** 1236,1240 **** fi ! if [ x$GCC = x ] && [ "x$NON_GCC_TEST_OPTIONS" != x ] then CC="$CC $NON_GCC_TEST_OPTIONS" --- 1392,1396 ---- fi ! if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x then CC="$CC $NON_GCC_TEST_OPTIONS" *************** *** 1245,1289 **** #### #undef clause to src/config.h.in for autoconf to modify. ! test -n "$silent" || echo "checking for ln -s" ! rm -f conftestdata if ln -s X conftestdata 2>/dev/null then rm -f conftestdata ! LN_S="ln -s" else ! LN_S=ln fi ! ! test -n "$silent" || echo "checking how to run the C preprocessor" if test -z "$CPP"; then ! # This must be in double quotes, not single quotes, because CPP may get ! # substituted into the Makefile and ``${CC-cc}'' will simply confuse ! # make. It must be expanded now. CPP="${CC-cc} -E" ! cat > conftest.${ac_ext} < Syntax Error EOF ! # Some shells (Coherent) do redirections in the wrong order, so need ! # the parens. ! ac_err=`eval "($ac_cpp conftest.${ac_ext} >/dev/null) 2>&1"` if test -z "$ac_err"; then : else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" ! cat > conftest.${ac_ext} < Syntax Error EOF ! # Some shells (Coherent) do redirections in the wrong order, so need ! # the parens. ! ac_err=`eval "($ac_cpp conftest.${ac_ext} >/dev/null) 2>&1"` if test -z "$ac_err"; then : else rm -rf conftest* CPP=/lib/cpp --- 1401,1464 ---- #### #undef clause to src/config.h.in for autoconf to modify. ! echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! rm -f conftestdata if ln -s X conftestdata 2>/dev/null then rm -f conftestdata ! ac_cv_prog_LN_S="ln -s" else ! ac_cv_prog_LN_S=ln fi ! fi ! LN_S="$ac_cv_prog_LN_S" ! if test "$ac_cv_prog_LN_S" = "ln -s"; then ! echo "$ac_t""yes" 1>&6 ! else ! echo "$ac_t""no" 1>&6 ! fi ! echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! # On Suns, sometimes $CPP names a directory. ! if test -n "$CPP" && test -d "$CPP"; then ! CPP= ! fi if test -z "$CPP"; then ! if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! # This must be in double quotes, not single quotes, because CPP may get ! # substituted into the Makefile and "${CC-cc}" will confuse make. CPP="${CC-cc} -E" ! # On the NeXT, cc -E runs the code through the compiler's parser, ! # 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 : else + echo "$ac_err" >&5 rm -rf conftest* 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 : else + echo "$ac_err" >&5 rm -rf conftest* CPP=/lib/cpp *************** *** 1292,1323 **** fi rm -f conftest* fi ! test -n "$verbose" && echo " setting CPP to $CPP" ! # Make sure to not get the incompatible SysV /etc/install and ! # /usr/sbin/install, which might be in PATH before a BSD-like install, ! # or the SunOS /usr/etc/install directory, or the AIX /bin/install, ! # or the AFS install, which mishandles nonexistent args, or ! # /usr/ucb/install on SVR4, which tries to use the nonexistent group ! # `staff', or /sbin/install on IRIX which has incompatible command-line ! # syntax. Sigh. ! # ! # On most BSDish systems install is in /usr/bin, not /usr/ucb ! # anyway. ! # This turns out not to be true, so the mere pathname isn't an indication ! # of whether the program works. What we really need is a set of tests for ! # the install program to see if it actually works in all the required ways. ! # ! # Avoid using ./install, which might have been erroneously created ! # by make from ./install.sh. ! if test -z "${INSTALL}"; then ! test -n "$silent" || echo "checking for a BSD compatible install" ! IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do ! case "$ac_dir" in ! ''|.|/etc|/sbin|/usr/sbin|/usr/etc|/usr/afsws/bin|/usr/ucb) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. ! for ac_prog in installbsd scoinst install; do if test -f $ac_dir/$ac_prog; then if test $ac_prog = install && --- 1467,1501 ---- fi rm -f conftest* + ac_cv_prog_CPP="$CPP" + fi + CPP="$ac_cv_prog_CPP" + else + ac_cv_prog_CPP="$CPP" fi ! echo "$ac_t""$CPP" 1>&6 ! # Find a good install program. We prefer a C program (faster), ! # so one script is as good as another. But avoid the broken or ! # incompatible versions: ! # SysV /etc/install, /usr/sbin/install ! # SunOS /usr/etc/install ! # IRIX /sbin/install ! # AIX /bin/install ! # AFS /usr/afsws/bin/install, which mishandles nonexistent args ! # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" ! # ./install, which can be erroneously created by make from ./install.sh. ! echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! if test -z "$INSTALL"; then ! if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do ! # Account for people who put trailing slashes in PATH elements. ! case "$ac_dir/" in ! /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. ! for ac_prog in ginstall installbsd scoinst install; do if test -f $ac_dir/$ac_prog; then if test $ac_prog = install && *************** *** 1327,1331 **** : else ! INSTALL="$ac_dir/$ac_prog -c" break 2 fi --- 1505,1509 ---- : else ! ac_cv_path_install="$ac_dir/$ac_prog -c" break 2 fi *************** *** 1336,1368 **** done IFS="$ac_save_ifs" - fi - - if test -z "$INSTALL"; then # As a last resort, use the slow shell script. ! for ac_dir in ${srcdir} ${srcdir}/.. ${srcdir}/../..; do ! if test -f $ac_dir/install.sh; then ! INSTALL="$ac_dir/install.sh -c"; break ! fi ! done fi ! if test -z "$INSTALL"; then ! echo "configure: can not find install.sh in ${srcdir} or ${srcdir}/.. or ${srcdir}/../.." >&2; exit 1 fi ! test -n "$verbose" && echo " setting INSTALL to $INSTALL" ! # Use test -z because SunOS4 sh mishandles ${INSTALL_PROGRAM-'${INSTALL}'}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - test -n "$verbose" && echo " setting INSTALL_PROGRAM to $INSTALL_PROGRAM" test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - test -n "$verbose" && echo " setting INSTALL_DATA to $INSTALL_DATA" for ac_prog in 'bison -y' byacc do ! if test -z "$YACC"; then ! # Extract the first word of `$ac_prog', so it can be a program name with args. ! set ac_dummy $ac_prog; ac_word=$2 ! test -n "$silent" || echo "checking for $ac_word" IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do --- 1514,1541 ---- done IFS="$ac_save_ifs" # As a last resort, use the slow shell script. ! test -z "$ac_cv_path_install" && ac_cv_path_install="$ac_install_sh" fi ! INSTALL="$ac_cv_path_install" fi ! echo "$ac_t""$INSTALL" 1>&6 ! # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' for ac_prog in 'bison -y' byacc do ! # Extract the first word of "$ac_prog", so it can be a program name with args. ! set dummy $ac_prog; ac_word=$2 ! echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! if test -n "$YACC"; then ! ac_cv_prog_YACC="$YACC" # Let the user override the test. ! else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do *************** *** 1369,1373 **** test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ! YACC="$ac_prog" break fi --- 1542,1546 ---- test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ! ac_cv_prog_YACC="$ac_prog" break fi *************** *** 1375,1380 **** IFS="$ac_save_ifs" fi ! ! test -n "$YACC" && test -n "$verbose" && echo " setting YACC to $YACC" test -n "$YACC" && break --- 1548,1558 ---- IFS="$ac_save_ifs" fi ! fi ! YACC="$ac_cv_prog_YACC" ! if test -n "$YACC"; then ! echo "$ac_t""$YACC" 1>&6 ! else ! echo "$ac_t""no" 1>&6 ! fi test -n "$YACC" && break *************** *** 1383,1419 **** ! for ac_hdr in sys/timeb.h sys/time.h unistd.h ! do ! ac_tr_hdr=HAVE_`echo $ac_hdr | tr '[a-z]./' '[A-Z]__'` ! test -n "$silent" || echo "checking for ${ac_hdr}" ! cat > conftest.${ac_ext} < ! EOF ! # Some shells (Coherent) do redirections in the wrong order, so need ! # the parens. ! ac_err=`eval "($ac_cpp conftest.${ac_ext} >/dev/null) 2>&1"` ! if test -z "$ac_err"; then rm -rf conftest* ! ! { ! test -n "$verbose" && \ ! echo " defining ${ac_tr_hdr}" ! echo "#define" ${ac_tr_hdr} "1" >> confdefs.h ! DEFS="$DEFS -D${ac_tr_hdr}=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}${ac_tr_hdr}\${ac_dB}${ac_tr_hdr}\${ac_dC}1\${ac_dD} ! \${ac_uA}${ac_tr_hdr}\${ac_uB}${ac_tr_hdr}\${ac_uC}1\${ac_uD} ! \${ac_eA}${ac_tr_hdr}\${ac_eB}${ac_tr_hdr}\${ac_eC}1\${ac_eD} ! " ! } fi rm -f conftest* done ! test -n "$silent" || echo "checking for ANSI C header files" ! cat > conftest.${ac_ext} < --- 1561,1655 ---- + echo $ac_n "checking for AIX""... $ac_c" 1>&6 + cat > conftest.$ac_ext <&5 | + egrep "yes" >/dev/null 2>&1; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF + #define _ALL_SOURCE 1 + EOF ! else rm -rf conftest* ! echo "$ac_t""no" 1>&6 ! fi ! rm -f conftest* + + for ac_hdr in sys/select.h sys/timeb.h sys/time.h unistd.h utime.h + do + ac_safe=`echo "$ac_hdr" | tr './\055' '___'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + 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 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" + else + echo "$ac_err" >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* + fi + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | tr '[a-z]./\055' '[A-Z]___'` + cat >> confdefs.h <&6 + fi done ! # If we cannot run a trivial program, we must be cross compiling. ! echo $ac_n "checking whether cross-compiling""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_c_cross'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! if test "$cross_compiling" = yes; then ! ac_cv_c_cross=yes ! else ! cat > conftest.$ac_ext </dev/null; then ! ac_cv_c_cross=no ! else ! ac_cv_c_cross=yes ! fi ! fi ! rm -fr conftest* ! fi ! cross_compiling=$ac_cv_c_cross ! echo "$ac_t""$ac_cv_c_cross" 1>&6 ! ! echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < *************** *** 1422,1438 **** #include EOF ! # Some shells (Coherent) do redirections in the wrong order, so need ! # the parens. ! ac_err=`eval "($ac_cpp conftest.${ac_ext} >/dev/null) 2>&1"` if test -z "$ac_err"; then rm -rf conftest* # SunOS 4.x string.h does not declare mem*, contrary to ANSI. ! echo '#include "confdefs.h" ! #include ' > conftest.${ac_ext} ! eval "$ac_cpp conftest.${ac_ext} > conftest.out 2>&1" ! if egrep "memchr" conftest.out >/dev/null 2>&1; then rm -rf conftest* ! # SGI's /bin/cc from Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. ! cat > conftest.${ac_ext} < --- 1658,1716 ---- #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 rm -rf conftest* + ac_cv_header_stdc=yes + else + echo "$ac_err" >&5 + rm -rf conftest* + ac_cv_header_stdc=no + fi + rm -f conftest* + + if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. ! cat > conftest.$ac_ext < ! EOF ! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! egrep "memchr" >/dev/null 2>&1; then ! : ! else ! rm -rf conftest* ! ac_cv_header_stdc=no ! fi ! rm -f conftest* ! ! fi ! ! if test $ac_cv_header_stdc = yes; then ! # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. ! cat > conftest.$ac_ext < ! EOF ! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! egrep "free" >/dev/null 2>&1; then ! : ! else rm -rf conftest* ! ac_cv_header_stdc=no ! fi ! rm -f conftest* ! ! fi ! ! if test $ac_cv_header_stdc = yes; then ! # /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 < *************** *** 1439,1443 **** #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') #define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) ! #define XOR(e,f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); --- 1717,1721 ---- #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') #define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) ! #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); *************** *** 1445,1485 **** EOF ! eval $ac_compile if test -s conftest && (./conftest; exit) 2>/dev/null; then ! # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. ! echo '#include "confdefs.h" ! #include ' > conftest.${ac_ext} ! eval "$ac_cpp conftest.${ac_ext} > conftest.out 2>&1" ! if egrep "free" conftest.out >/dev/null 2>&1; then ! rm -rf conftest* ! ! { ! test -n "$verbose" && \ ! echo " defining STDC_HEADERS" ! echo "#define" STDC_HEADERS "1" >> confdefs.h ! DEFS="$DEFS -DSTDC_HEADERS=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}STDC_HEADERS\${ac_dB}STDC_HEADERS\${ac_dC}1\${ac_dD} ! \${ac_uA}STDC_HEADERS\${ac_uB}STDC_HEADERS\${ac_uC}1\${ac_uD} ! \${ac_eA}STDC_HEADERS\${ac_eB}STDC_HEADERS\${ac_eC}1\${ac_eD} ! " ! } ! ! fi - rm -f conftest* - - fi rm -fr conftest* - fi ! rm -f conftest* ! fi - rm -f conftest* ! test -n "$silent" || echo "checking for whether time.h and sys/time.h may both be included" ! cat > conftest.${ac_ext} < --- 1723,1750 ---- EOF ! eval $ac_link if test -s conftest && (./conftest; exit) 2>/dev/null; then ! : ! else ! ac_cv_header_stdc=no fi fi rm -fr conftest* fi ! fi ! echo "$ac_t""$ac_cv_header_stdc" 1>&6 ! if test $ac_cv_header_stdc = yes; then ! cat >> confdefs.h <<\EOF ! #define STDC_HEADERS 1 ! EOF fi ! echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < *************** *** 1487,1515 **** #include int main() { return 0; } ! int t() { struct tm *tp;; return 0; } EOF if eval $ac_compile; then rm -rf conftest* ! ! { ! test -n "$verbose" && \ ! echo " defining TIME_WITH_SYS_TIME" ! echo "#define" TIME_WITH_SYS_TIME "1" >> confdefs.h ! DEFS="$DEFS -DTIME_WITH_SYS_TIME=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}TIME_WITH_SYS_TIME\${ac_dB}TIME_WITH_SYS_TIME\${ac_dC}1\${ac_dD} ! \${ac_uA}TIME_WITH_SYS_TIME\${ac_uB}TIME_WITH_SYS_TIME\${ac_uC}1\${ac_uD} ! \${ac_eA}TIME_WITH_SYS_TIME\${ac_eB}TIME_WITH_SYS_TIME\${ac_eC}1\${ac_eD} ! " ! } fi - rm -f conftest* ! test -n "$silent" || echo "checking for sys_siglist declaration in signal.h or unistd.h" ! cat > conftest.${ac_ext} < ! /* NetBSD declares sys_siglist in . */ #ifdef HAVE_UNISTD_H #include --- 1752,1787 ---- #include int main() { return 0; } ! int t() { ! struct tm *tp; ! ; return 0; } EOF if eval $ac_compile; then rm -rf conftest* ! ac_cv_header_time=yes ! else ! rm -rf conftest* ! ac_cv_header_time=no ! fi ! rm -f conftest* + fi + echo "$ac_t""$ac_cv_header_time" 1>&6 + if test $ac_cv_header_time = yes; then + cat >> confdefs.h <<\EOF + #define TIME_WITH_SYS_TIME 1 + EOF fi ! echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_decl_sys_siglist'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < #include ! /* NetBSD declares sys_siglist in unistd.h. */ #ifdef HAVE_UNISTD_H #include *************** *** 1516,1536 **** #endif int main() { return 0; } ! int t() { char *msg = *(sys_siglist + 1);; return 0; } EOF if eval $ac_compile; then rm -rf conftest* ! ! { ! test -n "$verbose" && \ ! echo " defining SYS_SIGLIST_DECLARED" ! echo "#define" SYS_SIGLIST_DECLARED "1" >> confdefs.h ! DEFS="$DEFS -DSYS_SIGLIST_DECLARED=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}SYS_SIGLIST_DECLARED\${ac_dB}SYS_SIGLIST_DECLARED\${ac_dC}1\${ac_dD} ! \${ac_uA}SYS_SIGLIST_DECLARED\${ac_uB}SYS_SIGLIST_DECLARED\${ac_uC}1\${ac_uD} ! \${ac_eA}SYS_SIGLIST_DECLARED\${ac_eB}SYS_SIGLIST_DECLARED\${ac_eC}1\${ac_eD} ! " ! } fi rm -f conftest* --- 1788,1846 ---- #endif int main() { return 0; } ! int t() { ! char *msg = *(sys_siglist + 1); ! ; return 0; } EOF if eval $ac_compile; then rm -rf conftest* ! ac_cv_decl_sys_siglist=yes ! else ! rm -rf conftest* ! ac_cv_decl_sys_siglist=no ! fi ! rm -f conftest* ! ! fi ! echo "$ac_t""$ac_cv_decl_sys_siglist" 1>&6 ! if test $ac_cv_decl_sys_siglist = yes; then ! cat >> confdefs.h <<\EOF ! #define SYS_SIGLIST_DECLARED 1 ! EOF ! ! fi ! + echo $ac_n "checking for struct utimbuf""... $ac_c" 1>&6 + cat > conftest.$ac_ext < + #include + #else + #ifdef HAVE_SYS_TIME_H + #include + #else + #include + #endif + #endif + #ifdef HAVE_UTIME_H + #include + #endif + int main() { return 0; } + int t() { + static struct utimbuf x; x.actime = x.modtime; + ; return 0; } + EOF + if eval $ac_compile; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <<\EOF + #define HAVE_STRUCT_UTIMBUF 1 + EOF + else + rm -rf conftest* + echo "$ac_t""no" 1>&6 fi rm -f conftest* *************** *** 1537,1542 **** ! test -n "$silent" || echo "checking for return type of signal handlers" ! cat > conftest.${ac_ext} < --- 1847,1856 ---- ! echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < *************** *** 1545,1677 **** #undef signal #endif ! extern void (*signal ()) (); int main() { return 0; } ! int t() { int i;; return 0; } EOF if eval $ac_compile; then rm -rf conftest* ! ! { ! test -n "$verbose" && \ ! echo " defining" RETSIGTYPE to be "void" ! echo "#define" RETSIGTYPE "void" >> confdefs.h ! DEFS="$DEFS -DRETSIGTYPE=void" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}RETSIGTYPE\${ac_dB}RETSIGTYPE\${ac_dC}void\${ac_dD} ! \${ac_uA}RETSIGTYPE\${ac_uB}RETSIGTYPE\${ac_uC}void\${ac_uD} ! \${ac_eA}RETSIGTYPE\${ac_eB}RETSIGTYPE\${ac_eC}void\${ac_eD} ! " ! } ! ! else rm -rf conftest* ! ! { ! test -n "$verbose" && \ ! echo " defining" RETSIGTYPE to be "int" ! echo "#define" RETSIGTYPE "int" >> confdefs.h ! DEFS="$DEFS -DRETSIGTYPE=int" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}RETSIGTYPE\${ac_dB}RETSIGTYPE\${ac_dC}int\${ac_dD} ! \${ac_uA}RETSIGTYPE\${ac_uB}RETSIGTYPE\${ac_uC}int\${ac_uD} ! \${ac_eA}RETSIGTYPE\${ac_eB}RETSIGTYPE\${ac_eC}int\${ac_eD} ! " ! } ! fi rm -f conftest* ! test -n "$silent" || echo "checking for struct tm in time.h" ! cat > conftest.${ac_ext} < #include int main() { return 0; } ! int t() { struct tm *tp; tp->tm_sec;; return 0; } EOF if eval $ac_compile; then - : - else rm -rf conftest* ! ! { ! test -n "$verbose" && \ ! echo " defining TM_IN_SYS_TIME" ! echo "#define" TM_IN_SYS_TIME "1" >> confdefs.h ! DEFS="$DEFS -DTM_IN_SYS_TIME=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}TM_IN_SYS_TIME\${ac_dB}TM_IN_SYS_TIME\${ac_dC}1\${ac_dD} ! \${ac_uA}TM_IN_SYS_TIME\${ac_uB}TM_IN_SYS_TIME\${ac_uC}1\${ac_uD} ! \${ac_eA}TM_IN_SYS_TIME\${ac_eB}TM_IN_SYS_TIME\${ac_eC}1\${ac_eD} ! " ! } fi rm -f conftest* ! ac_decl='#include ! ' ! case "$DEFS" in ! *TM_IN_SYS_TIME*) ac_decl="$ac_decl ! #include ! " ;; ! *) ac_decl="$ac_decl ! #include ! " ;; ! esac ! test -n "$silent" || echo "checking for tm_zone in struct tm" ! cat > conftest.${ac_ext} <> confdefs.h ! DEFS="$DEFS -DHAVE_TM_ZONE=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}HAVE_TM_ZONE\${ac_dB}HAVE_TM_ZONE\${ac_dC}1\${ac_dD} ! \${ac_uA}HAVE_TM_ZONE\${ac_uB}HAVE_TM_ZONE\${ac_uC}1\${ac_uD} ! \${ac_eA}HAVE_TM_ZONE\${ac_eB}HAVE_TM_ZONE\${ac_eC}1\${ac_eD} ! " ! } else rm -rf conftest* ! ac_no_tm_zone=1 fi rm -f conftest* ! if test -n "$ac_no_tm_zone"; then ! test -n "$silent" || echo "checking for tzname" ! cat > conftest.${ac_ext} < #ifndef tzname /* For SGI. */ ! extern char *tzname[]; /* RS6000 and others want it this way. */ #endif int main() { return 0; } ! int t() { atoi(*tzname);; return 0; } EOF ! if eval $ac_compile; then rm -rf conftest* ! ! { ! test -n "$verbose" && \ ! echo " defining HAVE_TZNAME" ! echo "#define" HAVE_TZNAME "1" >> confdefs.h ! DEFS="$DEFS -DHAVE_TZNAME=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}HAVE_TZNAME\${ac_dB}HAVE_TZNAME\${ac_dC}1\${ac_dD} ! \${ac_uA}HAVE_TZNAME\${ac_uB}HAVE_TZNAME\${ac_uC}1\${ac_uD} ! \${ac_eA}HAVE_TZNAME\${ac_eB}HAVE_TZNAME\${ac_eC}1\${ac_eD} ! " ! } ! ! fi rm -f conftest* --- 1859,2006 ---- #undef signal #endif ! #ifdef __cplusplus ! extern "C" ! #endif ! void (*signal ()) (); int main() { return 0; } ! int t() { ! int i; ! ; return 0; } EOF if eval $ac_compile; then rm -rf conftest* ! ac_cv_type_signal=void else rm -rf conftest* ! ac_cv_type_signal=int fi rm -f conftest* + fi + echo "$ac_t""$ac_cv_type_signal" 1>&6 + cat >> confdefs.h <&6 ! cat > conftest.$ac_ext < ! #include ! #else ! #ifdef HAVE_SYS_TIME_H ! #include ! #else #include + #endif + #endif int main() { return 0; } ! int t() { ! static struct timeval x; x.tv_sec = x.tv_usec; ! ; return 0; } EOF if eval $ac_compile; then rm -rf conftest* ! echo "$ac_t""yes" 1>&6 ! cat >> confdefs.h <<\EOF ! #define HAVE_TIMEVAL 1 ! EOF + else + rm -rf conftest* + echo "$ac_t""no" 1>&6 fi rm -f conftest* ! ! echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < ! #include int main() { return 0; } ! int t() { ! struct tm *tp; tp->tm_sec; ! ; return 0; } EOF if eval $ac_compile; then rm -rf conftest* ! ac_cv_struct_tm=time.h ! else ! rm -rf conftest* ! ac_cv_struct_tm=sys/time.h ! fi ! rm -f conftest* ! ! fi ! echo "$ac_t""$ac_cv_struct_tm" 1>&6 ! if test $ac_cv_struct_tm = sys/time.h; then ! cat >> confdefs.h <<\EOF ! #define TM_IN_SYS_TIME 1 ! EOF + fi + echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 + if eval "test \"`echo '$''{'ac_cv_struct_tm_zone'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + #include <$ac_cv_struct_tm> + int main() { return 0; } + int t() { + struct tm tm; tm.tm_zone; + ; return 0; } + EOF + if eval $ac_compile; then + rm -rf conftest* + ac_cv_struct_tm_zone=yes else rm -rf conftest* ! ac_cv_struct_tm_zone=no fi rm -f conftest* ! fi ! echo "$ac_t""$ac_cv_struct_tm_zone" 1>&6 ! if test "$ac_cv_struct_tm_zone" = yes; then ! cat >> confdefs.h <<\EOF ! #define HAVE_TM_ZONE 1 ! EOF ! ! else ! echo $ac_n "checking for tzname""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < #ifndef tzname /* For SGI. */ ! extern char *tzname[]; /* RS6000 and others reject char **tzname. */ #endif int main() { return 0; } ! int t() { ! atoi(*tzname); ! ; return 0; } EOF ! if eval $ac_link; then rm -rf conftest* ! ac_cv_var_tzname=yes ! else ! rm -rf conftest* ! ac_cv_var_tzname=no fi rm -f conftest* *************** *** 1678,1684 **** fi ! ac_prog='/* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset x; /* SunOS 4.1.1 cc rejects this. */ --- 2007,2032 ---- fi + echo "$ac_t""$ac_cv_var_tzname" 1>&6 + if test $ac_cv_var_tzname = yes; then + cat >> confdefs.h <<\EOF + #define HAVE_TZNAME 1 + EOF + + fi + fi + + + echo $ac_n "checking for working const""... $ac_c" 1>&6 + if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < conftest.${ac_ext} <> confdefs.h ! DEFS="$DEFS -Dconst=" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}const\${ac_dB}const\${ac_dC}\${ac_dD} ! \${ac_uA}const\${ac_uB}const\${ac_uC}\${ac_uD} ! \${ac_eA}const\${ac_eB}const\${ac_eC}\${ac_eD} ! " ! } ! fi rm -f conftest* ! cat > conftestmake <<'EOF' all: @echo 'ac_maketemp="${MAKE}"' --- 2068,2100 ---- { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; ! } ! ; return 0; } EOF if eval $ac_compile; then ! rm -rf conftest* ! ac_cv_c_const=yes else rm -rf conftest* ! ac_cv_c_const=no fi rm -f conftest* + fi + echo "$ac_t""$ac_cv_c_const" 1>&6 + if test $ac_cv_c_const = no; then + cat >> confdefs.h <<\EOF + #define const + EOF + + fi + ! echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 ! set dummy ${MAKE-make}; ac_make=$2 ! if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftestmake <<\EOF all: @echo 'ac_maketemp="${MAKE}"' *************** *** 1751,1761 **** # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` ! if test -n "$ac_maketemp"; then SET_MAKE= ! else SET_MAKE="MAKE=${MAKE-make}"; fi rm -f conftestmake ! test -n "$silent" || echo "checking for long file names" ! ac_some_dir_failed=false # Test for long file names in all the places we know might matter: # . the current directory, where building will happen --- 2102,2126 ---- # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` ! if test -n "$ac_maketemp"; then ! eval ac_cv_prog_make_${ac_make}_set=yes ! else ! eval ac_cv_prog_make_${ac_make}_set=no ! fi rm -f conftestmake + fi + if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= + else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" + fi ! echo $ac_n "checking for long file names""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_sys_long_file_names'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! ac_cv_sys_long_file_names=yes # Test for long file names in all the places we know might matter: # . the current directory, where building will happen *************** *** 1768,1862 **** for ac_dir in `eval echo . /tmp /var/tmp /usr/tmp $prefix/lib $exec_prefix/lib` ; do test -d $ac_dir || continue ! test -w $ac_dir || continue # It's less confusing to not echo anything here. (echo 1 > $ac_dir/conftest9012345) 2>/dev/null (echo 2 > $ac_dir/conftest9012346) 2>/dev/null val=`cat $ac_dir/conftest9012345 2>/dev/null` ! test -f $ac_dir/conftest9012345 && test "$val" = 1 || ac_some_dir_failed=true ! rm -f $ac_dir/conftest9012345 $ac_dir/conftest9012346 2> /dev/null done ! $ac_some_dir_failed || ! { ! test -n "$verbose" && \ ! echo " defining HAVE_LONG_FILE_NAMES" ! echo "#define" HAVE_LONG_FILE_NAMES "1" >> confdefs.h ! DEFS="$DEFS -DHAVE_LONG_FILE_NAMES=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}HAVE_LONG_FILE_NAMES\${ac_dB}HAVE_LONG_FILE_NAMES\${ac_dC}1\${ac_dD} ! \${ac_uA}HAVE_LONG_FILE_NAMES\${ac_uB}HAVE_LONG_FILE_NAMES\${ac_uC}1\${ac_uD} ! \${ac_eA}HAVE_LONG_FILE_NAMES\${ac_eB}HAVE_LONG_FILE_NAMES\${ac_eC}1\${ac_eD} ! " ! } ! ! #### Choose a window system. - echo "checking for specified window system" - - window_system='' - case "${with_x}" in - yes ) - window_system=${window_system}x11 - ;; - no ) - window_system=${window_system}none - ;; - esac - case "${window_system}" in - .* ) - ;; - * ) - case "${with_x11}" in - yes ) - window_system=x11 - ;; - no ) - window_system=none - ;; - esac - case "${with_x10}" in - yes ) - window_system=x10 - ;; - no ) - window_system=none - ;; - esac - ;; - esac ! case "${window_system}" in ! "none" | "x11" | "x10" ) ;; ! "" ) ! # --x-includes or --x-libraries implies --with-x11. ! if [ -n "${x_includes}" ] || [ -n "${x_libraries}" ]; then ! window_system=x11 ! else ! echo " No window system specified. Looking for X11." ! # If the user didn't specify a window system and we found X11, use it. ! if [ -r /usr/lib/libX11.a \ ! -o -d /usr/include/X11 \ ! -o -d /usr/X386/include \ ! -o -d ${x_includes}/X11 ]; then ! window_system=x11 ! fi ! fi ! ;; ! * ) ! echo "Don't specify a window system more than once." >&2 ! exit 1 ! ;; ! esac ! case "${window_system}" in ! "" | "x11" ) ! ### If the user hasn't specified where we should find X, try ! ### letting autoconf figure that out. ! if [ -z "${x_includes}" ] && [ -z "${x_libraries}" ]; then ! ! # If we find X, set shell vars x_includes and x_libraries to the paths. ! no_x=true ! if test "x$with_x" != xno; then ! test -n "$silent" || echo "checking for X include and library files with xmkmf" rm -fr conftestdir if mkdir conftestdir; then --- 2133,2182 ---- for ac_dir in `eval echo . /tmp /var/tmp /usr/tmp $prefix/lib $exec_prefix/lib` ; do test -d $ac_dir || continue ! test -w $ac_dir || continue # It is less confusing to not echo anything here. (echo 1 > $ac_dir/conftest9012345) 2>/dev/null (echo 2 > $ac_dir/conftest9012346) 2>/dev/null val=`cat $ac_dir/conftest9012345 2>/dev/null` ! if test ! -f $ac_dir/conftest9012345 || test "$val" != 1; then ! ac_cv_sys_long_file_names=no ! rm -f $ac_dir/conftest9012345 $ac_dir/conftest9012346 2>/dev/null ! break ! fi ! rm -f $ac_dir/conftest9012345 $ac_dir/conftest9012346 2>/dev/null done ! fi ! echo "$ac_t""$ac_cv_sys_long_file_names" 1>&6 ! if test $ac_cv_sys_long_file_names = yes; then ! cat >> confdefs.h <<\EOF ! #define HAVE_LONG_FILE_NAMES 1 ! EOF + fi #### Choose a window system. ! # If we find X, set shell vars x_includes and x_libraries to the ! # paths, otherwise set no_x=yes. ! # Uses ac_ vars as temps to allow command line to override cache and checks. ! # --without-x overrides everything else, but does not touch the cache. ! echo $ac_n "checking for X""... $ac_c" 1>&6 ! ! # Check whether --with-x or --without-x was given. ! withval="$with_x" ! if test -n "$withval"; then ! : ! 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 *************** *** 1872,1886 **** eval `make acfindx 2>/dev/null | grep -v make` # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. ! if test ! -f $ac_im_usrlibdir/libX11.a && test -f $ac_im_libdir/libX11.a ! then ! ac_im_usrlibdir=$ac_im_libdir ! fi case "$ac_im_incroot" in /usr/include) ;; ! *) test -z "$x_includes" && x_includes="$ac_im_incroot" ;; esac case "$ac_im_usrlibdir" in /usr/lib | /lib) ;; ! *) test -z "$x_libraries" && x_libraries="$ac_im_usrlibdir" ;; esac fi --- 2192,2209 ---- 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 ! if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && ! test -f $ac_im_libdir/libX11.$ac_extension; then ! ac_im_usrlibdir=$ac_im_libdir; break ! fi ! done ! # Screen out bogus values from the imake configuration. case "$ac_im_incroot" in /usr/include) ;; ! *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes="$ac_im_incroot" ;; esac case "$ac_im_usrlibdir" in /usr/lib | /lib) ;; ! *) test -d "$ac_im_usrlibdir" && ac_x_libraries="$ac_im_usrlibdir" ;; esac fi *************** *** 1889,1914 **** fi ! if test -z "$ac_im_usrlibdir"; then ! test -n "$silent" || echo "checking for X include and library files directly" ! if test ".$x_direct_test_library" = . ; then ! x_direct_test_library='Xt' ! fi ! if test ".$x_direct_test_include" = . ; then ! x_direct_test_include='X11/Intrinsic.h' ! fi ! cat > conftest.${ac_ext} < EOF ! # Some shells (Coherent) do redirections in the wrong order, so need ! # the parens. ! ac_err=`eval "($ac_cpp conftest.${ac_ext} >/dev/null) 2>&1"` if test -z "$ac_err"; then rm -rf conftest* ! no_x= ! else rm -rf conftest* ! for ac_dir in \ /usr/X11R6/include \ /usr/X11R5/include \ --- 2212,2233 ---- 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 \ *************** *** 1948,1953 **** do if test -r "$ac_dir/$x_direct_test_include"; then ! test -z "$x_includes" && x_includes=$ac_dir ! no_x= break fi --- 2267,2271 ---- do if test -r "$ac_dir/$x_direct_test_include"; then ! no_x= ac_x_includes=$ac_dir break fi *************** *** 1956,1982 **** rm -f conftest* ! # Check for the libraries. First see if replacing the `include' by ! # `lib' works. ! ac_save_LIBS="${LIBS}" ! LIBS="${LIBS} -l"$x_direct_test_library"" ! ac_have_lib="" ! test -n "$silent" || echo "checking for -l"$x_direct_test_library"" ! cat > conftest.${ac_ext} < conftest.$ac_ext <&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 ! ! if test "$no_x" = yes; then ! window_system=none ! else ! window_system=x11 ! fi ! if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then ! LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"` ! LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"` ! fi ! if test "${x_includes}" != NONE && test -n "${x_includes}"; then ! C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"` ! fi ! if test x"${x_includes}" = x; then ! 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 ! if test -d "${bmd}/X11/bitmaps"; then ! bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps" ! elif test -d "${bmd}/bitmaps"; then ! bmd_acc="${bmd_acc}:${bmd}/bitmaps" ! fi ! done ! if test ${bmd_acc} != "dummyval"; then ! bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"` ! fi fi *************** *** 2053,2082 **** HAVE_X_WINDOWS=yes HAVE_X11=yes - echo " Using X11." case "${with_x_toolkit}" in ! athena | lucid ) ! USE_X_TOOLKIT=LUCID ! echo " Using Xt toolkit." ! ;; ! motif ) ! USE_X_TOOLKIT=MOTIF ! echo " Using Motif toolkit." ! ;; ! open-look ) ! USE_X_TOOLKIT=OPEN_LOOK ! echo " Using Open-Look toolkit." ! ;; ! * ) ! USE_X_TOOLKIT=none ! echo " Using Xlib directly." ! ;; esac ;; - x10 ) - HAVE_X_WINDOWS=yes - HAVE_X11=no - USE_X_TOOLKIT=none - echo " Using X10." - ;; none ) HAVE_X_WINDOWS=no --- 2397,2406 ---- HAVE_X_WINDOWS=yes HAVE_X11=yes case "${with_x_toolkit}" in ! athena | lucid ) USE_X_TOOLKIT=LUCID ;; ! motif ) USE_X_TOOLKIT=MOTIF ;; ! * ) USE_X_TOOLKIT=none ;; esac ;; none ) HAVE_X_WINDOWS=no *************** *** 2083,2087 **** HAVE_X11=no USE_X_TOOLKIT=none - echo " Using no window system." ;; esac --- 2407,2410 ---- *************** *** 2091,2097 **** HAVE_X_MENU=no case ${HAVE_X11} in ! yes ) ! HAVE_X_MENU=yes ! ;; esac --- 2414,2418 ---- HAVE_X_MENU=no case ${HAVE_X11} in ! yes ) HAVE_X_MENU=yes ;; esac *************** *** 2098,2104 **** #### Extract some information from the operating system and machine files. ! echo "examining the machine- and system-dependent files to find out" ! echo " - which libraries the lib-src programs will want, and" ! echo " - whether the GNU malloc routines are usable" ### First figure out CFLAGS (which we use for running the compiler here) --- 2419,2425 ---- #### Extract some information from the operating system and machine files. ! echo "checking the machine- and system-dependent files to find out ! - which libraries the lib-src programs will want, and ! - whether the GNU malloc routines are usable" 1>&6 ### First figure out CFLAGS (which we use for running the compiler here) *************** *** 2189,2192 **** --- 2510,2514 ---- #endif /* not THIS_IS_CONFIGURE */ ' > ${tempcname} + # The value of CPP is a quoted variable reference, so we need to do this # to get its actual value... *************** *** 2193,2202 **** CPP=`eval "echo $CPP"` eval `${CPP} -Isrc ${tempcname} \ ! | grep 'configure___' \ ! | sed -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/'` ! if [ "x$CFLAGS" = x ]; then eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \ ! | grep 'configure___' \ ! | sed -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/'` else REAL_CFLAGS="$CFLAGS" --- 2515,2522 ---- CPP=`eval "echo $CPP"` eval `${CPP} -Isrc ${tempcname} \ ! | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'` ! if test "x$CFLAGS" = x; then eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \ ! | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'` else REAL_CFLAGS="$CFLAGS" *************** *** 2210,2214 **** # Assume not, until told otherwise. GNU_MALLOC=yes ! if [ "${system_malloc}" = "yes" ]; then GNU_MALLOC=no GNU_MALLOC_reason=" --- 2530,2534 ---- # Assume not, until told otherwise. GNU_MALLOC=yes ! if test "${system_malloc}" = "yes"; then GNU_MALLOC=no GNU_MALLOC_reason=" *************** *** 2216,2220 **** fi ! if [ x"${REL_ALLOC}" = x ]; then REL_ALLOC=${GNU_MALLOC} fi --- 2536,2540 ---- fi ! if test x"${REL_ALLOC}" = x; then REL_ALLOC=${GNU_MALLOC} fi *************** *** 2225,2298 **** #### Add the libraries to LIBS and check for some functions. ! ! DEFS="$c_switch_system $c_switch_machine $DEFS" LIBS="$libsrc_libs" ! ac_save_LIBS="${LIBS}" ! LIBS="${LIBS} -ldnet" ! ac_have_lib="" ! test -n "$silent" || echo "checking for -ldnet" ! cat > conftest.${ac_ext} <> confdefs.h ! DEFS="$DEFS -DHAVE_LIBDNET=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}HAVE_LIBDNET\${ac_dB}HAVE_LIBDNET\${ac_dC}1\${ac_dD} ! \${ac_uA}HAVE_LIBDNET\${ac_uB}HAVE_LIBDNET\${ac_uC}1\${ac_uD} ! \${ac_eA}HAVE_LIBDNET\${ac_eB}HAVE_LIBDNET\${ac_eC}1\${ac_eD} ! " ! } ! LIBS="${LIBS} -ldnet" fi ! ac_save_LIBS="${LIBS}" ! LIBS="${LIBS} -lXbsd" ! ac_have_lib="" ! test -n "$silent" || echo "checking for -lXbsd" ! cat > conftest.${ac_ext} <&6 ! if eval "test \"`echo '$''{'ac_cv_lib_dnet'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! ac_save_LIBS="$LIBS" ! LIBS="-ldnet $LIBS" ! cat > conftest.$ac_ext <&6 ! ac_tr_lib=HAVE_LIB`echo dnet | tr '[a-z]' '[A-Z]'` ! cat >> confdefs.h <&6 fi ! echo $ac_n "checking for -lXbsd""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_lib_Xbsd'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! ac_save_LIBS="$LIBS" ! LIBS="-lXbsd $LIBS" ! cat > conftest.$ac_ext <&6 ! LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd" ! else ! echo "$ac_t""no" 1>&6 ! fi ! ! ! echo $ac_n "checking for -lpthreads""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_lib_pthreads'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! ac_save_LIBS="$LIBS" ! LIBS="-lpthreads $LIBS" ! cat > conftest.$ac_ext <&6 ! ac_tr_lib=HAVE_LIB`echo pthreads | tr '[a-z]' '[A-Z]'` ! cat >> confdefs.h <&6 fi ! echo $ac_n "checking for XFree86""... $ac_c" 1>&6 if test -d /usr/X386/include; then HAVE_XFREE386=yes ! : ${C_SWITCH_X_SITE="-I/usr/X386/include"} ! else ! HAVE_XFREE386=no fi + echo "$ac_t""$HAVE_XFREE386" 1>&6 ! # Change CFLAGS temporarily so that C_SWITCH_X_SITE gets used ! # for the tests that follow. We set it back to REAL_CFLAGS later on. if test "${HAVE_X11}" = "yes"; then *************** *** 2300,2373 **** LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS" CFLAGS="$C_SWITCH_X_SITE $CFLAGS" for ac_func in XrmSetDatabase XScreenResourceString \ XScreenNumberOfScreen XSetWMProtocols do ! ac_tr_func=HAVE_`echo $ac_func | tr '[a-z]' '[A-Z]'` ! test -n "$silent" || echo "checking for ${ac_func}" ! cat > conftest.${ac_ext} < int main() { return 0; } ! int t() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ ! #if defined (__stub_${ac_func}) || defined (__stub___${ac_func}) choke me #else ! /* Override any gcc2 internal prototype to avoid an error. */ ! extern char ${ac_func}(); ${ac_func}(); #endif ; return 0; } EOF ! if eval $ac_compile; then rm -rf conftest* ! { ! test -n "$verbose" && \ ! echo " defining ${ac_tr_func}" ! echo "#define" ${ac_tr_func} "1" >> confdefs.h ! DEFS="$DEFS -D${ac_tr_func}=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}${ac_tr_func}\${ac_dB}${ac_tr_func}\${ac_dC}1\${ac_dD} ! \${ac_uA}${ac_tr_func}\${ac_uB}${ac_tr_func}\${ac_uC}1\${ac_uD} ! \${ac_eA}${ac_tr_func}\${ac_eB}${ac_tr_func}\${ac_eC}1\${ac_eD} ! " ! } ! ! fi rm -f conftest* - done fi ! ! if test "${HAVE_X11}" = "yes"; then ! test -n "$silent" || echo "checking for X11 version" ! cat > conftest.${ac_ext} < ! int main() { return 0; } ! int t() { ! #if XlibSpecificationRelease < 6 ! fail; ! #endif ! ; return 0; } EOF ! if eval $ac_compile; then ! rm -rf conftest* ! ! { ! test -n "$verbose" && \ ! echo " defining HAVE_X11R6" ! echo "#define" HAVE_X11R6 "1" >> confdefs.h ! DEFS="$DEFS -DHAVE_X11R6=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}HAVE_X11R6\${ac_dB}HAVE_X11R6\${ac_dC}1\${ac_dD} ! \${ac_uA}HAVE_X11R6\${ac_uB}HAVE_X11R6\${ac_uC}1\${ac_uD} ! \${ac_eA}HAVE_X11R6\${ac_eB}HAVE_X11R6\${ac_eC}1\${ac_eD} ! " ! } ! ! fi ! rm -f conftest* fi --- 2678,2796 ---- LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS" CFLAGS="$C_SWITCH_X_SITE $CFLAGS" + + if test "${HAVE_XFREE386}" = "yes" && test "${opsys}" = "linux"; then + echo $ac_n "checking whether XFree86 needs -b to link""... $ac_c" 1>&6 + cat > conftest.$ac_ext < conftest.$ac_ext <&6 + else + echo "$ac_t""yes" 1>&6 + fi + else + echo "$ac_t""no" 1>&6 + fi + fi + for ac_func in XrmSetDatabase XScreenResourceString \ XScreenNumberOfScreen XSetWMProtocols do ! echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < ! /* Override any gcc2 internal prototype to avoid an error. */ ! char $ac_func(); ! int main() { return 0; } ! int t() { ! /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ ! #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! $ac_func(); #endif + ; return 0; } EOF ! if eval $ac_link; then rm -rf conftest* ! eval "ac_cv_func_$ac_func=yes" ! else ! rm -rf conftest* ! eval "ac_cv_func_$ac_func=no" fi rm -f conftest* fi ! if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! ac_tr_func=HAVE_`echo $ac_func | tr '[a-z]' '[A-Z]'` ! cat >> confdefs.h <&6 fi ! done fi *************** *** 2374,2403 **** if test "${USE_X_TOOLKIT}" != "none"; then ! test -n "$silent" || echo "checking for X11 toolkit version" ! cat > conftest.${ac_ext} < int main() { return 0; } ! int t() { #if XtSpecificationRelease < 6 fail; #endif ; return 0; } EOF ! if eval $ac_compile; then rm -rf conftest* ! ! { ! test -n "$verbose" && \ ! echo " defining HAVE_X11XTR6" ! echo "#define" HAVE_X11XTR6 "1" >> confdefs.h ! DEFS="$DEFS -DHAVE_X11XTR6=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}HAVE_X11XTR6\${ac_dB}HAVE_X11XTR6\${ac_dC}1\${ac_dD} ! \${ac_uA}HAVE_X11XTR6\${ac_uB}HAVE_X11XTR6\${ac_uC}1\${ac_uD} ! \${ac_eA}HAVE_X11XTR6\${ac_eB}HAVE_X11XTR6\${ac_eC}1\${ac_eD} ! " ! } ! fi rm -f conftest* --- 2797,2823 ---- if test "${USE_X_TOOLKIT}" != "none"; then ! echo $ac_n "checking X11 toolkit version""... $ac_c" 1>&6 ! cat > conftest.$ac_ext < int main() { return 0; } ! int t() { #if XtSpecificationRelease < 6 fail; #endif + ; 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 ! EOF + else + rm -rf conftest* + echo "$ac_t""not 6" 1>&6 fi rm -f conftest* *************** *** 2406,2437 **** # If netdb.h doesn't declare h_errno, we must declare it by hand. ! test -n "$silent" || echo "checking for declaration of h_errno in netdb.h" ! cat > conftest.${ac_ext} < int main() { return 0; } ! int t() { ! int ! foo () ! { ! return h_errno; ! } ; return 0; } EOF ! if eval $ac_compile; then rm -rf conftest* ! ! { ! test -n "$verbose" && \ ! echo " defining HAVE_H_ERRNO" ! echo "#define" HAVE_H_ERRNO "1" >> confdefs.h ! DEFS="$DEFS -DHAVE_H_ERRNO=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}HAVE_H_ERRNO\${ac_dB}HAVE_H_ERRNO\${ac_dC}1\${ac_dD} ! \${ac_uA}HAVE_H_ERRNO\${ac_uB}HAVE_H_ERRNO\${ac_uC}1\${ac_uD} ! \${ac_eA}HAVE_H_ERRNO\${ac_eB}HAVE_H_ERRNO\${ac_eC}1\${ac_eD} ! " ! } ! fi rm -f conftest* --- 2826,2849 ---- # If netdb.h doesn't declare h_errno, we must declare it by hand. ! echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6 ! cat > conftest.$ac_ext < int main() { return 0; } ! int t() { ! return h_errno; ; return 0; } EOF ! if eval $ac_link; then rm -rf conftest* ! echo "$ac_t""yes" 1>&6 ! cat >> confdefs.h <<\EOF ! #define HAVE_H_ERRNO 1 ! EOF + else + rm -rf conftest* + echo "$ac_t""no" 1>&6 fi rm -f conftest* *************** *** 2440,2620 **** # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! ! test -n "$silent" || echo "checking for working alloca.h" ! cat > conftest.${ac_ext} < int main() { return 0; } ! int t() { char *p = alloca(2 * sizeof(int));; return 0; } EOF ! if eval $ac_compile; then rm -rf conftest* ! ! { ! test -n "$verbose" && \ ! echo " defining HAVE_ALLOCA_H" ! echo "#define" HAVE_ALLOCA_H "1" >> confdefs.h ! DEFS="$DEFS -DHAVE_ALLOCA_H=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}HAVE_ALLOCA_H\${ac_dB}HAVE_ALLOCA_H\${ac_dC}1\${ac_dD} ! \${ac_uA}HAVE_ALLOCA_H\${ac_uB}HAVE_ALLOCA_H\${ac_uC}1\${ac_uD} ! \${ac_eA}HAVE_ALLOCA_H\${ac_eB}HAVE_ALLOCA_H\${ac_eC}1\${ac_eD} ! " ! } ! ! fi rm -f conftest* ! ac_decl="#ifdef __GNUC__ ! #define alloca __builtin_alloca ! #else ! #if HAVE_ALLOCA_H ! #include ! #else ! #ifdef _AIX ! #pragma alloca ! #else ! char *alloca (); ! #endif ! #endif ! #endif ! " ! test -n "$silent" || echo "checking for alloca" ! cat > conftest.${ac_ext} <> confdefs.h - DEFS="$DEFS -DHAVE_ALLOCA=1" - ac_sed_defs="${ac_sed_defs}\${ac_dA}HAVE_ALLOCA\${ac_dB}HAVE_ALLOCA\${ac_dC}1\${ac_dD} - \${ac_uA}HAVE_ALLOCA\${ac_uB}HAVE_ALLOCA\${ac_uC}1\${ac_uD} - \${ac_eA}HAVE_ALLOCA\${ac_eB}HAVE_ALLOCA\${ac_eC}1\${ac_eD} - " - } else ! rm -rf conftest* ! ac_alloca_missing=1 ! cat > conftest.${ac_ext} < conftest.out 2>&1" - if egrep "winnitude" conftest.out >/dev/null 2>&1; then - rm -rf conftest* - test -n "$silent" || echo "checking for _getb67" - cat > conftest.${ac_ext} < int main() { return 0; } ! int t() { ! /* The GNU C library defines this for functions which it implements ! to always fail with ENOSYS. Some functions are actually named ! something starting with __ and the normal name is an alias. */ ! #if defined (__stub__getb67) || defined (__stub____getb67) ! choke me ! #else ! /* Override any gcc2 internal prototype to avoid an error. */ ! extern char _getb67(); _getb67(); ! #endif ; return 0; } EOF ! if eval $ac_compile; then rm -rf conftest* ! { ! test -n "$verbose" && \ ! echo " defining" CRAY_STACKSEG_END to be "_getb67" ! echo "#define" CRAY_STACKSEG_END "_getb67" >> confdefs.h ! DEFS="$DEFS -DCRAY_STACKSEG_END=_getb67" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}CRAY_STACKSEG_END\${ac_dB}CRAY_STACKSEG_END\${ac_dC}_getb67\${ac_dD} ! \${ac_uA}CRAY_STACKSEG_END\${ac_uB}CRAY_STACKSEG_END\${ac_uC}_getb67\${ac_uD} ! \${ac_eA}CRAY_STACKSEG_END\${ac_eB}CRAY_STACKSEG_END\${ac_eC}_getb67\${ac_eD} ! " ! } else ! rm -rf conftest* ! test -n "$silent" || echo "checking for GETB67" ! cat > conftest.${ac_ext} < ! int main() { return 0; } ! int t() { ! /* The GNU C library defines this for functions which it implements ! to always fail with ENOSYS. Some functions are actually named ! something starting with __ and the normal name is an alias. */ ! #if defined (__stub_GETB67) || defined (__stub___GETB67) ! choke me #else ! /* Override any gcc2 internal prototype to avoid an error. */ ! extern char GETB67(); GETB67(); #endif ! ; return 0; } EOF ! if eval $ac_compile; then rm -rf conftest* ! { ! test -n "$verbose" && \ ! echo " defining" CRAY_STACKSEG_END to be "GETB67" ! echo "#define" CRAY_STACKSEG_END "GETB67" >> confdefs.h ! DEFS="$DEFS -DCRAY_STACKSEG_END=GETB67" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}CRAY_STACKSEG_END\${ac_dB}CRAY_STACKSEG_END\${ac_dC}GETB67\${ac_dD} ! \${ac_uA}CRAY_STACKSEG_END\${ac_uB}CRAY_STACKSEG_END\${ac_uC}GETB67\${ac_uD} ! \${ac_eA}CRAY_STACKSEG_END\${ac_eB}CRAY_STACKSEG_END\${ac_eC}GETB67\${ac_eD} ! " ! } ! ! else rm -rf conftest* ! test -n "$silent" || echo "checking for getb67" ! cat > conftest.${ac_ext} < int main() { return 0; } ! int t() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ ! #if defined (__stub_getb67) || defined (__stub___getb67) choke me #else ! /* Override any gcc2 internal prototype to avoid an error. */ ! extern char getb67(); getb67(); #endif ; return 0; } EOF ! if eval $ac_compile; then rm -rf conftest* ! { ! test -n "$verbose" && \ ! echo " defining" CRAY_STACKSEG_END to be "getb67" ! echo "#define" CRAY_STACKSEG_END "getb67" >> confdefs.h ! DEFS="$DEFS -DCRAY_STACKSEG_END=getb67" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}CRAY_STACKSEG_END\${ac_dB}CRAY_STACKSEG_END\${ac_dC}getb67\${ac_dD} ! \${ac_uA}CRAY_STACKSEG_END\${ac_uB}CRAY_STACKSEG_END\${ac_uC}getb67\${ac_uD} ! \${ac_eA}CRAY_STACKSEG_END\${ac_eB}CRAY_STACKSEG_END\${ac_eC}getb67\${ac_eD} ! " ! } ! ! ! fi ! rm -f conftest* ! fi rm -f conftest* --- 2852,3005 ---- # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! ! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < int main() { return 0; } ! int t() { ! char *p = alloca(2 * sizeof(int)); ! ; return 0; } EOF ! if eval $ac_link; then rm -rf conftest* ! ac_cv_header_alloca_h=yes ! else ! rm -rf conftest* ! ac_cv_header_alloca_h=no fi rm -f conftest* ! fi ! echo "$ac_t""$ac_cv_header_alloca_h" 1>&6 ! if test $ac_cv_header_alloca_h = yes; then ! cat >> confdefs.h <<\EOF ! #define HAVE_ALLOCA_H 1 EOF + fi + echo $ac_n "checking for alloca""... $ac_c" 1>&6 + if eval "test \"`echo '$''{'ac_cv_func_alloca'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 else ! cat > conftest.$ac_ext < ! # else ! # ifdef _AIX ! #pragma alloca ! # else ! # ifndef alloca /* predefined by HP cc +Olibcalls */ ! char *alloca (); ! # endif ! # endif ! # endif #endif int main() { return 0; } ! int t() { ! char *p = (char *) alloca(1); ; return 0; } EOF ! if eval $ac_link; then rm -rf conftest* ! ac_cv_func_alloca=yes ! else ! rm -rf conftest* ! ac_cv_func_alloca=no ! fi ! rm -f conftest* ! ! fi ! echo "$ac_t""$ac_cv_func_alloca" 1>&6 ! if test $ac_cv_func_alloca = yes; then ! cat >> confdefs.h <<\EOF ! #define HAVE_ALLOCA 1 ! EOF ! ! fi ! ! if test $ac_cv_func_alloca = no; then ! # The SVR3 libPW and SVR4 libucb both contain incompatible functions ! # that cause trouble. Some versions do not even contain alloca or ! # contain a buggy version. If you still want to use their alloca, ! # use ar to extract alloca.o from them instead of compiling alloca.c. ! ALLOCA=alloca.o ! cat >> confdefs.h <<\EOF ! #define C_ALLOCA 1 ! EOF + echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 + if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 else ! cat > conftest.$ac_ext <&5 | ! egrep "webecray" >/dev/null 2>&1; then rm -rf conftest* ! ac_cv_os_cray=yes else rm -rf conftest* ! ac_cv_os_cray=no ! fi ! rm -f conftest* ! ! fi ! echo "$ac_t""$ac_cv_os_cray" 1>&6 ! if test $ac_cv_os_cray = yes; then ! for ac_func in _getb67 GETB67 getb67; do ! echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < ! /* Override any gcc2 internal prototype to avoid an error. */ ! char $ac_func(); ! int main() { return 0; } ! int t() { ! /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ ! #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! $ac_func(); #endif + ; return 0; } EOF ! if eval $ac_link; then rm -rf conftest* ! eval "ac_cv_func_$ac_func=yes" ! else ! rm -rf conftest* ! eval "ac_cv_func_$ac_func=no" fi rm -f conftest* *************** *** 2621,2684 **** fi ! rm -f conftest* ! fi - rm -f conftest* - fi - rm -f conftest* - - if test -n "$ac_alloca_missing"; then - # The SVR3 libPW and SVR4 libucb both contain incompatible functions - # that cause trouble. Some versions do not even contain alloca or - # contain a buggy version. If you still want to use their alloca, - # use ar to extract alloca.o from them instead of compiling alloca.c. - ALLOCA=alloca.o - - { - test -n "$verbose" && \ - echo " defining C_ALLOCA" - echo "#define" C_ALLOCA "1" >> confdefs.h - DEFS="$DEFS -DC_ALLOCA=1" - ac_sed_defs="${ac_sed_defs}\${ac_dA}C_ALLOCA\${ac_dB}C_ALLOCA\${ac_dC}1\${ac_dD} - \${ac_uA}C_ALLOCA\${ac_uB}C_ALLOCA\${ac_uC}1\${ac_uD} - \${ac_eA}C_ALLOCA\${ac_eB}C_ALLOCA\${ac_eC}1\${ac_eD} - " - } - ! test -n "$silent" || echo "checking stack direction for C alloca" ! test -n "$silent" || echo "checking whether cross-compiling" ! # If we cannot run a trivial program, we must be cross compiling. ! cat > conftest.${ac_ext} </dev/null; then ! : else ! cross_compiling=1 ! fi ! rm -fr conftest* ! ! if test -n "$cross_compiling" ! then ! ! { ! test -n "$verbose" && \ ! echo " defining" STACK_DIRECTION to be "0" ! echo "#define" STACK_DIRECTION "0" >> confdefs.h ! DEFS="$DEFS -DSTACK_DIRECTION=0" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}STACK_DIRECTION\${ac_dB}STACK_DIRECTION\${ac_dC}0\${ac_dD} ! \${ac_uA}STACK_DIRECTION\${ac_uB}STACK_DIRECTION\${ac_uC}0\${ac_uD} ! \${ac_eA}STACK_DIRECTION\${ac_eB}STACK_DIRECTION\${ac_eC}0\${ac_eD} ! " ! } ! else ! cat > conftest.${ac_ext} <&6 ! cat >> confdefs.h <&6 fi + done fi ! echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 else ! if test "$cross_compiling" = yes; then ! ac_cv_c_stack_direction=0 else ! cat > conftest.$ac_ext </dev/null; then ! ! { ! test -n "$verbose" && \ ! echo " defining" STACK_DIRECTION to be "1" ! echo "#define" STACK_DIRECTION "1" >> confdefs.h ! DEFS="$DEFS -DSTACK_DIRECTION=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}STACK_DIRECTION\${ac_dB}STACK_DIRECTION\${ac_dC}1\${ac_dD} ! \${ac_uA}STACK_DIRECTION\${ac_uB}STACK_DIRECTION\${ac_uC}1\${ac_uD} ! \${ac_eA}STACK_DIRECTION\${ac_eB}STACK_DIRECTION\${ac_eC}1\${ac_eD} ! " ! } ! ! else ! ! { ! test -n "$verbose" && \ ! echo " defining" STACK_DIRECTION to be "-1" ! echo "#define" STACK_DIRECTION "-1" >> confdefs.h ! DEFS="$DEFS -DSTACK_DIRECTION=-1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}STACK_DIRECTION\${ac_dB}STACK_DIRECTION\${ac_dC}-1\${ac_dD} ! \${ac_uA}STACK_DIRECTION\${ac_uB}STACK_DIRECTION\${ac_uC}-1\${ac_uD} ! \${ac_eA}STACK_DIRECTION\${ac_eB}STACK_DIRECTION\${ac_eC}-1\${ac_eD} ! " ! } ! fi fi --- 3047,3055 ---- } EOF ! eval $ac_link if test -s conftest && (./conftest; exit) 2>/dev/null; then ! ac_cv_c_stack_direction=1 else ! ac_cv_c_stack_direction=-1 fi fi *************** *** 2731,2768 **** rm -fr conftest* fi ! # logb and frexp are found in -lm on most systems. ! ac_save_LIBS="${LIBS}" ! LIBS="${LIBS} -lm" ! ac_have_lib="" ! test -n "$silent" || echo "checking for -lm" ! cat > conftest.${ac_ext} <> confdefs.h ! DEFS="$DEFS -DHAVE_LIBM=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}HAVE_LIBM\${ac_dB}HAVE_LIBM\${ac_dC}1\${ac_dD} ! \${ac_uA}HAVE_LIBM\${ac_uB}HAVE_LIBM\${ac_uC}1\${ac_uD} ! \${ac_eA}HAVE_LIBM\${ac_eB}HAVE_LIBM\${ac_eC}1\${ac_eD} ! " ! } ! LIBS="${LIBS} -lm" fi --- 3056,3106 ---- rm -fr conftest* fi + echo "$ac_t""$ac_cv_c_stack_direction" 1>&6 + cat >> confdefs.h <&6 ! if eval "test \"`echo '$''{'ac_cv_lib_m'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! ac_save_LIBS="$LIBS" ! LIBS="-lm $LIBS" ! cat > conftest.$ac_ext <&6 ! ac_tr_lib=HAVE_LIB`echo m | tr '[a-z]' '[A-Z]'` ! cat >> confdefs.h <&6 fi *************** *** 2769,2818 **** for ac_func in gettimeofday gethostname dup2 rename closedir mkdir rmdir \ random lrand48 bcopy bcmp logb frexp fmod drem ftime res_init setsid \ ! strerror fpathconf do ! ac_tr_func=HAVE_`echo $ac_func | tr '[a-z]' '[A-Z]'` ! test -n "$silent" || echo "checking for ${ac_func}" ! cat > conftest.${ac_ext} < int main() { return 0; } ! int t() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ ! #if defined (__stub_${ac_func}) || defined (__stub___${ac_func}) choke me #else ! /* Override any gcc2 internal prototype to avoid an error. */ ! extern char ${ac_func}(); ${ac_func}(); #endif ; return 0; } EOF ! if eval $ac_compile; then rm -rf conftest* ! { ! test -n "$verbose" && \ ! echo " defining ${ac_tr_func}" ! echo "#define" ${ac_tr_func} "1" >> confdefs.h ! DEFS="$DEFS -D${ac_tr_func}=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}${ac_tr_func}\${ac_dB}${ac_tr_func}\${ac_dC}1\${ac_dD} ! \${ac_uA}${ac_tr_func}\${ac_uB}${ac_tr_func}\${ac_uC}1\${ac_uD} ! \${ac_eA}${ac_tr_func}\${ac_eB}${ac_tr_func}\${ac_eC}1\${ac_eD} ! " ! } ! ! fi rm -f conftest* done ! ok_so_far=true ! test -n "$silent" || echo "checking for socket" ! cat > conftest.${ac_ext} < int main() { return 0; } ! int t() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named --- 3107,3179 ---- for ac_func in gettimeofday gethostname dup2 rename closedir mkdir rmdir \ random lrand48 bcopy bcmp logb frexp fmod drem ftime res_init setsid \ ! strerror fpathconf select mktime eaccess getpagesize do ! echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < ! /* Override any gcc2 internal prototype to avoid an error. */ ! char $ac_func(); ! int main() { return 0; } ! int t() { ! /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ ! #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! $ac_func(); #endif + ; return 0; } EOF ! if eval $ac_link; then rm -rf conftest* ! eval "ac_cv_func_$ac_func=yes" ! else ! rm -rf conftest* ! eval "ac_cv_func_$ac_func=no" fi rm -f conftest* + + fi + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr '[a-z]' '[A-Z]'` + cat >> confdefs.h <&6 + fi done ! ok_so_far=yes ! echo $ac_n "checking for socket""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_func_socket'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! cat > conftest.$ac_ext < ! /* Override any gcc2 internal prototype to avoid an error. */ ! char socket(); ! int main() { return 0; } ! int t() { ! /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named *************** *** 2821,2886 **** choke me #else ! /* Override any gcc2 internal prototype to avoid an error. */ ! extern char socket(); socket(); #endif ; return 0; } EOF ! if eval $ac_compile; then ! : else rm -rf conftest* ! ok_so_far= fi rm -f conftest* ! if test -n "$ok_so_far"; then ! test -n "$silent" || echo "checking for netinet/in.h" ! cat > conftest.${ac_ext} < EOF ! # Some shells (Coherent) do redirections in the wrong order, so need ! # the parens. ! ac_err=`eval "($ac_cpp conftest.${ac_ext} >/dev/null) 2>&1"` if test -z "$ac_err"; then ! : else rm -rf conftest* ! ok_so_far= fi rm -f conftest* fi ! if test -n "$ok_so_far"; then ! test -n "$silent" || echo "checking for arpa/inet.h" ! cat > conftest.${ac_ext} < EOF ! # Some shells (Coherent) do redirections in the wrong order, so need ! # the parens. ! ac_err=`eval "($ac_cpp conftest.${ac_ext} >/dev/null) 2>&1"` if test -z "$ac_err"; then ! : else rm -rf conftest* ! ok_so_far= fi rm -f conftest* fi ! if test -n "$ok_so_far"; then ! ! { ! test -n "$verbose" && \ ! echo " defining HAVE_INET_SOCKETS" ! echo "#define" HAVE_INET_SOCKETS "1" >> confdefs.h ! DEFS="$DEFS -DHAVE_INET_SOCKETS=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}HAVE_INET_SOCKETS\${ac_dB}HAVE_INET_SOCKETS\${ac_dC}1\${ac_dD} ! \${ac_uA}HAVE_INET_SOCKETS\${ac_uB}HAVE_INET_SOCKETS\${ac_uC}1\${ac_uD} ! \${ac_eA}HAVE_INET_SOCKETS\${ac_eB}HAVE_INET_SOCKETS\${ac_eC}1\${ac_eD} ! " ! } fi --- 3182,3284 ---- choke me #else ! socket(); #endif + ; return 0; } EOF ! if eval $ac_link; then ! rm -rf conftest* ! eval "ac_cv_func_socket=yes" else rm -rf conftest* ! eval "ac_cv_func_socket=no" fi rm -f conftest* ! fi ! if eval "test \"`echo '$ac_cv_func_'socket`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! : ! else ! echo "$ac_t""no" 1>&6 ! ok_so_far=no ! fi ! ! if test $ok_so_far = yes; then ! ac_safe=`echo "netinet/in.h" | tr './\055' '___'` ! echo $ac_n "checking for netinet/in.h""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! 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 ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=yes" else + echo "$ac_err" >&5 rm -rf conftest* ! eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* + fi + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : + else + echo "$ac_t""no" 1>&6 + ok_so_far=no + fi fi ! if test $ok_so_far = yes; then ! ac_safe=`echo "arpa/inet.h" | tr './\055' '___'` ! echo $ac_n "checking for arpa/inet.h""... $ac_c" 1>&6 ! if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! 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 ! rm -rf conftest* ! eval "ac_cv_header_$ac_safe=yes" else + echo "$ac_err" >&5 rm -rf conftest* ! eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* + fi + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : + else + echo "$ac_t""no" 1>&6 + ok_so_far=no + fi fi ! if test $ok_so_far = yes; then ! cat >> confdefs.h <<\EOF ! #define HAVE_INET_SOCKETS 1 ! EOF ! ! fi + if test -f /usr/lpp/X11/bin/smt.exp; then + cat >> confdefs.h <<\EOF + #define HAVE_AIX_SMT_EXP 1 + EOF + fi *************** *** 2888,2919 **** CFLAGS="$REAL_CFLAGS" - #### Find out which version of Emacs this is. version=`grep 'defconst[ ]*emacs-version' ${srcdir}/lisp/version.el \ | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'` ! if [ x"${version}" = x ]; then ! echo "${progname}: can't find current emacs version in ! \`${srcdir}/lisp/version.el'." >&2 ! exit 1 ! fi ! ! if [ -f /usr/lpp/X11/bin/smt.exp ]; then ! ! ! { ! test -n "$verbose" && \ ! echo " defining HAVE_AIX_SMT_EXP" ! echo "#define" HAVE_AIX_SMT_EXP "1" >> confdefs.h ! DEFS="$DEFS -DHAVE_AIX_SMT_EXP=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}HAVE_AIX_SMT_EXP\${ac_dB}HAVE_AIX_SMT_EXP\${ac_dC}1\${ac_dD} ! \${ac_uA}HAVE_AIX_SMT_EXP\${ac_uB}HAVE_AIX_SMT_EXP\${ac_uC}1\${ac_uD} ! \${ac_eA}HAVE_AIX_SMT_EXP\${ac_eB}HAVE_AIX_SMT_EXP\${ac_eC}1\${ac_eD} ! " ! } ! ! fi ! #### Specify what sort of things we'll be editing into Makefile and config.h. ### Use configuration here uncanonicalized to avoid exceeding size limits. --- 3286,3297 ---- CFLAGS="$REAL_CFLAGS" #### Find out which version of Emacs this is. version=`grep 'defconst[ ]*emacs-version' ${srcdir}/lisp/version.el \ | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'` ! if test x"${version}" = x; then ! { echo "configure: error: can't find current emacs version in \`${srcdir}/lisp/version.el'." 1>&2; exit 1; } fi ! ### Specify what sort of things we'll be editing into Makefile and config.h. ### Use configuration here uncanonicalized to avoid exceeding size limits. *************** *** 2947,3200 **** ! { ! test -n "$verbose" && \ ! echo " defining" EMACS_CONFIGURATION to be ""\"${configuration}\""" ! echo "#define" EMACS_CONFIGURATION ""\"${configuration}\""" >> confdefs.h ! DEFS="$DEFS -DEMACS_CONFIGURATION="\"${configuration}\""" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}EMACS_CONFIGURATION\${ac_dB}EMACS_CONFIGURATION\${ac_dC}"\"${configuration}\""\${ac_dD} ! \${ac_uA}EMACS_CONFIGURATION\${ac_uB}EMACS_CONFIGURATION\${ac_uC}"\"${configuration}\""\${ac_uD} ! \${ac_eA}EMACS_CONFIGURATION\${ac_eB}EMACS_CONFIGURATION\${ac_eC}"\"${configuration}\""\${ac_eD} ! " ! } ! ! ! { ! test -n "$verbose" && \ ! echo " defining" config_machfile to be ""\"${machfile}\""" ! echo "#define" config_machfile ""\"${machfile}\""" >> confdefs.h ! DEFS="$DEFS -Dconfig_machfile="\"${machfile}\""" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}config_machfile\${ac_dB}config_machfile\${ac_dC}"\"${machfile}\""\${ac_dD} ! \${ac_uA}config_machfile\${ac_uB}config_machfile\${ac_uC}"\"${machfile}\""\${ac_uD} ! \${ac_eA}config_machfile\${ac_eB}config_machfile\${ac_eC}"\"${machfile}\""\${ac_eD} ! " ! } ! ! ! { ! test -n "$verbose" && \ ! echo " defining" config_opsysfile to be ""\"${opsysfile}\""" ! echo "#define" config_opsysfile ""\"${opsysfile}\""" >> confdefs.h ! DEFS="$DEFS -Dconfig_opsysfile="\"${opsysfile}\""" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}config_opsysfile\${ac_dB}config_opsysfile\${ac_dC}"\"${opsysfile}\""\${ac_dD} ! \${ac_uA}config_opsysfile\${ac_uB}config_opsysfile\${ac_uC}"\"${opsysfile}\""\${ac_uD} ! \${ac_eA}config_opsysfile\${ac_eB}config_opsysfile\${ac_eC}"\"${opsysfile}\""\${ac_eD} ! " ! } ! ! { ! test -n "$verbose" && \ ! echo " defining" LD_SWITCH_X_SITE to be "${LD_SWITCH_X_SITE}" ! echo "#define" LD_SWITCH_X_SITE "${LD_SWITCH_X_SITE}" >> confdefs.h ! DEFS="$DEFS -DLD_SWITCH_X_SITE=${LD_SWITCH_X_SITE}" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}LD_SWITCH_X_SITE\${ac_dB}LD_SWITCH_X_SITE\${ac_dC}${LD_SWITCH_X_SITE}\${ac_dD} ! \${ac_uA}LD_SWITCH_X_SITE\${ac_uB}LD_SWITCH_X_SITE\${ac_uC}${LD_SWITCH_X_SITE}\${ac_uD} ! \${ac_eA}LD_SWITCH_X_SITE\${ac_eB}LD_SWITCH_X_SITE\${ac_eC}${LD_SWITCH_X_SITE}\${ac_eD} ! " ! } ! { ! test -n "$verbose" && \ ! echo " defining" LD_SWITCH_X_SITE_AUX to be "${LD_SWITCH_X_SITE_AUX}" ! echo "#define" LD_SWITCH_X_SITE_AUX "${LD_SWITCH_X_SITE_AUX}" >> confdefs.h ! DEFS="$DEFS -DLD_SWITCH_X_SITE_AUX=${LD_SWITCH_X_SITE_AUX}" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}LD_SWITCH_X_SITE_AUX\${ac_dB}LD_SWITCH_X_SITE_AUX\${ac_dC}${LD_SWITCH_X_SITE_AUX}\${ac_dD} ! \${ac_uA}LD_SWITCH_X_SITE_AUX\${ac_uB}LD_SWITCH_X_SITE_AUX\${ac_uC}${LD_SWITCH_X_SITE_AUX}\${ac_uD} ! \${ac_eA}LD_SWITCH_X_SITE_AUX\${ac_eB}LD_SWITCH_X_SITE_AUX\${ac_eC}${LD_SWITCH_X_SITE_AUX}\${ac_eD} ! " ! } ! { ! test -n "$verbose" && \ ! echo " defining" C_SWITCH_X_SITE to be "${C_SWITCH_X_SITE}" ! echo "#define" C_SWITCH_X_SITE "${C_SWITCH_X_SITE}" >> confdefs.h ! DEFS="$DEFS -DC_SWITCH_X_SITE=${C_SWITCH_X_SITE}" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}C_SWITCH_X_SITE\${ac_dB}C_SWITCH_X_SITE\${ac_dC}${C_SWITCH_X_SITE}\${ac_dD} ! \${ac_uA}C_SWITCH_X_SITE\${ac_uB}C_SWITCH_X_SITE\${ac_uC}${C_SWITCH_X_SITE}\${ac_uD} ! \${ac_eA}C_SWITCH_X_SITE\${ac_eB}C_SWITCH_X_SITE\${ac_eC}${C_SWITCH_X_SITE}\${ac_eD} ! " ! } ! { ! test -n "$verbose" && \ ! echo " defining" UNEXEC_SRC to be "${UNEXEC_SRC}" ! echo "#define" UNEXEC_SRC "${UNEXEC_SRC}" >> confdefs.h ! DEFS="$DEFS -DUNEXEC_SRC=${UNEXEC_SRC}" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}UNEXEC_SRC\${ac_dB}UNEXEC_SRC\${ac_dC}${UNEXEC_SRC}\${ac_dD} ! \${ac_uA}UNEXEC_SRC\${ac_uB}UNEXEC_SRC\${ac_uC}${UNEXEC_SRC}\${ac_uD} ! \${ac_eA}UNEXEC_SRC\${ac_eB}UNEXEC_SRC\${ac_eC}${UNEXEC_SRC}\${ac_eD} ! " ! } - if [ "${HAVE_X_WINDOWS}" = "yes" ] ; then - - { - test -n "$verbose" && \ - echo " defining HAVE_X_WINDOWS" - echo "#define" HAVE_X_WINDOWS "1" >> confdefs.h - DEFS="$DEFS -DHAVE_X_WINDOWS=1" - ac_sed_defs="${ac_sed_defs}\${ac_dA}HAVE_X_WINDOWS\${ac_dB}HAVE_X_WINDOWS\${ac_dC}1\${ac_dD} - \${ac_uA}HAVE_X_WINDOWS\${ac_uB}HAVE_X_WINDOWS\${ac_uC}1\${ac_uD} - \${ac_eA}HAVE_X_WINDOWS\${ac_eB}HAVE_X_WINDOWS\${ac_eC}1\${ac_eD} - " - } - - fi - if [ "${USE_X_TOOLKIT}" != "none" ] ; then - - { - test -n "$verbose" && \ - echo " defining USE_X_TOOLKIT" - echo "#define" USE_X_TOOLKIT "1" >> confdefs.h - DEFS="$DEFS -DUSE_X_TOOLKIT=1" - ac_sed_defs="${ac_sed_defs}\${ac_dA}USE_X_TOOLKIT\${ac_dB}USE_X_TOOLKIT\${ac_dC}1\${ac_dD} - \${ac_uA}USE_X_TOOLKIT\${ac_uB}USE_X_TOOLKIT\${ac_uC}1\${ac_uD} - \${ac_eA}USE_X_TOOLKIT\${ac_eB}USE_X_TOOLKIT\${ac_eC}1\${ac_eD} - " - } - - fi - if [ "${HAVE_X11}" = "yes" ] ; then - - { - test -n "$verbose" && \ - echo " defining HAVE_X11" - echo "#define" HAVE_X11 "1" >> confdefs.h - DEFS="$DEFS -DHAVE_X11=1" - ac_sed_defs="${ac_sed_defs}\${ac_dA}HAVE_X11\${ac_dB}HAVE_X11\${ac_dC}1\${ac_dD} - \${ac_uA}HAVE_X11\${ac_uB}HAVE_X11\${ac_uC}1\${ac_uD} - \${ac_eA}HAVE_X11\${ac_eB}HAVE_X11\${ac_eC}1\${ac_eD} - " - } - fi ! if [ "${HAVE_XFREE386}" = "yes" ] ; then ! ! { ! test -n "$verbose" && \ ! echo " defining HAVE_XFREE386" ! echo "#define" HAVE_XFREE386 "1" >> confdefs.h ! DEFS="$DEFS -DHAVE_XFREE386=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}HAVE_XFREE386\${ac_dB}HAVE_XFREE386\${ac_dC}1\${ac_dD} ! \${ac_uA}HAVE_XFREE386\${ac_uB}HAVE_XFREE386\${ac_uC}1\${ac_uD} ! \${ac_eA}HAVE_XFREE386\${ac_eB}HAVE_XFREE386\${ac_eC}1\${ac_eD} ! " ! } ! fi ! if [ "${HAVE_X_MENU}" = "yes" ] ; then ! ! { ! test -n "$verbose" && \ ! echo " defining HAVE_X_MENU" ! echo "#define" HAVE_X_MENU "1" >> confdefs.h ! DEFS="$DEFS -DHAVE_X_MENU=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}HAVE_X_MENU\${ac_dB}HAVE_X_MENU\${ac_dC}1\${ac_dD} ! \${ac_uA}HAVE_X_MENU\${ac_uB}HAVE_X_MENU\${ac_uC}1\${ac_uD} ! \${ac_eA}HAVE_X_MENU\${ac_eB}HAVE_X_MENU\${ac_eC}1\${ac_eD} ! " ! } ! fi ! if [ "${GNU_MALLOC}" = "yes" ] ; then ! ! { ! test -n "$verbose" && \ ! echo " defining GNU_MALLOC" ! echo "#define" GNU_MALLOC "1" >> confdefs.h ! DEFS="$DEFS -DGNU_MALLOC=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}GNU_MALLOC\${ac_dB}GNU_MALLOC\${ac_dC}1\${ac_dD} ! \${ac_uA}GNU_MALLOC\${ac_uB}GNU_MALLOC\${ac_uC}1\${ac_uD} ! \${ac_eA}GNU_MALLOC\${ac_eB}GNU_MALLOC\${ac_eC}1\${ac_eD} ! " ! } ! fi ! if [ "${REL_ALLOC}" = "yes" ] ; then ! ! { ! test -n "$verbose" && \ ! echo " defining REL_ALLOC" ! echo "#define" REL_ALLOC "1" >> confdefs.h ! DEFS="$DEFS -DREL_ALLOC=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}REL_ALLOC\${ac_dB}REL_ALLOC\${ac_dC}1\${ac_dD} ! \${ac_uA}REL_ALLOC\${ac_uB}REL_ALLOC\${ac_uC}1\${ac_uD} ! \${ac_eA}REL_ALLOC\${ac_eB}REL_ALLOC\${ac_eC}1\${ac_eD} ! " ! } ! fi ! if [ "${LISP_FLOAT_TYPE}" = "yes" ] ; then ! ! { ! test -n "$verbose" && \ ! echo " defining LISP_FLOAT_TYPE" ! echo "#define" LISP_FLOAT_TYPE "1" >> confdefs.h ! DEFS="$DEFS -DLISP_FLOAT_TYPE=1" ! ac_sed_defs="${ac_sed_defs}\${ac_dA}LISP_FLOAT_TYPE\${ac_dB}LISP_FLOAT_TYPE\${ac_dC}1\${ac_dD} ! \${ac_uA}LISP_FLOAT_TYPE\${ac_uB}LISP_FLOAT_TYPE\${ac_uC}1\${ac_uD} ! \${ac_eA}LISP_FLOAT_TYPE\${ac_eB}LISP_FLOAT_TYPE\${ac_eC}1\${ac_eD} ! " ! } ! fi ! # ====================== Developer's configuration ======================= - # The following assignments make sense if you're running Emacs on a single - # machine, one version at a time, and you want changes to the lisp and etc - # directories in the source tree to show up immediately in your working - # environment. It saves a great deal of disk space by not duplicating the - # lisp and etc directories. - - if [ "$run_in_place" = "1" ]; then - lispdir='${srcdir}/lisp' - locallisppath='${srcdir}/site-lisp' - etcdir='${srcdir}/etc' - lockdir='${srcdir}/lock' - # We used to make archlibdir and docdir absolute, - # but that caused trouble with automounters. - archlibdir='${srcdir}/lib-src' - docdir='${srcdir}/etc' - infodir='${srcdir}/info' - elif [ "$single_tree" = "1" ]; then - if [ "$exec_prefix_specified" = "" ]; then - exec_prefix='${prefix}' - fi - if [ "$bindir_specified" = "" ]; then - bindir='${exec_prefix}/bin/${configuration}' - fi - if [ "$datadir_specified" = "" ]; then - datadir='${prefix}/common' - fi - if [ "$statedir_specified" = "" ]; then - statedir='${prefix}/common' - fi - if [ "$libdir_specified" = "" ]; then - libdir='${bindir}' - fi - if [ "$lispdir_specified" = "" ]; then - lispdir='${prefix}/common/lisp' - fi - if [ "$locallisppath_specified" = "" ]; then - locallisppath='${prefix}/common/site-lisp' - fi - if [ "$lockdir_specified" = "" ]; then - lockdir='${prefix}/common/lock' - fi - if [ "$archlibdir_specified" = "" ]; then - archlibdir='${libdir}/etc' - fi - if [ "$etcdir_specified" = "" ]; then - etcdir='${prefix}/common/data' - fi - if [ "$docdir_specified" = "" ]; then - docdir='${prefix}/common/data' - fi fi --- 3325,3408 ---- ! cat >> confdefs.h <> confdefs.h <> confdefs.h <> confdefs.h <> confdefs.h <> confdefs.h <> confdefs.h <> confdefs.h <> confdefs.h <<\EOF + #define HAVE_X_WINDOWS 1 + EOF fi ! if test "${USE_X_TOOLKIT}" != "none" ; then ! cat >> confdefs.h <<\EOF ! #define USE_X_TOOLKIT 1 ! EOF ! fi ! if test "${HAVE_X11}" = "yes" ; then ! cat >> confdefs.h <<\EOF ! #define HAVE_X11 1 ! EOF ! fi ! if test "${HAVE_XFREE386}" = "yes" ; then ! cat >> confdefs.h <<\EOF ! #define HAVE_XFREE386 1 ! EOF ! fi ! if test "${HAVE_X_MENU}" = "yes" ; then ! cat >> confdefs.h <<\EOF ! #define HAVE_X_MENU 1 ! EOF ! fi ! if test "${GNU_MALLOC}" = "yes" ; then ! cat >> confdefs.h <<\EOF ! #define GNU_MALLOC 1 ! EOF ! fi + if test "${REL_ALLOC}" = "yes" ; then + cat >> confdefs.h <<\EOF + #define REL_ALLOC 1 + EOF ! fi ! if test "${LISP_FLOAT_TYPE}" = "yes" ; then ! cat >> confdefs.h <<\EOF ! #define LISP_FLOAT_TYPE 1 ! EOF fi *************** *** 3201,3205 **** #### Report on what we decided to do. echo " - Configured for \`${canonical}'. --- 3409,3412 ---- *************** *** 3211,3239 **** Should Emacs use the relocating allocator for buffers? ${REL_ALLOC} What window system should Emacs use? ${window_system} ! What toolkit should Emacs use? ${USE_X_TOOLKIT}${x_includes+ ! Where do we find X Windows header files? }${x_includes}${x_libraries+ ! Where do we find X Windows libraries? }${x_libraries} ! " # Remove any trailing slashes in these variables. ! test -n "${prefix}" && prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'` ! test -n "${exec_prefix}" && exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'` ! ! # The preferred way to propogate these variables is regular @ substitutions. ! if test -n "$prefix"; then ! ac_prsub="s%^prefix\\([ ]*\\)=\\([ ]*\\).*$%prefix\\1=\\2$prefix%" ! else ! prefix=/usr/local ! fi ! if test -n "$exec_prefix"; then ! ac_prsub="$ac_prsub ! s%^exec_prefix\\([ ]*\\)=\\([ ]*\\).*$%exec_prefix\\1=\\2$exec_prefix%" else ! exec_prefix='${prefix}' # Let make expand it. fi # Any assignment to VPATH causes Sun make to only execute --- 3418,3481 ---- Should Emacs use the relocating allocator for buffers? ${REL_ALLOC} What window system should Emacs use? ${window_system} ! What toolkit should Emacs use? ${USE_X_TOOLKIT}" ! ! if test -n "${x_includes}"; then ! echo " Where do we find X Windows header files? ${x_includes}" ! else ! echo " Where do we find X Windows header files? Standard dirs" ! fi ! if test -n "${x_libraries}"; then ! echo " Where do we find X Windows libraries? ${x_libraries}" ! else ! echo " Where do we find X Windows libraries? Standard dirs" ! fi ! echo # Remove any trailing slashes in these variables. ! test "${prefix}" != NONE && prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'` ! test "${exec_prefix}" != NONE && exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'` ! trap '' 1 2 15 ! cat > confcache <<\EOF ! # This file is a shell script that caches the results of configure ! # tests run on this system so they can be shared between configure ! # scripts and configure runs. It is not useful on other systems. ! # If it contains results you don't want to keep, you may remove or edit it. ! # ! # By default, configure uses ./config.cache as the cache file, ! # creating it if it does not exist already. You can give configure ! # the --cache-file=FILE option to use a different cache file; that is ! # what configure does when it calls configure scripts in ! # subdirectories, so they share the cache. ! # Giving --cache-file=/dev/null disables caching, for debugging configure. ! # config.status only pays attention to the cache file if you give it the ! # --recheck option to rerun configure. ! # ! EOF ! # Ultrix sh set writes to stderr and can't be redirected directly, ! # and sets the high bit in the cache file unless we assign to the vars. ! (set) 2>&1 | ! sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=\${\1='\2'}/p" \ ! >> confcache ! if cmp -s $cache_file confcache; then ! : else ! if test -w $cache_file; then ! echo "updating cache $cache_file" ! cat confcache > $cache_file ! else ! echo "not updating unwritable cache $cache_file" ! fi fi + rm -f confcache + + trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + + test "x$prefix" = xNONE && prefix=$ac_default_prefix + # Let make expand exec_prefix. + test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Any assignment to VPATH causes Sun make to only execute *************** *** 3244,3261 **** fi ! # Quote sed substitution magic chars in DEFS. ! cat >conftest.def < config.status < $CONFIG_STATUS </dev/null | sed 1q`: # ! # $0 $configure_args ! ac_cs_usage="Usage: config.status [--recheck] [--version] [--help]" for ac_option do --- 3502,3511 ---- # on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # ! # $0 $ac_configure_args ! # ! # Compiler output produced by configure, useful for debugging ! # configure, is in ./config.log if it exists. ! ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" for ac_option do *************** *** 3270,3277 **** case "\$ac_option" in -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ! echo running \${CONFIG_SHELL-/bin/sh} $0 $configure_args --no-create ! exec \${CONFIG_SHELL-/bin/sh} $0 $configure_args --no-create ;; -version | --version | --versio | --versi | --vers | --ver | --ve | --v) ! echo "config.status generated by autoconf version 1.11" exit 0 ;; -help | --help | --hel | --he | --h) --- 3512,3519 ---- case "\$ac_option" in -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ! echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" ! 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.4" exit 0 ;; -help | --help | --hel | --he | --h) *************** *** 3281,3370 **** done - trap 'rm -fr Makefile lib-src/Makefile.in oldXMenu/Makefile lwlib/Makefile src/Makefile.in src/config.h conftest*; exit 1' 1 2 15 - CC='$CC' - LN_S='$LN_S' - CPP='$CPP' - INSTALL='$INSTALL' - INSTALL_PROGRAM='$INSTALL_PROGRAM' - INSTALL_DATA='$INSTALL_DATA' - YACC='$YACC' - SET_MAKE='$SET_MAKE' - ALLOCA='$ALLOCA' - version='$version' - configuration='$configuration' - srcdir='$srcdir' - prefix='$prefix' - exec_prefix='$exec_prefix' - bindir='$bindir' - datadir='$datadir' - statedir='$statedir' - libdir='$libdir' - mandir='$mandir' - infodir='$infodir' - lispdir='$lispdir' - locallisppath='$locallisppath' - lisppath='$lisppath' - etcdir='$etcdir' - lockdir='$lockdir' - archlibdir='$archlibdir' - docdir='$docdir' - c_switch_system='$c_switch_system' - c_switch_machine='$c_switch_machine' - LD_SWITCH_X_SITE='$LD_SWITCH_X_SITE' - LD_SWITCH_X_SITE_AUX='$LD_SWITCH_X_SITE_AUX' - C_SWITCH_X_SITE='$C_SWITCH_X_SITE' - CFLAGS='$CFLAGS' - X_TOOLKIT_TYPE='$X_TOOLKIT_TYPE' - machfile='$machfile' - opsysfile='$opsysfile' - LIBS='$LIBS' - top_srcdir='$top_srcdir' - ac_prsub='$ac_prsub' - ac_vpsub='$ac_vpsub' - extrasub='$extrasub' - EOF - cat >> config.status <<\EOF - ac_given_srcdir=$srcdir ! CONFIG_FILES=${CONFIG_FILES-"Makefile lib-src/Makefile.in oldXMenu/Makefile lwlib/Makefile src/Makefile.in"} ! for ac_file in .. ${CONFIG_FILES}; do if test "x$ac_file" != x..; then ! # 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" ! ac_dir_suffix="/$ac_dir" ! else ! ac_dir_suffix= ! fi ! ! # A "../" for each directory in $ac_dir_suffix. ! ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` ! case "$ac_given_srcdir" in ! .) srcdir=. ! if test -z "$ac_dir_suffix"; then top_srcdir=. ! else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; ! /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; ! *) # Relative path. ! srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" ! top_srcdir="$ac_dots$ac_given_srcdir" ;; ! esac ! echo creating "$ac_file" ! rm -f "$ac_file" ! comment_str="Generated automatically from `echo $ac_file|sed 's|.*/||'`.in by configure." ! case "$ac_file" in ! *.c | *.h | *.C | *.cc | *.m ) echo "/* $comment_str */" > "$ac_file" ;; ! * ) echo "# $comment_str" > "$ac_file" ;; ! esac ! sed -e " ! $ac_prsub $ac_vpsub $extrasub s%@CC@%$CC%g s%@LN_S@%$LN_S%g s%@CPP@%$CPP%g - s%@INSTALL@%$INSTALL%g s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g s%@INSTALL_DATA@%$INSTALL_DATA%g --- 3523,3554 ---- done ac_given_srcdir=$srcdir + ac_given_INSTALL="$INSTALL" ! trap 'rm -fr `echo "Makefile lib-src/Makefile.in oldXMenu/Makefile \ ! man/Makefile lwlib/Makefile src/Makefile.in src/config.h" | 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 + s%@CFLAGS@%$CFLAGS%g + s%@CPPFLAGS@%$CPPFLAGS%g + s%@CXXFLAGS@%$CXXFLAGS%g + s%@DEFS@%$DEFS%g + s%@LDFLAGS@%$LDFLAGS%g + s%@LIBS@%$LIBS%g + s%@exec_prefix@%$exec_prefix%g + s%@prefix@%$prefix%g + s%@program_transform_name@%$program_transform_name%g + s%@host@%$host%g + s%@host_alias@%$host_alias%g + s%@host_cpu@%$host_cpu%g + s%@host_vendor@%$host_vendor%g + s%@host_os@%$host_os%g s%@CC@%$CC%g s%@LN_S@%$LN_S%g s%@CPP@%$CPP%g s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g s%@INSTALL_DATA@%$INSTALL_DATA%g *************** *** 3374,3384 **** s%@version@%$version%g s%@configuration@%$configuration%g s%@srcdir@%$srcdir%g - s%@prefix@%$prefix%g - s%@exec_prefix@%$exec_prefix%g s%@bindir@%$bindir%g s%@datadir@%$datadir%g ! s%@statedir@%$statedir%g ! s%@libdir@%$libdir%g s%@mandir@%$mandir%g s%@infodir@%$infodir%g --- 3558,3567 ---- s%@version@%$version%g s%@configuration@%$configuration%g + s%@canonical@%$canonical%g s%@srcdir@%$srcdir%g s%@bindir@%$bindir%g s%@datadir@%$datadir%g ! s%@sharedstatedir@%$sharedstatedir%g ! s%@libexecdir@%$libexecdir%g s%@mandir@%$mandir%g s%@infodir@%$infodir%g *************** *** 3390,3393 **** --- 3573,3577 ---- s%@archlibdir@%$archlibdir%g s%@docdir@%$docdir%g + s%@bitmapdir@%$bitmapdir%g s%@c_switch_system@%$c_switch_system%g s%@c_switch_machine@%$c_switch_machine%g *************** *** 3395,3498 **** s%@LD_SWITCH_X_SITE_AUX@%$LD_SWITCH_X_SITE_AUX%g s%@C_SWITCH_X_SITE@%$C_SWITCH_X_SITE%g - s%@CFLAGS@%$CFLAGS%g s%@X_TOOLKIT_TYPE@%$X_TOOLKIT_TYPE%g s%@machfile@%$machfile%g s%@opsysfile@%$opsysfile%g ! s%@LIBS@%$LIBS%g s%@top_srcdir@%$top_srcdir%g ! s%@DEFS@%-DHAVE_CONFIG_H%" $ac_given_srcdir/${ac_file}.in >> $ac_file fi; done ! # These sed commands are put into ac_sed_defs when defining a macro. ! # They are broken into pieces to make the sed script easier to manage. ! # They are passed to sed as "A NAME B NAME C VALUE D", where NAME ! # is the cpp macro being defined and VALUE is the value it is being given. ! # Each defining turns into a single global substitution command. ! # Hopefully no one uses "!" as a variable value. ! # Other candidates for the sed separators, like , and @, do get used. # # ac_d sets the value in "#define NAME VALUE" lines. ! ac_dA='s!^\([ ]*\)#\([ ]*define[ ][ ]*\)' ! ac_dB='\([ ][ ]*\)[^ ]*!\1#\2' ac_dC='\3' ! ac_dD='!g' # ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". ! ac_uA='s!^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ! ac_uB='\([ ]\)!\1#\2define\3' ac_uC=' ' ! ac_uD='\4!g' # ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ! ac_eA='s!^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ! ac_eB='$!\1#\2define\3' ac_eC=' ' ! ac_eD='!g' ! rm -f conftest.sed EOF ! # Turn off quoting long enough to insert the sed commands. ! rm -f conftest.sh ! cat > conftest.sh < conftest.s1 # Like head -9. ! sed 1,${ac_max_sh_lines}d conftest.sh > conftest.s2 # Like tail +10. ! # Write a limited-size here document to append to conftest.sed. ! echo 'cat >> conftest.sed <> config.status ! cat conftest.s1 >> config.status ! echo 'CONFEOF' >> config.status ! rm -f conftest.s1 conftest.sh ! mv conftest.s2 conftest.sh done ! rm -f conftest.sh ! ! # Now back to your regularly scheduled config.status. ! cat >> config.status <<\EOF ! # This sed command replaces #undef's with comments. This is necessary, for ! # example, in the case of _POSIX_SOURCE, which is predefined and required ! # on some systems where configure will not decide to define it in ! # src/config.h. ! cat >> conftest.sed <<\CONFEOF ! s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, ! CONFEOF ! rm -f conftest.h ! # Break up the sed commands because old seds have small limits. ! ac_max_sed_lines=20 ! ! CONFIG_HEADERS=${CONFIG_HEADERS-"src/config.h"} ! for ac_file in .. ${CONFIG_HEADERS}; do if test "x$ac_file" != x..; then ! echo creating $ac_file ! cp $ac_given_srcdir/$ac_file.in conftest.h1 ! cp conftest.sed conftest.stm ! while : ! do ! ac_lines=`grep -c . conftest.stm` ! if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi ! rm -f conftest.s1 conftest.s2 conftest.h2 ! sed ${ac_max_sed_lines}q conftest.stm > conftest.s1 # Like head -20. ! sed 1,${ac_max_sed_lines}d conftest.stm > conftest.s2 # Like tail +21. ! sed -f conftest.s1 < conftest.h1 > conftest.h2 ! rm -f conftest.s1 conftest.h1 conftest.stm ! mv conftest.h2 conftest.h1 ! mv conftest.s2 conftest.stm ! done ! rm -f conftest.stm conftest.h echo "/* $ac_file. Generated automatically by configure. */" > conftest.h ! cat conftest.h1 >> conftest.h ! rm -f conftest.h1 if cmp -s $ac_file conftest.h 2>/dev/null; then - # The file exists and we would not be changing it. echo "$ac_file is unchanged" rm -f conftest.h --- 3579,3735 ---- s%@LD_SWITCH_X_SITE_AUX@%$LD_SWITCH_X_SITE_AUX%g s%@C_SWITCH_X_SITE@%$C_SWITCH_X_SITE%g s%@X_TOOLKIT_TYPE@%$X_TOOLKIT_TYPE%g s%@machfile@%$machfile%g s%@opsysfile@%$opsysfile%g ! ! CEOF ! EOF ! cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF ! for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then ! # Support "outfile[:infile]", defaulting infile="outfile.in". ! case "$ac_file" in ! *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'` ! ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; ! *) ac_file_in="${ac_file}.in" ;; ! esac ! ! # Adjust relative srcdir, etc. for subdirectories. ! ! # 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" ! ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" ! # A "../" for each directory in $ac_dir_suffix. ! ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` ! else ! ac_dir_suffix= ac_dots= ! fi ! ! case "$ac_given_srcdir" in ! .) srcdir=. ! if test -z "$ac_dots"; then top_srcdir=. ! else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; ! /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; ! *) # Relative path. ! srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" ! top_srcdir="$ac_dots$ac_given_srcdir" ;; ! esac ! ! case "$ac_given_INSTALL" in ! [/$]*) INSTALL="$ac_given_INSTALL" ;; ! *) INSTALL="$ac_dots$ac_given_INSTALL" ;; ! esac ! echo creating "$ac_file" ! rm -f "$ac_file" ! configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." ! case "$ac_file" in ! *Makefile*) ac_comsub="1i\\ ! # $configure_input" ;; ! *) ac_comsub= ;; ! esac ! sed -e "$ac_comsub ! s%@configure_input@%$configure_input%g ! s%@srcdir@%$srcdir%g s%@top_srcdir@%$top_srcdir%g ! s%@INSTALL@%$INSTALL%g ! " -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file fi; done + rm -f conftest.subs ! # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where ! # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. ! ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' ! ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' ac_dC='\3' ! ac_dD='%g' # ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". ! ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ! ac_uB='\([ ]\)%\1#\2define\3' ac_uC=' ' ! ac_uD='\4%g' # ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ! ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ! ac_eB='$%\1#\2define\3' ac_eC=' ' ! ac_eD='%g' ! ! CONFIG_HEADERS=${CONFIG_HEADERS-"src/config.h"} ! for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then ! # Support "outfile[:infile]", defaulting infile="outfile.in". ! case "$ac_file" in ! *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'` ! ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; ! *) ac_file_in="${ac_file}.in" ;; ! esac ! ! echo creating $ac_file ! ! rm -f conftest.frag conftest.in conftest.out ! cp $ac_given_srcdir/$ac_file_in conftest.in ! EOF ! ! # Transform confdefs.h into a sed script conftest.vals that substitutes ! # the proper values into config.h.in to produce config.h. And first: ! # Protect against being on the right side of a sed subst in config.status. ! # Protect against being in an unquoted here document in config.status. ! rm -f conftest.vals ! cat > conftest.hdr <<\EOF ! 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 EOF + sed -n -f conftest.hdr confdefs.h > conftest.vals + rm -f conftest.hdr ! # This sed command replaces #undef with comments. This is necessary, for ! # example, in the case of _POSIX_SOURCE, which is predefined and required ! # on some systems where configure will not decide to define it. ! cat >> conftest.vals <<\EOF ! s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */% ! EOF + # Break up conftest.vals because some shells have a limit on + # the size of here documents, and old seds have small limits too. # Maximum number of lines to put in a single here document. ! ac_max_here_lines=12 + rm -f conftest.tail while : do ! ac_lines=`grep -c . conftest.vals` ! # grep -c gives empty output for an empty file on some AIX systems. if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi ! # Write a limited-size here document to conftest.frag. ! echo ' cat > conftest.frag <> $CONFIG_STATUS ! sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS ! echo 'CEOF ! sed -f conftest.frag conftest.in > conftest.out ! rm -f conftest.in ! mv conftest.out conftest.in ! ' >> $CONFIG_STATUS ! sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail ! rm -f conftest.vals ! mv conftest.tail conftest.vals done ! rm -f conftest.vals ! cat >> $CONFIG_STATUS <<\EOF ! rm -f conftest.frag conftest.h echo "/* $ac_file. Generated automatically by configure. */" > conftest.h ! cat conftest.in >> conftest.h ! rm -f conftest.in if cmp -s $ac_file conftest.h 2>/dev/null; then echo "$ac_file is unchanged" rm -f conftest.h *************** *** 3502,3509 **** fi fi; done - rm -f conftest.sed # Build src/Makefile from ${srcdir}/src/Makefile.in. This must be done --- 3739,3754 ---- fi fi; done + EOF + cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF + ### Make the necessary directories, if they don't exist. + for dir in cpp etc ; do + test -d ${dir} || mkdir ${dir} + done # Build src/Makefile from ${srcdir}/src/Makefile.in. This must be done *************** *** 3552,3559 **** mv -f Makefile.new Makefile ) exit 0 EOF ! chmod +x config.status ! # Some shells look in PATH for config.status without the "./". ! test -n "$no_create" || ${CONFIG_SHELL-/bin/sh} ./config.status --- 3797,3811 ---- mv -f Makefile.new Makefile ) + + if test ! -f src/.gdbinit && test -f $top_srcdir/src/.gdbinit; then + echo creating src/.gdbinit + echo source $top_srcdir/src/.gdbinit > src/.gdbinit + fi + + exit 0 EOF ! chmod +x $CONFIG_STATUS ! rm -fr confdefs* $ac_clean_files ! test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/configure.in emacs-19.29/configure.in *** emacs-19.28/configure.in Thu Oct 6 01:09:24 1994 --- emacs-19.29/configure.in Mon Jun 19 14:50:16 1995 *************** *** 3,72 **** dnl autoconf dnl in the directory containing this script. ! [#!/bin/sh ! #### Configuration script for GNU Emacs ! #### Copyright (C) 1992, 1994 Free Software Foundation, Inc. ! #### This script requires autoconf version 1.9 or later. ! ! ### Don't edit this script! ! ### This script was automatically generated by the `autoconf' program ! ### from the file `./configure.in'. ! ### To rebuild it, execute the command ! ### autoconf ! ### in the this directory. ! ! ### 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. ! ! ### Since Emacs has configuration requirements that autoconf can't ! ### meet, this file is an unholy marriage of custom-baked ! ### configuration code and autoconf macros. ! ### ! ### We use the m4 quoting characters [ ] (as established by the ! ### autoconf system) to include large sections of raw sewage - Oops, I ! ### mean, shell code - in the final configuration script. ! ### ! ### Usage: configure config_name ! ### ! ### If configure succeeds, it leaves its status in config.status. ! ### If configure fails after disturbing the status quo, ! ### config.status is removed. ! ! ### Remove any more than one leading "." element from the path name. ! ### If we don't remove them, then another "./" will be prepended to ! ### the file name each time we use config.status, and the program name ! ### will get larger and larger. This wouldn't be a problem, except ! ### that since progname gets recorded in all the Makefiles this script ! ### produces, move-if-change thinks they're different when they're ! ### not. ! ### ! ### It would be nice if we could put the ./ in a \( \) group and then ! ### apply the * operator to that, so we remove as many leading ./././'s ! ### as are present, but some seds (like Ultrix's sed) don't allow you to ! ### apply * to a \( \) group. Bleah. ! progname="`echo $0 | sed 's:^\./\./:\./:'`" ! - ### Establish some default values. - run_in_place= - single_tree= - prefix='/usr/local' - exec_prefix='${prefix}' bindir='${exec_prefix}/bin' ! datadir='${prefix}/lib' ! statedir='${prefix}/lib' ! libdir='${exec_prefix}/lib' mandir='${prefix}/man/man1' infodir='${prefix}/info' --- 3,14 ---- dnl autoconf dnl in the directory containing this script. ! AC_PREREQ(2.0)dnl ! AC_INIT(src/lisp.h) ! AC_CONFIG_HEADER(src/config.h) bindir='${exec_prefix}/bin' ! datadir='${prefix}/share' ! sharedstatedir='${prefix}/com' ! libexecdir='${exec_prefix}/libexec' mandir='${prefix}/man/man1' infodir='${prefix}/info' *************** *** 75,200 **** lisppath='${locallisppath}:${lispdir}' etcdir='${datadir}/emacs/${version}/etc' ! lockdir='${statedir}/emacs/lock' ! archlibdir='${libdir}/emacs/${version}/${configuration}' docdir='${datadir}/emacs/${version}/etc' ! # On Sun systems, people sometimes set up the variable CPP ! # with a value that is a directory, not an executable at all. ! # Detect that case, and ignore that value. ! if [ "x$CPP" != x ] && [ -d "$CPP" ]; ! then ! CPP= ! fi ! ! # We cannot use this variable in the case statement below, because many ! # /bin/sh's have broken semantics for "case". Unfortunately, you must ! # actually edit the clause itself. ! # path_options="prefix | exec_prefix | bindir | libdir | etcdir | datadir" ! # path_options="$path_options | archlibdir | statedir | mandir | infodir" ! # path_options="$path_options | lispdir | lockdir | lisppath | locallisppath" ! ! #### Usage messages. ! ! short_usage="Usage: ${progname} CONFIGURATION [-OPTION[=VALUE] ...] ! ! Set compilation and installation parameters for GNU Emacs, and report. ! CONFIGURATION specifies the machine and operating system to build for. ! --with-x Support the X Window System. ! --with-x=no Don't support X. ! --with-x-toolkit Use an X toolkit. ! --with-x-toolkit=no Don't use an X toolkit. ! --with-gcc Use GCC to compile Emacs. ! --with-gcc=no Don't use GCC to compile Emacs. ! --x-includes=DIR Search for X header files in DIR. ! --x-libraries=DIR Search for X libraries in DIR. ! --run-in-place Use libraries and data files directly out of the ! source tree. ! --single-tree=DIR Has the effect of creating a directory tree at DIR ! which looks like: ! .../DIR/bin/CONFIGNAME (emacs, etags, etc.) ! .../DIR/bin/CONFIGNAME/etc (movemail, etc.) ! .../DIR/common/lisp (emacs' lisp files) ! .../DIR/common/site-lisp (local lisp files) ! .../DIR/common/lib (DOC, TUTORIAL, etc.) ! .../DIR/common/lock (lockfiles) ! --srcdir=DIR Look for the Emacs source files in DIR. ! --prefix=DIR Install files below DIR. Defaults to \`${prefix}'. ! ! You may also specify any of the \`path' variables found in Makefile.in, ! including --bindir, --libdir, --etcdir, --infodir, and so on. This allows ! you to override a single default location when configuring. ! ! If successful, ${progname} leaves its status in config.status. If ! unsuccessful after disturbing the status quo, it removes config.status." ! ! ! #### Option processing. ! ! ### Record all the arguments, so we can save them in config.status. ! arguments="$@" ! ! ### Shell Magic: Quote the quoted arguments in ARGUMENTS. At a later date, ! ### in order to get the arguments back in $@, we have to do an ! ### `eval set x "$quoted_arguments"; shift'. ! quoted_arguments= ! for i in "$@"; do ! quoted_arguments="$quoted_arguments '$i'" ! done ! ! ### Don't use shift -- that destroys the argument list, which autoconf needs ! ### to produce config.status. It turns out that "set - ${arguments}" doesn't ! ### work portably. ! ### However, it also turns out that many shells cannot expand ${10} at all. ! ### So using an index variable doesn't work either. It is possible to use ! ### some shell magic to make 'set x "$arguments"; shift' work portably. ! while [ $# != 0 ]; do ! arg="$1"; shift ! case "${arg}" in ! ! ## Anything starting with a hyphen we assume is an option. ! -* ) ! ## Separate the switch name from the value it's being given. ! case "${arg}" in ! -*=*) ! opt=`echo ${arg} | sed 's:^-*\([^=]*\)=.*$:\1:'` ! val=`echo ${arg} | sed 's:^-*[^=]*=\(.*\)$:\1:'` ! valomitted=no ! ;; ! -*) ! ## If FOO is a boolean argument, --FOO is equivalent to ! ## --FOO=yes. Otherwise, the value comes from the next ! ## argument - see below. ! opt=`echo ${arg} | sed 's:^-*\(.*\)$:\1:'` ! val="yes" ! valomitted=yes ! ;; ! esac ! ! ## Change `-' in the option name to `_'. ! optname="${opt}" ! opt="`echo ${opt} | tr - _`" ! ! ## Process the option. ! case "${opt}" in ! ! ## Has the user specified which window systems they want to support? ! "with_x" | "with_x11" | "with_x10" ) ! ## Make sure the value given was either "yes" or "no". ! case "${val}" in ! y | ye | yes ) val=yes ;; ! n | no ) val=no ;; ! * ) ! (echo "${progname}: the \`--${optname}' option is supposed to have a boolean value. ! Set it to either \`yes' or \`no'." ! echo "${short_usage}") >&2 ! exit 1 ! ;; ! esac ! eval "${opt}=\"${val}\"" ! ;; ! ! ## Has the user specified which toolkit they want to support? ! "with_x_toolkit" ) ! case "${val}" in y | ye | yes ) val=athena ;; n | no ) val=no ;; --- 17,41 ---- lisppath='${locallisppath}:${lispdir}' etcdir='${datadir}/emacs/${version}/etc' ! lockdir='${sharedstatedir}/emacs/lock' ! archlibdir='${libexecdir}/emacs/${version}/${configuration}' docdir='${datadir}/emacs/${version}/etc' ! AC_ARG_WITH(gcc, ! [ --with-gcc use GCC to compile Emacs]) ! AC_ARG_WITH(pop, ! [ --with-pop support POP for mail retrieval], ! [AC_DEFINE(MAIL_USE_POP)]) ! AC_ARG_WITH(kerberos, ! [ --with-kerberos support Kerberos-authenticated POP], ! [AC_DEFINE(KERBEROS)]) ! AC_ARG_WITH(hesiod, ! [ --with-hesiod support Hesiod to get the POP server host], ! [AC_DEFINE(HESIOD)]) ! dnl This should be the last --with option, because --with-x is ! dnl added later on when we find the path of X, and it's best to ! dnl keep them together visually. ! AC_ARG_WITH(x-toolkit, ! [ --with-x-toolkit=KIT use an X toolkit (KIT = yes/lucid/athena/motif)], ! [ case "${withval}" in y | ye | yes ) val=athena ;; n | no ) val=no ;; *************** *** 201,410 **** l | lu | luc | luci | lucid ) val=lucid ;; a | at | ath | athe | athena ) val=athena ;; ! # These don't currently work. ! # m | mo | mot | moti | motif ) val=motif ;; ! # o | op | ope | open | open- | open-l | open-lo \ ! # | open-loo | open-look ) val=open-look ;; ! * ) ! ( ! #echo "${progname}: the \`--${optname}' option is supposed to have a value ! #which is \`yes', \`no', \`lucid', \`athena', \`motif' or \`open-look'." ! echo "${progname}: the \`--${optname}' option is supposed to have a value ! which is \`yes', \`no', \`lucid', or \`athena'. ! Currently, \`yes', \`athena' and \`lucid' are synonyms." ! echo "${short_usage}") >&2 ! exit 1 ! ;; ! esac ! eval "${opt}=\"${val}\"" ! ;; ! ! ## Has the user specified whether or not they want GCC? ! "with_gcc" | "with_gnu_cc" ) ! ## Make sure the value given was either "yes" or "no". ! case "${val}" in ! y | ye | yes ) val=yes ;; ! n | no ) val=no ;; * ) ! (echo "${progname}: the \`--${optname}' option is supposed to have a boolean value. ! Set it to either \`yes' or \`no'." ! echo "${short_usage}") >&2 ! exit 1 ;; esac ! eval "${opt}=\"${val}\"" ! ;; ! ! ## Has the user specified a source directory? ! "srcdir" ) ! ## If the value was omitted, get it from the next argument. ! if [ "${valomitted}" = "yes" ]; then ! ## Get the next argument from the argument list, if there is one. ! if [ $# = 0 ]; then ! (echo "${progname}: You must give a value for the \`--${optname}' option, as in ! \`--${optname}=FOO'." ! echo "${short_usage}") >&2 ! exit 1 ! fi ! val="$1"; shift ! fi ! srcdir="${val}" ! ;; ! ! ## Has the user tried to tell us where the X files are? ! ## I think these are dopey, but no less than three alpha ! ## testers, at large sites, have said they have their X files ! ## installed in odd places. ! "x_includes" ) ! ## If the value was omitted, get it from the next argument. ! if [ "${valomitted}" = "yes" ]; then ! ## Get the next argument from the argument list, if there is one. ! if [ $# = 0 ]; then ! (echo "${progname}: You must give a value for the \`--${optname}' option, as in ! \`--${optname}=/usr/local/X11/include'." ! echo "${short_usage}") >&2 ! exit 1 ! fi ! val="$1"; shift ! fi ! x_includes="${val}" ! ;; ! "x_libraries" ) ! ## If the value was omitted, get it from the next argument. ! if [ "${valomitted}" = "yes" ]; then ! ## Get the next argument from the argument list, if there is one. ! if [ $# = 0 ]; then ! (echo "${progname}: You must give a value for the \`--${optname}' option, as in ! \`--${optname}=/usr/local/X11/lib'." ! echo "${short_usage}") >&2 ! exit 1 ! fi ! val="$1"; shift ! fi ! x_libraries="${val}" ! ;; ! ! ## Should this use the "development" file organization? ! "run_in_place" ) ! single_tree= ! run_in_place=1 ! ;; ! ! ## Should this use the "single tree" file organization? ! "single_tree" ) ! run_in_place= ! single_tree=1 ! ;; ! ! ## Has the user specified one of the path options? ! prefix | exec_prefix | bindir | libdir | etcdir | datadir | \ ! archlibdir | statedir | mandir | infodir | lispdir | lockdir | \ ! lisppath | locallisppath | docdir ) ! ## If the value was omitted, get it from the next argument. ! if [ "${valomitted}" = "yes" ]; then ! if [ $# = 0 ]; then ! (echo \ ! "$progname: You must give a value for the \`--${optname}' option,"; ! echo \ ! "as in \`--${optname}=`eval echo '$'$optname`.'" ! echo "$short_usage") >&2 ! exit 1 ! fi ! val="$1"; shift ! fi ! eval "${opt}=\"${val}\"" ! eval "${opt}_specified=1" ! ;; ! ! ## Verbose flag, tested by autoconf macros. ! "verbose" ) ! verbose=yes ! ;; ! ! ## Has the user asked for some help? ! "usage" | "help" ) ! if [ "x$PAGER" = x ] ! then ! echo "${short_usage}" | more ! else ! echo "${short_usage}" | $PAGER ! fi ! exit ! ;; ! ! ## We ignore all other options silently. ! esac ! ;; ! ! ## Anything not starting with a hyphen we assume is a ! ## configuration name. ! *) ! configuration=${arg} ! ;; ! ! esac ! done ! ! ### Get the arguments back. See the diatribe on Shell Magic above. ! eval set x "$quoted_arguments"; shift ! ! if [ "${configuration}" = "" ]; then ! echo '- You did not tell me what kind of host system you want to configure. ! - I will attempt to guess the kind of system this is.' 1>&2 ! guesssys=`echo ${progname} | sed 's/configure$/config.guess/'` ! if configuration=`${guesssys}` ; then ! echo "- Looks like this is a ${configuration}" 1>&2 ! else ! echo '- Failed to guess the system type. You need to tell me.' 1>&2 ! echo "${short_usage}" >&2 ! exit 1 ! fi ! fi ! ! #### Decide where the source is. ! case "${srcdir}" in ! ! ## If it's not specified, see if `.' or `..' might work. ! "" ) ! confdir=`echo $0 | sed 's|//|/|' | sed 's|/[^/]*$||'` ! if [ -f $confdir/src/lisp.h -a -f $confdir/lisp/version.el ]; then ! srcdir="${confdir}" ! else ! if [ -f "./src/lisp.h" -a -f "./lisp/version.el" ]; then ! srcdir='.' ! else ! if [ -f "../src/lisp.h" -a -f "../lisp/version.el" ]; then ! srcdir='..' ! else ! (echo "\ ! ${progname}: Neither the current directory nor its parent seem to ! contain the Emacs sources. If you do not want to build Emacs in its ! source tree, you should run \`${progname}' in the directory in which ! you wish to build Emacs, using its \`--srcdir' option to say where the ! sources may be found." ! echo "${short_usage}") >&2 ! exit 1 ! fi ! fi ! fi ! ;; ! ! ## Otherwise, check if the directory they specified is okay. ! * ) ! if [ ! -d "${srcdir}" -o ! -f "${srcdir}/src/lisp.h" -o ! -f "${srcdir}/lisp/version.el" ]; then ! (echo "\ ! ${progname}: The directory specified with the \`--srcdir' option, ! \`${srcdir}', doesn't seem to contain the Emacs sources. You should ! either run the \`${progname}' script at the top of the Emacs source ! tree, or use the \`--srcdir' option to specify where the Emacs sources ! are." ! echo "${short_usage}") >&2 ! exit 1 ! fi ! ;; ! esac #### Make srcdir absolute, if it isn't already. It's important to #### avoid running the path through pwd unnecessary, since pwd can ! #### give you automounter prefixes, which can go away. case "${srcdir}" in /* ) ;; --- 42,64 ---- l | lu | luc | luci | lucid ) val=lucid ;; a | at | ath | athe | athena ) val=athena ;; ! m | mo | mot | moti | motif ) val=motif ;; ! dnl These don't currently work. ! dnl o | op | ope | open | open- | open-l | open-lo \ ! dnl | open-loo | open-look ) val=open-look ;; * ) ! dnl AC_MSG_ERROR([the \`--with-x-toolkit' option is supposed to have a value ! dnl which is \`yes', \`no', \`lucid', \`athena', \`motif' or \`open-look'.]) ! AC_MSG_ERROR([the \`--with-x-toolkit' option is supposed to have a value ! which is \`yes', \`no', \`lucid', \`athena', or \`motif'. ! Currently, \`yes', \`athena' and \`lucid' are synonyms.]) ;; esac ! with_x_toolkit=$val ! ]) #### Make srcdir absolute, if it isn't already. It's important to #### avoid running the path through pwd unnecessary, since pwd can ! #### give you automounter prefixes, which can go away. We do all this ! #### so Emacs can find its files when run uninstalled. case "${srcdir}" in /* ) ;; *************** *** 412,416 **** ## We may be able to use the $PWD environment variable to make this ## absolute. But sometimes PWD is inaccurate. ! if [ "${PWD}" != "" ] && [ "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`" ] ; then srcdir="$PWD" else --- 66,73 ---- ## We may be able to use the $PWD environment variable to make this ## absolute. But sometimes PWD is inaccurate. ! ## Make sure CDPATH doesn't affect cd (in case PWD is relative). ! CDPATH= ! if test "${PWD}" != "" && test "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`" ; ! then srcdir="$PWD" else *************** *** 422,434 **** #### Check if the source directory already has a configured system in it. ! if [ `pwd` != `(cd ${srcdir} && pwd)` ] \ ! && [ -f "${srcdir}/src/config.h" ] ; then ! (echo "${progname}: WARNING: The directory tree \`${srcdir}' is being used" ! echo " as a build directory right now; it has been configured in its own" ! echo " right. To configure in another directory as well, you MUST" ! echo " use GNU make. If you do not have GNU make, then you must" ! echo " now do \`make distclean' in ${srcdir}," ! echo " and then run ${progname} again.") >&2 extrasub='/^VPATH[ ]*=/c\ vpath %.c $(srcdir)\ vpath %.h $(srcdir)\ --- 79,94 ---- #### Check if the source directory already has a configured system in it. ! if test `pwd` != `(cd ${srcdir} && pwd)` \ ! && test -f "${srcdir}/src/config.h" ; then ! AC_MSG_WARN([The directory tree \`${srcdir}' is being used ! as a build directory right now; it has been configured in its own ! right. To configure in another directory as well, you MUST ! use GNU make. If you do not have GNU make, then you must ! now do \`make distclean' in ${srcdir}, ! and then run $0 again.]) ! ! changequote(, )dnl extrasub='/^VPATH[ ]*=/c\ + changequote([, ])dnl vpath %.c $(srcdir)\ vpath %.h $(srcdir)\ *************** *** 439,449 **** fi - ### Make the necessary directories, if they don't exist. - for dir in ./src ./lib-src ./cpp ./oldXMenu ./lwlib ./etc ; do - if [ ! -d ${dir} ]; then - mkdir ${dir} - fi - done - #### Given the configuration name, set machfile and opsysfile to the #### names of the m/*.h and s/*.h files we should use. --- 99,102 ---- *************** *** 450,457 **** ### Canonicalize the configuration name. ! echo "Checking the configuration name" ! if canonical=`${srcdir}/config.sub "${configuration}"` ; then : ; else ! exit $? ! fi ### If you add support for a new configuration, add code to this --- 103,112 ---- ### Canonicalize the configuration name. ! ! AC_CANONICAL_HOST ! canonical=$host ! configuration=$host_alias ! ! changequote(, )dnl ### If you add support for a new configuration, add code to this *************** *** 478,482 **** ### confusion between `system' and `release' levels'." ! machine='' opsys='' unported='false' case "${canonical}" in --- 133,137 ---- ### confusion between `system' and `release' levels'." ! machine='' opsys='' unported=no case "${canonical}" in *************** *** 495,498 **** --- 150,161 ---- ;; + ## Acorn RISCiX: + arm-acorn-riscix1.1* ) + machine=acorn opsys=riscix1-1 + ;; + arm-acorn-riscix1.2* | arm-acorn-riscix ) + machine=acorn opsys=riscix1-2 + ;; + ## Alliant machines ## Strictly speaking, we need the version of the alliant operating *************** *** 508,511 **** --- 171,178 ---- ;; + alpha-dec-osf* ) + machine=alpha opsys=osf1 + ;; + ## Altos 3068 m68*-altos-sysv* ) *************** *** 518,524 **** ;; ! ## Appallings - I mean, Apollos - running Domain ! m68*-apollo* ) ! machine=apollo opsys=bsd4-2 ;; --- 185,191 ---- ;; ! ## Apollo, Domain/OS ! m68*-apollo-* ) ! machine=apollo opsys=bsd4-3 ;; *************** *** 609,616 **** m68k-motorola-sysv* | m68000-motorola-sysv* ) machine=delta opsys=usg5-3 ! if [ -z "`type gnucc | grep 'not found'`" ] ! then CC=gnucc else ! if [ -z "`type gcc | grep 'not found'`" ] then CC=gcc else CC=cc --- 276,287 ---- m68k-motorola-sysv* | m68000-motorola-sysv* ) machine=delta opsys=usg5-3 ! if test -z "`type gnucc | grep 'not found'`" ! then ! if test -s /etc/167config ! then CC="gnucc -m68040" ! else CC="gnucc -m68881" ! fi else ! if test -z "`type gcc | grep 'not found'`" then CC=gcc else CC=cc *************** *** 619,623 **** ;; m88k-motorola-sysv4* ) ! machine=delta88k opsys=usg5-4 ;; m88k-motorola-sysv* | m88k-motorola-m88kbcs* ) --- 290,298 ---- ;; m88k-motorola-sysv4* ) ! # jbotte@bnr.ca says that UNIX_System_V 4.0 R40V4.3 m88k mc88110 ! # needs POSIX_SIGNALS and therefore needs usg5-4-2. ! # I hope there are not other 4.0 versions for this machine ! # which really need usg5-4 instead. ! machine=delta88k opsys=usg5-4-2 ;; m88k-motorola-sysv* | m88k-motorola-m88kbcs* ) *************** *** 679,683 **** machine=hp9000s300 opsys=bsd4-3 ;; ! ## HP/UX 7, 8 and 9 are supported on these machines. m68*-hp-hpux* ) case "`uname -r`" in --- 354,358 ---- machine=hp9000s300 opsys=bsd4-3 ;; ! ## HP/UX 7, 8, 9, and 10 are supported on these machines. m68*-hp-hpux* ) case "`uname -r`" in *************** *** 687,690 **** --- 362,366 ---- *.08.* ) machine=hp9000s300 opsys=hpux8 ;; *.09.* ) machine=hp9000s300 opsys=hpux9 ;; + *.10.* ) machine=hp9000s300 opsys=hpux9shr ;; *) machine=hp9000s300 opsys=hpux ;; esac *************** *** 704,707 **** --- 380,386 ---- machine=hp800 opsys=hpux9 ;; + hppa*-hp-hpux10* ) + machine=hp800 opsys=hpux9shr + ;; ## HP 9000 series 700 and 800, running HP/UX *************** *** 742,745 **** --- 421,430 ---- machine=ibmrs6000 opsys=aix3-2-5 ;; + rs6000-ibm-aix4.1* | powerpc-ibm-aix4.1* ) + machine=ibmrs6000 opsys=aix4-1 + ;; + rs6000-ibm-aix4* | powerpc-ibm-aix4* ) + machine=ibmrs6000 opsys=aix4 + ;; rs6000-ibm-aix* | powerpc-ibm-aix* ) machine=ibmrs6000 opsys=aix3-2 *************** *** 785,789 **** ;; ! ## Sequent Symmetry i[345]86-sequent-bsd* ) machine=symmetry opsys=bsd4-3 --- 470,474 ---- ;; ! ## Sequent Symmetry running Dynix i[345]86-sequent-bsd* ) machine=symmetry opsys=bsd4-3 *************** *** 790,799 **** ;; ## Unspecified sysv on an ncr machine defaults to svr4.2. ## (Plain usg5-4 doesn't turn on POSIX signals, which we need.) i[345]86-ncr-sysv* ) ! machine=intel386 opsys=usg5-4-2 ;; ## Intel 860 i860-*-sysv4* ) --- 475,496 ---- ;; + ## Sequent Symmetry running DYNIX/ptx + ## Use the old cpp rather than the newer ANSI one. + i[345]86-sequent-ptx* ) + machine=sequent-ptx opsys=ptx + NON_GNU_CPP="/lib/cpp" + ;; + ## Unspecified sysv on an ncr machine defaults to svr4.2. ## (Plain usg5-4 doesn't turn on POSIX signals, which we need.) i[345]86-ncr-sysv* ) ! machine=ncr386 opsys=usg5-4-2 ;; + ## Intel Paragon OSF/1 + i860-intel-osf1* ) + machine=paragon opsys=osf1 NON_GNU_CPP=/usr/mach/lib/cpp + ;; + ## Intel 860 i860-*-sysv4* ) *************** *** 907,915 **** machine=iris4d opsys=irix3-3 ;; ! mips-sgi-irix5* ) machine=iris4d opsys=irix5-0 ;; ! mips-sgi-irix4* | mips-sgi-irix* ) ! machine=iris4d opsys=irix4-0 ;; --- 604,618 ---- machine=iris4d opsys=irix3-3 ;; ! mips-sgi-irix4* ) ! machine=iris4d opsys=irix4-0 ! ;; ! mips-sgi-irix6* ) ! machine=iris4d opsys=irix6-0 ! ;; ! mips-sgi-irix5.[01]* ) machine=iris4d opsys=irix5-0 ;; ! mips-sgi-irix5* | mips-sgi-irix* ) ! machine=iris4d opsys=irix5-2 ;; *************** *** 921,931 **** machine=news opsys=bsd4-3 ;; ! m68*-sony-newsos3*) machine=news opsys=bsd4-3 ;; ! mips-sony-bsd* | mips-sony-newsos4* ) machine=news-risc opsys=bsd4-3 ;; ! mips-sony-newsos* ) machine=news-risc opsys=newsos5 ;; --- 624,634 ---- machine=news opsys=bsd4-3 ;; ! m68*-sony-newsos3* | m68*-sony-news3*) machine=news opsys=bsd4-3 ;; ! mips-sony-bsd* | mips-sony-newsos4* | mips-sony-news4*) machine=news-risc opsys=bsd4-3 ;; ! mips-sony-news* ) machine=news-risc opsys=newsos5 ;; *************** *** 945,949 **** i[345]86-*-* ) machine=intel386 ;; sparc* ) machine=sparc ;; ! * ) unported=true ;; esac case "${canonical}" in --- 648,652 ---- i[345]86-*-* ) machine=intel386 ;; sparc* ) machine=sparc ;; ! * ) unported=yes ;; esac case "${canonical}" in *************** *** 951,959 **** i[345]86-*-sunos4 ) opsys=sunos4-0 ;; *-sunos4.0* ) opsys=sunos4-0 ;; ! *-sunos4.1.3* ) opsys=sunos4-1-3 ! NON_GCC_TEST_OPTIONS=-Bstatic ! GCC_TEST_OPTIONS=-static ;; - *-sunos4shr* ) opsys=sunos4shr ;; *-sunos4* | *-sunos ) opsys=sunos4-1 NON_GCC_TEST_OPTIONS=-Bstatic --- 654,660 ---- i[345]86-*-sunos4 ) opsys=sunos4-0 ;; *-sunos4.0* ) opsys=sunos4-0 ;; ! *-sunos4.1.3* | *-sunos4shr* ) opsys=sunos4shr ! NON_GNU_CPP=/usr/lib/cpp ;; *-sunos4* | *-sunos ) opsys=sunos4-1 NON_GCC_TEST_OPTIONS=-Bstatic *************** *** 968,971 **** --- 669,676 ---- NON_GNU_CPP=/usr/ccs/lib/cpp ;; + *-sunos5.5* | *-solaris2.5* ) + opsys=sol2-5 + NON_GNU_CPP=/usr/ccs/lib/cpp + ;; *-sunos5* | *-solaris* ) opsys=sol2 *************** *** 1027,1035 **** *-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* ) opsys=bsd4-2 ;; *-bsd4.3* | *-ultrix* ) opsys=bsd4-3 ;; - *-bsd386* | *-bsdi* ) opsys=bsd386 ;; *-sysv[01]* | *-sysvr[01]* ) opsys=usg5-0 ;; *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;; *-vms* ) opsys=vms ;; ! * ) unported=true esac ;; --- 732,739 ---- *-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* ) opsys=bsd4-2 ;; *-bsd4.3* | *-ultrix* ) opsys=bsd4-3 ;; *-sysv[01]* | *-sysvr[01]* ) opsys=usg5-0 ;; *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;; *-vms* ) opsys=vms ;; ! * ) unported=yes esac ;; *************** *** 1054,1057 **** --- 758,762 ---- *-isc2.2* ) opsys=isc2-2 ;; *-isc4.0* ) opsys=isc4-0 ;; + *-isc4.* ) opsys=isc4-1 ;; *-isc* ) opsys=isc3-0 ;; *-esix5* ) opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;; *************** *** 1060,1064 **** *-linux* ) opsys=linux ;; *-sco3.2v4* ) opsys=sco4 ; NON_GNU_CPP=/lib/cpp ;; ! *-bsd386* | *-bsdi* ) opsys=bsd386 ;; *-386bsd* ) opsys=386bsd ;; *-freebsd* ) opsys=freebsd ;; --- 765,770 ---- *-linux* ) opsys=linux ;; *-sco3.2v4* ) opsys=sco4 ; NON_GNU_CPP=/lib/cpp ;; ! *-bsd386* | *-bsdi1* ) opsys=bsd386 ;; ! *-bsdi2* ) opsys=bsdos2 ;; *-386bsd* ) opsys=386bsd ;; *-freebsd* ) opsys=freebsd ;; *************** *** 1069,1073 **** * ) ! unported=true ;; esac --- 775,779 ---- * ) ! unported=yes ;; esac *************** *** 1079,1083 **** ### runs, it's cleaner to make it explicit in the case statement ### above. ! if [ x"${opsys}" = x ]; then case "${canonical}" in *-gnu* ) opsys=gnu ;; --- 785,789 ---- ### runs, it's cleaner to make it explicit in the case statement ### above. ! if test x"${opsys}" = x; then case "${canonical}" in *-gnu* ) opsys=gnu ;; *************** *** 1093,1099 **** NON_GNU_CPP=/usr/lib/cpp opsys=usg5-4 ;; ! *-sysv4.2 | *-sysvr4.2 ) opsys=usg5-4-2 ;; * ) ! unported=true ;; esac --- 799,809 ---- NON_GNU_CPP=/usr/lib/cpp opsys=usg5-4 ;; ! *-sysv4.2 | *-sysvr4.2 ) ! if [ x$NON_GNU_CPP = x ]; then ! NON_GNU_CPP=/usr/ccs/lib/cpp ! fi ! opsys=usg5-4-2 ;; * ) ! unported=yes ;; esac *************** *** 1100,1108 **** fi ! if $unported ; then ! (echo "${progname}: Emacs hasn't been ported to \`${canonical}' systems." ! echo "${progname}: Check \`etc/MACHINES' for recognized configuration names." ! ) >&2 ! exit 1 fi --- 810,818 ---- fi ! changequote([, ])dnl ! ! if test $unported = yes; then ! AC_MSG_ERROR([Emacs hasn't been ported to \`${canonical}' systems. ! Check \`etc/MACHINES' for recognized configuration names.]) fi *************** *** 1110,1142 **** opsysfile="s/${opsys}.h" - ] - AC_PREPARE(lisp) - AC_CONFIG_HEADER(src/config.h) - [ #### Choose a compiler. ! if [ "x$CC" = x ] ! then true ! else cc_specified=1 ! fi case ${with_gcc} in ! "yes" ) CC="gcc" GCC=1 ;; ! "no" ) ! if [ "x$CC" = x ] ! then CC=cc; ! else true; ! fi ! ;; ! * ) ! ] AC_PROG_CC [ esac #### Some systems specify a CPP to use unless we are using GCC. #### Now that we know whether we are using GCC, we can decide whether #### to use that one. ! if [ "x$NON_GNU_CPP" = x ] || [ x$GCC = x1 ] || [ "x$CPP" != x ] ! then true ! else CPP="$NON_GNU_CPP" fi --- 820,843 ---- opsysfile="s/${opsys}.h" #### Choose a compiler. ! test -n "$CC" && cc_specified=yes case ${with_gcc} in ! "yes" ) CC="gcc" GCC=yes ;; ! "no" ) : ${CC=cc} ;; ! * ) AC_PROG_CC esac + # On Suns, sometimes $CPP names a directory. + if test -n "$CPP" && test -d "$CPP"; then + CPP= + fi + #### Some systems specify a CPP to use unless we are using GCC. #### Now that we know whether we are using GCC, we can decide whether #### to use that one. ! if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x ! then CPP="$NON_GNU_CPP" fi *************** *** 1145,1155 **** #### Now that we know whether we are using GCC, we can decide whether #### to use that one. ! if [ "x$NON_GNU_CC" = x ] || [ x$GCC = x1 ] || [ x$cc_specified = x1 ] ! then true ! else CC="$NON_GNU_CC" fi ! if [ x$GCC = x1 ] && [ "x$GCC_TEST_OPTIONS" != x ] then CC="$CC $GCC_TEST_OPTIONS" --- 846,856 ---- #### Now that we know whether we are using GCC, we can decide whether #### to use that one. ! if test "x$NON_GNU_CC" != x && test x$GCC != xyes && ! test x$cc_specified != xyes ! then CC="$NON_GNU_CC" fi ! if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x then CC="$CC $GCC_TEST_OPTIONS" *************** *** 1156,1160 **** fi ! if [ x$GCC = x ] && [ "x$NON_GCC_TEST_OPTIONS" != x ] then CC="$CC $NON_GCC_TEST_OPTIONS" --- 857,861 ---- fi ! if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x then CC="$CC $NON_GCC_TEST_OPTIONS" *************** *** 1164,1170 **** #### should make an entry in src/config.h, don't forget to add an #### #undef clause to src/config.h.in for autoconf to modify. ! ] dnl checks for programs ! AC_LN_S AC_PROG_CPP AC_PROG_INSTALL --- 865,871 ---- #### should make an entry in src/config.h, don't forget to add an #### #undef clause to src/config.h.in for autoconf to modify. ! dnl checks for programs ! AC_PROG_LN_S AC_PROG_CPP AC_PROG_INSTALL *************** *** 1171,1290 **** AC_PROG_YACC ! dnl checks for UNIX variants that set `DEFS' dnl checks for header files ! AC_HAVE_HEADERS(sys/timeb.h sys/time.h unistd.h) ! AC_STDC_HEADERS ! AC_TIME_WITH_SYS_TIME ! dnl In Autoconf 1.8 use AC_SYS_SIGLIST_DECLARED instead of this. ! AC_COMPILE_CHECK(sys_siglist declaration in signal.h or unistd.h, ! [#include ! /* NetBSD declares sys_siglist in . */ ! #ifdef HAVE_UNISTD_H ! #include ! #endif], [char *msg = *(sys_siglist + 1);], ! AC_DEFINE(SYS_SIGLIST_DECLARED)) dnl checks for typedefs ! AC_RETSIGTYPE dnl checks for structure members AC_STRUCT_TM ! AC_TIMEZONE dnl checks for compiler characteristics ! AC_CONST dnl check for Make feature ! AC_SET_MAKE dnl checks for operating system services ! AC_LONG_FILE_NAMES ! ! dnl other checks for UNIX variants ! [ #### Choose a window system. - echo "checking for specified window system" ! window_system='' ! case "${with_x}" in ! yes ) ! window_system=${window_system}x11 ! ;; ! no ) ! window_system=${window_system}none ! ;; ! esac ! case "${window_system}" in ! .* ) ! ;; ! * ) ! case "${with_x11}" in ! yes ) ! window_system=x11 ! ;; ! no ) ! window_system=none ! ;; ! esac ! case "${with_x10}" in ! yes ) ! window_system=x10 ! ;; ! no ) ! window_system=none ! ;; ! esac ! ;; ! esac ! case "${window_system}" in ! "none" | "x11" | "x10" ) ;; ! "" ) ! # --x-includes or --x-libraries implies --with-x11. ! if [ -n "${x_includes}" ] || [ -n "${x_libraries}" ]; then ! window_system=x11 ! else ! echo " No window system specified. Looking for X11." ! # If the user didn't specify a window system and we found X11, use it. ! if [ -r /usr/lib/libX11.a \ ! -o -d /usr/include/X11 \ ! -o -d /usr/X386/include \ ! -o -d ${x_includes}/X11 ]; then ! window_system=x11 ! fi ! fi ! ;; ! * ) ! echo "Don't specify a window system more than once." >&2 ! exit 1 ! ;; ! esac ! case "${window_system}" in ! "" | "x11" ) ! ### If the user hasn't specified where we should find X, try ! ### letting autoconf figure that out. ! if [ -z "${x_includes}" ] && [ -z "${x_libraries}" ]; then ! ] ! AC_FIND_X ! [ ! fi ! if [ -n "${x_includes}" ] || [ -n "${x_libraries}" ]; then ! window_system=x11 fi ! ;; ! esac ! ! [ -z "${window_system}" ] && window_system=none ! ! [ -n "${x_libraries}" ] && LD_SWITCH_X_SITE="-L${x_libraries}" ! [ -n "${x_libraries}" ] && LD_SWITCH_X_SITE_AUX="-R${x_libraries}" ! [ -n "${x_includes}" ] && C_SWITCH_X_SITE="-I${x_includes}" ! ! # Avoid forcing the search of /usr/include before fixed include files. ! if [ "$C_SWITCH_X_SITE" = "-I/usr/include" ]; then ! C_SWITCH_X_SITE=" " fi --- 872,966 ---- AC_PROG_YACC ! dnl checks for Unix variants ! AC_AIX 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 ! AC_DECL_SYS_SIGLIST ! ! dnl Some systems have utime.h but don't declare the struct anyplace. ! AC_MSG_CHECKING(for struct utimbuf) ! AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME ! #include ! #include ! #else ! #ifdef HAVE_SYS_TIME_H ! #include ! #else ! #include ! #endif ! #endif ! #ifdef HAVE_UTIME_H ! #include ! #endif], [static struct utimbuf x; x.actime = x.modtime;], ! [AC_MSG_RESULT(yes) ! AC_DEFINE(HAVE_STRUCT_UTIMBUF)], ! AC_MSG_RESULT(no)) dnl checks for typedefs ! AC_TYPE_SIGNAL + AC_MSG_CHECKING(for struct timeval) + AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME + #include + #include + #else + #ifdef HAVE_SYS_TIME_H + #include + #else + #include + #endif + #endif], [static struct timeval x; x.tv_sec = x.tv_usec;], + [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_TIMEVAL)], + AC_MSG_RESULT(no)) + dnl checks for structure members AC_STRUCT_TM ! AC_STRUCT_TIMEZONE dnl checks for compiler characteristics ! AC_C_CONST dnl check for Make feature ! AC_PROG_MAKE_SET dnl checks for operating system services ! AC_SYS_LONG_FILE_NAMES #### Choose a window system. ! AC_PATH_X ! if test "$no_x" = yes; then ! window_system=none ! else ! window_system=x11 ! fi ! if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then ! LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"` ! LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"` ! fi ! if test "${x_includes}" != NONE && test -n "${x_includes}"; then ! C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"` ! fi ! if test x"${x_includes}" = x; then ! 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 ! if test -d "${bmd}/X11/bitmaps"; then ! bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps" ! elif test -d "${bmd}/bitmaps"; then ! bmd_acc="${bmd_acc}:${bmd}/bitmaps" fi ! done ! if test ${bmd_acc} != "dummyval"; then ! bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"` ! fi fi *************** *** 1293,1322 **** HAVE_X_WINDOWS=yes HAVE_X11=yes - echo " Using X11." case "${with_x_toolkit}" in ! athena | lucid ) ! USE_X_TOOLKIT=LUCID ! echo " Using Xt toolkit." ! ;; ! motif ) ! USE_X_TOOLKIT=MOTIF ! echo " Using Motif toolkit." ! ;; ! open-look ) ! USE_X_TOOLKIT=OPEN_LOOK ! echo " Using Open-Look toolkit." ! ;; ! * ) ! USE_X_TOOLKIT=none ! echo " Using Xlib directly." ! ;; esac ;; - x10 ) - HAVE_X_WINDOWS=yes - HAVE_X11=no - USE_X_TOOLKIT=none - echo " Using X10." - ;; none ) HAVE_X_WINDOWS=no --- 969,979 ---- HAVE_X_WINDOWS=yes 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 ;; none ) HAVE_X_WINDOWS=no *************** *** 1323,1327 **** HAVE_X11=no USE_X_TOOLKIT=none - echo " Using no window system." ;; esac --- 980,983 ---- *************** *** 1331,1337 **** HAVE_X_MENU=no case ${HAVE_X11} in ! yes ) ! HAVE_X_MENU=yes ! ;; esac --- 987,991 ---- HAVE_X_MENU=no case ${HAVE_X11} in ! yes ) HAVE_X_MENU=yes ;; esac *************** *** 1338,1344 **** #### Extract some information from the operating system and machine files. ! echo "examining the machine- and system-dependent files to find out" ! echo " - which libraries the lib-src programs will want, and" ! echo " - whether the GNU malloc routines are usable" ### First figure out CFLAGS (which we use for running the compiler here) --- 992,998 ---- #### Extract some information from the operating system and machine files. ! AC_CHECKING([the machine- and system-dependent files to find out ! - which libraries the lib-src programs will want, and ! - whether the GNU malloc routines are usable]) ### First figure out CFLAGS (which we use for running the compiler here) *************** *** 1429,1445 **** #endif /* not THIS_IS_CONFIGURE */ ' > ${tempcname} # The value of CPP is a quoted variable reference, so we need to do this # to get its actual value... CPP=`eval "echo $CPP"` eval `${CPP} -Isrc ${tempcname} \ ! | grep 'configure___' \ ! | sed -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/'` ! if [ "x$CFLAGS" = x ]; then eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \ ! | grep 'configure___' \ ! | sed -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/'` else REAL_CFLAGS="$CFLAGS" fi rm ${tempcname} --- 1083,1100 ---- #endif /* not THIS_IS_CONFIGURE */ ' > ${tempcname} + # The value of CPP is a quoted variable reference, so we need to do this # to get its actual value... CPP=`eval "echo $CPP"` + changequote(, )dnl eval `${CPP} -Isrc ${tempcname} \ ! | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'` ! if test "x$CFLAGS" = x; then eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \ ! | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'` else REAL_CFLAGS="$CFLAGS" fi + changequote([, ])dnl rm ${tempcname} *************** *** 1450,1454 **** # Assume not, until told otherwise. GNU_MALLOC=yes ! if [ "${system_malloc}" = "yes" ]; then GNU_MALLOC=no GNU_MALLOC_reason=" --- 1105,1109 ---- # Assume not, until told otherwise. GNU_MALLOC=yes ! if test "${system_malloc}" = "yes"; then GNU_MALLOC=no GNU_MALLOC_reason=" *************** *** 1456,1460 **** fi ! if [ x"${REL_ALLOC}" = x ]; then REL_ALLOC=${GNU_MALLOC} fi --- 1111,1115 ---- fi ! if test x"${REL_ALLOC}" = x; then REL_ALLOC=${GNU_MALLOC} fi *************** *** 1465,1470 **** #### Add the libraries to LIBS and check for some functions. ! ] ! DEFS="$c_switch_system $c_switch_machine $DEFS" LIBS="$libsrc_libs" --- 1120,1124 ---- #### Add the libraries to LIBS and check for some functions. ! CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS" LIBS="$libsrc_libs" *************** *** 1471,1489 **** dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks, dnl and also adds -ldnet to LIBS, which Autoconf uses for checks. ! AC_HAVE_LIBRARY(-ldnet) dnl This causes -lresolv to get used in subsequent tests, dnl which causes failures on some systems such as HPUX 9. ! dnl AC_HAVE_LIBRARY(-lresolv) ! AC_HAVE_LIBRARY(-lXbsd, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd") ! echo checking for XFree86 if test -d /usr/X386/include; then HAVE_XFREE386=yes ! test -z "${C_SWITCH_X_SITE}" && C_SWITCH_X_SITE="-I/usr/X386/include" fi ! # We change CFLAGS temporarily so that C_SWITCH_X_SITE gets used ! # for the tests that follow. if test "${HAVE_X11}" = "yes"; then --- 1125,1149 ---- dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks, dnl and also adds -ldnet to LIBS, which Autoconf uses for checks. ! AC_CHECK_LIB(dnet, dnet_ntoa) dnl This causes -lresolv to get used in subsequent tests, dnl which causes failures on some systems such as HPUX 9. ! dnl AC_CHECK_LIB(resolv, gethostbyname) ! dnl FIXME replace main with a function we actually want from this library. ! AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd") ! AC_CHECK_LIB(pthreads, cma_open) ! ! AC_MSG_CHECKING(for XFree86) if test -d /usr/X386/include; then HAVE_XFREE386=yes ! : ${C_SWITCH_X_SITE="-I/usr/X386/include"} ! else ! HAVE_XFREE386=no fi + AC_MSG_RESULT($HAVE_XFREE386) ! # Change CFLAGS temporarily so that C_SWITCH_X_SITE gets used ! # for the tests that follow. We set it back to REAL_CFLAGS later on. if test "${HAVE_X11}" = "yes"; then *************** *** 1491,1576 **** LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS" CFLAGS="$C_SWITCH_X_SITE $CFLAGS" - AC_HAVE_FUNCS(XrmSetDatabase XScreenResourceString \ - XScreenNumberOfScreen XSetWMProtocols) - fi ! if test "${HAVE_X11}" = "yes"; then ! AC_COMPILE_CHECK(X11 version, ! [#include ], ! [ ! #if XlibSpecificationRelease < 6 ! fail; ! #endif ! ], ! AC_DEFINE(HAVE_X11R6)) fi if test "${USE_X_TOOLKIT}" != "none"; then ! AC_COMPILE_CHECK(X11 toolkit version, ! [#include ], ! [ ! #if XtSpecificationRelease < 6 fail; #endif ! ], ! AC_DEFINE(HAVE_X11XTR6)) fi # If netdb.h doesn't declare h_errno, we must declare it by hand. ! AC_COMPILE_CHECK(declaration of h_errno in netdb.h, ! [#include ], ! [ ! int ! foo () ! { ! return h_errno; ! } ! ], ! AC_DEFINE(HAVE_H_ERRNO)) ! ! AC_ALLOCA ! ! # logb and frexp are found in -lm on most systems. ! AC_HAVE_LIBRARY(-lm) ! AC_HAVE_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \ random lrand48 bcopy bcmp logb frexp fmod drem ftime res_init setsid \ ! strerror fpathconf) ! ok_so_far=true ! AC_FUNC_CHECK(socket, , ok_so_far=) ! if test -n "$ok_so_far"; then ! AC_HEADER_CHECK(netinet/in.h, , ok_so_far=) fi ! if test -n "$ok_so_far"; then ! AC_HEADER_CHECK(arpa/inet.h, , ok_so_far=) fi ! if test -n "$ok_so_far"; then AC_DEFINE(HAVE_INET_SOCKETS) fi # Set up the CFLAGS for real compilation, so we can substitute it. CFLAGS="$REAL_CFLAGS" ! [ #### Find out which version of Emacs this is. version=`grep 'defconst[ ]*emacs-version' ${srcdir}/lisp/version.el \ | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'` ! if [ x"${version}" = x ]; then ! echo "${progname}: can't find current emacs version in ! \`${srcdir}/lisp/version.el'." >&2 ! exit 1 ! fi ! ! if [ -f /usr/lpp/X11/bin/smt.exp ]; then ! ] ! AC_DEFINE(HAVE_AIX_SMT_EXP) ! [ fi ! #### Specify what sort of things we'll be editing into Makefile and config.h. ### Use configuration here uncanonicalized to avoid exceeding size limits. - ] AC_SUBST(version) AC_SUBST(configuration) AC_SUBST(srcdir) AC_SUBST(prefix) --- 1151,1255 ---- LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS" CFLAGS="$C_SWITCH_X_SITE $CFLAGS" ! if test "${HAVE_XFREE386}" = "yes" && test "${opsys}" = "linux"; then ! AC_MSG_CHECKING(whether XFree86 needs -b to link) ! AC_TRY_LINK([], ! [XOpenDisplay ("foo");], ! [xfree86_first_failure=no], ! [xfree86_first_failure=yes]) ! if test "${xfree86_first_failure}" = "yes"; then ! OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE" ! OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE" ! OLD_CPPFLAGS="$CPPFLAGS" ! OLD_LIBS="$LIBS" ! LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout" ! C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout" ! CPPFLAGS="$CPPFLAGS -b i486-linuxaout" ! LIBS="$LIBS -b i486-linuxaout" ! AC_TRY_LINK([], ! [XOpenDisplay ("foo");], ! [xfree86_second_failure=no], ! [xfree86_second_failure=yes]) ! if test "${xfree86_second_failure}" = "yes"; then ! # If we get the same failure with -b, there is no use adding -b. ! # So take it out. This plays safe. ! LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE" ! C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE" ! CPPFLAGS="$OLD_CPPFLAGS" ! LIBS="$OLD_LIBS" ! AC_MSG_RESULT(no) ! else ! AC_MSG_RESULT(yes) ! fi ! else ! AC_MSG_RESULT(no) ! fi ! fi ! ! AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \ ! XScreenNumberOfScreen XSetWMProtocols) fi if test "${USE_X_TOOLKIT}" != "none"; then ! AC_MSG_CHECKING(X11 toolkit version) ! AC_TRY_LINK([#include ], ! [#if XtSpecificationRelease < 6 fail; #endif ! ], [AC_MSG_RESULT(6) ! AC_DEFINE(HAVE_X11XTR6)], ! [AC_MSG_RESULT(not 6)]) fi # If netdb.h doesn't declare h_errno, we must declare it by hand. ! AC_MSG_CHECKING(whether netdb declares h_errno) ! AC_TRY_LINK([#include ], ! [return h_errno;], ! [AC_MSG_RESULT(yes) ! AC_DEFINE(HAVE_H_ERRNO)], ! [AC_MSG_RESULT(no)]) ! ! AC_FUNC_ALLOCA ! ! # 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 drem ftime res_init setsid \ ! strerror fpathconf select mktime eaccess getpagesize) ! ok_so_far=yes ! AC_CHECK_FUNC(socket, , ok_so_far=no) ! if test $ok_so_far = yes; then ! AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no) fi ! if test $ok_so_far = yes; then ! AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no) fi ! if test $ok_so_far = yes; then AC_DEFINE(HAVE_INET_SOCKETS) fi + if test -f /usr/lpp/X11/bin/smt.exp; then + AC_DEFINE(HAVE_AIX_SMT_EXP) + fi + # Set up the CFLAGS for real compilation, so we can substitute it. CFLAGS="$REAL_CFLAGS" ! changequote(, )dnl #### Find out which version of Emacs this is. version=`grep 'defconst[ ]*emacs-version' ${srcdir}/lisp/version.el \ | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'` ! changequote([, ])dnl ! if test x"${version}" = x; then ! AC_MSG_ERROR(can't find current emacs version in \`${srcdir}/lisp/version.el'.) fi ! ### Specify what sort of things we'll be editing into Makefile and config.h. ### Use configuration here uncanonicalized to avoid exceeding size limits. AC_SUBST(version) AC_SUBST(configuration) + AC_SUBST(canonical) AC_SUBST(srcdir) AC_SUBST(prefix) *************** *** 1578,1583 **** AC_SUBST(bindir) AC_SUBST(datadir) ! AC_SUBST(statedir) ! AC_SUBST(libdir) AC_SUBST(mandir) AC_SUBST(infodir) --- 1257,1262 ---- AC_SUBST(bindir) AC_SUBST(datadir) ! AC_SUBST(sharedstatedir) ! AC_SUBST(libexecdir) AC_SUBST(mandir) AC_SUBST(infodir) *************** *** 1589,1592 **** --- 1268,1272 ---- AC_SUBST(archlibdir) AC_SUBST(docdir) + AC_SUBST(bitmapdir) AC_SUBST(c_switch_system) AC_SUBST(c_switch_machine) *************** *** 1599,1605 **** AC_SUBST(opsysfile) ! AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "\"${configuration}\"") ! AC_DEFINE_UNQUOTED(config_machfile, "\"${machfile}\"") ! AC_DEFINE_UNQUOTED(config_opsysfile, "\"${opsysfile}\"") AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE}) AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX}) --- 1279,1286 ---- AC_SUBST(opsysfile) ! AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${canonical}") ! AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}") ! AC_DEFINE_UNQUOTED(config_machfile, "${machfile}") ! AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}") AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE}) AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX}) *************** *** 1607,1693 **** AC_DEFINE_UNQUOTED(UNEXEC_SRC, ${UNEXEC_SRC}) ! [ ! if [ "${HAVE_X_WINDOWS}" = "yes" ] ; then ! ] AC_DEFINE(HAVE_X_WINDOWS) [ ! fi ! if [ "${USE_X_TOOLKIT}" != "none" ] ; then ! ] AC_DEFINE(USE_X_TOOLKIT) [ ! fi ! if [ "${HAVE_X11}" = "yes" ] ; then ! ] AC_DEFINE(HAVE_X11) [ ! fi ! if [ "${HAVE_XFREE386}" = "yes" ] ; then ! ] AC_DEFINE(HAVE_XFREE386) [ ! fi ! if [ "${HAVE_X_MENU}" = "yes" ] ; then ! ] AC_DEFINE(HAVE_X_MENU) [ ! fi ! if [ "${GNU_MALLOC}" = "yes" ] ; then ! ] AC_DEFINE(GNU_MALLOC) [ ! fi ! if [ "${REL_ALLOC}" = "yes" ] ; then ! ] AC_DEFINE(REL_ALLOC) [ ! fi ! if [ "${LISP_FLOAT_TYPE}" = "yes" ] ; then ! ] AC_DEFINE(LISP_FLOAT_TYPE) [ ! fi ! ! # ====================== Developer's configuration ======================= ! ! # The following assignments make sense if you're running Emacs on a single ! # machine, one version at a time, and you want changes to the lisp and etc ! # directories in the source tree to show up immediately in your working ! # environment. It saves a great deal of disk space by not duplicating the ! # lisp and etc directories. ! ! if [ "$run_in_place" = "1" ]; then ! lispdir='${srcdir}/lisp' ! locallisppath='${srcdir}/site-lisp' ! etcdir='${srcdir}/etc' ! lockdir='${srcdir}/lock' ! # We used to make archlibdir and docdir absolute, ! # but that caused trouble with automounters. ! archlibdir='${srcdir}/lib-src' ! docdir='${srcdir}/etc' ! infodir='${srcdir}/info' ! elif [ "$single_tree" = "1" ]; then ! if [ "$exec_prefix_specified" = "" ]; then ! exec_prefix='${prefix}' ! fi ! if [ "$bindir_specified" = "" ]; then ! bindir='${exec_prefix}/bin/${configuration}' ! fi ! if [ "$datadir_specified" = "" ]; then ! datadir='${prefix}/common' ! fi ! if [ "$statedir_specified" = "" ]; then ! statedir='${prefix}/common' ! fi ! if [ "$libdir_specified" = "" ]; then ! libdir='${bindir}' ! fi ! if [ "$lispdir_specified" = "" ]; then ! lispdir='${prefix}/common/lisp' ! fi ! if [ "$locallisppath_specified" = "" ]; then ! locallisppath='${prefix}/common/site-lisp' ! fi ! if [ "$lockdir_specified" = "" ]; then ! lockdir='${prefix}/common/lock' ! fi ! if [ "$archlibdir_specified" = "" ]; then ! archlibdir='${libdir}/etc' ! fi ! if [ "$etcdir_specified" = "" ]; then ! etcdir='${prefix}/common/data' ! fi ! if [ "$docdir_specified" = "" ]; then ! docdir='${prefix}/common/data' ! fi fi #### Report on what we decided to do. echo " - Configured for \`${canonical}'. --- 1288,1318 ---- AC_DEFINE_UNQUOTED(UNEXEC_SRC, ${UNEXEC_SRC}) ! if test "${HAVE_X_WINDOWS}" = "yes" ; then ! AC_DEFINE(HAVE_X_WINDOWS) ! fi ! if test "${USE_X_TOOLKIT}" != "none" ; then ! AC_DEFINE(USE_X_TOOLKIT) ! fi ! if test "${HAVE_X11}" = "yes" ; then ! AC_DEFINE(HAVE_X11) ! fi ! if test "${HAVE_XFREE386}" = "yes" ; then ! AC_DEFINE(HAVE_XFREE386) ! fi ! if test "${HAVE_X_MENU}" = "yes" ; then ! AC_DEFINE(HAVE_X_MENU) ! fi ! if test "${GNU_MALLOC}" = "yes" ; then ! AC_DEFINE(GNU_MALLOC) fi + if test "${REL_ALLOC}" = "yes" ; then + AC_DEFINE(REL_ALLOC) + fi + if test "${LISP_FLOAT_TYPE}" = "yes" ; then + AC_DEFINE(LISP_FLOAT_TYPE) + fi #### Report on what we decided to do. echo " Configured for \`${canonical}'. *************** *** 1699,1715 **** Should Emacs use the relocating allocator for buffers? ${REL_ALLOC} What window system should Emacs use? ${window_system} ! What toolkit should Emacs use? ${USE_X_TOOLKIT}${x_includes+ ! Where do we find X Windows header files? }${x_includes}${x_libraries+ ! Where do we find X Windows libraries? }${x_libraries} ! " # Remove any trailing slashes in these variables. ! test -n "${prefix}" && prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'` ! test -n "${exec_prefix}" && exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'` ! ] ! AC_OUTPUT(Makefile lib-src/Makefile.in oldXMenu/Makefile lwlib/Makefile src/Makefile.in, [ # Build src/Makefile from ${srcdir}/src/Makefile.in. This must be done --- 1324,1357 ---- Should Emacs use the relocating allocator for buffers? ${REL_ALLOC} What window system should Emacs use? ${window_system} ! What toolkit should Emacs use? ${USE_X_TOOLKIT}" ! ! if test -n "${x_includes}"; then ! echo " Where do we find X Windows header files? ${x_includes}" ! else ! echo " Where do we find X Windows header files? Standard dirs" ! fi ! if test -n "${x_libraries}"; then ! echo " Where do we find X Windows libraries? ${x_libraries}" ! else ! echo " Where do we find X Windows libraries? Standard dirs" ! fi ! echo # Remove any trailing slashes in these variables. ! changequote(, )dnl ! test "${prefix}" != NONE && prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'` ! test "${exec_prefix}" != NONE && exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'` ! changequote([, ])dnl ! ! AC_OUTPUT(Makefile lib-src/Makefile.in oldXMenu/Makefile \ ! man/Makefile lwlib/Makefile src/Makefile.in, [ ! ! ### Make the necessary directories, if they don't exist. ! for dir in cpp etc ; do ! test -d ${dir} || mkdir ${dir} ! done # Build src/Makefile from ${srcdir}/src/Makefile.in. This must be done *************** *** 1716,1720 **** # after src/config.h is built, since we rely on that file. ! changequote(,)dnl The horror, the horror. # Now get this: Some word that is part of the ${srcdir} directory name # or the ${configuration} value might, just might, happen to be an --- 1358,1362 ---- # after src/config.h is built, since we rely on that file. ! changequote(, )dnl The horror, the horror. # Now get this: Some word that is part of the ${srcdir} directory name # or the ${configuration} value might, just might, happen to be an *************** *** 1727,1731 **** -e 's/ */ -U/g' -e 's/-U[0-9][^ ]*//g' \ `" ! changequote([,])dnl echo creating lib-src/Makefile --- 1369,1373 ---- -e 's/ */ -U/g' -e 's/-U[0-9][^ ]*//g' \ `" ! changequote([, ])dnl echo creating lib-src/Makefile *************** *** 1759,1761 **** chmod 444 Makefile.new mv -f Makefile.new Makefile ! )]) --- 1401,1410 ---- chmod 444 Makefile.new mv -f Makefile.new Makefile ! ) ! ! if test ! -f src/.gdbinit && test -f $top_srcdir/src/.gdbinit; then ! echo creating src/.gdbinit ! echo source $top_srcdir/src/.gdbinit > src/.gdbinit ! fi ! ! ], [CPP="$CPP" CPPFLAGS="$CPPFLAGS"]) Only in emacs-19.28/etc: APPLE diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/ChangeLog emacs-19.29/etc/ChangeLog *** emacs-19.28/etc/ChangeLog Wed Sep 7 03:57:00 1994 --- emacs-19.29/etc/ChangeLog Wed May 24 16:17:04 1995 *************** *** 1,2 **** --- 1,29 ---- + Wed May 24 16:12:15 1995 Karl Heuer + + * TUTORIAL: Delete reference to ALT. Change to . + + Wed Apr 26 16:58:34 1995 Karl Heuer + + * Makefile (maintainer-clean): Renamed from realclean. + + Sun Apr 9 00:00:22 1995 Richard Stallman + + * tpu-doc.el: File moved to etc dir and renamed. + + Fri Apr 7 14:32:56 1995 Boris Goldowsky + + * enriched.doc: Rewritten and simplified. + + Sun Nov 20 16:09:31 1994 Richard Stallman + + * Makefile (eterm): New rule. + (TIC): New variable. + + * e/eterm, e/eterm.ti: New files. + + Mon Oct 24 09:59:13 1994 Boris Goldowsky + + * enriched.doc: New file. + Wed Sep 7 03:53:50 1994 Richard Stallman diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/DEBUG emacs-19.29/etc/DEBUG *** emacs-19.28/etc/DEBUG Wed Jun 9 06:55:14 1993 --- emacs-19.29/etc/DEBUG Sun Jun 18 14:43:06 1995 *************** *** 68,71 **** --- 68,101 ---- + ** Examining Lisp object values. + + When you have a live process to debug, and it has not encountered a + fatal error, you can use the GDB command `pr'. First print the value + in the ordinary way, with the `p' command. Then type `pr' with no + arguments. This calls a subroutine which uses the Lisp printer. + + If you can't use this command, either because the process can't run + a subroutine or because the data is invalid, you can fall back on + lower-level commands. + + Use the `xtype' command to print out the data type of the last data + value. Once you know the data type, use the command that corresponds + to that type. Here are these commands: + + xint xptr xwindow xmarker xoverlay xmiscfree xintfwd xboolfwd xobjfwd + xbufobjfwd xkbobjfwd xbuflocal xbuffer xsymbol xstring xvector xframe + xwinconfig xcompiled xcons xcar xcdr xsubr xprocess xfloat xscrollbar + + Each one of them applies to a certain type or class of types. + (Some of these types are not visible in Lisp, because they exist only + internally.) + + Each x... command prints some information about the value, and + produces a GDB value (subsequently available in $) through which you + can get at the rest of the contents. + + In general, most of the rest of the contents will be addition Lisp + objects which you can examine in turn with the x... commands. + ** If GDB does not run and your debuggers can't load Emacs. diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/DISTRIB emacs-19.29/etc/DISTRIB *** emacs-19.28/etc/DISTRIB Tue Apr 20 17:02:49 1993 --- emacs-19.29/etc/DISTRIB Tue Jun 13 19:25:07 1995 *************** *** 1,10 **** ! -*- text -*- For an order form for all Emacs and FSF distributions deliverable from the USA, see the file `ORDERS' in this directory (etc/ in the GNU Emacs distribution or /pub/gnu/GNUinfo on prep.ai.mit.edu). For a ! European order form, see `ORDERS.EUROPE'. ! GNU Emacs availability information, January 1993 ! Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute --- 1,11 ---- ! -*- text -*- For an order form for all Emacs and FSF distributions deliverable from the USA, see the file `ORDERS' in this directory (etc/ in the GNU Emacs distribution or /pub/gnu/GNUinfo on prep.ai.mit.edu). For a ! European order form, see `ORDERS.EUROPE'. For a Japan order form, ! see `ORDERS.JAPAN'. ! GNU Emacs availability information, June 1995 ! Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1995 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute *************** *** 79,85 **** foundation at: Free Software Foundation ! 675 Massachusetts Avenue ! Cambridge, MA 02139 ! +1-617-876-3296 General questions about the GNU Project can be asked of gnu@prep.ai.mit.edu. --- 80,88 ---- foundation at: Free Software Foundation ! 59 Temple Place - Suite 330 ! Boston, MA 02111-1307 ! Voice: +1-617-542-5942 ! Fax: +1-617-542-2652 ! General questions about the GNU Project can be asked of gnu@prep.ai.mit.edu. diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/FAQ emacs-19.29/etc/FAQ *** emacs-19.28/etc/FAQ Wed Jun 9 07:50:34 1993 --- emacs-19.29/etc/FAQ Sun Jun 18 14:45:46 1995 *************** *** 1,57 **** GNU Emacs FAQ: Introduction ! [To find what has changed, see the "Changes" posting.] ! [The FAQ post date slipped big-time this time. Now that school is over ! with and I can get on with the rest of my life, posting should become a ! lot more regular. - sbyrnes] ! ! This is the introduction to a list of frequently asked questions (FAQ) about ! GNU Emacs with answers. This article contains a listing of the questions; ! subsequent articles contain the questions and answers. ! ! The FAQ list is posted to reduce the noise level in the `gnu.emacs.help' ! newsgroup (which is also the `help-gnu-emacs' mailing list) which results from ! the repetition of frequently asked questions, wrong answers to these questions, ! corrections to the wrong answers, corrections to the corrections, debate, name ! calling, etc. Also, it serves as a repository of the canonical "best" answers ! to these questions. However, if you know a better answer or even a slight ! change that improves an answer, please tell us! ! If you know the answer of a question is in the FAQ list, please reply to the question by e-mail instead of posting. Help reduce noise! ! The FAQ list is crossposted to `comp.emacs' because some sites do not receive ! the `gnu.*' newsgroups. The FAQ list is also crossposted to `news.answers'. ! Please suggest new questions, answers, wording changes, deletions, etc. The ! most helpful form for suggestions is a context diff (ie., the output of `diff ! -c'). Include `FAQ' in the subject of messages sent to us about the FAQ list. ! Please do not send questions to us just because you do not want to disturb a ! lot of people and you think we would know the answer. We do not have time to ! answer questions individually. :-( - Full instructions for getting the latest FAQ are in question 22. Also see the - `Introduction to news.answers' posting in the `news.answers' newsgroup, or send - e-mail to `mail-server@rtfm.mit.edu' with `help' on a body line, or use FTP, - WAIS, or Prospero to rtfm.mit.edu. - - These ideas have already been suggested, but we have not had time to - implement them: - - * A Texinfo version. - * Marking questions in the table of contents that have been changed - recently. - - -- - Steven Byrnes (and Joe Wells ) - - E-mail lpf@uunet.uu.net for details about the League for Programming Freedom. - ---------------------------------------------------------------------- - GNU Emacs FAQ: Table of Contents - Notation Used in FAQ --- 1,54 ---- GNU Emacs FAQ: Introduction ! This is the introduction to a list of frequently asked questions (FAQ) ! about GNU Emacs with answers. ! The FAQ is posted to reduce the noise level in the `gnu.emacs.help' ! newsgroup (which is also the `help-gnu-emacs' mailing list) which results ! from the repetition of frequently asked questions, wrong answers to these ! questions, corrections to the wrong answers, corrections to the ! corrections, debate, name calling, etc. Also, it serves as a repository of ! the canonical "best" answers to these questions. However, if you know a ! better answer or even a slight change that improves an answer, please tell ! us! ! If you know the answer to a question in the FAQ list, please reply to the question by e-mail instead of posting. Help reduce noise! ! The FAQ is crossposted to `comp.emacs' because some sites do not receive ! the `gnu.*' newsgroups. The FAQ is also crossposted to `news.answers'. ! Full instructions for getting the latest FAQ are in question 22. ! It has been so long since the FAQ was last edited and released that the ! maintainers decided to take a two-step approach. This edition corrects ! many basic inaccuracies in the old FAQ, most of them having to do with ftp ! sites and version numbers. In addition, we have deleted a number of ! questions that are no longer relevant with the release of GNU Emacs 19. ! ! Many questions specific to recent releases of GNU Emacs 19 remain ! unanswered in this version of the FAQ; the maintainers will spend time over ! the next month or two adding new questions (and answers), based in no small ! part on the questions that have come across help-gnu-emacs in recent ! months. ! ! There is no diff file for this version of the FAQ, as many things have ! changed since it was last updated. ! ! Please suggest new questions, answers, wording changes, deletions, etc. ! The most helpful form for suggestions is a context diff (i.e., the output ! of `diff -c'). Include `FAQ' in the subject of messages sent to us about ! the FAQ list. ! ! Please do not send questions to us just because you do not want to disturb ! a lot of people and you think we would know the answer. We do not have ! time to answer questions individually. :-( ! ! -- ! Reuven M. Lerner and the FAQ team (a full list is ! at the bottom of the FAQ). ---------------------------------------------------------------------- Notation Used in FAQ *************** *** 64,68 **** General Questions ! 6: What is the LPF and why should I join it? 7: What is the real legal meaning of the GNU copyleft? 8: What are appropriate messages for gnu.emacs.help, gnu.emacs.bug, --- 61,65 ---- General Questions ! 6: What is the LPF? 7: What is the real legal meaning of the GNU copyleft? 8: What are appropriate messages for gnu.emacs.help, gnu.emacs.bug, *************** *** 90,302 **** 23: Where does the name "Emacs" come from? 24: What is the latest version of GNU Emacs? ! 25: When will GNU Emacs 19 be available? ! 26: What is different about GNU Emacs 19? ! 27: What variants of GNU Emacs exist? ! ! Common Things People Want To Do ! ! 28: How do I set up a .emacs file properly? ! 29: How do I debug a .emacs file? ! 30: How do I make Emacs display the current line (or column) number? ! 31: How do I turn on Abbrevs by default just in mode XXX? ! 32: How do I turn on Auto-Fill mode by default? ! 33: How do I make Emacs use a certain major mode for certain files? ! 34: How do I search for, delete, or replace unprintable (8-bit or control) characters? ! 35: How can I highlight a region of text in Emacs? ! 36: How do I control Emacs's case-sensitivity when searching/replacing? ! 37: How do I make Emacs wrap words for me? ! 38: Where can I get a better spelling checker for Emacs? ! 39: How can I spell-check TeX or *roff documents? ! 40: How do I change load-path? ! 41: How do I use an already running Emacs from another window? ! 42: How do I make Emacs recognize my compiler's funny error messages? ! 43: How do I indent switch statements like this? ! 44: How can I make Emacs automatically scroll horizontally? ! 45: How do I make Emacs "typeover" or "overwrite" instead of inserting? ! 46: How do I stop Emacs from beeping on a terminal? ! 47: How do I turn down the bell volume in Emacs running under X Windows? ! 48: How do I tell Emacs to automatically indent a new line to the indentation of the previous line? ! 49: How do I show which parenthesis matches the one I'm looking at? ! 50: In C mode, can I show just the lines that will be left after #ifdef commands are handled by the compiler? ! 51: Is there an equivalent to the `.' (dot) command of vi? ! 52: What are the valid X resource settings (ie., stuff in .Xdefaults)? ! 53: How do I execute a piece of Emacs Lisp code? ! 54: How do I change Emacs's idea of the tab character's length? ! 55: How do I insert `>' at the beginning of every line? ! 56: How do I insert `_^H' before each character in a paragraph to get an underlined paragraph? ! 57: How do I repeat a command as many times as possible? ! 58: How do I make Emacs behave like this: when I go up or down, the cursor should stay in the same column even if the line is too short? ! 59: How do I tell Emacs to iconify itself? ! 60: How do I use regexps (regular expressions) in Emacs? ! 61: How do I perform a replace operation across more than one file? ! 62: Where is the documentation for `etags'? Bugs/Problems ! 63: Does Emacs have problems with files larger than 8 megabytes? ! 64: Why can't Emacs find files in current directory on startup? ! 65: How do I get rid of the ^M junk in my Shell buffer? ! 66: Why do I get `Process shell exited abnormally with code 1'? ! 67: Why can't I cut from Emacs and paste in other X programs? ! 68: Where is the termcap/terminfo entry for terminal type `emacs'? ! 69: Why does Emacs spontaneously start displaying `I-search:' and beeping? ! 70: Why can't Emacs talk to certain hosts (or certain hostnames)? ! 71: Why does Emacs say `Error in init file'? ! 72: Why does Emacs ignore my X resources (my .Xdefaults file)? ! 73: Why does Emacs take 20 seconds to visit a file? ! 74: How do I edit a file with a `$' in its name? ! 75: Why does Shell mode lose track of the shell's current directory? ! 76: Why doesn't my change to load-path work? ! 77: Why does the cursor always go to the wrong column when I move up or ! down one line? ! 78: Why does Emacs hang with message `Unknown XMenu error' with X11R4? ! 79: Why doesn't display-time show the load average in the mode line ! anymore? ! 80: Why does ispell sometimes ignore the local dictionary? ! 81: Why does Ispell treat each line as a single word? ! 82: Are there any security risks in GNU Emacs? Difficulties Building/Installing/Porting Emacs ! 83: What should I do if I have trouble building Emacs? ! 84: How do I stop Emacs from failing when the executable is stripped? ! 85: Why does linking Emacs with -lX11 fail? ! 86: Why does Emacs 18.55 say `Fatal error (6).Abort' under SunOS 4.1? Finding/Getting Emacs and Related Packages ! 87: Where can I get GNU Emacs on the net (or by snail mail)? ! 88: How do I find a GNU Emacs Lisp package that does XXX? ! 89: Where can I get GNU Emacs Lisp packages that don't come with Emacs? ! 90: How do I submit code to the Emacs Lisp Archive? ! 91: Where can I get other up-to-date GNU stuff? ! 92: Where can I get an Emacs with better mouse and X window support? ! 93: What is the difference between GNU Emacs and Epoch? ! 94: What is the difference between GNU Emacs and Lucid GNU Emacs? ! 95: Where can I get the "unofficial HP GNU Emacs"? ! 96: Where can I get Emacs for my PC running MS-DOS? ! 97: Where can I get Emacs for my PC running Windows? ! 98: Where can I get Emacs for my PC running OS/2? ! 99: Where can I get Emacs for my Atari ST? ! 100: Where can I get Emacs for my Amiga? ! 101: Where can I get Emacs for my Apple computer? ! 102: Where can I get Emacs with NeWS support? ! 103: Where do I get Emacs that runs on VMS under DECwindows? ! 104: Where can I get modes for Lex, Yacc/Bison, Bourne Shell, Csh, C++, ! Objective C, Pascal, Awk? ! 105: What is the IP address of XXX.YYY.ZZZ? Major Emacs Lisp Packages, Emacs Extensions, and Related Programs ! 106: VM (View Mail) -- another mail reader within Emacs ! 107: Supercite -- mail and news citation package within Emacs ! 108: GNUS -- news reader within Emacs ! 109: Calc -- poor man's Mathematica within Emacs ! 110: Calendar/Diary -- calendar manager within Emacs ! 111: Ange-FTP -- transparent FTP access for Emacs's file access routines ! 112: VIP -- vi emulation for Emacs ! 113: Dired -- better directory editor for Emacs ! 114: AUC TeX -- enhanced LaTeX mode with debugging facilities ! 115: Hyperbole -- extensible hypertext management system within Emacs ! 116: Byte Compiler -- enhanced version of Emacs's byte compiler ! 117: comint -- hugely enhanced shell mode and other derived modes ! 118: BBDB -- personal info rolodex integrated with mail/news readers ! 119: Ispell -- spell checker in C with interface for Emacs ! 120: Epoch -- enhanced GNU Emacs with better X interface ! 121: Lucid GNU Emacs -- alternative Emacs 19 with better X interface ! 122: Demacs -- GNU Emacs altered to run on MS-DOS on 386/486 machines ! 123: Freemacs -- a small Emacs for MS-DOS ! 124: Patch -- program to apply "diffs" for updating files Changing Key Bindings and Handling Key Binding Problems ! 125: How do I bind keys (including function keys) to commands? ! 126: Why does Emacs say `Key sequence XXX uses invalid prefix characters'? ! 127: Why doesn't this [terminal or window-system setup] code work in my .emacs file, but it works just fine after Emacs starts up? ! 128: How do I use function keys under X Windows? ! 129: How do I tell what characters my function or arrow keys emit? ! 130: How do I set the X key "translations" for Emacs? ! 131: How do I handle C-s and C-q being used for flow control? ! 132: How do I use commands bound to C-s and C-q (or any key) if these keys ! are filtered out? ! 133: Why does the `BackSpace' key invoke help? ! 134: Why doesn't Emacs look at the stty settings for Backspace vs. Delete? ! 135: Why don't the arrow keys work? ! 136: How do I "swap" two keys? ! 137: How do I produce C-XXX with my keyboard? ! 138: What if I don't have a Meta key? ! 139: What if I don't have an Escape key? ! 140: How do I type DEL on PC terminal emulators? ! 141: Can I make my `Compose Character' key behave like a Meta key? ! 142: How do I bind a combination of modifier key and function key? ! 143: Why doesn't my Meta key work in an xterm window? ! 144: Why doesn't my ExtendChar key work as a Meta key under HP-UX 8.0? ! 145: Where can I get key bindings to make Emacs emulate WordStar? ! 146: Where can I get an XEDIT emulator for Emacs? Using Emacs with Alternate Character Sets ! 147: How do I make Emacs display 8-bit characters? ! 148: How do I input 8-bit characters? ! 149: Where can I get an Emacs that can handle kanji characters? ! 150: Where can I get an Emacs that can handle Chinese? ! 151: Where is an Emacs that can handle Semitic (right-to-left) alphabets? Mail and News ! 152: How do I change the included text prefix in mail/news followups? ! 153: How do I save a copy of outgoing mail? ! 154: Why doesn't Emacs expand my aliases when sending mail? ! 155: Why does RMAIL think all my saved messages are one big message? ! 156: How can I sort the messages in my RMAIL folder? ! 157: Why does RMAIL need to write to /usr/spool/mail? ! 158: How do I recover my mail files after RMAIL munges their format? ! 159: How do I make Emacs automatically start my mail/news reader? ! 160: How do I read news under Emacs? ! 161: Why does `rnews' say "No News is good news" when there is news? ! 162: Why doesn't GNUS work anymore via NNTP? ! 163: How do I view text with embedded underlining (eg., ClariNews)? ! 164: When I try to post a long article in GNUS (about 10K or longer), I get ! the error, "Writing to process: no more processes, nntpd" ! 165: How do I save all the items of a multi-part posting in GNUS? ! 166: Why does GNUS put the subjects in replies beyond the 80th column? ! 167: Why is GNUS so slow to start up? ! 168: How do I catch up all newsgroups in GNUS? ! 169: Why can't I kill in GNUS on the Newsgroups/Keywords/Control line? ! 170: How do I get rid of flashing messages in GNUS for slow connections? ! 171: Why is catch up slow in Gnews/GNUS? ! 172: Why does GNUS hang for a long time when posting? ! 173: Why don't my news postings in GNUS get past the local machine? ! 174: Why is the GNUS-generated `Date:' header invalid? ! 175: Why doesn't GNUS generate the `Lines:' header? ! 176: Why do I get "Cannot open load file" "nntp" when compiling GNUS? ! 177: How do I kill all articles in GNUS but those matching a pattern? ! ! ! GNU Emacs FAQ: Notation/General/Help/Status ! ! If you are viewing this text in a GNU Emacs Buffer, you can type "M-2 C-x $" to ! get an overview of just the questions. Then, when you want to look at the text ! of the answers, just type "C-x $". ! ! To search for a question numbered XXX, type "M-C-s ^XXX:", followed by a C-r if ! that doesn't work, then type ESC to end the search. ! ! A `+' in the 78th column means something was inserted on the line. A `-' means ! something was deleted and a `!' means some combination of insertions and ! deletions occurred. ! ! Full instructions for getting the latest FAQ are in question 22. Also see the ! `Introduction to news.answers' posting in the `news.answers' newsgroup, or send ! e-mail to `mail-server@rtfm.mit.edu' with `help' on a body line, or use FTP, ! WAIS, or Prospero to rtfm.mit.edu. Notation Used in FAQ --- 87,263 ---- 23: Where does the name "Emacs" come from? 24: What is the latest version of GNU Emacs? ! 25: What is different about GNU Emacs 19? ! ! Common Things People Want To Do ! ! 26: How do I set up a .emacs file properly? ! 27: How do I debug a .emacs file? ! 28: How do I make Emacs display the current line (or column) number? ! 29: How do I turn on abbrevs by default just in mode XXX? ! 30: How do I turn on auto-fill mode by default? ! 31: How do I make Emacs use a certain major mode for certain files? ! 32: How do I search for, delete, or replace unprintable (8-bit or control) characters? ! 33: How can I highlight a region of text in Emacs? ! 34: How do I control Emacs's case-sensitivity when searching/replacing? ! 35: How do I make Emacs wrap words for me? ! 36: Where can I get a better spelling checker for Emacs? ! 37: How can I spell-check TeX or *roff documents? ! 38: How do I change load-path? ! 39: How do I use an already running Emacs from another window? ! 40: How do I make Emacs recognize my compiler's funny error messages? ! 41: How do I indent switch statements like this? ! 42: How can I make Emacs automatically scroll horizontally? ! 43: How do I make Emacs "typeover" or "overwrite" instead of inserting? ! 44: How do I stop Emacs from beeping on a terminal? ! 45: How do I turn down the bell volume in Emacs running under X Windows? ! 46: How do I tell Emacs to automatically indent a new line to the indentation of the previous line? ! 47: How do I show which parenthesis matches the one I'm looking at? ! 48: In C mode, can I show just the lines that will be left after #ifdef commands are handled by the compiler? ! 49: Is there an equivalent to the `.' (dot) command of vi? ! 50: What are the valid X resource settings (i.e., stuff in .Xdefaults)? ! 51: How do I execute a piece of Emacs Lisp code? ! 52: How do I change Emacs's idea of the tab character's length? ! 53: How do I insert `>' at the beginning of every line? ! 54: How do I insert `_^H' before each character in a paragraph to get an underlined paragraph? ! 55: How do I repeat a command as many times as possible? ! 56: How do I make Emacs behave like this: when I go up or down, the cursor should stay in the same column even if the line is too short? ! 57: How do I tell Emacs to iconify itself? ! 58: How do I use regexps (regular expressions) in Emacs? ! 59: How do I perform a replace operation across more than one file? ! 60: Where is the documentation for `etags'? Bugs/Problems ! 61: Does Emacs have problems with files larger than 8 megabytes? ! 62: How do I get rid of the ^M junk in my shell buffer? ! 63: Why do I get `Process shell exited abnormally with code 1'? ! 64: Where is the termcap/terminfo entry for terminal type `emacs'? ! 65: Why does Emacs spontaneously start displaying `I-search:' and beeping? ! 66: Why can't Emacs talk to certain hosts (or certain hostnames)? ! 67: Why does Emacs say `Error in init file'? ! 68: Why does Emacs ignore my X resources (my .Xdefaults file)? ! 69: Why does Emacs take 20 seconds to visit a file? ! 70: How do I edit a file with a `$' in its name? ! 71: Why does shell mode lose track of the shell's current directory? ! 72: Are there any security risks in GNU Emacs? Difficulties Building/Installing/Porting Emacs ! 73: What should I do if I have trouble building Emacs? ! 74: How do I stop Emacs from failing when the executable is stripped? ! 75: Why does linking Emacs with -lX11 fail? Finding/Getting Emacs and Related Packages ! 76: Where can I get GNU Emacs on the net (or by snail mail)? ! 77: How do I find a GNU Emacs Lisp package that does XXX? ! 78: Where can I get GNU Emacs Lisp packages that don't come with Emacs? ! 79: How do I submit code to the Emacs Lisp Archive? ! 80: Where can I get other up-to-date GNU stuff? ! 81: What is the difference between GNU Emacs and Epoch? ! 82: What is the difference between GNU Emacs and XEmacs (formerly "Lucid ! Emacs")? ! 83: Where can I get Emacs for my PC running MS-DOS? ! 84: Where can I get Emacs for my PC running Microsoft Windows? ! 85: Where can I get Emacs for my PC running OS/2? ! 86: Where can I get Emacs for my Atari ST? ! 87: Where can I get Emacs for my Amiga? ! 88: Where can I get Emacs for my Apple computer? ! 89: Where do I get Emacs that runs on VMS under DECwindows? ! 90: Where can I get modes for Lex, Yacc/Bison, Bourne shell, Csh, C++, ! Objective C, Pascal, and Awk? ! 91: What is the IP address of XXX.YYY.ZZZ? Major Emacs Lisp Packages, Emacs Extensions, and Related Programs ! 92: VM (View Mail) -- another mail reader within Emacs ! 93: Supercite -- mail and news citation package within Emacs ! 94: Gnus -- news reader within Emacs ! 95: Calc -- poor man's Mathematica within Emacs ! 96: Ange-FTP -- transparent FTP access for Emacs's file access routines ! 97: VIP -- vi emulation for Emacs ! 98: AUC TeX -- enhanced LaTeX mode with debugging facilities ! 99: Hyperbole -- extensible hypertext management system within Emacs ! 100: BBDB -- personal Info Rolodex integrated with mail/news readers ! 101: Ispell -- spell checker in C with interface for Emacs ! 102: XEmacs -- alternative Emacs 19 with better X interface; formerly ! known as Lucid Emacs or lemacs. ! 103: Patch -- program to apply "diffs" for updating files Changing Key Bindings and Handling Key Binding Problems ! 104: How do I bind keys (including function keys) to commands? ! 105: Why does Emacs say `Key sequence XXX uses invalid prefix characters'? ! 106: Why doesn't this [terminal or window-system setup] code work in my .emacs file, but it works just fine after Emacs starts up? ! 107: How do I use function keys under X Windows? ! 108: How do I tell what characters or symbols my function or arrow keys ! emit? ! 109: How do I set the X key "translations" for Emacs? ! 110: How do I handle C-s and C-q being used for flow control? ! 111: How do I bind `C-s' and `C-q' (or any key) if these keys are filtered ! out? ! 112: Why does the `Backspace' key invoke help? ! 113: Why doesn't Emacs look at the stty settings for Backspace vs. Delete? ! 114: How do I "swap" two keys? ! 115: How do I produce C-XXX with my keyboard? ! 116: What if I don't have a Meta key? ! 117: What if I don't have an Escape key? ! 118: Can I make my `Compose Character' key behave like a Meta key? ! 119: How do I bind a combination of modifier key and function key? ! 120: Why doesn't my Meta key work in an xterm window? ! 121: Why doesn't my ExtendChar key work as a Meta key under HP-UX 8.0? ! 122: Where can I get key bindings to make Emacs emulate WordStar? ! 123: Where can I get an XEDIT emulator for Emacs? Using Emacs with Alternate Character Sets ! 124: How do I make Emacs display 8-bit characters? ! 125: How do I input 8-bit characters? ! 126: Where can I get an Emacs that can handle kanji characters? ! 127: Where can I get an Emacs that can handle Chinese? ! 128: Where is an Emacs that can handle Semitic (right-to-left) alphabets? Mail and News ! 129: How do I change the included text prefix in mail/news followups? ! 130: How do I save a copy of outgoing mail? ! 131: Why doesn't Emacs expand my aliases when sending mail? ! 132: Why does Rmail think all my saved messages are one big message? ! 133: How can I sort the messages in my Rmail folder? ! 134: Why does Rmail need to write to /usr/spool/mail? ! 135: How do I recover my mail files after Rmail munges their format? ! 136: How do I make Emacs automatically start my mail/news reader? ! 137: How do I read news under Emacs? ! 138: Why doesn't Gnus work via NNTP? ! 139: How do I view text with embedded underlining (e.g., ClariNews)? ! 140: How do I save all the items of a multi-part posting in Gnus? ! 141: Why does Gnus put the subjects in replies beyond the 80th column? ! 142: How do I make Gnus start up faster? ! 143: How do I catch up all newsgroups in Gnus? ! 144: Why can't I kill in Gnus on the Newsgroups/Keywords/Control line? ! 145: How do I get rid of flashing messages in Gnus for slow connections? ! 146: Why is catch up slow in Gnus? ! 147: Why does Gnus hang for a long time when posting? ! 148: Why don't my news postings in Gnus get past the local machine? ! 149: Why doesn't Gnus generate the `Lines:' header? ! 150: How do I kill all articles in Gnus but those matching a pattern? ! ! ------------------------------------------------------------ ! ! If you are viewing this text in a GNU Emacs Buffer, you can type "M-2 C-x ! $" to get an overview of just the questions. Then, when you want to look ! at the text of the answers, just type "C-x $". + To search for a question numbered XXX, type "M-C-s ^XXX:", followed by a + C-r if that doesn't work, then type ESC to end the search. + Full instructions for getting the latest FAQ are in question 22, or use + anonymous FTP to the-tech.mit.edu. Notation Used in FAQ *************** *** 304,323 **** Skip this section and then come back if you don't understand some of the later answers. ! 1: What do these mean: C-h, M-C-a, RET, "ESC a", etc.? ! ! C-x means press the `x' key while holding down the Control key. M-x means ! press the `x' key while holding down the Meta key. M-C-x means press the ! `x' key while holding down both the Control key and the Meta key. C-M-a ! is a synonym for M-C-a. RET, LFD, DEL, ESC, and TAB respectively refer to ! pressing the Return, Linefeed (aka Newline), Delete, Escape, and Tab keys ! and are equivalent to C-m, C-j, C-?, C-[, and C-i. SPC means press the ! Space bar. ! ! I put any key sequence that is longer than one key (and some single-key ! sequences) inside double quotes or on a line by itself. Any real spaces ! in such a key sequence should be ignored; only SPC really means press the ! space key. ! The ASCII code sent by C-x (except for C-?) is the value that would be sent by pressing just `x' minus 96 (or 64 for uppercase `X') and will be --- 265,284 ---- Skip this section and then come back if you don't understand some of the later answers. ! 1: What do these mean: C-h, M-C-a, RET, "ESC a", etc.? ! ! C-x means press the `x' key while holding down the Control key. M-x ! means press the `x' key while holding down the Meta key. M-C-x means ! press the `x' key while holding down both the Control key and the Meta ! key. C-M-a is a synonym for M-C-a. RET, LFD, DEL, ESC, and TAB ! respectively refer to pressing the Return, Linefeed (aka Newline), ! Delete, Escape, and Tab keys and are equivalent to C-m, C-j, C-?, C-[, ! and C-i. SPC means press the Space bar. ! ! Key sequences longer than one key (and some single-key sequences) are ! inside double quotes or on lines by themselves. Any real spaces in such ! a key sequence should be ignored; only SPC really means press the space ! key. ! The ASCII code sent by C-x (except for C-?) is the value that would be sent by pressing just `x' minus 96 (or 64 for uppercase `X') and will be *************** *** 325,385 **** code that would be sent by pressing just the `x' key. Essentially, the Control key turns off bits 5 and 6 and the Meta key turns on bit 7. ! ! For further information, see `Characters' and `Keys' in the online manual. ! ! NOTE: C-? (aka DEL) is ASCII code 127. It is a misnomer to call C-? a "control" key, since 127 has both bits 5 and 6 turned ON. Also, on very few keyboards does Control-? generate ASCII code 127. ! 2: What does "M-x command" mean? ! "M-x command" means type M-x, then type the name of the command, then type RET. ! M-x (by default) invokes the command `execute-extended-command'. This command allows you to run any Emacs command if you can remember the command's name. If you can't remember the command's name, you can type ! TAB and SPC for completion, and "?" for a list of possibilities. An Emacs ! "command" is any "interactive" Emacs function. ! NOTE: Your system administrator may have bound other key sequences to invoke execute-extended-command. A function key labeled `Do' is a good candidate for this. ! ! To run non-interactive Emacs functions, see question 53. ! 3: How do I read topic XXX in the on-line manual? ! ! When I refer you to topic XXX in the on-line manual, you can read this manual node inside Emacs (assuming nothing is broken) by typing this: ! C-h i m emacs RET m XXX RET ! ! This invokes the Info facility. If you don't already know how to use ! Info, type "?" from within Info. ! ! If I refer you to topic XXX:YYY, you need to type this: ! C-h i m emacs RET m XXX RET m YYY RET ! WARNING: Your system administrator may not have installed the Info files, ! or may have installed them properly. In this case you should complain. ! 4: What do these mean: etc/SERVICE, src/config.h, lisp/default.el? ! These are files that come with GNU Emacs. The GNU Emacs distribution is divided into subdirectories; the important ones are `etc', `lisp', and `src'. ! If you use GNU Emacs, but don't know where it is kept on your system, ! start Emacs, then type "C-h v exec-directory RET". The directory name displayed by this will be the full pathname of the installed `etc' directory. ! ! Some of these files are available individually via FTP or e-mail, see question 20. All are available in the source distribution. ! 5: What are FSF, LPF, OSF, GNU, RMS, FTP, and GPL? ! FSF == Free Software Foundation LPF == League for Programming Freedom --- 286,351 ---- code that would be sent by pressing just the `x' key. Essentially, the Control key turns off bits 5 and 6 and the Meta key turns on bit 7. ! ! For further information, see `Characters' and `Keys' in the on-line ! manual. ! ! NOTE: C-? (aka DEL) is ASCII code 127. It is a misnomer to call C-? a "control" key, since 127 has both bits 5 and 6 turned ON. Also, on very few keyboards does Control-? generate ASCII code 127. ! 2: What does "M-x command" mean? ! "M-x command" means type M-x, then type the name of the command, then type RET. ! M-x (by default) invokes the command `execute-extended-command'. This command allows you to run any Emacs command if you can remember the command's name. If you can't remember the command's name, you can type ! TAB and SPC for completion, "?" for a list of possibilities, and M-p and ! M-n to see previous commands entered. An Emacs "command" is any ! "interactive" Emacs function. ! NOTE: Your system administrator may have bound other key sequences to invoke execute-extended-command. A function key labeled `Do' is a good candidate for this. ! ! To run non-interactive Emacs functions, see question 51. ! 3: How do I read topic XXX in the on-line manual? ! ! When we refer you to topic XXX in the on-line manual, you can read this manual node inside Emacs (assuming nothing is broken) by typing this: ! C-h i m emacs RET m XXX RET ! ! This invokes Info, the GNU hypertext documentation browser. If you don't ! already know how to use Info, type "?" from within Info. ! ! If we refer to topic XXX:YYY, type this: ! C-h i m emacs RET m XXX RET m YYY RET ! WARNING: Your system administrator may not have installed the Info files, ! or may have installed them improperly. In this case you should complain. ! 4: What do these mean: etc/SERVICE, src/config.h, lisp/default.el? ! These are files that come with GNU Emacs. The GNU Emacs distribution is divided into subdirectories; the important ones are `etc', `lisp', and `src'. ! If you use GNU Emacs, but don't know where it is kept on your system, ! start Emacs, then type "C-h v data-directory RET". The directory name displayed by this will be the full pathname of the installed `etc' directory. ! ! Some of these files are available individually via FTP or e-mail; see question 20. All are available in the source distribution. ! ! WARNING: Your system administrator may have removed the src directory and ! many files from the etc directory. ! 5: What are FSF, LPF, OSF, GNU, RMS, FTP, and GPL? ! FSF == Free Software Foundation LPF == League for Programming Freedom *************** *** 389,406 **** FTP == File Transfer Protocol GPL == GNU General Public Licence ! NOTE: Avoid confusing the FSF, the LPF, and the OSF. The LPF opposes look-and-feel copyrights and software patents. The FSF aims to make high ! quality free software available for everyone. The OSF is a commercial ! organization which wants to provide an alternative, standardized version ! of Unix not controlled by AT&T. ! NOTE: The word "free" in the title of the Free Software Foundation refers ! to "freedom", not "zero dollars". Anyone can charge any price for ! GPL-covered software that they want to. However, in practice, the freedom ! enforced by the GPL leads to low prices, because you can always get the ! software for less money from someone else, because everyone has the right ! to resell or give away GPL-covered software. ! --- 355,370 ---- FTP == File Transfer Protocol GPL == GNU General Public Licence ! NOTE: Avoid confusing the FSF, the LPF, and the OSF. The LPF opposes look-and-feel copyrights and software patents. The FSF aims to make high ! quality free software available for everyone. The OSF is a consortium of ! computer vendors which develops commercial software for Unix systems. ! NOTE: The word "free" in the title of the Free Software Foundation refers ! to "freedom," not "zero dollars." Anyone can charge any price for ! GPL-covered software that they want to. However, in practice, the ! freedom enforced by the GPL leads to low prices, because you can always ! get the software for less money from someone else, because everyone has ! the right to resell or give away GPL-covered software. *************** *** 407,455 **** General Questions ! 6: What is the LPF and why should I join it? ! ! The LPF opposes the expanding danger of software patents and look-and-feel ! copyrights. To get more information, feel free to contact the LPF via ! e-mail or otherwise. {You may also contact me, jbw@cs.bu.edu; I will be ! happy to talk with you about the LPF.} Here is the contact information: ! ! E-mail address: league@prep.ai.mit.edu ! Phone number: (617) 243-4091 ! Postal address: ! League for Programming Freedom ! 1 Kendall Square, Number 143 ! Post Office Box 9171 ! Cambridge, MA 02139, USA ! ! Papers describing the LPF's views are available on the internet and also from the LPF: ! Anonymous FTP: ! /prep.ai.mit.edu:/pub/lpf/ /archive.cis.ohio-state.edu:pub/lpf/ Anonymous UUCP: osu-cis!~/lpf/* ! 7: What is the real legal meaning of the GNU copyleft? ! ! The real legal meaning of the GNU General Public Licence (copyleft) is ! however it is interpreted by a judge. There has never been a copyright ! infringement case involving the GPL to set any precedents. Please take any ! discussion regarding this issue to the newsgroup gnu.misc.discuss, which ! was created to hold the extensive flame wars on the subject. ! RMS writes: ! ! The legal meaning of the GNU copyleft is less important than the spirit, ! which is that Emacs is a free software project and that work pertaining ! to Emacs should also be free software. "Free" means that all users have ! the freedom to study, share, change and improve Emacs. To make sure ! everyone has this freedom, pass along source code when you distribute ! any version of Emacs or a related program, and give the recipients the ! same freedom that you enjoyed. ! 8: What are appropriate messages for gnu.emacs.help, gnu.emacs.bug, ! comp.emacs, etc.? ! The file etc/MAILINGLISTS discusses the purpose of each GNU mailing-list. (See question 20 on how to get a copy.) For those which are gatewayed --- 371,413 ---- General Questions ! 6: What is the LPF? ! ! The LPF opposes the expanding danger of software patents and ! look-and-feel copyrights. To get more information, feel free to contact ! the LPF via e-mail or otherwise. You may also contact Joe Wells ! ; he will be happy to talk with you about the LPF. ! ! You can find more information about the LPF in the file etc/LPF. More ! papers describing the LPF's views are available on the Internet and also from the LPF: ! Anonymous FTP: ! /prep.ai.mit.edu:pub/lpf/ /archive.cis.ohio-state.edu:pub/lpf/ Anonymous UUCP: osu-cis!~/lpf/* ! 7: What is the real legal meaning of the GNU copyleft? ! ! The real legal meaning of the GNU General Public Licence (copyleft) will ! only be known if and when a judge rules on its validity and scope. There ! has never been a copyright infringement case involving the GPL to set any ! precedents. Please take any discussion regarding this issue to the ! newsgroup gnu.misc.discuss, which was created to hold the extensive flame ! wars on the subject. ! RMS writes: ! ! The legal meaning of the GNU copyleft is less important than the ! spirit, which is that Emacs is a free software project and that work ! pertaining to Emacs should also be free software. "Free" means that ! all users have the freedom to study, share, change and improve Emacs. ! To make sure everyone has this freedom, pass along source code when you ! distribute any version of Emacs or a related program, and give the ! recipients the same freedom that you enjoyed. ! 8: What are appropriate messages for gnu.emacs.help, gnu.emacs.bug, ! comp.emacs, etc.? ! The file etc/MAILINGLISTS discusses the purpose of each GNU mailing-list. (See question 20 on how to get a copy.) For those which are gatewayed *************** *** 456,464 **** with newsgroups, it lists both the newsgroup name and the mailing list address. ! ! comp.emacs is for discussion of Emacs programs in general. This ! includes GNU Emacs along with various other implementations like JOVE, ! MicroEmacs, Freemacs, MG, Unipress, CCA, Epsilon, etc. ! Many people post GNU Emacs questions to comp.emacs because they don't receive any of the gnu.* newsgroups. Arguments have been made both for --- 414,422 ---- with newsgroups, it lists both the newsgroup name and the mailing list address. ! ! comp.emacs is for discussion of Emacs programs in general. This includes ! GNU Emacs along with various other implementations like JOVE, MicroEmacs, ! Freemacs, MG, Unipress, CCA, and Epsilon.. ! Many people post GNU Emacs questions to comp.emacs because they don't receive any of the gnu.* newsgroups. Arguments have been made both for *************** *** 465,495 **** and against posting GNU-Emacs-specific material to comp.emacs. You have to decide for yourself. ! ! Messages advocating "non-free" software are considered unacceptable on any ! of the gnu.* newsgroups except for gnu.misc.discuss, which was created to ! hold the extensive flame-wars on the subject. "non-free" software ! includes any software for which the end user can't freely modify the ! source code and exchange enhancements. Be careful to remove the gnu.* ! groups from the `Newsgroups:' line when posting a followup that recommends ! such software. ! gnu.emacs.bug is a place where bug reports appear, but avoid posting bug ! reports to this newsgroup, instead see question 10. ! 9: Where can I get old postings to gnu.emacs.help and other GNU groups? ! The FSF has maintained archives of all of the GNU mailing lists for many years, although there may be some unintentional gaps in coverage. The archive is not particularly well organized or easy to retrieve individual ! postings from, but pretty much everything is there. ! ! Anonymous FTP: ! /prep.ai.mit.edu:/pub/gnu/MailingListArchives/ ! ! There is a WAIS database named `comp.emacs' on wais.oit.unc.edu that ! makes available the last few days of articles in comp.emacs. ! 10: Where should I report bugs and other problems with GNU Emacs? ! The correct way to report GNU Emacs bugs is by e-mail to bug-gnu-emacs@prep.ai.mit.edu. Anything sent here also appears in the --- 423,450 ---- and against posting GNU-Emacs-specific material to comp.emacs. You have to decide for yourself. ! ! Messages advocating "non-free" software are considered unacceptable on ! any of the gnu.* newsgroups except for gnu.misc.discuss, which was ! created to hold the extensive flame-wars on the subject. "non-free" ! software includes any software for which the end user can't freely modify ! the source code and exchange enhancements. Be careful to remove the ! gnu.* groups from the `Newsgroups:' line when posting a followup that ! recommends such software. ! gnu.emacs.bug is a place where bug reports appear, but avoid posting bug ! reports to this newsgroup (see question 10). ! 9: Where can I get old postings to gnu.emacs.help and other GNU groups? ! The FSF has maintained archives of all of the GNU mailing lists for many years, although there may be some unintentional gaps in coverage. The archive is not particularly well organized or easy to retrieve individual ! postings from, but pretty much everything is there. The archive is ! available via anonymous ftp at ! ! /prep.ai.mit.edu:pub/gnu/MailingListArchives/ ! 10: Where should I report bugs and other problems with GNU Emacs? ! The correct way to report GNU Emacs bugs is by e-mail to bug-gnu-emacs@prep.ai.mit.edu. Anything sent here also appears in the *************** *** 497,503 **** the bug report. This way a reliable return address is available so you can be contacted for further details. ! RMS explains: ! Sending bug reports to help-gnu-emacs (which has the effect of posting on gnu.emacs.help) is undesirable because it takes the time of an --- 452,458 ---- the bug report. This way a reliable return address is available so you can be contacted for further details. ! RMS explains: ! Sending bug reports to help-gnu-emacs (which has the effect of posting on gnu.emacs.help) is undesirable because it takes the time of an *************** *** 506,538 **** smaller group of people who are more likely to know what to do and have expressed a wish to receive more messages about Emacs than the others. ! However, RMS says there are circumstances when it is okay to post to gnu.emacs.help: ! ! If you have reported a bug and you don't hear about a possible fix, then ! after a suitable delay (such as a week) it is okay to post on gnu.emacs.help asking if anyone can help you. ! If you are unsure whether you have a bug, RMS describes how to tell: ! ... if Emacs crashes, that is a bug. If Emacs gets compilation errors ! while building, that is a bug. If Emacs crashes while building, that is ! a bug. If Lisp code does not do what the documentation says it does, ! that is a bug. ! 11: How do I unsubscribe to this mailing list? ! ! If you are receiving a GNU mailing list named `XXX', you might be able ! to unsubscribe to it by sending a request to the address `XXX-request@prep.ai.mit.edu'. However, this will not work if you are not listed on the main mailing list, but instead receive the mail from a distribution point. In that case, you will have to track down at which ! distribution point you are listed. Inspecting the `Received:' headers ! on the mail messages may help, along with liberal use of the `EXPN' or `VRFY' sendmail commands through `telnet smtp'. Ask your postmaster for help. ! 12: What is the current address of the FSF? ! E-mail address: gnu@prep.ai.mit.edu Phone number: (617) 876-3296 --- 461,493 ---- smaller group of people who are more likely to know what to do and have expressed a wish to receive more messages about Emacs than the others. ! However, RMS says there are circumstances when it is okay to post to gnu.emacs.help: ! ! If you have reported a bug and you don't hear about a possible fix, ! then after a suitable delay (such as a week) it is okay to post on gnu.emacs.help asking if anyone can help you. ! If you are unsure whether you have a bug, RMS describes how to tell: ! ... if Emacs crashes, that is a bug. If Emacs gets compilation errors ! while building, that is a bug. If Emacs crashes while building, that ! is a bug. If Lisp code does not do what the documentation says it ! does, that is a bug. ! 11: How do I unsubscribe to this mailing list? ! ! If you are receiving a GNU mailing list named `XXX', you might be able to ! unsubscribe to it by sending a request to the address `XXX-request@prep.ai.mit.edu'. However, this will not work if you are not listed on the main mailing list, but instead receive the mail from a distribution point. In that case, you will have to track down at which ! distribution point you are listed. Inspecting the `Received:' headers on ! the mail messages may help, along with liberal use of the `EXPN' or `VRFY' sendmail commands through `telnet smtp'. Ask your postmaster for help. ! 12: What is the current address of the FSF? ! E-mail address: gnu@prep.ai.mit.edu Phone number: (617) 876-3296 *************** *** 541,675 **** 675 Massachusetts Avenue Cambridge, MA 02139, USA - On-line Help, Printed Manuals, Other Sources of Help 13: I'm just starting GNU Emacs; how do I do basic editing? ! ! Type "C-h t" to invoke the self-paced tutorial. Typing just C-h is ! how to enter the help system. ! ! WARNING: Your system administrator may have changed C-h to act like DEL to ! deal local keyboards. You can use M-x help-for-help instead to invoke ! help. To discover what key (if any) invokes help on your system, type ! "M-x where-is RET help-for-help RET". This will print a comma-separated ! list of key sequences in the echo area. Ignore the last character in each ! key sequence listed. Each of the resulting key sequences invokes help. ! ! NOTE: Emacs's help facility works best if help is invoked by a single key ! whose value should be stored in the variable help-char. Andrew ! Arensburger wrote a patch that allows the help ! facility to work properly when invoked by multiple character sequences. ! 14: How do I find out how to do something in GNU Emacs? ! There are several methods for finding out how to do things in Emacs. ! ! * The complete text of the Emacs manual is available online via the Info hypertext reader. Type "C-h i" to invoke Info. ! * You can order a hardcopy of the manual from the FSF. See question 15. ! ! * You can get a printed reference card listing commands and keys to invoke ! them. You can order one from the FSF for $1 (or 10 for $5), or you can ! print your own from the etc/refcard.tex file in the Emacs distribution. ! {Are PostScript versions of this available for FTP?} ! * You can list all of the commands whose names contain a certain word ! (actually which match a regular expression) using "C-h a" ! (M-x command-apropos). ! * You can list all of the functions and variables whose names contain a certain word using M-x apropos. ! ! * There are many other commands in Emacs for getting help and information. ! To get a list of these commands, type "C-h C-h C-h". ! ! NOTE: You may find that command-apropos and apropos are extremely slow ! on your system. This will be fixed in Emacs 19. If you can't wait that ! long, there is a fast-apropos.el file available in the Emacs Lisp ! Archive (see question 89) that contains the fix. ! 15: How do I get a printed copy of the GNU Emacs manual? ! ! You can order a printed copy of the GNU Emacs manual from the FSF for ! $20. For 6 or more manuals the price is $13 each. The price may be ! tax-deductible as a business expense. ! The full TeX source for the manual also comes in the `man' directory of the Emacs distribution, if you're daring enough to try to print out this ! 300 page manual yourself (see question 18). ! ! If you absolutely have to print your own copy, and you don't have TeX, you ! can get a PostScript version via anonymous FTP: ! ! /cs.ubc.ca:pub/archive/gnu/manuals_ps/emacs-18.57.ps.Z ! ! ! which site requests that you please CONFINE ANY MAJOR FTPING TO LATE ! EVENINGS OR EARLY MORNINGS OUR TIME (pacific time zone, GMT-8)). A DVI version is also available via FTP: ! ! /prep.ai.mit.edu:pub/gnu/emacs-manual-6.0.dvi.Z ! ! If you don't have TeX you can convert the Texinfo sources into ! {t,n,ps}roff format with the `texi2roff' program, which is available via ! anonymous FTP: ! ! /archive.cis.ohio-state.edu:pub/gnu/texi2roff/texi2roff.shar.Z ! ! See also question 14 for how to view the manual online. ! 16: Where can I get documentation on GNU Emacs Lisp? ! Within Emacs, you can type "C-h f" to get the documentation for a function, "C-h v" for a variable. ! ! For more information, obtain the GNU Emacs Lisp Reference Manual for Emacs ! 18 under Unix. It is available from the FSF for $50 (or 5 for $200). The ! latest revision available for FTP is edition 1.03 dated 28 January 1991. ! ! For online use, a set of pregenerated Info files is available with the ! Texinfo source for the Emacs Lisp manual via anonymous FTP: ! ! /archive.cis.ohio-state.edu:pub/gnu/emacs/ ! /prep.ai.mit.edu:pub/gnu/elisp-manual-1.03.tar.Z ! ! (You can also create the Info files from the Texinfo source.) See ! question 17 for details on how to install these files online. ! ! If you are daring enough to try to print this 550 page manual out ! yourself, for instructions see question 18. ! ! Also, as a popular USENET saying goes, "Use the Force, Read the Source". ! 17: How do I install a piece of Texinfo documentation? ! ! First create Info files from the Texinfo files with the `makeinfo' ! program. makeinfo is available as part of the latest Texinfo package: ! ! /prep.ai.mit.edu:pub/gnu/texinfo-2.14.tar.Z ! For information about the Texinfo format, read the Texinfo manual which ! comes with Emacs. This manual also comes installed in Info format, so you ! can read it online. ! ! Neither texinfo-format-buffer nor the makeinfo program install the ! resulting Info files in Emacs's Info tree. To install Info files: ! 1. Move the files to the `info' directory in the installed Emacs ! distribution. See question 4 if you don't know where that ! is. ! 2. Edit the file info/dir in the installed Emacs distribution, and add a line for the top level node in the Info package that you are ! installing. Follow the examples are already in this file. The format ! is: ! * Topic: (relative-pathname). Short description of topic. ! If you want to install Info files and you don't have the necessary privileges, you have several options: ! * Info files don't actually need to be installed before being used. You can feed a file name to the Info-goto-node command (invoked by pressing --- 496,635 ---- 675 Massachusetts Avenue Cambridge, MA 02139, USA + For details on how to order, see the file etc/ORDERS. + On-line Help, Printed Manuals, Other Sources of Help 13: I'm just starting GNU Emacs; how do I do basic editing? ! ! Type "C-h t" to invoke the self-paced tutorial. Typing just C-h is how ! to enter the help system. ! ! WARNING: Your system administrator may have changed C-h to act like DEL ! to deal with local keyboards. You can use M-x help-for-help instead to ! invoke help. To discover what key (if any) invokes help on your system, ! type "M-x where-is RET help-for-help RET". This will print a ! comma-separated list of key sequences in the echo area. Ignore the last ! character in each key sequence listed. Each of the resulting key ! sequences invokes help. ! ! NOTE: Emacs help works best if it is invoked by a single key whose value ! should be stored in the variable help-char. Andrew Arensburger ! wrote a patch that allows the help facility ! to work properly when invoked by multiple character sequences. ! 14: How do I find out how to do something in GNU Emacs? ! There are several methods for finding out how to do things in Emacs. ! ! * The complete text of the Emacs manual is available on-line via the Info hypertext reader. Type "C-h i" to invoke Info. ! * You can order a hardcopy of the manual from the FSF. See question 15. ! ! * You can get a printed reference card listing commands and keys to ! invoke them. You can order one from the FSF for $1 (or 10 for $5), or ! you can print your own from the etc/refcard.tex or etc/refcard.ps files ! in the Emacs distribution. ! * You can list all of the commands whose names contain a certain word ! (actually which match a regular expression) using "C-h a" (M-x ! command-apropos). ! * You can list all of the functions and variables whose names contain a certain word using M-x apropos. ! ! * There are many other commands in Emacs for getting help and ! information. To get a list of these commands, type "C-h C-h C-h". ! 15: How do I get a printed copy of the GNU Emacs manual? ! ! You can order a printed copy of the GNU Emacs manual from the FSF. For ! details see the file etc/ORDERS. ! The full TeX source for the manual also comes in the `man' directory of the Emacs distribution, if you're daring enough to try to print out this ! 420 page manual yourself (see question 18). ! ! If you absolutely have to print your own copy, and you don't have TeX, ! you can get a PostScript version via anonymous FTP: ! ! /ftp.cs.ubc.ca:pub/archive/gnu/manuals_ps/emacs-19.21.ps.gz ! ! This site requests that you please CONFINE ANY MAJOR FTPING TO LATE ! EVENINGS OR EARLY MORNINGS OUR TIME (Pacific time zone, GMT-8). A DVI version is also available via FTP: ! ! /prep.ai.mit.edu:pub/gnu/emacs-manual-6.0.dvi.gz ! ! and all prep mirrors (See question 80 for a list). ! ! A WWW version of the Emacs manual is available on the World-Wide Web at ! URL ! ! http://asis01.cern.ch/infohtml/emacs/emacs.html ! ! See also question 14 for how to view the manual on-line. ! 16: Where can I get documentation on GNU Emacs Lisp? ! Within Emacs, you can type "C-h f" to get the documentation for a function, "C-h v" for a variable. ! ! For more information, obtain the GNU Emacs Lisp Reference Manual. ! Details on ordering it from FSF are in file etc/ORDERS. ! ! For on-line use, a set of pregenerated Info files is available with the ! Texinfo source for the Emacs Lisp manual via anonymous FTP at ! ! /prep.ai.mit.edu:pub/gnu/elisp-manual-19-2.3.tar.gz ! ! and all prep mirrors (See question 80 for a list). ! ! You can also create the Info files from the Texinfo source. See question ! 17 for details on how to install these files on-line. ! ! A WWW version of the Emacs Lisp Reference Manual is available at ! ! http://www.cs.indiana.edu/usr/local/www/elisp/lispref/elisp_toc.html ! ! An introduction to Emacs Lisp is available at ! ! http://www.cs.indiana.edu/usr/local/www/elisp/elisp-intro.html ! ! Of course, you can also print this 760-page manual yourself. For ! instructions on how to do this, see question 18. ! 17: How do I install a piece of Texinfo documentation? ! ! First, you must turn the Texinfo files into Info files. You may do this ! within Emacs, using "M-x texinfo-format-buffer", or with the standalone ! `makeinfo' program, available as part of the latest Texinfo package via ! anonymous ftp from: ! ! /prep.ai.mit.edu:pub/gnu/texinfo-3.1.tar.gz ! ! and all prep mirrors (See question 80 for a list). ! For information about the Texinfo format, read the Texinfo manual which ! comes with Emacs. This manual also comes installed in Info format, so ! you can read it on-line. ! ! Neither texinfo-format-buffer nor makeinfo installs the resulting Info ! files in Emacs's Info tree. To install Info files: ! 1. Move the files to the `info' directory in the installed Emacs ! distribution. See question 4 if you don't know where that is. ! 2. Edit the file info/dir in the installed Emacs distribution, and add a line for the top level node in the Info package that you are ! installing. Follow the examples already in this file. The format is: ! * Topic: (relative-pathname). Short description of topic. ! If you want to install Info files and you don't have the necessary privileges, you have several options: ! * Info files don't actually need to be installed before being used. You can feed a file name to the Info-goto-node command (invoked by pressing *************** *** 677,761 **** goes to the node named `Top' in that file. For example, to view a Info file named `XXX' in your home directory, you can type this: ! C-h i g (~/XXX) RET ! * You can create your own Info directory. You can tell Emacs where the ! Info directory is by setting the value of the variable Info-directory ! to its pathname. For example, to use a private Info directory which ! is a subdirectory of your home directory named `Info', you could do ! this: ! ! (setq Info-directory (expand-file-name "~/Info")) ! ! You will need a top-level Info file named `dir' in this directory. ! You can include the system-wide Info directory in your private Info ! directory with symbolic links or by copying it. ! ! * You can use an enhanced version of lisp/info.el that handles multiple ! Info directories. Then you can more easily use a mix of private and ! shared Info files. Dave Gillespie has written one such enhancement and I ! believe there are others. Dave's info.el also handles compressed Info ! files. ! ! Anonymous FTP: ! /archive.cis.ohio-state.edu:modes/info.el.Z ! /ftp.uu.net:languages/emacs-lisp/modes/info.el.Z ! ! ! According to Jay Bourland , a version of Dave's ! info.el comes with `xinfo' (see question 19). ! 18: How do I print a Texinfo file? ! NOTE: You can't get nice printed output from Info files; you must still have the original Texinfo source file for the manual you want to print. ! 1. Make sure the first line of the Texinfo file looks like this: ! \input texinfo ! You may need to alter `texinfo' to the full pathname of the texinfo.tex file, which comes with Emacs as man/texinfo.tex (or copy or link it into the current directory). ! 2. tex XXX.texinfo ! 3. texindex XXX.?? ! The `texindex' program comes with Emacs as man/texindex.c. ! 4. tex XXX.texinfo ! ! 5. Print the DVI file XXX.dvi in the normal way for printing DVI files ! at your site. ! To get more general instructions, retrieve the latest Texinfo package mentioned in question 17. ! 19: Can I view Info files without using GNU Emacs? ! ! Yes, the `info', `xinfo', and `ivinfo' programs do this. info uses ! curses, xinfo uses standard X11 libraries, and ivinfo uses InterViews. ! You can get info as part of the latest Texinfo package (see question ! 17). xinfo is available separately: ! ! /prep.ai.mit.edu:pub/gnu/xinfo-1.01.01.tar.Z ! /export.lcs.mit.edu: ! ivinfo is available in a comp.sources.misc archive or from Tom Horsley ! . For ivinfo, you need Stanford's InterViews C++ ! X library, available via anonymous FTP (interviews.stanford.edu). ! 20: What informational files are available for GNU Emacs? ! This isn't a frequently asked question, but it should be! A variety of informational files about GNU Emacs and relevant aspects of the GNU project are available for you to read. ! ! The following files are available in the `etc' directory of the GNU ! Emacs distribution, and also the latest versions are available ! individually via anonymous FTP (prep.ai.mit.edu:/pub/gnu/GNUinfo/): ! ! APPLE -- Why the FSF doen't support GNU Emacs on Apple computers DISTRIB -- GNU Emacs Availability Information, including the popular "Free Software Foundation Order Form" --- 637,718 ---- goes to the node named `Top' in that file. For example, to view a Info file named `XXX' in your home directory, you can type this: ! C-h i g (~/XXX) RET ! * You can create your own Info directory. You can tell Emacs where the ! Info directory is by adding its pathname to the value of the variable ! Info-default-directory-list. For example, to use a private Info ! directory which is a subdirectory of your home directory named `Info', ! you could put this in your .emacs file: ! ! (setq Info-default-directory-list ! (cons "~/Info" Info-default-directory-list)) ! ! You will need a top-level Info file named `dir' in this directory which ! has everything the system dir file has in it, except it should list ! only entries for Info files in that directory. You might not need it ! if all files in this directory were referenced by other `dir' files. ! The node lists from all dir files in Info-default-directory-list are ! merged by the Info system. ! 18: How do I print a Texinfo file? ! NOTE: You can't get nice printed output from Info files; you must still have the original Texinfo source file for the manual you want to print. ! 1. Make sure the first line of the Texinfo file looks like this: ! \input texinfo ! You may need to alter `texinfo' to the full pathname of the texinfo.tex file, which comes with Emacs as man/texinfo.tex (or copy or link it into the current directory). ! 2. tex XXX.texinfo ! 3. texindex XXX.?? ! The `texindex' program comes with Emacs as man/texindex.c. ! 4. tex XXX.texinfo ! ! 5. Print the DVI file XXX.dvi in the normal way for printing DVI files at ! your site. ! To get more general instructions, retrieve the latest Texinfo package mentioned in question 17. ! 19: Can I view Info files without using GNU Emacs? ! ! Yes, the `info', `xinfo', `tkinfo', and `ivinfo' programs do this. Info ! uses curses, xinfo uses standard X11 libraries, tkinfo uses Tk/Tcl and ! ivinfo uses InterViews. You can get Info as part of the latest Texinfo ! package (see question 17). xinfo is available separately: ! ! /prep.ai.mit.edu:pub/gnu/xinfo-1.01.01.tar.gz ! ! and all prep mirrors (See question 80 for a list). ! ivinfo is available in a comp.sources.misc archive or from Tom Horsley ! . tkinfo is available by anonymous ftp from: ! ! /ptolemy.eecs.berkeley.edu:pub/misc/tkinfo-0.6.tar.Z ! /ftp.aud.alcatel.com:tcl/code/tkinfo-0.6.tar.gz ! ! For ivinfo, you need Stanford's InterViews C++ X library, available via ! anonymous ftp from interviews.stanford.edu. (A FAQ on InterViews is ! available at that site in pub/FAQ.) ! 20: What informational files are available for GNU Emacs? ! This isn't a frequently asked question, but it should be! A variety of informational files about GNU Emacs and relevant aspects of the GNU project are available for you to read. ! ! The following files are available in the `etc' directory of the GNU Emacs ! distribution, and also the latest versions are available individually via ! anonymous FTP (prep.ai.mit.edu:pub/gnu/GNUinfo/): ! ! APPLE -- Why the FSF doesn't support GNU Emacs on Apple computers DISTRIB -- GNU Emacs Availability Information, including the popular "Free Software Foundation Order Form" *************** *** 763,768 **** GNU -- The GNU Manifesto INTERVIEW -- Richard Stallman discusses his public-domain ! UNIX-compatible software system ! with BYTE editors MACHINES -- Status of GNU Emacs on Various Machines and Systems MAILINGLISTS -- GNU Project Electronic Mailing Lists --- 720,724 ---- GNU -- The GNU Manifesto INTERVIEW -- Richard Stallman discusses his public-domain ! UNIX-compatible software system with BYTE editors MACHINES -- Status of GNU Emacs on Various Machines and Systems MAILINGLISTS -- GNU Project Electronic Mailing Lists *************** *** 769,1187 **** SERVICE -- GNU Service Directory SUN-SUPPORT -- including "Using Emacstool with GNU Emacs" ! These files are available in the `etc' directory of the GNU Emacs distribution: ! ! DIFF -- Differences between GNU Emacs and Twenex Emacs ! CCADIFF -- Differences between GNU Emacs and CCA Emacs ! GOSDIFF -- Differences between GNU Emacs and Gosling (Unipress??) Emacs COPYING -- GNU Emacs General Public License ! NEWS -- GNU Emacs News, a history of user-visible changes LPF -- Why you should join the League for Programming Freedom FAQ -- GNU Emacs Frequently Asked Questions (You're reading it) ! OPTIONS -- a complete explanation of startup option handling ! ! These files are available via anonymous FTP (prep.ai.mit.edu:/pub/gnu/): ! tasks -- GNU Task List standards.text -- GNU Coding Standards ! In addition, all of the above files are available directly from the FSF ! via e-mail. Of course, please try to get them from a local source ! first. ! These additional files are available from the FSF via e-mail: ! ! * GNU's Bulletin, June, 1991 -- this file includes: ! GNU'S Who ! What Is the Free Software Foundation? ! What Is Copyleft? ! A Small Way to Help Free Software ! GNUs Flashes (important recent developments for project GNU) ! Free Software Support (and how to get it!) ! Copyrighted Programming Languages ! AT&T Threatens Users of X Windows (and other software patent threats) ! Project Gutenberg ! GNU Project Status Report ! GNU in Japan ! GNU Wish List ! Help Keep Government Software Free ! GNU Software Available Now ! Contents of the Emacs Tape ! Contents of the Compiler Tape ! Contents of the X11 Tapes ! VMS Emacs and Compiler Tapes ! GNU Documentation ! How to Get GNU Software ! Free Software for Microcomputers ! GNU Software on Apple computers ! GNU Software on the Amiga ! GNU Software on the Atari ! GNUish MS-DOS project ! Freemacs, an Extensible Editor for MS-DOS ! GNU in Japan ! FSF Order Form ! Thank GNUs * Legal issues about contributing code to GNU * GNU Project Status Report ! ! A collection of past GNU's Bulletins is available via anonymous FTP: ! /ftp.funet.fi:pub/gnu/Bulletins/ 21: Where can I get help in installing GNU Emacs? ! Look in etc/SERVICE for names of companies and individuals who will sell you this type of service. An up-to-date version of the SERVICE file is available on prep.ai.mit.edu (also see question 20). ! 22: Where can I get the latest version of this document (the FAQ list)? ! The GNU Emacs FAQ is available in several ways: ! * Via USENET. If you can read news, the FAQ should be available in your ! news spool, in both the gnu.emacs.help and comp.emacs newsgroups. Every ! news reader of which I know will allow you to read any news article that ! is still in the news spool, even if you have read the article before. ! You may need to read the instructions for your news reader to discover ! how to do this. In `rn', this command will do this for you at the ! article selection level: ! ?GNU Emacs FAQ?rc:m ! ! In GNUS, you should type "C-u G" from the *Subject* buffer or "C-u SPC" ! from the *Newsgroup* buffer to view all articles in a newsgroup. ! ! The FAQ articles' message IDs are: ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! If you are viewing this in the GNUS *Article* buffer, you can move point ! within one of the above message IDs and type "r" to fetch the referenced ! article. Type "o" in the *Article* buffer to restore the previous ! contents. If this text is not in the GNUS *Article* buffer, use M-r ! from the *Subject* buffer instead. ! If the FAQ articles have expired and been deleted from your news spool, it might (or might not) do some good to complain to your news ! administrator, because the most recent FAQ should not expire before ! July 3, 1993. ! ! * Via anonymous FTP. You can fetch the FAQ articles via anonymous FTP ! ! /rtfm.mit.edu:pub/usenet/news.answers/GNU-Emacs-FAQ/ part* ! ! * Via e-mail. You can send the following magical incantation in the body ! of a message to mail-server@rtfm.mit.edu: ! ! send usenet/news.answers/GNU-Emacs-FAQ/part0 ! send usenet/news.answers/GNU-Emacs-FAQ/part1 ! send usenet/news.answers/GNU-Emacs-FAQ/part2 ! send usenet/news.answers/GNU-Emacs-FAQ/part3 ! send usenet/news.answers/GNU-Emacs-FAQ/part4 ! send usenet/news.answers/GNU-Emacs-FAQ/part5 ! ! * Via WAIS. The GNU Emacs FAQ is available via WAIS indexed on a ! per-question basis from the `faq' database on bigbird.bu.edu on the ! non-standard IP port number of 2210. This is probably the best way to ! find out if there is something in the FAQ related to your question. I ! use this myself to answer questions I see posted on gnu.emacs.help. ! ! The articles of the GNU Emacs FAQ are also available from the `usenet' ! database on rtfm.mit.edu (on the standard IP port: 210), along with a ! lot of other FAQ articles. However, these are all indexed at the whole ! article level instead of at the question level. This is a better place ! to look if you want to fetch the entire FAQ. ! * In the GNU Emacs distribution. Since GNU Emacs 18.56, the latest ! available version of the FAQ at the time of release has been part of the ! GNU Emacs distribution as file etc/FAQ. 18.59 is the latest version, ! and it was released in October 1992. ! ! * There is an old version of the FAQ list available for FTP in the GNU ! archives at MIT: ! ! /prep.ai.mit.edu:pub/gnu/GNUinfo/FAQ.emacs ! ! * As the very last resort, you can e-mail a request to ! gnu-emacs-faq-maintainers@bigbird.bu.edu. Don't do this unless you have ! made a serious effort to obtain the FAQ list via one of the methods ! listed above. ! Status of Emacs 23: Where does the name "Emacs" come from? ! Emacs originally was an acronym for Editor MACroS. RMS says he "picked the name `Emacs' because `E' was not in use as an abbreviation on ITS at ! the time.". The first Emacs was a set of macros written in 1976 at MIT by ! RMS for the editor TECO (Text Editor and COrrector (originally Tape Editor ! and COrrector)) under ITS on a PDP-10. RMS had already extended TECO with ! a "real-time" full screen mode with active keys. Emacs was started by Guy ! Steele as a project to unify the many divergent TECO ! command sets and keybindings at MIT. ! ! Many people have told me that TECO code looks a lot like line noise. See ! alt.lang.teco if you are interested. I think someone has written a TECO ! implementation in Emacs Lisp. It would be an interesting project to run the original TECO Emacs inside of GNU Emacs. - - 24: What is the latest version of GNU Emacs? - - GNU Emacs 18.59 is the current version. Fixes from 18.57 include better - mail address parsing, an X visual bell speedup, a call-process - enhancement, a regexp matching change, the ability to apply a numeric - argument to a self-inserting digit, getting X resource values from the - RESOURCE_MANAGER property, more reliable shell mode job control, and a - change to copy-keymap. Also, support has been added for many new system - types. Fixes from 18.55 include the removal of arbitrary limits on the - undo facility. - - According to the January 1992 GNU's Bulletin, "Emacs 18 maintenance - continues for simple bug fixes.". - - To visit a file with information about what has changed in recent - versions, type "C-h n". - - 25: When will GNU Emacs 19 be available? - - Richard Stallman recently (February 19, 1993) posted in gnu.emacs.help ! - the following: ! - ! - People should keep in mind that the successor of Emacs 18 does not ! - come from Lucid. Its is GNU Emacs 19. I still can't say exactly when ! - public release is going to be, but we are about to start testing at a ! - number of sites. ! - ! - GNU Emacs 19 will support a broad spectrum of machines, like Emacs ! - 18. Ensuring this is the purpose of the testing we are about to do. ! - ! - (Please don't volunteer; we have enough pretesters, and if more people ! - offer, dealing with those messages will slow things down.) ! - ! - Once we make sure it is indeed working reliably on various different ! - systems, we will have a public beta test release. ! - ! - Emacs 19 does support adding properties to ranges of text, and using ! - these to switch fonts. In the future, the Epoch people will help ! - merge support for variable-width fonts. ! - ! - Meanwhile, I have almost finished updating the Emacs Lisp manual. Its ! - next edition will describe Emacs 19. There will be an announcement ! - when we know when this edition will be available. ! - - Lucid has released Lucid GNU Emacs 19.6, which is based on an early ! - unreleased version of GNU Emacs 19. This will be similar to Emacs 19 when - it finally arrives, but they are not the same. See question 121. - - Work has begun on features for Emacs 20. - - 26: What is different about GNU Emacs 19? - - From the January 1992 GNU's Bulletin: - - Version 19 will enter beta test late this year. Among its new features - are: before and after change hooks, source-level debugging of Emacs Lisp - programs, X selection processing (including clipboard selections), - scrollbars, support for European character sets, floating point numbers, - per-buffer mouse commands, X resource manager interfacing, - mouse-tracking, Lisp-level binding of function keys, multiple X windows - (`screens' to Emacs), a new input system, and buffer allocation, which - uses a new mechanism capable of returning storage to the system when a - buffer is killed. - - The input stream is now a sequence of Lisp objects, instead of a - sequence of characters. This allows a reasonable representation for - mouse clicks, function keys, menu selections, etc. - - Thanks go to Alan Carroll and the people who worked on Epoch for - generating initial feedback to a multi-windowed Emacs, and to Eric - Raymond for help in polishing the Emacs 19 Lisp libraries. - - The June 1991 GNU's bulletin had this to say about future plans for Emacs: - - Features being considered for later releases of Emacs include: - associating property lists with regions of text in a buffer; multiple - fonts, color, and pixmaps defined by those properties; different - visibility conditions for the regions, and for various windows showing - one buffer; hooks to be run if point or mouse moves outside a certain - range; incrementally saving undo history in a file; static menu bars; - and better pop-up menus. - - Mention of this feature disappeared in the January 1992 GNU's bulletin: - - Emacs 19 supports two styles of multiple windows, one with a separate - screen for the minibuffer, and another with a minibuffer attached to - each screen. - - Mention of these two proposed features disappeared in the January 1991 - GNU's bulletin: - - * Incremental syntax analysis for various programming languages (Leif). - * A more sophisticated emacsclient/server model, which would provide - network transparent Emacs widget functionality. - - 27: What variants of GNU Emacs exist? - - * Nemacs (Nihongo Emacs), which can handle Japanese text, is derived from - GNU Emacs 18.55. See question 149. - - * Demacs, which can run under MS-DOS on 386 machines, is derived from - Nemacs. See question 122. - - * Epoch, which has better X support, is derived from GNU Emacs 18.58. - See question 120 and 92. - - * Nepoch (Nihongo Epoch), which can handle Japanese text, is derived from - Epoch. - - * Mule (the MULtilingual Enhancement of GNU Emacs) can handle many - character sets simultaneously. It is derived from Emacs 18.58. It is - available for FTP: - - /sh.wide.ad.jp:/JAPAN/mule/ - /etlport.etl.go.jp:/pub/mule/ - - * Lucid GNU Emacs is derived from an early unreleased version of GNU Emacs - 19. See question 121 and 92. - - ! GNU Emacs FAQ: Common Requests/Problems ! If you are viewing this text in a GNU Emacs Buffer, you can type "M-2 C-x $" to ! get an overview of just the questions. Then, when you want to look at the text ! of the answers, just type "C-x $". ! ! To search for a question numbered XXX, type "M-C-s ^XXX:", followed by a C-r if ! that doesn't work, then type ESC to end the search. ! ! A `+' in the 78th column means something was inserted on the line. A `-' means ! something was deleted and a `!' means some combination of insertions and ! deletions occurred. ! ! Full instructions for getting the latest FAQ are in question 22. Also see the ! `Introduction to news.answers' posting in the `news.answers' newsgroup, or send ! e-mail to `mail-server@rtfm.mit.edu' with `help' on a body line, or use FTP, ! WAIS, or Prospero to rtfm.mit.edu. Common Things People Want To Do ! 28: How do I set up a .emacs file properly? ! See `Init File' in the on-line manual. ! ! WARNING: In general, new Emacs users should not have .emacs files, because ! it causes confusing non-standard behavior. Then they send questions to ! help-gnu-emacs asking why Emacs isn't behaving as documented. :-) ! ! 29: How do I debug a .emacs file? ! ! First start Emacs with the `-q' command line option. Then, in the ! *scratch* buffer, type the following: ! ! (setq debug-on-error t) LFD ! (load-file "~/.emacs") LFD ! ! (Type LFD by pressing C-j.) ! ! If you have an error in your .emacs file, this will invoke the debugger ! when the error occurs. If you don't know how to use the debugger do ! (setq stack-trace-on-error t) instead. ! ! WARNING: this will not discover errors caused by trying to do something ! that requires the terminal/window-system initialization code to have ! been loaded. See question 127. ! ! 30: How do I make Emacs display the current line (or column) number? ! To find out what line of the buffer you are on right now, do "M-x what-line". Use "M-x goto-line" to go to a specific line. To find the current column number, type "M-ESC (current-column)". ! ! Typing "C-x l" will also tell you what line you are on, provided the ! buffer isn't separated into "pages" with C-l characters. In that case, it ! will only tell you what line of the current "page" you are on. WARNING: ! "C-x l" gives the wrong value when point is at the beginning of a line. ! ! There is no "correct" way to constantly display the current (or total) ! line (or column) number on the mode line in Emacs 18, or to display the ! line numbers next to the lines like vi can. Emacs is not a line-oriented ! editor, and really has no idea what "lines" of the buffer are displayed in ! the window. It would require a lot of work at the C code level to make ! Emacs keep track of this. It would not be that hard to get the column ! number, but it would still require changes at the C code level. ! None of the vi emulation modes provide the `set number' capability of vi ! (as far as I know). ! ! Emacs 19 will probably be able to show the line number on the mode-line, ! but probably very inefficiently. ! ! People have written various kludges to display line numbers. One is ! `display-line-numbers' by Wayne Mesard . Look in the Lisp Code Directory. (See question ! 88.) ! ! 31: How do I turn on Abbrevs by default just in mode XXX? ! Put this in your .emacs file: ! (condition-case () ! (read-abbrev-file nil t) (file-error nil)) ! ! (setq XXX-mode-hook ! (function ! (lambda () ! (setq abbrev-mode t)))) ! ! 32: How do I turn on Auto-Fill mode by default? ! ! To turn on Auto-Fill mode just once for one buffer, use "M-x auto-fill-mode". To turn it on for every buffer in, for example, Text mode, do this: ! ! (setq text-mode-hook 'turn-on-auto-fill) ! ! If you want Auto-Fill mode on in all major modes, do this: ! (setq-default auto-fill-hook 'do-auto-fill) ! ! 33: How do I make Emacs use a certain major mode for certain files? ! If you want to use XXX mode for all files which end with the extension `.YYY', this will do it for you: ! (setq auto-mode-alist (cons '("\\.YYY\\'" . XXX-mode) auto-mode-alist)) ! Otherwise put this somewhere in the first line of any file you want to edit in XXX mode: ! -*-XXX-*- ! ! 34: How do I search for, delete, or replace unprintable (8-bit or control) ! characters? ! To search for a single character that appears in the buffer as, for ! example, `\237', you can type "C-s C-q 2 3 7". (This assumes the value of ! search-quote-char is 17 (ie., C-q).) Searching for ALL unprintable ! characters is best done with a "regexp" search. The easiest regexp to use ! for the unprintable chars is the complement of the regexp for the printable chars. ! Regexp for the printable chars: [\t\n\r\f -~] ! Regexp for the unprintable chars: [^\t\n\r\f -~] ! To type some of these special characters in an interactive argument to isearch-forward-regexp or re-search-forward, you need to use C-q. (`\t', --- 725,1010 ---- SERVICE -- GNU Service Directory SUN-SUPPORT -- including "Using Emacstool with GNU Emacs" ! These files are available in the `etc' directory of the GNU Emacs distribution: ! COPYING -- GNU Emacs General Public License ! NEWS -- GNU Emacs news, a history of user-visible changes LPF -- Why you should join the League for Programming Freedom FAQ -- GNU Emacs Frequently Asked Questions (You're reading it) ! ! These files are available via anonymous FTP (prep.ai.mit.edu:pub/gnu/): ! tasks -- GNU Task List standards.text -- GNU Coding Standards ! In addition, all of the above files are available directly from the FSF ! via e-mail. Of course, please try to get them from a local source first ! (See question 80 for a list). ! These additional files are available from the FSF via e-mail: ! ! * GNU's Bulletin, January 1994 ! GNU's Who ! GNU's Bulletin ! What Is the Free Software Foundation? ! What Is Copyleft? ! Donations Translate Into Free Software ! Cygnus Matches Donations! ! GNUs Flashes ! What Is the LPF? ! News from the LPF ! Free Software Support ! Project GNU Wish List ! Towards a New Strategy of OS Design ! Part 1: A More Usable Approach to OS Design ! Part 2: A Look at Some of the Hurd's Beasts ! Second Annual GNU Seminar in Japan ! GNU and other Free Software in Japan ! Freely Available Texts ! OCEAN Integrated-Circuit Design System ! Hundred Acre Consulting Expands ! Project GNU Status Report ! GNU Documentation ! GNU Software Available Now ! Source Code CD-ROM ! Compiler Tools Binaries CD-ROM ! Tape & CD-ROM Subscription Service ! How to Get GNU Software ! The Deluxe Distribution ! MS-DOS Distribution ! Free Software for Microcomputers ! FSF T-shirt ! Thank GNUs ! Free Software Foundation Order Form * Legal issues about contributing code to GNU * GNU Project Status Report ! ! A collection of past GNU's Bulletins is available via anonymous FTP from: ! /ftp.funet.fi:pub/gnu/Bulletins/ + The latest bulletin is available on the World-Wide Web at URL: + + http://info.desy.de/gnu/www/gnu_bulletin_9401/gnu_bulletin_9401_toc.html + 21: Where can I get help in installing GNU Emacs? ! Look in etc/SERVICE for names of companies and individuals who will sell you this type of service. An up-to-date version of the SERVICE file is available on prep.ai.mit.edu (also see question 20). ! ! You might also try the help-gnu-emacs mailing list, which is also known ! as the gnu.emacs.help newsgroup, although many installation questions can ! easily be answered by looking at the PROBLEMS file (in the top-level ! directory when you unpack the Emacs source). ! 22: Where can I get the latest version of this document (the FAQ list)? ! The GNU Emacs FAQ is available in several ways: ! * Via USENET. If you can read news, the FAQ should be available in your ! news spool, in both the gnu.emacs.help and comp.emacs newsgroups. ! Every news reader should allow you to read any news article that is ! still in the news spool, even if you have read the article before. You ! may need to read the instructions for your news reader to discover how ! to do this. In `rn', this command will do this for you at the article ! selection level: ! ?GNU Emacs FAQ?rc:m ! ! In Gnus, you should type "C-u c-x c-s" from the *Summary* buffer or ! "C-u SPC" from the *Newsgroup* buffer to view all articles in a ! newsgroup. ! If the FAQ articles have expired and been deleted from your news spool, it might (or might not) do some good to complain to your news ! administrator, because the most recent FAQ should not expire before for ! a while. ! * Via anonymous FTP. You can fetch the FAQ articles via anonymous FTP ! from the-tech.mit.edu, in ~ftp/pub/GNU-Emacs/. ! * In the GNU Emacs distribution. Since GNU Emacs 18.56, the latest ! available version of the FAQ at the time of release has been part of ! the GNU Emacs distribution as file etc/FAQ. ! ! * Via the World-Wide Web. Point your favorite Web browser (Mosaic, Lynx, ! w3-mode) to one of the following URLs: ! ! http://www.cis.ohio-state.edu/hypertext/faq/usenet/GNU-Emacs-FAQ/top.html ! http://scwww.ucs.indiana.edu/FAQ/Emacs/ + * If all goes well, this FAQ should also be available via anonymous ftp + and e-mail from rtfm.mit.edu, the main repository for FAQs and other + items posted to news.answers. However, we are omitting explicit + directions on how to retrieve the FAQ from rtfm.mit.edu, since it's + possible that it won't end up there right away. (We're new at this + FAQ-posting business.) Instructions on how to retrieve the FAQ from + rtfm.mit.edu should be in the next version of the FAQ. + * As the very last resort, you can e-mail a request to + gnu-emacs-faq-maintainers@bigbird.bu.edu. Don't do this unless you + have made a serious effort to obtain the FAQ list via one of the + methods listed above. + Status of Emacs 23: Where does the name "Emacs" come from? ! Emacs originally was an acronym for Editor MACroS. RMS says he "picked the name `Emacs' because `E' was not in use as an abbreviation on ITS at ! the time." The first Emacs was a set of macros written in 1976 at MIT by ! RMS for the editor TECO (Text Editor and COrrector (originally Tape ! Editor and COrrector)) under ITS on a PDP-10. RMS had already extended ! TECO with a "real-time" full screen mode with active keys. Emacs was ! started by Guy Steele as a project to unify the many ! divergent TECO command sets and key bindings at MIT. ! ! Many people have said that TECO code looks a lot like line noise. See ! alt.lang.teco if you are interested. Someone has written a TECO ! implementation in Emacs Lisp; it would be an interesting project to run the original TECO Emacs inside of GNU Emacs. ! 24: What is the latest version of GNU Emacs? ! GNU Emacs 19.27 is the current version as of 6 September, 1994. + 25: What is different about GNU Emacs 19? + To find out what has changed in recent versions, type C-h n (M-x + view-emacs-news). The oldest changes are at the bottom of the file, so + you might want to read it starting there, rather than at the top. + + The most obvious changes have to do with the user interface -- GNU Emacs + 19 is fully X-aware, and provides pull-down menus and scroll bars. Emacs + 19 also supports fonts and colors, including context-specific + highlighting of source code and other types of buffers. + + Other changes include a line number mode, which displays the current line + number in the mode line, and default bindings for arrow and paging keys + that work. + + Lower-level changes include a smarter memory allocation scheme (Emacs now + returns memory to the operating system when you kill buffers), a better + byte-compiler, and a source-level Emacs Lisp debugger. + + There are also a number of new Lisp packages, ranging from dunnet (an + Adventure-like program) to mldrag (allows you to drag the mode line up + and down with the mouse buttons) to gud (Grand Unified Debugger mode, for + many flavors of debuggers). A number of popular Lisp packages, such as + SuperCite and the calendar/diary, are also included. Common Things People Want To Do ! 26: How do I set up a .emacs file properly? ! See `Init File' in the on-line manual. ! ! WARNING: In general, new Emacs users should not have .emacs files, ! because it causes confusing non-standard behavior. Then they send ! questions to help-gnu-emacs asking why Emacs isn't behaving as ! documented. :-) ! ! 27: How do I debug a .emacs file? ! ! First start Emacs with the `-debug-init' command-line option. This ! option enables the Emacs Lisp debugger before evaluating your .emacs ! file, and places you in the debugger if something goes wrong. The top ! line in the trace-back buffer will be the error message, and the second ! or third line of that buffer will display the Lisp code from your .emacs ! that caused the problem. ! ! You can also evaluate an individual function or argument to a function in ! your .emacs file by moving the cursor to the end of the function or ! argument and typing "C-x C-e" (M-x eval-last-sexp). ! ! Use "C-h v" (M-x describe-variable) to check the value of variables which ! you are trying to set or use. ! ! 28: How do I make Emacs display the current line (or column) number? ! To find out what line of the buffer you are on right now, do "M-x what-line". Use "M-x goto-line" to go to a specific line. To find the current column number, type "M-ESC (current-column)". ! ! If you use these commands often, you might want to bind them to a key. ! See question 104 for instructions on how to do that. ! ! Typing "C-x l" (or M-x count-lines-page) will also tell you what line you ! are on, provided the buffer isn't separated into "pages" with C-l ! characters. In that case, it will only tell you what line of the current ! "page" you are on. ! ! To have Emacs automatically display the current line number of the point ! in the mode line, do "M-x line-number-mode". You can also put the form ! ! (setq line-number-mode t) ! ! in your .emacs file to achieve this whenever you start Emacs. Note that ! Emacs will not display the line number if the buffer is larger than the ! value of the variable line-number-display-limit. ! None of the vi emulation modes provide the `set number' capability of vi ! (as far as we know). ! ! 29: How do I turn on abbrevs by default just in mode XXX? ! Put this in your .emacs file: ! (condition-case () ! (quietly-read-abbrev-file) (file-error nil)) ! ! (add-hook 'XXX-mode-hook ! (function ! (lambda () ! (setq abbrev-mode t)))) ! ! 30: How do I turn on auto-fill mode by default? ! ! To turn on auto-fill mode just once for one buffer, use "M-x auto-fill-mode". To turn it on for every buffer in, for example, Text mode, do this: ! ! (add-hook 'text-mode-hook 'turn-on-auto-fill) ! ! If you want auto-fill mode on in all major modes, do this: ! (setq-default auto-fill-hook 'do-auto-fill) ! ! 31: How do I make Emacs use a certain major mode for certain files? ! If you want to use XXX mode for all files which end with the extension `.YYY', this will do it for you: ! (setq auto-mode-alist (cons '("\\.YYY\\'" . XXX-mode) auto-mode-alist)) ! Otherwise put this somewhere in the first line of any file you want to edit in XXX mode: ! -*-XXX-*- ! ! Emacs 19 also includes a new variable, interpreter-mode-alist, that ! specifies which mode to use when loading a shell script. (Emacs ! determines which interpreter you're using by examining the first line of ! the file.) This feature only applies when the file name doesn't indicate ! which mode to use. Use "C-h v" (or M-x describe-variable) to learn more ! about this variable. ! ! 32: How do I search for, delete, or replace unprintable (8-bit or control) ! characters? ! To search for a single character that appears in the buffer as, for ! example, `\237', you can type "C-s C-q 2 3 7". (This assumes the value ! of search-quote-char is 17 (i.e., C-q).) Searching for ALL unprintable ! characters is best done with a "regexp" search. The easiest regexp to ! use for the unprintable chars is the complement of the regexp for the printable chars. ! Regexp for the printable chars: [\t\n\r\f -~] ! Regexp for the unprintable chars: [^\t\n\r\f -~] ! To type some of these special characters in an interactive argument to isearch-forward-regexp or re-search-forward, you need to use C-q. (`\t', *************** *** 1188,1356 **** `\n', `\r', and `\f' stand respectively for TAB, LFD, RET, and C-l.) So, to search for unprintable characters using re-search-forward: ! M-x re-search-forward RET [^ TAB C-q LFD C-q RET C-q C-l SPC -~] RET ! Using isearch-forward-regexp: ! M-C-s [^ TAB RET C-q RET C-q C-l SPC -~] ! ! To delete all unprintable characters, simply use a replace-regexp: ! M-x replace-regexp RET [^ TAB C-q LFD C-q RET C-q C-l SPC -~] RET RET ! ! Replacing is similar to the above. {I need to write the text for this ! part of the answer!} ! ! Notes: ! ! * With isearch, you can type RET to get a quoted LFD (not a quoted RET). ! ! * You don't need to quote TAB with either isearch or typing something in ! the minibuffer. ! ! Here are the Emacs Lisp forms of the above regexps: ! ! ;; regexp matching all printable characters: ! "[\t\n\r\f -~]" ! ! ;; regexp matching all unprintable characters: ! "[^\t\n\r\f -~]" ! ! 35: How can I highlight a region of text in Emacs? ! ! There are ways to get highlighting (reverse video, inverse video) in GNU ! Emacs 18.59, but either they require patching the C code of Emacs and ! rebuilding, or they are slow and the highlighting disappears if you scroll ! or redraw the screen and it can not follow the point. Howard Gayle's ! patches for 8-bit output appear to allow highlighting (see question ! ^8-bit-output). Another patch for highlighting is by Kenichi Handa ! . There is a patch for use with X by Andy Norman ! (and modified for 18.57 by Matthieu Herrb ! ), which is available for FTP: ! ! /laas.laas.fr:pub/emacs/patch-X11-18.55 ! /laas.laas.fr:pub/emacs/patch-X11-18.57 ! ! You can highlight regions in a variety of ways in Epoch and Lucid Emacs. ! GNU Emacs 19 may not be able to just temporarily highlight a region. ! ! Similar comments apply to displaying text in different fonts, except that ! it is even harder. ! ! 36: How do I control Emacs's case-sensitivity when searching/replacing? ! For searching, the value of the variable case-fold-search determines whether they are case sensitive: ! (setq case-fold-search nil) ; make searches case sensitive (setq case-fold-search t) ; make searches case insensitive ! Similarly, for replacing the variable case-replace determines whether replacements preserve case. ! To change the case sensitivity just for one major mode, use the major mode's hook. For example: ! ! (setq XXX-mode-hook (function ! (lambda () ! (setq case-fold-search nil)))) ! ! 37: How do I make Emacs wrap words for me? ! ! M-x auto-fill-mode. The default maximum line width is 74, determined by ! the variable fill-column. To find how to turn this on automatically see ! question 32. ! ! 38: Where can I get a better spelling checker for Emacs? ! ! Use Ispell. See question 119. ! ! 39: How can I spell-check TeX or *roff documents? ! ! If you want to spell-check TeX or *roff documents with Ispell, you need to ! arrange for a filter program that understands how to strip TeX or *roff ! formatting commands to be run. In the TeX distribution, there are several ! different programs named `detex', all with incompatible options, and a ! very old pair of programs named `detex' and `delatex', which should ! probably be avoided. The most useful one for Ispell is `detex' by Daniel ! Trinkle. A more recent version is available via FTP: ! ! /arthur.cs.purdue.edu:pub/trinkle/detex-2.4.tar ! ! Raphael Cerf recently released a program for this ! named `xetal': ! ! /spi.ens.fr:pub/unix/tex/ ! ! There is a program that comes with Unix named `deroff' for stripping ! formatting commands from *roff files. ! ! Here is an example of code you can put in a .emacs file to use these ! programs: ! ! ;; Based on suggestions by David G. Grubbs and Paul Palmer ! ;; . ! ! ;; Assuming the use of detex 2.3 by Daniel Trinkle: ! ;; -w means one word per line. ! ;; -n means don't expand \input or \include commands. ! ;; -l means force LaTeX mode. ! ! (require 'ispell) ; for the make-variable-buffer-local statements ! (setq plain-TeX-mode-hook ! (function ! (lambda () ! (setq ispell-filter-hook "detex") ! (setq ispell-filter-hook-args '("-nw"))))) ! (setq LaTeX-mode-hook ! (function ! (lambda () ! (setq ispell-filter-hook "detex") ! (setq ispell-filter-hook-args '("-lnw"))))) ! (setq nroff-mode-hook ! (function ! (lambda () ! (setq ispell-filter-hook "deroff") ! (setq ispell-filter-hook-args '("-w"))))) ! ! You will have to adjust the arguments for programs other than Trinkle's ! detex or for other versions of deroff. Experiment running the command ! from the shell to find the correct options. If you don't have a filter ! that knows how to output one word per line, you must pipe its output ! through another filter to break up the output. ! ! 40: How do I change load-path? ! In general, you should only *add* to the load-path. You can add directory /XXX/YYY to the load path like this: ! ! (setq load-path (append load-path '("/XXX/YYY/"))) ! To do this relative to your home directory: ! ! (setq load-path (append load-path (list (expand-file-name "~/YYY/")))) ! ! 41: How do I use an already running Emacs from another window? ! The `emacsclient' program is for editing a file using an already running Emacs rather than starting up a new Emacs. It does this by sending a ! request to the already running Emacs, which must be expecting the request. ! * Setup ! Emacs must have executed the `server-start' function for emacsclient to work. This can be done either by a command line option: ! emacs -f server-start ! or by invoking server-start from the .emacs file: ! (if (some conditions are met) (server-start)) ! When this is done, Emacs starts a subprocess running a program called `server'. `server' creates a Unix domain socket in the user's home directory named `.emacs_server'. ! To get your news reader, mail reader, etc., to invoke emacsclient, try setting the environment variable EDITOR (or sometimes VISUAL) to the --- 1011,1113 ---- `\n', `\r', and `\f' stand respectively for TAB, LFD, RET, and C-l.) So, to search for unprintable characters using re-search-forward: ! M-x re-search-forward RET [^ TAB C-q LFD C-q RET C-q C-l SPC -~] RET ! Using isearch-forward-regexp: ! M-C-s [^ TAB RET C-q RET C-q C-l SPC -~] ! ! To delete all unprintable characters, simply use replace-regexp: ! M-x replace-regexp RET [^ TAB C-q LFD C-q RET C-q C-l SPC -~] RET RET ! ! Replacing is similar to the above. To replace all unprintable characters ! with a colon, use: ! ! M-x replace-regexp RET [^ TAB C-q LFD C-q RET C-q C-l SPC -~] RET : RET ! ! NOTE: * You don't need to quote TAB with either isearch or typing ! something in the minibuffer. ! ! 33: How can I highlight a region of text in Emacs? ! ! If you are using a windowing system such as X, you can cause the region ! to be highlighted when the mark is active by including ! ! (transient-mark-mode t) ! ! in your .emacs. There are also the following packages for content- based ! highlighting: ! ! hilit19.el ! font-lock.el ! ! 34: How do I control Emacs's case-sensitivity when searching/replacing? ! For searching, the value of the variable case-fold-search determines whether they are case sensitive: ! (setq case-fold-search nil) ; make searches case sensitive (setq case-fold-search t) ; make searches case insensitive ! Similarly, for replacing the variable case-replace determines whether replacements preserve case. ! To change the case sensitivity just for one major mode, use the major mode's hook. For example: ! ! (add-hook 'XXX-mode-hook (function ! (lambda () ! (setq case-fold-search nil)))) ! ! 35: How do I make Emacs wrap words for me? ! ! Use auto-fill mode, activated by typing "M-x auto-fill-mode". The ! default maximum line width is 70, determined by the variable fill-column. ! To learn how to turn this on automatically, see question 30. ! ! 36: Where can I get a better spelling checker for Emacs? ! ! Use Ispell. See question 101. ! ! 37: How can I spell-check TeX or *roff documents? ! ! Use Ispell. See question 101. Ispell can handle TeX and *roff ! documents. ! ! 38: How do I change load-path? ! In general, you should only *add* to the load-path. You can add directory /XXX/YYY to the load path like this: ! ! (setq load-path (cons "/XXX/YYY/" load-path)) ! To do this relative to your home directory: ! ! (setq load-path (cons "~/YYY/" load-path) ! ! 39: How do I use an already running Emacs from another window? ! The `emacsclient' program is for editing a file using an already running Emacs rather than starting up a new Emacs. It does this by sending a ! request to the already running Emacs, which must be expecting the ! request. ! * Setup ! Emacs must have executed the `server-start' function for emacsclient to work. This can be done either by a command line option: ! emacs -f server-start ! or by invoking server-start from the .emacs file: ! (if (some conditions are met) (server-start)) ! When this is done, Emacs starts a subprocess running a program called `server'. `server' creates a Unix domain socket in the user's home directory named `.emacs_server'. ! To get your news reader, mail reader, etc., to invoke emacsclient, try setting the environment variable EDITOR (or sometimes VISUAL) to the *************** *** 1357,1370 **** value `emacsclient'. You may have to specify the full pathname of the emacsclient program instead. Examples: ! # csh commands: setenv EDITOR emacsclient setenv EDITOR /usr/local/emacs/etc/emacsclient # using full pathname ! # sh command: ! EDITOR=emacsclient export EDITOR ! * Normal use ! When emacsclient is run, it connects to the `.emacs_server' socket and passes its command line options to `server'. When `server' receives --- 1114,1127 ---- value `emacsclient'. You may have to specify the full pathname of the emacsclient program instead. Examples: ! # csh commands: setenv EDITOR emacsclient setenv EDITOR /usr/local/emacs/etc/emacsclient # using full pathname ! # sh command: ! EDITOR=emacsclient ; export EDITOR ! * Normal use ! When emacsclient is run, it connects to the `.emacs_server' socket and passes its command line options to `server'. When `server' receives *************** *** 1373,1418 **** numbers can be specified just like with Emacs.) The user will have to switch to the Emacs window by hand. When the user is done editing a ! file, the user can type "C-x #" to indicate this. This will switch to ! another buffer created at the request of emacsclient if there are any. ! When "C-x #" has been invoked on all of the files that the emacsclient ! requested to be edited, Emacs will send notification of this to `server' ! which will pass this on to the emacsclient, which will then exit. ! ! NOTE: `emacsclient' and `server' must be running on machines which share ! the same filesystem for this to work. The pathnames that emacsclient ! specifies should be correct for the filesystem that the Emacs process ! sees. The Emacs process should not be suspended at the time emacsclient ! is invoked. emacsclient should either be invoked from another X window or ! from a shell window inside Emacs itself. ! ! There is an enhanced version of emacsclient/server called `gnuserv' by ! Andy Norman which is available in the Emacs Lisp ! Archive. gnuserv uses Internet domain sockets, so it can work across most ! network connections. It also supports the execution of arbitrary Emacs ! Lisp forms and also does not require the client program to wait for ! completion. It is available via anonymous FTP (Emacs Lisp Archive: ! packages/gnuserv.shar). ! ! 42: How do I make Emacs recognize my compiler's funny error messages? ! ! Write a program which runs the compiler as a child and filters its output, ! rearranging as necessary. Install with same name as compiler somewhere in ! path. ! ! Keith Moore wrote one such for a C compiler under AIX. ! Available via FTP: ! ! /cs.utk.edu:readonly/aixcc.lex ! ! Jim Frost wrote another for the IBM xlc compiler on the ! RS/6000. (I don't know if these are both for the same compiler.) ! Johnathan Vail wrote something for a High C compiler ! (`hc', which is one of the compilers on the RS/6000, although I think ! Johnathan wrote his program for hc on a different computer). ! ! 43: How do I indent switch statements like this? ! Many people want to indent their switch statements like this: ! f() { --- 1130,1179 ---- numbers can be specified just like with Emacs.) The user will have to switch to the Emacs window by hand. When the user is done editing a ! file, the user can type "C-x #" (or M-x server-edit) to indicate this. ! If there is another buffer requested by emacsclient, Emacs will switch ! to it; otherwise emacsclient will exit, signaling the calling program ! to continue. ! ! NOTE: `emacsclient' and `server' must be running on machines which ! share the same filesystem for this to work. The pathnames that ! emacsclient specifies should be correct for the filesystem that the ! Emacs process sees. The Emacs process should not be suspended at the ! time emacsclient is invoked. emacsclient should either be invoked from ! another X window or from a shell window inside Emacs itself. ! ! There is an enhanced version of emacsclient/server called `gnuserv' by ! Andy Norman which is available in the Emacs Lisp ! Archive. gnuserv uses Internet domain sockets, so it can work across ! most network connections. It also supports the execution of arbitrary ! Emacs Lisp forms and also does not require the client program to wait ! for completion. It is available via anonymous FTP (Emacs Lisp Archive: ! packages/gnuserv.shar). ! ! 40: How do I make Emacs recognize my compiler's funny error messages? ! ! The variable compilation-error-regexp-alist helps control how Emacs ! parses your compiler output. It is a list of triples of the form: ! ! (REGEXP FILE-IDX LINE-IDX) ! ! where REGEXP, FILE-IDX and LINE-IDX are strings. To help determine what ! the constituent elements should be, load compile.el and then use ! ! C-h v compilation-error-regexp-alist RET ! ! to see the current value. A good idea is to look at compile.el itself as ! the comments included for this variable are quite useful -- the regular ! expressions required for your compiler's output may be very close to one ! already provided. Once you have determined the proper regexps, use the ! following to inform Emacs of your changes: ! ! (setq compilation-error-regexp-alist ! (cons '(REGEXP FILE-IDX LINE-IDX) ! compilation-error-regexp-alist)) ! ! 41: How do I indent switch statements like this? ! Many people want to indent their switch statements like this: ! f() { *************** *** 1428,1633 **** } } ! ! I don't believe there is any way to do this exactly without modifying the ! Lisp code in c-mode.el. You can set c-indent-level to 4 and ! c-label-offset to -2, but this has bad effects elsewhere. {Anyone have a ! solution?} ! ! 44: How can I make Emacs automatically scroll horizontally? ! ! There is no completely correct way of doing this that does not involve ! rewriting all commands or writing your own top-level command loop (not a ! completely bad idea). Wayne Mesard has ! written a particularly advanced kludge called `hscroll.el' that checks ! once a second to make sure point is visible. ! ! 45: How do I make Emacs "typeover" or "overwrite" instead of inserting? ! M-x overwrite-mode (a minor mode). ! ! 46: How do I stop Emacs from beeping on a terminal? ! Martin R. Frank writes: ! ! Tell Emacs to use the 'visible bell' instead of the audible bell, and set the visible bell to nothing. ! Put this in your TERMCAP environment variable: ! ... :vb=: ... ! And evaluate this: ! (setq visible-bell t) ! ! 47: How do I turn down the bell volume in Emacs running under X Windows? ! ! Under versions of Emacs before 18.58, the bell volume was annoying loud ! and difficult to turn off. So upgrading to 18.58 or higher will reduce ! the volume. If you want to turn it off completely, use `xset'. There is ! no way to turn the bell off just for Emacs without affecting all other ! programs. ! ! Under Epoch you can do: ! ! (setq epoch::bell-volume 20) ! ! Stu Grossman wrote a patch that allows the ! bell volume to be adjusted from inside Emacs just for Emacs. ! ! 48: How do I tell Emacs to automatically indent a new line to the ! indentation of the previous line? ! One solution is Indented Text Mode (M-x indented-text-mode). ! ! If you have Auto-Fill mode on (a minor mode, see question 32), you can tell Emacs to prefix every line with a certain character sequence, the ! "fill prefix". Type the prefix at the beginning of a line, position point ! after it, and then type "C-x ." (set-fill-prefix) to set the fill prefix. ! Thereafter, auto-filling will automatically put the fill prefix at the ! beginning of new lines, and M-q (fill-paragraph) will maintain any fill ! prefix when refilling the paragraph. ! NOTE: If you have paragraphs with different levels of indentation, you will have to set the fill prefix to the correct value each time you move to a new paragraph. To avoid this hassle, try one of the many packages ! available from the Emacs Lisp Archive. Look up `fill' and `indent' in the ! Lisp Code Directory for guidance. ! ! 49: How do I show which parenthesis matches the one I'm looking at? ! ! If you're looking at a right parenthesis (or brace or bracket) you can ! delete it and reinsert it. Emacs will blink the cursor on the matching ! parenthesis. ! ! M-C-f (forward-sexp) and M-C-b (backward-sexp) will skip over balanced ! parentheses, so you can see which parentheses match. (You can train it to ! skip over balanced brackets and braces at the same time by modifying the ! syntax table.) ! ! Here is some Emacs Lisp that will make the % key show the matching ! parenthesis, like in vi. In addition, if the cursor isn't over a ! parenthesis, it simply inserts a % like normal. ! ! ;; By an unknown contributor ! ! (global-set-key "%" 'match-paren) ! ! (defun match-paren (arg) ! "Go to the matching parenthesis if on parenthesis otherwise insert %." ! (interactive "p") ! (cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1)) ! ((looking-at "\\s\)") (forward-char 1) (backward-list 1)) ! (t (self-insert-command (or arg 1))))) ! ! 50: In C mode, can I show just the lines that will be left after #ifdef ! commands are handled by the compiler? ! M-x hide-ifdef-mode. (This is a minor mode.) ! ! You may have to (load "hideif") first. If you want to do this regularly, ! put this in your .emacs file: ! ! (autoload 'hide-ifdef-mode "hideif" nil t) ! ! {Yes, I know, this should be in lisp/loaddefs.el already.} ! ! 51: Is there an equivalent to the `.' (dot) command of vi? ! (`.' is the redo command in vi. It redoes the last insertion/deletion.) ! No, not really. ! ! You can type "C-x ESC" (repeat-complex-command) to reinvoke commands that ! used the minibuffer to get arguments. In repeat-complex-command you can ! type M-p and M-n to scan through all the different complex commands you've ! typed. ! ! To repeat something on each line I recommend using keyboard macros. ! ! 52: What are the valid X resource settings (ie., stuff in .Xdefaults)? ! ! See the Emacs man page, or the etc/OPTIONS file. Ignore the information ! in etc/XDOC which is way out of date. ! ! 53: How do I execute a piece of Emacs Lisp code? ! There are a number of ways to execute (called "evaluate") an Emacs Lisp "form": ! * If you want it evaluated every time you run Emacs, put it in a file named `.emacs' in your home directory. ! * You can type the form in the *scratch* buffer, and then type LFD (or C-j) after it. The result of evaluating the form will be inserted in the buffer. ! * In Emacs-Lisp mode, typing M-C-x evaluates a top-level form before or around point. ! * Typing "C-x C-e" in any buffer evaluates the Lisp form immediately before point and prints its value in the echo area. ! * Typing M-ESC or M-x eval-expression allows you to type a Lisp form in the minibuffer which will be evaluated. ! * You can use M-x load-file to have Emacs evaluate all the Lisp forms in a file. (To do this from Lisp use the function `load' instead.) ! These functions are also used for evaluating Lisp forms: ! load-library, eval-region, eval-current-buffer, require, autoload ! ! 54: How do I change Emacs's idea of the tab character's length? ! ! Example: (setq default-tab-width 10). ! ! 55: How do I insert `>' at the beginning of every line? ! Type "M-x replace-regexp RET ^ RET > RET". ! ! To do this only in the region, type "C-x n M-x replace-regexp RET ^ RET > RET C-x w". ! ! WARNING: The command narrow-to-region (C-x n) is disabled by default ! because it can be very confusing (ie., "Oh no! Where did my file go?"). ! ! 56: How do I insert `_^H' before each character in a paragraph to get an ! underlined paragraph? ! M-x underline-region. ! ! 57: How do I repeat a command as many times as possible? ! Use "C-x (" and "C-x )" to make a keyboard macro that invokes the command and then type "M-0 C-x e". ! WARNING: any messages your command prints in the echo area will be suppressed. ! ! 58: How do I make Emacs behave like this: when I go up or down, the cursor ! should stay in the same column even if the line is too short? ! M-x picture-mode. (This is a minor mode, in theory anyway ...) ! ! 59: How do I tell Emacs to iconify itself? ! ! You need to modify C source and recompile. Either that or get Epoch or ! Lucid Emacs instead. Patches have been written by Robert Forsman ! and Johan Vromans to allow Emacs to ! iconify itself and by Matt Wette and ! Manavendra K. Thakur (for 18.57, plus icon ! geometry) to allow Emacs to start up iconified. I don't know which of ! these patches work together. ! ! Anonymous FTP: ! /csi.jpl.nasa.gov:pub/emax.patch1 (Matt Wette) ! /ftp.eu.net:gnu/emacs/FP-Xfun.Z (Johan Vromans) ! /ftp.urc.tue.nl:/pub/tex/emacs/FP-Xfun (Johan Vromans) ! ! 60: How do I use regexps (regular expressions) in Emacs? ! ! See `Regexps' in the online manual. ! WARNING: The "or" operator is `\|', not `|', and the grouping operators are `\(' and `\)'. Also, the string syntax for a backslash is "\\". --- 1189,1398 ---- } } ! ! The solution at first appears to be: set c-indent-level to 4 and ! c-label-offset to -2. However, this will give you an indentation spacing ! of four instead of two. ! ! The solution is to use cc-mode (available from the Emacs Lisp Archive) ! and add the following line: ! ! (c-set-offset 'case-label '+) ! ! There appears to be no way to do this with the old c-mode. ! ! 42: How can I make Emacs automatically scroll horizontally? ! ! Use hscroll.el by Wayne Mesard . ! ! 43: How do I make Emacs "typeover" or "overwrite" instead of inserting? ! M-x overwrite-mode (a minor mode). ! ! On some workstations, the "Insert" key toggles insert and overwrite ! modes. ! ! 44: How do I stop Emacs from beeping on a terminal? ! Martin R. Frank writes: ! ! Tell Emacs to use the `visible bell' instead of the audible bell, and set the visible bell to nothing. ! Put this in your TERMCAP environment variable: ! ... :vb=: ... ! And evaluate this: ! (setq visible-bell t) ! ! 45: How do I turn down the bell volume in Emacs running under X Windows? ! ! You can adjust the bell volume and duration for all programs with the ! shell command xset. ! ! Invoking xset without any arguments produces some basic information, ! including the following: ! ! usage: xset [-display host:dpy] option ... ! To turn bell off: ! -b b off b 0 ! To set bell volume, pitch and duration: ! b [vol [pitch [dur]]] b on ! ! 46: How do I tell Emacs to automatically indent a new line to the ! indentation of the previous line? ! One solution is Indented Text Mode (M-x indented-text-mode). ! ! If you have auto-fill mode on (a minor mode, see question 30), you can tell Emacs to prefix every line with a certain character sequence, the ! "fill prefix." Type the prefix at the beginning of a line, position ! point after it, and then type "C-x ." (set-fill-prefix) to set the fill ! prefix. Thereafter, auto-filling will automatically put the fill prefix ! at the beginning of new lines, and M-q (fill-paragraph) will maintain any ! fill prefix when refilling the paragraph. ! NOTE: If you have paragraphs with different levels of indentation, you will have to set the fill prefix to the correct value each time you move to a new paragraph. To avoid this hassle, try one of the many packages ! available from the Emacs Lisp Archive. Look up `fill' and `indent' in ! the Lisp Code Directory for guidance. ! ! 47: How do I show which parenthesis matches the one I'm looking at? ! ! GNU Emacs 19 comes with paren.el, which (when loaded) will automatically ! highlight matching parentheses whenever point (i.e., the cursor) is ! located over one. To load paren automatically, include the line ! ! (require 'paren) ! ! in your .emacs file. ! ! Alternatives to paren include: ! ! * If you're looking at a right parenthesis (or brace or bracket) you can ! delete it and reinsert it. Emacs will blink the cursor on the matching ! parenthesis. ! ! * M-C-f (forward-sexp) and M-C-b (backward-sexp) will skip over one set ! of balanced parentheses, so you can see which parentheses match. (You ! can train it to skip over balanced brackets and braces at the same time ! by modifying the syntax table.) ! ! * Here is some Emacs Lisp that will make the % key show the matching ! parenthesis, like in vi. In addition, if the cursor isn't over a ! parenthesis, it simply inserts a % like normal. ! ! ;; By an unknown contributor ! ! (global-set-key "%" 'match-paren) ! ! (defun match-paren (arg) ! "Go to the matching parenthesis if on parenthesis otherwise insert %." ! (interactive "p") ! (cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1)) ! ((looking-at "\\s\)") (forward-char 1) (backward-list 1)) ! (t (self-insert-command (or arg 1))))) ! ! 48: In C mode, can I show just the lines that will be left after #ifdef ! commands are handled by the compiler? ! M-x hide-ifdef-mode. (This is a minor mode.) ! ! 49: Is there an equivalent to the `.' (dot) command of vi? ! (`.' is the redo command in vi. It redoes the last insertion/deletion.) ! No, not really. ! ! You can type "C-x ESC ESC" (repeat-complex-command) to reinvoke commands ! that used the minibuffer to get arguments. In repeat-complex-command you ! can type M-p and M-n to scan through all the different complex commands ! you've typed. ! ! To repeat something on each line, use keyboard macros. (See `Keyboard ! Macros' in the on-line manual.) ! ! 50: What are the valid X resource settings (i.e., stuff in .Xdefaults)? ! ! See Emacs man page, or "Resources X" in the on-line manual. ! ! You can also use a resource editor, such as editres (for X11R5 and ! onwards), to look at the resource names for the menu bar, assuming Emacs ! was compiled with the X toolkit. ! ! 51: How do I execute a piece of Emacs Lisp code? ! There are a number of ways to execute (called "evaluate") an Emacs Lisp "form": ! * If you want it evaluated every time you run Emacs, put it in a file named `.emacs' in your home directory. ! * You can type the form in the *scratch* buffer, and then type LFD (or C-j) after it. The result of evaluating the form will be inserted in the buffer. ! * In Emacs-Lisp mode, typing M-C-x evaluates a top-level form before or around point. ! * Typing "C-x C-e" in any buffer evaluates the Lisp form immediately before point and prints its value in the echo area. ! * Typing M-ESC or M-x eval-expression allows you to type a Lisp form in the minibuffer which will be evaluated. ! * You can use M-x load-file to have Emacs evaluate all the Lisp forms in a file. (To do this from Lisp use the function `load' instead.) ! These functions are also used for evaluating Lisp forms: ! load-library, eval-region, eval-current-buffer, require, autoload ! ! 52: How do I change Emacs's idea of the tab character's length? ! ! Set the variable default-tab-width. For example, to set tab stops every ! 10 characters, insert the following in your .emacs file: ! ! (setq default-tab-width 10) ! ! 53: How do I insert `>' at the beginning of every line? ! Type "M-x replace-regexp RET ^ RET > RET". ! ! To do this only in the region, type "C-x n n M-x replace-regexp RET ^ RET > RET C-x w". ! ! WARNING: The command narrow-to-region (C-x n n) is disabled by default ! because it can be very confusing (i.e., "Oh no! Where did my file go?"). ! ! 54: How do I insert `_^H' before each character in a paragraph to get an ! underlined paragraph? ! M-x underline-region. ! ! 55: How do I repeat a command as many times as possible? ! Use "C-x (" and "C-x )" to make a keyboard macro that invokes the command and then type "M-0 C-x e". ! WARNING: any messages your command prints in the echo area will be suppressed. ! ! 56: How do I make Emacs behave like this: when I go up or down, the cursor ! should stay in the same column even if the line is too short? ! M-x picture-mode. (This is a minor mode, in theory anyway ...) ! ! 57: How do I tell Emacs to iconify itself? ! ! "C-z" iconifies Emacs when running in X and suspends Emacs otherwise. ! See `Misc X' in the on-line manual. ! ! 58: How do I use regexps (regular expressions) in Emacs? ! ! See `Regexps' in the on-line manual. ! WARNING: The "or" operator is `\|', not `|', and the grouping operators are `\(' and `\)'. Also, the string syntax for a backslash is "\\". *************** *** 1634,1910 **** Thus, the string syntax for a regular expression like xxx\(foo\|bar\) is "xxx\\(foo\\|bar\\)". Notice the duplicated backslashes! ! WARNING: Unlike in Unix grep, sed, etc., a complement character set ([^...]) can match a newline character (LFD aka C-j aka \n), unless newline is mentioned as one of the characters not to match. ! ! WARNING: The character syntax regexps (eg. `\sw') are not meaningful ! inside character set regexps (eg. `[aeiou]'). (This is actually typical ! for regexp syntax.) ! ! 61: How do I perform a replace operation across more than one file? ! The "tags" feature of Emacs includes the command tags-query-replace which performs a query-replace across all the files mentioned in the TAGS file. ! See `Tags:Tags Search' in the online manual. ! ! In addition, Martin Boyer has written a package named global-replace which ! will perform a query-replace across all the files mentioned in the ! *compilation* buffer (usually done after a `grep'), which is available via ! anonymous FTP: ! ! /ireq-robot.hydro.qc.ca:pub/emacs/lisp/compile.el.Z ! /ireq-robot.hydro.qc.ca:pub/emacs/lisp/global-replace.el.Z ! /ireq-robot.hydro.qc.ca:pub/emacs/lisp/query.el.Z ! ! 62: Where is the documentation for `etags'? ! ! `etags' takes options just like a prior version of ctags, so your ctags ! manual (if any) may be useful. Eoin Woods, in comp.emacs, writes the ! ! following: ! ! ! ! From reading the source (!) the way I use it is: ! ! ! ! for f in `find ` ! ! do ! ! etags -at -f ETAGS $f ! ! done ! ! ! ! The "-t" option means to create tags for typedefs as well as functions. ! ! The "-a" option tells it to append to the output file. If you have a ! ! small number of files (up to a few hundred I think) you can use it ! ! direct as: ! ! ! ! etags -f ETAGS file1 file2 file3 ... filen ! ! ! ! The option list is: ! ! ! ! -f file - Specify the output file name (Default is "TAGS") ! ! -a - Append to the output file. (Default is to rewrite it) ! ! -t - Create tags for typedefs (default is just functions) ! ! -u - Update the output file. Do not re-create it. ! ! -w - Suppress warnings ! ! -v - Create vgrind style indexed output (What is vgrind??) ! ! -x - Create cxref style output (default is Emacs Tags) ! ! -e - Emacs tags style output (the default the way I ! ! compile it) ! ! ! ! Having got it working, it works fine! ! ! Bugs/Problems ! 63: Does Emacs have problems with files larger than 8 megabytes? ! Most installed versions of GNU Emacs will use 24-bit signed integers (and 24-bit pointers) internally. This limits the file size that Emacs can handle to 8,388,607 bytes (2^23 - 1). ! Leonard N. Zubkoff suggests putting the following two lines in src/config.h before compiling Emacs to allow for 26-bit integers and pointers (and thus filesizes of up to 33,554,431 bytes): ! #define VALBITS 26 #define GCTYPEBITS 5 ! WARNING: This method may result in `ILLEGAL DATATYPE' and other random errors on some machines. ! David Gillespie gives an explanation of why Emacs uses 24 bit integers and pointers: ! Emacs is largely written in a dialect of Lisp; Lisp is a freely-typed language in the sense that you can put any value of any type into any variable, or return it from a function, and so on. So each value must ! carry a "tag" along with it identifying what kind of thing it is, eg., integer, pointer to a list, pointer to an editing buffer, and so on. Emacs uses standard 32-bit integers for data objects, taking the top 8 ! bits for the tag and the bottom 24 bits for the value. So integers (and ! pointers) are somewhat restricted compared to true C integers and pointers. ! Emacs uses 8-bit tags because that's a little faster on byte-oriented machines, but there are only really enough tags to require 6 bits. - - 64: Why can't Emacs find files in current directory on startup? - - The PWD bug has been fixed as of GNU Emacs 18.59. Read on if you are - running an older version of Emacs. ! Most likely, you have an environment variable named PWD that is set to a ! value other than the name of your current directory. This is most ! likely caused by using two different shell programs. `ksh' and (some ! versions of) `csh' set and maintain the value of the PWD environment ! variable, but `sh' doesn't. If you start sh from ksh, change your ! current directory inside sh, and then start Emacs from inside sh, PWD ! will have the wrong value but Emacs will use this value. An invalid ! setting for PWD can also be a problem if you use X Windows and csh on an ! RS/6000. See the etc/OPTIONS file for more details. ! ! Perhaps an easier solution is not to use two shells. The `chsh' program ! can often be used to change one's default login shell. ! ! You may have PWD set for other reasons. Another possibility is that you ! are setting default-directory from your .emacs file. ! ! Here is a fix by Jim Blandy : ! ! >--- emacs/jjj/emacs-18.58/lisp/startup.el Tue Jan 15 23:19:04 1991 ! >+++ startup.el Mon Apr 20 00:21:01 1992 ! >@@ -81,5 +81,7 @@ ! > ;; In presence of symlinks, switch to cleaner form of default directory. ! > (if (and (not (eq system-type 'vax-vms)) ! >- (getenv "PWD")) ! >+ (getenv "PWD") ! >+ (equal (nthcdr 10 (file-attributes default-directory)) ! >+ (nthcdr 10 (file-attributes (getenv "PWD"))))) ! > (setq default-directory (file-name-as-directory (getenv "PWD")))) ! > (unwind-protect ! ! 65: How do I get rid of the ^M junk in my Shell buffer? ! For tcsh, put this in your `.cshrc' (or `.tcshrc') file: ! if ($?EMACS) then if ("$EMACS" == t) then ! if ($?tcsh) unset edit ! stty nl ! endif endif ! Or put this in your .emacs_tcsh file: ! unset edit stty nl ! ! Alternatively, use csh in your Shell buffers instead of tcsh. One way is: ! (setq explicit-shell-file-name "/bin/csh") ! and another is to do this in your .cshrc (or .tcshrc) file: ! setenv ESHELL /bin/csh ! (You must start Emacs over again with the environment variable properly set for this to take effect.) ! ! 66: Why do I get `Process shell exited abnormally with code 1'? ! The most likely reason for this message is that the `env' program is not ! properly installed. This program should be compiled (for the correct ! architecture!) and installed with execute permission for everyone in ! Emacs's program directory, which is normally /usr/local/emacs/etc. You ! can find what this directory is at your site by inspecting the value of ! the variable exec-directory by typing "C-h v exec-directory RET". `env' ! should also be for the correct architecture (check using `file' command). ! ! You should also check for other programs named `env' in your path (eg., ! SunOS has a program named /usr/bin/env). I don't understand why this can ! cause a failure and I don't know a general solution for working around the ! problem in this case. ! ! The `make clean' command will remove `env' and other vital programs, so be ! careful when using it. ! It has been reported that this sometimes happened when Emacs was started ! as an X client from an xterm window (ie. had a controlling tty) but the xterm was later terminated. ! ! See also etc/PROBLEMS for other possible causes of this message. ! ! 67: Why can't I cut from Emacs and paste in other X programs? ! ! Emacs stores things you "cut" in the X "cut buffers". It also pastes from ! the cut buffer `CUT_BUFFER0'. This is obsolete. Most modern X programs ! now expect to work with "selections" instead of cut buffers, although some ! like `xterm' will try to use the cut buffers if the selection is null. ! ! Emacs 18.58 contains a "fix" that makes xterm work by default. This ! "fix" is that Emacs clears the `PRIMARY' selection when it stores ! something in the cut buffer. By making the selection null, xterm will ! then fetch from the cut buffer when you try to paste. ! ! For versions of Emacs prior to 18.58, you can make pasting from Emacs into ! xterm work with the following X resources: ! ! ! Solution by Thomas Narten, should work under X11R3 and later GNU ! ! Emacs only copies to CUT_BUFFER0. xterm by default wants to paste ! ! from the PRIMARY selection. ! XTerm*VT100.Translations: #override \ ! ~Meta : insert-selection(CUT_BUFFER0,PRIMARY) ! ! You may have problems copying between Emacs and programs other than xterm ! that won't store cut text in the cut buffers or look in the cut buffers ! for text to paste (for backwards compatibility with obsolete applications ! like Emacs :-). The best workaround is to use the `xcutsel' program as an ! intermediary. ! ! This problem does not exist for Epoch or Lucid Emacs. ! ! 68: Where is the termcap/terminfo entry for terminal type `emacs'? ! The termcap entry for terminal type `emacs' is ordinarily put in the TERMCAP environment variable of subshells. It may help in certain ! situations (eg., using rlogin from shell buffer) to add an entry for `emacs' to the system-wide termcap file. Here is a correct termcap entry for `emacs': ! emacs:tc=unknown: ! To make a terminfo entry for `emacs', use `tic' or `captoinfo'. You need to generate /usr/lib/terminfo/e/emacs. It may work to simply copy /usr/lib/terminfo/d/dumb to /usr/lib/terminfo/e/emacs. ! Having a termcap/terminfo entry will not enable the use of full screen programs in shell buffers. Use M-x terminal-emulator for that instead. ! A workaround to the problem of missing termcap/terminfo entries is to change terminal type `emacs' to type `dumb' or `unknown' in your shell start up file. `csh' users could put this in their .cshrc files: ! if ("$term" == emacs) set term=dumb ! ! 69: Why does Emacs spontaneously start displaying `I-search:' and beeping? ! Your terminal (or something between your terminal and the computer) is sending C-s and C-q for flow control, and Emacs is receiving these ! characters and interpreting them as commands. (The C-s character normally ! invokes the isearch-forward command.) For possible solutions, see ! question 131. ! ! 70: Why can't Emacs talk to certain hosts (or certain hostnames)? ! The problem may be that Emacs is linked with a wimpier version of ! gethostbyname than the rest of the programs on the machine. This is often ! manifested as a message on startup of `X server not responding. Check ! your DISPLAY environment variable.' or a message of `Unknown host' from ! open-network-stream. ! On a Sun, this may be because Emacs had to be linked with the static C library. The version of gethostbyname in the static C library may only ! look in /etc/hosts and the NIS (YP) maps, while the version in the dynamic ! C library may be smart enough to check DNS in addition to or instead of ! NIS. On a Motorola Delta running System V R3.6, the version of ! gethosbyname in the standard library works, but the one that works with ! NIS doesn't (the one you get with -linet). Other operating systems have ! similar problems. ! Try these options: ! * Explicitly add the host you want to communicate with to /etc/hosts. ! * Relink Emacs with this line in src/config.h: ! #define LIBS_SYSTEM -lresolv ! * Replace gethostbyname and friends in libc.a with more useful versions such as the ones in libresolv.a. Then relink Emacs. ! * If you are actually running NIS, make sure that `ypbind' is properly told to do DNS lookups with the correct command line switch. ! ! * Use tcp.el and tcp.c from GNUS. This has the additional advantage that you can use numeric IP addresses instead of names. open-network-stream currently can't handle numeric addresses. Brian Thomson --- 1399,1591 ---- Thus, the string syntax for a regular expression like xxx\(foo\|bar\) is "xxx\\(foo\\|bar\\)". Notice the duplicated backslashes! ! WARNING: Unlike in Unix grep, sed, etc., a complement character set ([^...]) can match a newline character (LFD aka C-j aka \n), unless newline is mentioned as one of the characters not to match. ! ! WARNING: The character syntax regexps (e.g., `\sw') are not meaningful ! inside character set regexps (e.g., `[aeiou]'). (This is actually ! typical for regexp syntax.) ! ! 59: How do I perform a replace operation across more than one file? ! The "tags" feature of Emacs includes the command tags-query-replace which performs a query-replace across all the files mentioned in the TAGS file. ! See `Tags:Tags Search' in the on-line manual. ! ! In addition, Martin Boyer has written a package named global-replace ! which will perform a query-replace across all the files mentioned in the ! *compilation* buffer (usually done after a `grep'), which is available ! via anonymous FTP: ! ! /ireq-robot.hydro.qc.ca:pub/emacs/lisp/compile.el.z ! /ireq-robot.hydro.qc.ca:pub/emacs/lisp/global-replace.el.z ! /ireq-robot.hydro.qc.ca:pub/emacs/lisp/query.el.z + NOTE: These files are compressed using GNU zip ("gzip"); you can get a + copy from gzip from prep and its mirrors (see question 80). + 60: Where is the documentation for `etags'? + + The `etags' man page should be in the same place as the `emacs' man page. + + Quick command-line switch descriptions are also available. For example, + `etags -H'. + + Bugs/Problems ! 61: Does Emacs have problems with files larger than 8 megabytes? ! [This problem has been solved better in Emacs 19.29 because the buffer ! size limit is now 16 times as large.] ! Most installed versions of GNU Emacs will use 24-bit signed integers (and 24-bit pointers) internally. This limits the file size that Emacs can handle to 8,388,607 bytes (2^23 - 1). ! Leonard N. Zubkoff suggests putting the following two lines in src/config.h before compiling Emacs to allow for 26-bit integers and pointers (and thus filesizes of up to 33,554,431 bytes): ! #define VALBITS 26 #define GCTYPEBITS 5 ! WARNING: This method may result in `ILLEGAL DATATYPE' and other random errors on some machines. ! David Gillespie gives an explanation of why Emacs uses 24 bit integers and pointers: ! Emacs is largely written in a dialect of Lisp; Lisp is a freely-typed language in the sense that you can put any value of any type into any variable, or return it from a function, and so on. So each value must ! carry a "tag" along with it identifying what kind of thing it is, e.g., integer, pointer to a list, pointer to an editing buffer, and so on. Emacs uses standard 32-bit integers for data objects, taking the top 8 ! bits for the tag and the bottom 24 bits for the value. So integers ! (and pointers) are somewhat restricted compared to true C integers and pointers. ! Emacs uses 8-bit tags because that's a little faster on byte-oriented machines, but there are only really enough tags to require 6 bits. ! 62: How do I get rid of the ^M junk in my shell buffer? ! ! Try typing "M-x shell-strip-ctrl-m RET" while in shell-mode to make them ! go away. If that doesn't work, you have several options: ! For tcsh, put this in your `.cshrc' (or `.tcshrc') file: ! if ($?EMACS) then if ("$EMACS" == t) then ! if ($?tcsh) unset edit ! stty nl ! endif endif ! Or put this in your .emacs_tcsh file: ! unset edit stty nl ! ! Alternatively, use csh in your shell buffers instead of tcsh. One way is: ! (setq explicit-shell-file-name "/bin/csh") ! and another is to do this in your .cshrc (or .tcshrc) file: ! setenv ESHELL /bin/csh ! (You must start Emacs over again with the environment variable properly set for this to take effect.) ! ! 63: Why do I get `Process shell exited abnormally with code 1'? ! The most likely reason for this message is that the `env' program is not ! properly installed. Compile this program for your architecture, and ! install it with a+x permission in the architecture-dependent Emacs ! program directory. (You can find what this directory is at your site by ! inspecting the value of the variable exec-directory by typing "C-h v ! exec-directory RET".) ! ! You should also check for other programs named `env' in your path (e.g., ! SunOS has a program named /usr/bin/env). We don't understand why this ! can cause a failure and don't know a general solution for working around ! the problem in this case. ! ! The `make clean' command will remove `env' and other vital programs, so ! be careful when using it. ! It has been reported that this sometimes happened when Emacs was started ! as an X client from an xterm window (i.e., had a controlling tty) but the xterm was later terminated. ! ! See also PROBLEMS (in the top-level directory when you unpack the Emacs ! source) for other possible causes of this message. ! ! 64: Where is the termcap/terminfo entry for terminal type `emacs'? ! The termcap entry for terminal type `emacs' is ordinarily put in the TERMCAP environment variable of subshells. It may help in certain ! situations (e.g., using rlogin from shell buffer) to add an entry for `emacs' to the system-wide termcap file. Here is a correct termcap entry for `emacs': ! emacs:tc=unknown: ! To make a terminfo entry for `emacs', use `tic' or `captoinfo'. You need to generate /usr/lib/terminfo/e/emacs. It may work to simply copy /usr/lib/terminfo/d/dumb to /usr/lib/terminfo/e/emacs. ! Having a termcap/terminfo entry will not enable the use of full screen programs in shell buffers. Use M-x terminal-emulator for that instead. ! A workaround to the problem of missing termcap/terminfo entries is to change terminal type `emacs' to type `dumb' or `unknown' in your shell start up file. `csh' users could put this in their .cshrc files: ! if ("$term" == emacs) set term=dumb ! ! 65: Why does Emacs spontaneously start displaying `I-search:' and beeping? ! Your terminal (or something between your terminal and the computer) is sending C-s and C-q for flow control, and Emacs is receiving these ! characters and interpreting them as commands. (The C-s character ! normally invokes the isearch-forward command.) For possible solutions, ! see question 110. ! ! 66: Why can't Emacs talk to certain hosts (or certain hostnames)? ! The problem may be that Emacs is linked with a wimpier version of ! gethostbyname than the rest of the programs on the machine. This is ! often manifested as a message on startup of `X server not responding. ! Check your DISPLAY environment variable.' or a message of `Unknown host' ! from open-network-stream. ! On a Sun, this may be because Emacs had to be linked with the static C library. The version of gethostbyname in the static C library may only ! look in /etc/hosts and the NIS (YP) maps, while the version in the ! dynamic C library may be smart enough to check DNS in addition to or ! instead of NIS. On a Motorola Delta running System V R3.6, the version ! of gethostbyname in the standard library works, but the one that works ! with NIS doesn't (the one you get with -linet). Other operating systems ! have similar problems. ! Try these options: ! * Explicitly add the host you want to communicate with to /etc/hosts. ! * Relink Emacs with this line in src/config.h: ! #define LIBS_SYSTEM -lresolv ! * Replace gethostbyname and friends in libc.a with more useful versions such as the ones in libresolv.a. Then relink Emacs. ! * If you are actually running NIS, make sure that `ypbind' is properly told to do DNS lookups with the correct command line switch. ! ! * Use tcp.el and tcp.c from Gnus. This has the additional advantage that you can use numeric IP addresses instead of names. open-network-stream currently can't handle numeric addresses. Brian Thomson *************** *** 1911,1959 **** has a enhancement to open-network-stream to allow it to handle numeric addresses. ! ! 71: Why does Emacs say `Error in init file'? ! ! An error occurred while loading either your .emacs file or the system-wide ! lisp/default.el file. For information on how to debug your .emacs file, ! see question 29. ! It may be the case that you may need to load some package first, or use a ! hook that will be evaluated after the package is loaded. A common case of ! this is explained in question 127. ! ! 72: Why does Emacs ignore my X resources (my .Xdefaults file)? ! ! * Try compiling Emacs with the XBACKWARDS macro defined. There is a bug ! in some implementations of XGetDefault, which do not correspond to the ! documentation or the header files. ! ! * Make sure you are either using the class name of `Emacs' (oops, ! apparently this is buggy in Emacs 18.58!) or the correct instance name. ! The instance name is normally the same as the name of the file Emacs is ! in (ie., the last part of argv[0]), but this can be overridden by -rn ! command line option or the WM_RES_NAME environment variable. ! ! WARNING: Reports say using the class name fails in Emacs 18.58. ! ! WARNING: The advice the man page gives to use `emacs' is often wrong. ! ! WARNING: Older versions of Emacs got the class name wrong. ! ! * Emacs currently ignores the -xrm command line argument. ! ! * Emacs does not yet handle X11R5 screen-specific resources. ! ! * Emacs has a bug where it ignores color specifications if running on a ! 1-bit display (ie. a non-color display). ! ! * I don't think Emacs will use either of the application-specific resource ! files. Thus these environment variables don't affect it: XAPPLRESDIR, ! XUSERFILESEARCHPATH, XFILESEARCHPATH. {Correct?} ! ! 73: Why does Emacs take 20 seconds to visit a file? ! The usual cause is that the master lock file, `!!!SuperLock!!!' has been left in the lock directory somehow. Delete it. ! Mark Meuer says that NeXT NFS has a bug where an exclusive create succeeds but returns an error status. This can cause the --- 1592,1643 ---- has a enhancement to open-network-stream to allow it to handle numeric addresses. ! ! 67: Why does Emacs say `Error in init file'? ! ! An error occurred while loading either your .emacs file or the ! system-wide lisp/default.el file. For information on how to debug your ! .emacs file, see question 27. ! It may be the case that you may need to load some package first, or use a ! hook that will be evaluated after the package is loaded. A common case ! of this is explained in question 106. ! ! 68: Why does Emacs ignore my X resources (my .Xdefaults file)? ! ! As of version 19, Emacs searches for X resources in the files specified ! by the XFILESEARCHPATH, XUSERFILESEARCHPATH, and XAPPLRESDIR environment ! variables, emulating the functionality provided by programs written using ! Xt. ! ! XFILESEARCHPATH and XUSERFILESEARCHPATH should be a list of file names ! separated by colons; XAPPLRESDIR should be a list of directory names ! separated by colons. ! ! Emacs searches for X resources ! ! + specified on the command line, with the `-xrm RESOURCESTRING' ! option, ! + then in the value of the XENVIRONMENT environment variable, ! - or if that is unset, in the file named ~/.Xdefaults-HOSTNAME if it ! exists ! (where HOSTNAME is the hostname of the machine Emacs is running on), ! + then in the screen-specific and server-wide resource properties ! provided by the server, ! - or if those properties are unset, in the file named ~/.Xdefaults ! if it exists, ! + then in the files listed in XUSERFILESEARCHPATH, ! - or in files named LANG/Emacs in directories listed in XAPPLRESDIR ! (where LANG is the value of the LANG environment variable), if ! the LANG environment variable is set, ! - or in files named Emacs in the directories listed in XAPPLRESDIR ! - or in ~/LANG/Emacs (if the LANG environment variable is set), ! - or in ~/Emacs, ! + then in the files listed in XFILESEARCHPATH. ! ! 69: Why does Emacs take 20 seconds to visit a file? ! The usual cause is that the master lock file, `!!!SuperLock!!!' has been left in the lock directory somehow. Delete it. ! Mark Meuer says that NeXT NFS has a bug where an exclusive create succeeds but returns an error status. This can cause the *************** *** 1960,2108 **** same problem. Since Emacs's file locking doesn't work over NFS anyway, the best solution is to recompile Emacs with CLASH_DETECTION undefined. ! ! 74: How do I edit a file with a `$' in its name? ! When entering a filename in the minibuffer, Emacs will attempt to expand a `$' followed by a word as an environment variable. To suppress this behavior, type "$$" instead. - - 75: Why does Shell mode lose track of the shell's current directory? - - Emacs has no way of knowing when the shell actually changes its directory. - This is an intrinsic limitation of Unix. So it tries to guess by - recognizing `cd' commands. If you type `cd' followed by a directory name - with a variable reference (`cd $HOME/bin') or with a shell metacharacter - (`cd ../lib*'), Emacs will fail to correctly guess the shell's new current - directory. A huge variety of fixes and enhancements to Shell mode for - this problem have been written to handle this problem. Check the Lisp - Code Directory (see question 88). - - 76: Why doesn't my change to load-path work? - - If you added a directory name containing a tilde (~) to your load-path, - expecting the tilde to be interpreted as your home directory, then you - need to do something like this: - - (setq load-path (mapcar 'expand-file-name load-path)) - - 77: Why does the cursor always go to the wrong column when I move up or - down one line? - - You have inadvertently typed "C-x C-n" (set-goal-column) which sets the - "goal column" to the column where the cursor was. To undo this type - "C-u C-x C-n". - - If you make this mistake frequently, you might want to unbind or disable - this command by doing one of these two: - - (define-key ctl-x-map "\C-n" nil) - (put 'set-goal-column 'disabled t) - - 78: Why does Emacs hang with message `Unknown XMenu error' with X11R4? - - Many different X errors can produce this message. Here is the solution - to one problem: - - X11 Release 4 (and later, including OpenWindows) enforces some conditions - in the X protocol that were previously allowed to pass unnoticed. You - need to put the X11R4 server into X11R3 bug compatibility mode for Emacs's - Xmenu code to work. You can do this with the command `xset bc'. - - 79: Why doesn't display-time show the load average in the mode line - anymore? - - In GNU Emacs 18.56, a change was made in the display-time code. - Formerly, in version 18.55, Emacs used a program named `loadst' to - notify Emacs of the change in time every minute. loadst also sent Emacs - the system load average if it was installed with sufficient privilege to - get that information (or was on a system where no such privilege was - needed). Emacs then displayed this information in the mode line. - - In version 18.56, this code was changed to use a program named `wakeup'. - wakeup doesn't send Emacs any information, it's only purpose is to send - Emacs *something* every minute, thus invoking the filter function in - Emacs once a minute. The filter function in Emacs does all the work of - finding the time, date, and load average. However, getting the load - average requires the privilege to read kernel memory on most systems. - Since giving Emacs this privilege would destroy any security a system - might have, for almost everyone this is not an option. In addition, - Emacs does not have the code built into it to get this information on - the systems which have special system calls for this purpose, even - though loadst had code for this. - - The solution I use is to get the files lisp/display-time.el and - etc/loadst.c from version 18.55 and use those with 18.58. (I have heard - a rumor that loadst disappeared because of the legal action Unipress - threatened against IBM.) - - WARNING: Do not install Emacs setgid kmem unless you wish to destroy - any security your system might have!!!!!!!!!! - - If you are using Emacs 18.55 or earlier, or already using the solution I - describe above, read further: - - The most likely cause of the problem is that `loadst' can't read the - special file /dev/kmem. To properly install loadst, it should be either - setuid to the owner of /dev/kmem, or is should be setgid to the group to - which /dev/kmem belongs. In either case, /dev/kmem should be readable by - its owner or its group, respectively. Assuming the existence of a group - named `kmem', here is an example of how to do this: - - chgrp kmem /dev/kmem - chmod g+r /dev/kmem - chgrp kmem /usr/local/emacs/etc/loadst - chmod g+s /usr/local/emacs/etc/loadst - - Another possibility is that your version of Unix doesn't have the load - average data available in /dev/kmem. Your version of Unix might have a - special system call to retrieve this information (eg., inq_stats under - UMAX), and loadst might not have been enhanced to cope with this. - - 80: Why does ispell sometimes ignore the local dictionary? - - You need to update the version of Ispell to 2.0.02. (Or you can switch to - version 3.0 which is still in beta-testing.) A patch is available via - anonymous FTP: ! /archive.cis.ohio-state.edu:pub/gnu/ispell/patch2.Z ! ! You also need to change a line in ispell.el from: ! ! (defconst ispell-version "2.0.01") ; Check against output of "ispell -v". ! ! to: ! ! (defconst ispell-version "2.0.02") ; Check against output of "ispell -v". ! ! 81: Why does Ispell treat each line as a single word? ! ! Ispell expects to get its input one word per line. The ispell filter, ! which is specified by the variables ispell-filter-hook and ! ispell-filter-hook-args, should output at most one word per line. ! ! 82: Are there any security risks in GNU Emacs? ! * the `movemail' incident (No, this is not a risk.) ! ! Cliff Stoll in his book `The Cuckoo's Egg' describes this in chapter 4. ! The site at LBL had installed the `etc/movemail' program setuid root. ! Since `movemail' had not been designed for this situation, a security ! hole was created and users could get root privileges. ! ! `movemail' has since been changed so that even if it is installed setuid ! root this security hole will not be a result. ! ! I have heard unverified reports that the Internet worm took advantage of ! this configuration problem. ! * the file-local-variable feature (Yes, a risk, but easy to change.) ! There is an Emacs feature that allows the setting of local values for ! variables when editing a file by including specially formatted text near ! the end of the file. This feature also includes the ability to have ! arbitrary Emacs Lisp code evaluated when the file is visited. Obviously, there is a potential for Trojan horses to exploit this feature. ! If you set the variable inhibit-local-variables to a non-nil value, Emacs will display the special local variable settings of a file that --- 1644,1694 ---- same problem. Since Emacs's file locking doesn't work over NFS anyway, the best solution is to recompile Emacs with CLASH_DETECTION undefined. ! ! 70: How do I edit a file with a `$' in its name? ! When entering a filename in the minibuffer, Emacs will attempt to expand a `$' followed by a word as an environment variable. To suppress this behavior, type "$$" instead. ! 71: Why does shell mode lose track of the shell's current directory? ! ! Emacs has no way of knowing when the shell actually changes its ! directory. This is an intrinsic limitation of Unix. So it tries to ! guess by recognizing `cd' commands. If you type `cd' followed by a ! directory name with a variable reference (`cd $HOME/bin') or with a shell ! metacharacter (`cd ../lib*'), Emacs will fail to correctly guess the ! shell's new current directory. A huge variety of fixes and enhancements ! to shell mode for this problem have been written to handle this problem. ! Check the Lisp Code Directory (see question 77). ! ! You can tell Emacs the shell's current directory with the command "M-x ! dirs". ! ! 72: Are there any security risks in GNU Emacs? ! * the `movemail' incident (No, this is not a risk.) ! ! In his book "The Cuckoo's Egg," Cliff Stoll describes this in chapter ! 4. The site at LBL had installed the `etc/movemail' program setuid ! root. (As of version 19, movemail is in your architecture-specific ! directory; type "C-h v directory RET" to see what it is.) Since ! `movemail' had not been designed for this situation, a security hole ! was created and users could get root privileges. ! ! `movemail' has since been changed so that even if it is installed ! setuid root this security hole will not be a result. ! ! We have heard unverified reports that the Internet worm took advantage ! of this configuration problem. ! * the file-local-variable feature (Yes, a risk, but easy to change.) ! There is an Emacs feature that allows the setting of local values for ! variables when editing a file by including specially formatted text ! near the end of the file. This feature also includes the ability to ! have arbitrary Emacs Lisp code evaluated when the file is visited. Obviously, there is a potential for Trojan horses to exploit this feature. ! If you set the variable inhibit-local-variables to a non-nil value, Emacs will display the special local variable settings of a file that *************** *** 2109,2133 **** you visit and ask you if you really want them. This variable is not mentioned in the manual. ! It is wise to do this in lisp/site-init.el before building Emacs: ! (setq inhibit-local-variables t) ! If Emacs has already been built, the expression can be put in ! lisp/default.el instead, or an individual can put it in their own .emacs ! file. ! ! The ability to exploit this feature by sending e-mail to an RMAIL user was fixed sometime after Emacs 18.52. However, any new package that uses find-file or find-file-noselect has to be careful about this. ! ! For more information, see `File Variables' in the online manual (which, ! incidentally, does not describe how to disable the feature). ! ! There is a new variable in Emacs 18.58 named ignore-local-eval which ! turns out to be useless as currently implemented. Ignore it. ! * synthetic X events (Yes, a risk, use MIT-MAGIC-COOKIE-1 or better.) ! Emacs accepts synthetic X events generated by the SendEvent request as though they were regular events. As a result, if you are using the --- 1695,1716 ---- you visit and ask you if you really want them. This variable is not mentioned in the manual. ! It is wise to do this in lisp/site-init.el before building Emacs: ! (setq inhibit-local-variables t) ! If Emacs has already been built, the expression can be put in ! lisp/default.el instead, or an individual can put it in their own ! .emacs file. ! ! The ability to exploit this feature by sending e-mail to an Rmail user was fixed sometime after Emacs 18.52. However, any new package that uses find-file or find-file-noselect has to be careful about this. ! ! For more information, see `File Variables' in the on-line manual ! (which, incidentally, does not describe how to disable the feature). ! * synthetic X events (Yes, a risk, use MIT-MAGIC-COOKIE-1 or better.) ! Emacs accepts synthetic X events generated by the SendEvent request as though they were regular events. As a result, if you are using the *************** *** 2135,2139 **** connections to your X workstation can make your Emacs process do anything, including run other processes with your privileges. ! The only fix for this is to prevent other users from being able to open X connections. The standard way to prevent this is to use a real --- 1718,1722 ---- connections to your X workstation can make your Emacs process do anything, including run other processes with your privileges. ! The only fix for this is to prevent other users from being able to open X connections. The standard way to prevent this is to use a real *************** *** 2142,2165 **** MIT-MAGIC-COOKIE-1. Your site may be using a superior authentication method; ask your system administrator. ! If real authentication is not a possibility, you may be satisfied by just allowing hosts access for brief intervals while you start your X programs, then removing the access. This reduces the risk somewhat by ! narrowing the time window when hostile users would have access, but DOES ! NOT ELIMINATE THE RISK. ! ! Lucid GNU Emacs does not accept synthetic X events unless you set a ! variable. ! ! * autosave file permissions (Yes, a risk, hard to work around.) ! ! The file permissions for autosave files are determined solely by the ! Emacs process's `umask' value. The permissions of the file being ! autosaved are not used. The easiest workaround is to keep sensitive ! files in protected directories. Sebastian Kremer has written an ! enhanced version of the autosave file name picking code that can avoid ! this problem by keeping autosave files in a protected directory. {FTP ! information please?} This problem will be fixed in Emacs 19. ! --- 1725,1734 ---- MIT-MAGIC-COOKIE-1. Your site may be using a superior authentication method; ask your system administrator. ! If real authentication is not a possibility, you may be satisfied by just allowing hosts access for brief intervals while you start your X programs, then removing the access. This reduces the risk somewhat by ! narrowing the time window when hostile users would have access, but ! DOES NOT ELIMINATE THE RISK. *************** *** 2166,2601 **** Difficulties Building/Installing/Porting Emacs ! 83: What should I do if I have trouble building Emacs? ! ! First look in the file etc/PROBLEMS to see if there is already a solution ! for your problem. Next check the FAQ (you're reading it). If you don't ! find a solution, then report your problem via e-mail to ! bug-gnu-emacs@prep.ai.mit.edu. Please do not post it to gnu.emacs.help or ! e-mail it to help-gnu-emacs@prep.ai.mit.edu. For further guidelines, see ! question 8. ! ! 84: How do I stop Emacs from failing when the executable is stripped? ! Don't do that. ! This problem has been reported on SGI Indigo machines running Irix 4.0.* and RS/6000 machines. Scott Henry posted a patch that fixes the problem for Irix. ! ! 85: Why does linking Emacs with -lX11 fail? ! Emacs needs to be linked with the static version of the X11 library, libX11.a. This may be missing. ! Under OpenWindows, you may need to use `add_services' to add the `OpenWindows Programmers' optional software category from the CD-ROM. ! ! Under HP-UX 8.0, you may need to run `update' again to load the ! X11-PRG `fileset'. This may be missing even if you specified `all ! filesets' the first time. If libcurses.a is missing, you may need to load ! the `Berkeley Development Option' {???}. ! If you are building the MIT X11 sources, you may need to modify your `site.cf' file to get static versions of the libraries. (Info from David Zuhn .) ! Other systems may have similar problems. You can always define CANNOT_DUMP and link with the shared libraries instead. ! To get the Xmenu stuff to work, you need to find a copy of MIT's liboldX.a. - - 86: Why does Emacs 18.55 say `Fatal error (6).Abort' under SunOS 4.1? - - I had hoped this question would go away after Emacs 18.57 was released, - but people continue to compile 18.55. Easiest solution: upgrade. - - This is a result of the SunOS localtime/tzsetwall malloc bug, which was - (finally!) fixed in SunOS 4.1.2. If you actually need the full - explanation, send me e-mail. If you absolutely must compile Emacs 18.55 - (eg., you are compiling Nemacs), the easiest workaround was to put - `#define SYSTEM_MALLOC' in src/config.h. - ! GNU Emacs FAQ: Getting Emacs/Packages ! If you are viewing this text in a GNU Emacs Buffer, you can type "M-2 C-x $" to ! get an overview of just the questions. Then, when you want to look at the text ! of the answers, just type "C-x $". ! ! To search for a question numbered XXX, type "M-C-s ^XXX:", followed by a C-r if ! that doesn't work, then type ESC to end the search. ! ! A `+' in the 78th column means something was inserted on the line. A `-' means ! something was deleted and a `!' means some combination of insertions and ! deletions occurred. ! ! Full instructions for getting the latest FAQ are in question 22. Also see the ! `Introduction to news.answers' posting in the `news.answers' newsgroup, or send ! e-mail to `mail-server@rtfm.mit.edu' with `help' on a body line, or use FTP, ! WAIS, or Prospero to rtfm.mit.edu. ! Finding/Getting Emacs and Related Packages ! 87: Where can I get GNU Emacs on the net (or by snail mail)? ! ! Look in the files etc/DISTRIB and etc/FTP for information on nearby ! archive sites. If you don't already have GNU Emacs, see question 20 ! for how to get these two files. ! ! The latest version is always available via anonymous FTP at MIT: ! ! /prep.ai.mit.edu:pub/gnu/emacs-18.59.tar.Z ! ! See question 91. ! ! 88: How do I find a GNU Emacs Lisp package that does XXX? ! ! A listing of Emacs Lisp packages, called the Lisp Code Directory, is being ! maintained by Dave Brennan and Dave Sill . ! You can search through this list to find if someone has written something ! that fits your needs. ! ! This list is file LCD-datafile.Z in the Emacs Lisp Archive. (See ! question 89 for methods for getting this file.) The files lispdir.el.Z ! and lispdir.doc.Z in the archive contain information to help you use the ! list. Once you have installed lispdir.el and LCD-datafile, then you can ! use the "M-x lisp-dir-apropos" command to look things up in the database. ! For example, the command "M-x lisp-dir-apropos RET ange-ftp RET" produces ! this (outdated) output: ! ! GNU Emacs Lisp Code Apropos -- "ange-ftp" ! ! ange-ftp (3.112) 91-08-12 ! Andy Norman, ! archive.cis.ohio-state.edu: ! /pub/gnu/emacs/elisp-archive/as-is/ange-ftp.el.Z ! transparent FTP Support for GNU Emacs ! ! 89: Where can I get GNU Emacs Lisp packages that don't come with Emacs? ! First, check the Lisp Code Directory to find the name of the package you ! are looking for. (See question 88). Then check local archives and ! the Emacs Lisp Archive to find a copy of the relevant files. Then, if ! you still haven't found it, you can send e-mail to the author asking for ! a copy. ! ! You can access the Emacs Lisp Archive via anonymous FTP: ! ! /archive.cis.ohio-state.edu:/pub/gnu/emacs/elisp-archive/ ! ! Fetch the file README first. ! ! NOTE: The archive maintainers do not have time to answer individual ! requests for packages or the list of packages in the archive. If you ! cannot use FTP or UUCP to access the archive yourself, try to find a ! friend who can, but please don't ask the maintainers. ! ! NOTE: Any files with names ending in `.Z' are compressed, and you should ! use `binary' mode in FTP to retrieve them. You should also use binary ! mode whenever you retrieve any files with names ending in `.elc'. ! ! 90: How do I submit code to the Emacs Lisp Archive? ! ! Submissions should be mailed to elisp-archive@cis.ohio-state.edu. The ! lispdir.el package has a function named submit-lcd-entry which will help ! you with this. Mail messages (submissions) are automatically saved and ! periodically archived. Urgent mail may be sent directly to Dave Sill ! or Dave Brennan or should contain the ! string `urgent' in the subject. The incoming ftp directory is no longer ! available at the request of Ohio State. {Is this still true?} ! ! However, if someone has a submission with multiple files (which would be ! archived as a tar file) or binary files, then FTP transfer is preferred ! and can be arranged via an anonymous FTP site. This is faster than ! uudecoding, unsharing, etc., and re-packaging files. ! ! Before submitting anything, please read the file guidelines.Z, which is ! available in the archive. Whenever possible, submissions should contain a ! complete LCD entry since this helps reduce administrative overhead for the ! maintainers. You can include an entry in this format: ! ! ;; LCD Archive Entry: ! ;; package name|author's name|email address ! ;; |description ! ;; |date|version|archive path ! ! For example: ! ! ;; LCD Archive Entry: ! ;; tex-complete|Sebastian Kremer|sk@thp.Uni-Koeln.DE ! ;; |Minibuffer name completion for editing [La]TeX. ! ;; |91-03-26|$Revision: 1.5 $|~/packages/tex-complete.el.Z ! ! ! Dave Brennan has software which automatically looks for data in this ! format. The format is fairly flexible. The entry ends when a line is ! reached with a different prefix or the seventh field terminator is ! seen. ! ! If you are submitting a multi-file submission you should include a file ! named "LCD-entry" which contains the archive entry, instead of placing ! it in one or more of the individual files. ! ! 91: Where can I get other up-to-date GNU stuff? ! ! The most up-to-date official GNU stuff is normally kept on prep.ai.mit.edu ! and is available for anonymous FTP in the pub/gnu directory. See the ! files etc/DISTRIB and etc/FTP for more information. (To get copies of ! these files, see question 20.) ! The following sites are all mirror images of the GNU distribution area: ! ! /prep.ai.mit.edu:pub/gnu/ /ftp.uu.net:packages/gnu/ - /src.doc.ic.ac.uk:gnu/ (available via FTP, NIFTP, FTAM) /ftp.win.tue.nl:pub/gnu/ ! /utsun.s.u-tokyo.ac.jp:ftpsync/prep/ /nic.funet.fi:pub/gnu/ ! The directory at ftp.uu.net is a mirror of prep.ai.mit.edu:pub/gnu, ! except that files larger than 1 megabyte {right?} are automatically ! split into multiple parts. If you have trouble transferring large ! files, you should try here. A file normally named `XXX' is split into ! files XXX-split/part[0-9][0-9], and there will be a file named ! XXX-split/README which contains the list of parts (especially helpful ! when FTP-ing by e-mail), their checksums, and reassembly instructions. ! Some of the other mirror sites may have the same property. {Can someone ! check this out? Thanks!} ! ! Information was provided by Lee McLoughlin , Jonathan ! R. Ferro , Arjan de Vet , and ! Simon Marshall . ! ! 92: Where can I get an Emacs with better mouse and X window support? ! ! Emacs 18 has some limited X Window System support, but there are ! problems. Emacs 19 will have amazing mouse and window support. Right ! now, there are Epoch which is derived from GNU Emacs 18.58 and Lucid GNU ! Emacs which is derived from an early unreleased version of GNU Emacs 19, ! both of which have greatly improved mouse and window support. See ! questions 120 and 121. ! ! The HP unofficial GNU Emacs also has nice mouse support. See question ! 95. ! ! There are numerous Emacs Lisp packages that have been written to extend ! Emacs 18's mouse handling capabilities. Some of these packages also have ! patches to the C code to provide enhanced capabilities. Look up `mouse' ! in the Lisp Code Directory (see question 88). ! ! There is a package called BAM (Born Again Menus) which provides menus for ! GNU Emacs via an external C program. It does not provide mouse support in ! the Emacs window such as scrollbars, cut-and-paste, etc. ! ! NOTE: Epoch only works with the X Window System; it works on ordinary ! terminals by invoking regular GNU Emacs. Lucid Emacs does not currently ! work on ordinary terminals, although there are plans to fix this. ! ! 93: What is the difference between GNU Emacs and Epoch? ! ! Marc Andreessen writes: ! ! Epoch is GNU Emacs on steroids: an adaptation of GNU Emacs with lots of ! additional support for features made possible by the X11 windowing ! system. These features include multiple editing windows, arbitrary ! colors and fonts (fixed-width and proportional), selectable zones per ! buffer with arbitrary display styles (font, color, underline, stipple, ! pixmap), an optional separate minibuffer window, improved keyboard and ! mouse handling, full 8-bit character set support, and more. ! ! 94: What is the difference between GNU Emacs and Lucid GNU Emacs? ! ! This information is condensed from the release notice: ! ! Lucid GNU Emacs is based on an early version of GNU Emacs version 19 ! with many enhancements. It currently requires X Windows to run. For ! information on where to get Lucid GNU Emacs see 121. X Windows support ! is greatly enhanced over GNU Emacs version 18, including support for ! multiple X Windows (a.k.a. screens in Emacs), Zmacs/Lispm style region ! highlighting, a customizable, Motif-like menubar, more powerful keymap ! support (allowing different actions to be associated with Backspace, ! Control-h, etc.), flexible text attribute (e.g. font, color) support on ! regional and screen-local basis through X resources and/or lisp, and ! support for the X11 selection mechanism. Some other features include ! run-time computation of the load-path, support for floating point ! numbers, native timer support, and sound file support on Sun ! SPARCstations. To build Lucid GNU Emacs, an ANSI C compiler (e.g. gcc) ! is required. ! ! 95: Where can I get the "unofficial HP GNU Emacs"? ! ! The unofficial HP GNU Emacs is available via anonymous FTP: ! ! /ee.utah.edu:HUGE/ (PLEASE FTP DURING NON-WORK HOURS!!!) ! ! and takes about 35 megabytes of disk space to build. It is useful for ! non-HP machines, but some of the added features will only work under ! HP-UX. ! ! You will need to get patches to work with HP-UX 8.0 or on 700 series ! machines via e-mail from Darryl Okahata . ! ! 96: Where can I get Emacs for my PC running MS-DOS? ! ! * Demacs ! ! For 386 or 486 PCs running MS-DOS, there is a version of GNU Emacs ! called Demacs. To get Demacs see question 122. ! ! From the announcement message: ! ! Demacs is almost a full set of GNU Emacs but does not support some ! features: asynchronous process, locking a file, etc. ! ! Demacs provides following DOS specific features: ! ! * File type: text or binary file translation. ! * "8-bit clean" display mode. ! * 8086 software interrupt call by int86 lisp function. ! * Machine specific features such as function key support. ! * File name completion with drive name. ! * Child process (suspend-emacs, call-process). ! * Enhanced dired mode which can work without 'ls.exe'. ! ! To our regret `shell-mode' does not work, but `compile' command works ! properly. ! ! 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. ! ! There are a variety of other Emacses for MS-DOS including among them the ! following. ! ! * Freemacs ! ! Russ Nelson , the author, describes ! Freemacs: ! ! * Freemacs is free, and it was designed from the start to be ! programmable. ! * Freemacs is the only IBM-PC editor that tries to be like GNU Emacs. ! * Freemacs can only edit files less than 64K in length. ! * Freemacs doesn't have undo. ! ! Carl Witty reviews Freemacs: ! ! Better is Freemacs, which follows the tradition of ITS and GNU Emacs ! by having an full, turing-complete extension language which is ! incompatible with everything else. In fact, it's even closer to ITS ! Emacs than GNU Emacs is, because Mint (Freemacs' extension language) ! is absolutely illegible without weeks of study, much like TECO. ! ! To get Freemacs see question 123. ! ! * MicroEmacs ! ! MicroEmacs is a descendant of Microemacs {originally by Dave Conroy?}. ! It is programmable in a BASIC-like language. Many of the keybindings ! are different from GNU Emacs. The author is Daniel Lawrence - ! . The latest version is 3.12 ! ! and it is available via anonymous FTP: ! ! /midas.mgmt.purdue.edu:dist/uemacs312/ (outside business hours) ! ! ! ! Version 3.12 includes Windows and Windows NT versions and a DOS ! ! protected mode (DMPI) version. ! ! * JOVE ! ! Another Emacs for small machines is JOVE (Jonathan's Own Version of ! Emacs). The latest official version is 4.14. There appears to be a ! newer version. People rumored to be working on JOVE include Mark Moraes ! and Bill Marsh . It is ! available via anonymous FTP: ! ! /cs.toronto.edu:/pub/moraes/jove4.14.7.tar.Z ! ! * MG ! ! MG is another descendant of Microemacs. MG used to stand for ! MicroGNUEmacs, but now just stands for MG. The look-and-feel of MG is ! intended to be close to that of GNU Emacs. It is rumored that MG can ! not correctly edit files larger than memory. The current version is ! rumored to be 2. There is a version 3 in beta which works on the Amiga. ! It is also available via anonymous FTP: ! ! /ftp.white.toronto.edu:pub/mg/ ! /wuarchive.wustl.edu:/mirrors/unix-c/editors/ ! /procyon.cis.ksu.edu: (source and executable) ! ! 97: Where can I get Emacs for my PC running Windows? ! ! I believe that no version of GNU Emacs runs under Windows. Pierre Perret ! has ported MicroEMACS 3.11c to Windows. ! ! Anonymous FTP: ! /ftp.cica.indiana.edu:pub/pc/win3/util/mewin10.zip ! /ftp.cica.indiana.edu:pub/pc/win3/util/mewin10s.zip ! /ftp.cica.indiana.edu:pub/pc/win3/util/mewri.zip ! ! 98: Where can I get Emacs for my PC running OS/2? ! ! From the OS/2 Programmer's FAQ: ! ! GNU Emacs 18.58 is available. It requires you to have EMX installed ! on your machine, but it comes with all the EMX files you will need. ! Emacs is available on ftp-os2 in /pub/os2/2.0/gnu/emacs. (If you want ! to recompile emacs, you will need the full EMX distribution see ! question 1.2.) ! ! The above quote may be out of date. See the latest OS/2 Programmer's FAQ ! {perhaps in comp.os.os2.misc?} for the latest news. Anonymous FTP info: ! ! /ftp-os2.nmsu.edu:pub/os2/2.0/gnu/emacs/ ! ("ftp-os2" was formerly named "hobbes") ! ! Thanks go to Stephen Simpson , Jonathan ! Miller , Terry Kane , J. D. ! Baldwin , and Ken Bass ! . ! ! 99: Where can I get Emacs for my Atari ST? ! ! Emacs 18.57 is the latest version for TOS. Stefan Mueller-Pfeiffer ! says: ! ! There is also a version for MiNT, the multitasking enhancement for ! ATARI's TOS, which behaves almost like EMACS on a "real computer". This ! port was done by Erling Henanger . ! ! Anonymous FTP: ! /atari.archive.umich.edu:atari/gnustuff/tos/ (TOS Emacs 18.57) ! /atari.archive.umich.edu:atari/new/mntemacs.zoo (MiNT Emacs) ! /cs.uni-sb.de:/pub/atari/emacs/ ! ! 100: Where can I get Emacs for my Amiga? ! ! All of the files are lharc-ed. ! ! Anonymous FTP: ! /oes.orst.edu:/pub/almanac/comp/amiga/software/gnuemacs-1.10/ ! ! Via e-mail: ! To: almanac@oes.orst.edu ! body: ! mode uuencode ! send computer amiga software gnuemacs ! is replaced by one of the following: ! Required: d1.lzh d2.lzh ! Recommended: d3_info.lzh d3_infolisp.lzh ! Optional: d3_autoloaded.lzh d3_entertainmentetc.lzh ! d3_entertainmentlisp.lzh d4_src.lzh d5_languagelisp.lzh ! d5_viclone.lzh d6_gnulibsrc.lzh d6_mailpackage.lzh ! d6_mathpackage.lzh d6_misc.lzh d6_textformat.lzh ! The `d#' at the beginning of each file is its disk number, which is ! referred to by the documentation. ! ! 101: Where can I get Emacs for my Apple computer? ! The FSF is a participant in a boycott of Apple because of Apple's "look and feel" copyright suits. See the file etc/APPLE for more details. --- 1735,2018 ---- Difficulties Building/Installing/Porting Emacs ! 73: What should I do if I have trouble building Emacs? ! ! First look in the file PROBLEMS (in the top-level directory when you ! unpack the Emacs source) to see if there is already a solution for your ! problem. Next check the FAQ (you're reading it). If you don't find a ! solution, then report your problem via e-mail to ! bug-gnu-emacs@prep.ai.mit.edu. Please do not post it to gnu.emacs.help ! or e-mail it to help-gnu-emacs@prep.ai.mit.edu. For further guidelines, ! see question 8. ! ! 74: How do I stop Emacs from failing when the executable is stripped? ! Don't do that. ! This problem has been reported on SGI Indigo machines running Irix 4.0.* and RS/6000 machines. Scott Henry posted a patch that fixes the problem for Irix. ! ! 75: Why does linking Emacs with -lX11 fail? ! Emacs needs to be linked with the static version of the X11 library, libX11.a. This may be missing. ! Under OpenWindows, you may need to use `add_services' to add the `OpenWindows Programmers' optional software category from the CD-ROM. ! ! Under HP-UX 8.0, you may need to run `update' again to load the X11-PRG ! `fileset'. This may be missing even if you specified `all filesets' the ! first time. If libcurses.a is missing, you may need to load the ! `Berkeley Development Option' {???}. ! If you are building the MIT X11 sources, you may need to modify your `site.cf' file to get static versions of the libraries. (Info from David Zuhn .) ! Other systems may have similar problems. You can always define CANNOT_DUMP and link with the shared libraries instead. ! To get the Xmenu stuff to work, you need to find a copy of MIT's liboldX.a. ! Finding/Getting Emacs and Related Packages ! 76: Where can I get GNU Emacs on the net (or by snail mail)? + Look in the files etc/DISTRIB and etc/FTP for information on nearby + archive sites and etc/ORDERS for mail orders. If you don't already have + GNU Emacs, see question 20 for how to get these files. + The latest version is always available via anonymous FTP at MIT: ! /prep.ai.mit.edu:pub/gnu/emacs-19.27.tar.gz ! See question 80 for information on where to get other GNU software. ! ! 77: How do I find a GNU Emacs Lisp package that does XXX? ! ! A listing of Emacs Lisp packages, called the Lisp Code Directory, is ! being maintained by Dave Brennan . You can search ! through this list to learn if someone has written something that fits ! your needs. ! ! This list is file LCD-datafile.Z in the Emacs Lisp Archive (see the next ! question for retrieval instructions). The files lispdir.el.Z and ! lispdir.doc in the archive contain Lisp code and information to help you ! use the list. Once you have installed lispdir.el and LCD-datafile, then ! you can use the `M-x lisp-dir-apropos' command to search the listing. ! For example, the command `M-x lisp-dir-apropos RET ange-ftp RET' produces ! this output: ! ! GNU Emacs Lisp Code Directory Apropos -- "ange-ftp" ! "~/" refers to archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/ ! ! ange-ftp (4.18) 15-Jul-1992 ! Andy Norman, ! ~/packages/ange-ftp.tar.Z ! transparent FTP Support for GNU Emacs ! auto-save (1.19) 01-May-1992 ! Sebastian Kremer, ! ~/misc/auto-save.el.Z ! Safer autosaving with support for ange-ftp and /tmp ! ftp-quik (1.0) 28-Jul-1993 ! Terrence Brannon, ! ~/modes/ftp-quik.el.Z ! Quik access to dired'ing of ange-ftp and normal paths ! ! 78: Where can I get GNU Emacs Lisp packages that don't come with Emacs? ! First, check the Lisp Code Directory to find the name of the package you ! are looking for (see question 77). Next, check local archives and the ! Emacs Lisp Archive to find a copy of the relevant files. If you still ! haven't found it, you can send e-mail to the author asking for a copy. ! ! You can access the Emacs Lisp Archive via anonymous FTP: ! ! /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/ ! /ftp.cs.umn.edu:pub/elisp-archive/ ! /calypso-2.oit.unc.edu:pub/gnu/elisp-archive/ ! /ftp.uu.net:packages/gnu/emacs-lisp/ ! /gatekeeper.dec.com:pub/GNU/elisp-archive/ ! /nic.switch.ch:mirror/elisp-archive/ ! /ftp.diku.dk:pub/elisp-archive/ ! /quepasa.cs.tu-berlin.de:pub/gnu/elisp/ ! /faui43.informatik.uni-erlangen.de:pub/gnu/elisp-archive/ ! /ftp.uni-mainz.de:pub/gnu/elisp-archive/ ! /nic.funet.fi:pub/gnu/emacs/elisp-archive/ ! /src.doc.ic.ac.uk:gnu/EmacsBits/elisp-archive/ ! ! Retrieve and read the file README first. ! ! NOTE: * The archive maintainers do not have time to answer individual ! requests for packages or the list of packages in the archive. If ! you cannot use FTP or UUCP to access the archive yourself, try to ! find a friend who can, but please don't ask the maintainers. ! ! * Any files with names ending in `.Z', `.z', or `.gz' are ! compressed, so you should use `binary' mode in FTP to retrieve ! them. You should also use binary mode whenever you retrieve any ! files with names ending in `.elc'. ! ! 79: How do I submit code to the Emacs Lisp Archive? ! ! Guidelines and procedures for submission to the archive can be found in ! the file GUIDELINES in the archive directory (see question 78). It ! covers documentation, copyrights, packaging, submission, and the Lisp ! Code Directory Record. Anonymous FTP uploads are not permitted. ! Instead, all submissions are mailed to elisp-archive@cis.ohio-state.edu. ! The lispdir.el package has a function named submit-lcd-entry which will ! help you with this. ! ! 80: Where can I get other up-to-date GNU stuff? ! ! The most up-to-date official GNU stuff is normally kept on ! prep.ai.mit.edu and is available for anonymous FTP in the pub/gnu ! directory. Read the files etc/DISTRIB and etc/FTP for more information ! (see question 20 for retrieval instructions). ! The following sites are all mirror images of the GNU distribution area: ! ! /col.hp.com:mirrors/gnu/ /ftp.uu.net:packages/gnu/ /ftp.win.tue.nl:pub/gnu/ ! /gatekeeper.dec.com:pub/GNU/ /nic.funet.fi:pub/gnu/ ! /src.doc.ic.ac.uk:gnu/ (available via FTP, NIFTP, FTAM) ! /utsun.s.u-tokyo.ac.jp:ftpsync/prep/ ! /wuarchive.wustl.edu:systems/gnu/ ! The directory at ftp.uu.net is a mirror of prep.ai.mit.edu:pub/gnu, ! except that files larger than one megabyte are split into multiple parts. ! If you have trouble transferring large files, you should try here. A ! file normally named `XXX' is split into files XXX-split/part[0-9][0-9], ! and there will be a file named XXX-split/README which contains the list ! of parts (especially helpful when FTP-ing by e-mail), their checksums, ! and reassembly instructions. ! 81: What is the difference between Emacs and Epoch? ! ! Epoch was a modified version of GNU Emacs. It was merged ! into XEmacs (formerly "Lucid Emacs"), and the Epoch redisplay, now ! being totally rewritten, is slated to be merged into Emacs when the ! rewrite is done. ! ! 82: What is the difference between Emacs and XEmacs (formerly "Lucid ! Emacs")? ! ! XEmacs is a modified version of GNU Emacs. ! ! A comparison between the two versions, written by the XEmacs ! maintainers, had been included here. Richard Stallman removed it ! from this copy of the FAQ because it was unfair. It was (1) ! one-sided, listing only advantages of XEmacs and not advantages of ! the principal version of Emacs, (2) biased, stating the opinions ! of the XEmacs maintainers, and (3) out of date, listing as advantages of ! XEmacs features which in fact both versions have. ! ! 83: Where can I get Emacs for my PC running MS-DOS? ! ! 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* ! Microsoft Windows; see question 84) on 386- and 486-based PCs. Demacs is ! a port of Nemacs (see question 126), rather than a straight port of GNU ! Emacs 18 or 19. ! ! 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 ! pub/Msdos/Demacs/*. ! ! For a list of other MS-DOS implementations of Emacs (and Emacs ! look-alikes), consult the list of "Emacs implementations and literature," ! available via anonymous ftp from rtfm.mit.edu in pub/usenet/comp.emacs. ! ! 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 ! ! Current version of Oemacs4.1 is based on Emacs-19.19 and runs in either ! MS-DOS or Microsoft Windows. There is rumor that the author Darryl ! Okahata would not update unless there is ! demonstrated interest. It is nearly a full porting of GNU Emacs except ! that shell-mode does not work due to the limitation of MS-DOS. ! Anonymous ftp information: ! ! /oak.oakland.edu:pub/msdos/oemacs/ ! ! * The other uses a proprietary X Windows emulator and therefore ! the FSF does not think it deserves publicity. ! ! 85: Where can I get Emacs for my PC running OS/2? ! ! Emacs 19.27 is ported for emx on OS/2 2.0 or 2.1. ! ! Anonymous FTP info: ! ! hobbes.nmsu.edu:os2/2_x/unix/emacs27 ! ! 86: Where can I get Emacs for my Atari ST? ! ! (does anyone know?) ! ! 87: Where can I get Emacs for my Amiga? ! ! Amiga software is available through Aminet, a set of interconnected FTP ! sites and other file accessing services for Amiga software. The primary ! sites for Aminet are ftp.wustl.edu (128.252.135.4) and ftp.cdrom.com ! (192.153.46.2). In the directory pub/aminet/util/gnu, there are ! ! a1.26-emacs-bin.lha -- Amiga GNU Emacs V1.26, binaries ! a1.26-emacs-src.lha -- Amiga GNU Emacs V1.26, sources ! ! There are also quite a few Emacs related files/programs. Please search ! the index of Aminet. ! ! We have no access to an Amiga, so please send in your experience and ! comments on the implementation. ! ! 88: Where can I get Emacs for my Apple computer? ! The FSF is a participant in a boycott of Apple because of Apple's "look and feel" copyright suits. See the file etc/APPLE for more details. *************** *** 2602,2677 **** Because of this boycott, the FSF doesn't include support in GNU software for Apple computers such as the Macintosh. ! Please don't help people port or develop software for Apple computers. - - 102: Where can I get Emacs with NeWS support? - - Chris Maio's NeWS support package for GNU Emacs is available via anonymous - FTP: - - /columbia.edu:pub/ps-emacs.tar.Z - /archive.cis.ohio-state.edu:pub/gnu/emacs/ps-emacs.tar.Z - - and via e-mail: - - To: archive-server@columbia.edu - body: send NeWS emacs-support - - 103: Where do I get Emacs that runs on VMS under DECwindows? - - Hal R. Brand is said to have a VMS save set with a - ready-to-run VMS version of Emacs 18.55 for X Windows. It is available - via anonymous FTP (addvax.llnl.gov). It is possible that the VMS versions - of Emacs at other sites have X support compiled in. See etc/FTP for - locations. - - Johan Vromans writes: - - Getting Emacs to run on VMS with DECwindows requires a number of changes - to the sources. Fortunately this has been done already. Joshua Marantz - did most of the work for Emacs 18.52, and the mods - were ported to 18.55 by Johan Vromans . Also included is the - handling of DEC's LK201 keyboard. You need to apply the changes to a - fresh Emacs 18.55 distribution on a Unix system, and then you can copy - the sources to VMS to perform the compile/link/build. - - The set of changes have been posted a number of times three times the - last 12 months, so they should be widely available. - - Richard Levitte tells us that there are patches for - Emacs 18.57, 18.58, and 18.59 available via e-mail: ! - - To: EMACS-FILESERV@e.kth.se ! - body: SEND EMACS-1857-PATCHES - or: SEND EMACS-1858-PATCHES - or: SEND EMACS-1859-PATCHES + - + - or via anonymous ftp at: + - + - /lucy.merrimack.edu:emacs-1859-patches.share + - + - The set of patches weighs in at around 2.7 MB. + ! 104: Where can I get modes for Lex, Yacc/Bison, Bourne Shell, Csh, C++, ! Objective C, Pascal, Awk? ! ! As usual, look in the Lisp Code Directory (see question 88). For C++, ! if you use lisp-dir-apropos, you must specify the pattern like this: ! M-x lisp-dir-apropos RET c\+\+ RET ! ! 105: What is the IP address of XXX.YYY.ZZZ? ! If you are at a site with a deficient nameserver, you may need to know the IP address of a host to FTP files from it. You can get this information in two ways: ! * By telnet: ! telnet nic.ddn.mil hostnames (or `telnet 192.112.36.5 101') ! hname XXX.YYY.ZZZ ! * By e-mail: ! To: service@nic.ddn.mil Subject: host XXX.YYY.ZZZ --- 2019,2069 ---- Because of this boycott, the FSF doesn't include support in GNU software for Apple computers such as the Macintosh. ! Please don't help people port or develop software for Apple computers. ! 89: Where do I get Emacs that runs on VMS under DECwindows? ! ! Version 19.27 has a VMS directory containing installation instructions, a ! makefile, and various .com files. But according to Richard Levitte ! , it does not run out of the box. Even if it does, the ! VMSNOTES indicates that the Emacs on VMS is going to have much more ! limited functionality. Richard Levitte has a patched 19.22 that ! supposedly has subprocess and networking functionality just as on Unix, ! with virtually the same lisp interface. The source is available via ! anonymous ftp at ! ! ftp.vms.stacken.kth.se:GNU-VMS/Beta/EMACS-19_22-********.TAR-GZ ! ! where ******** is the release date of the kit. You should also read ! http://www.e.kth.se/elev/levitte/gnu/emacs.html for more information. ! ! 90: Where can I get modes for Lex, Yacc/Bison, Bourne shell, Csh, C++, ! Objective C, Pascal, and Awk? ! ! Most of these modes are now available in standard Emacs distribution. To ! get additional modes, look in the Lisp Code Directory (see question 77). ! For C++, if you use lisp-dir-apropos, you must specify the pattern like ! this: ! M-x lisp-dir-apropos RET c\+\+ RET ! ! Note that Barry Warsaw's cc-mode now works for C, C++, and Objective-C ! code. You can get the latest version (4.85, as of this writing) from the ! Emacs Lisp Archive. ! ! 91: What is the IP address of XXX.YYY.ZZZ? ! If you are at a site with a deficient nameserver, you may need to know the IP address of a host to FTP files from it. You can get this information in two ways: ! * By telnet: ! telnet nic.ddn.mil hostnames (or `telnet 192.112.36.5 101') ! @ whois ! Whois: host XXX.YYY.ZZZ ! * By e-mail: ! To: service@nic.ddn.mil Subject: host XXX.YYY.ZZZ *************** *** 2678,2690 **** or: whois XXX.YYY.ZZZ or: help ! or: ! To: resolve@cs.widener.edu body: site XXX.YYY.ZZZ - - Information from Brendan Kehoe . - --- 2070,2080 ---- or: whois XXX.YYY.ZZZ or: help ! or: ! To: resolve@cs.widener.edu body: site XXX.YYY.ZZZ + Information from Brendan Kehoe . *************** *** 2692,2753 **** This section lists version numbers, FTP sites, mailing lists, newsgroups, ! and other information for many important packages, extensions, and related ! programs. There is some overlap with the Lisp Code Directory, but these ! entries give more detailed information. ! If you know of any other packages that are so substantial that they ! deserve to be mentioned here, please tell me. Having its own mailing list ! or newsgroup or more than half a megabyte of source code are good signs. ! ! 106: VM (View Mail) -- another mail reader within Emacs ! Author: Kyle Jones ! Latest released version: 4.41 ! Beta test version: 5.32 Anonymous FTP: ! /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/vm-4.41.tar.Z ! /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/as-is/timer.shar.Z ! /ftp.uu.net:mail/vm-4.41.tar.Z ! /ftp.uu.net:mail/vm-5.32beta.tar.Z Newsgroups and mailing lists: Info-VM: ! gnu.emacs.vm.info info-vm-request@uunet.uu.net (for subscriptions) info-vm@uunet.uu.net (for submissions) Bug-VM: ! gnu.emacs.vm.bug bug-vm-request@uunet.uu.net (for subscriptions) bug-vm@uunet.uu.net (for submissions) ! ! 107: Supercite -- mail and news citation package within Emacs ! Author: Barry Warsaw Mailing list: supercite-request@anthem.nlm.nih.gov (for subscriptions) supercite@anthem.nlm.nih.gov (for submissions) - Latest version: 2.3 ! - Anonymous FTP: - /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/sc-2.3.tar.Z ! - /ftp.cme.nist.gov:pub/gnu/sc2.3.tar.Z ! - Via e-mail: - To: library@cme.nist.gov - Subject: help NOTE: Superyank is an old version of Supercite. ! ! 108: GNUS -- news reader within Emacs ! Author: Masanobu Umeda ! Latest official version: 3.13 ! Unofficial test version: 3.14.1 Anonymous FTP: ! /aun.uninett.no:pub/gnus-3.14.1.tar.Z - ! /wnoc-fuk.wide.ad.jp:pub/GNU/etc/gnus-3.14.1.tar.Z ! /liasun3.epfl.ch:pub/gnu/emacs/gnus-3.14.1.tar.Z ! /aix370.rrz.uni-koeln.de:/pub/gnu/emacs/gnus-3.14.1.tar.Z ! /funet.fi:/networking/news/gnus-3.14.1.tar.Z ! /src.doc.ic.ac.uk:/gnu/EmacsBits/gnus/gnus-3.14.1.tar.Z ! /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/gnus-3.13.tar.Z Newsgroups and mailing lists: English-only: ! gnu.emacs.gnus info-gnus-english-request@cis.ohio-state.edu (for subscriptions) info-gnus-english@cis.ohio-state.edu (for submissions) --- 2082,2131 ---- This section lists version numbers, FTP sites, mailing lists, newsgroups, ! and other information for many important packages, extensions, and ! related programs. There is some overlap with the Lisp Code Directory, ! but these entries give more detailed information. ! If you know of any other packages that are so substantial that they ! deserve to be mentioned here, please let us know. Having its own mailing ! list or newsgroup or more than half a megabyte of source code are good ! signs. ! ! 92: VM (View Mail) -- another mail reader within Emacs ! Author: Kyle Jones ! Latest version: 5.72 (beta) Anonymous FTP: ! /ftp.uu.net:networking/mail/vm-5.72beta.tar.gz Newsgroups and mailing lists: Info-VM: ! gnu.emacs.vm.info (newsgroup) info-vm-request@uunet.uu.net (for subscriptions) info-vm@uunet.uu.net (for submissions) Bug-VM: ! gnu.emacs.vm.bug (newsgroup) bug-vm-request@uunet.uu.net (for subscriptions) bug-vm@uunet.uu.net (for submissions) ! ! 93: Supercite -- mail and news citation package within Emacs ! Author: Barry Warsaw + Latest version: 3.54 (comes with GNU Emacs 19) + 3.1 (available from the Emacs Lisp Archive) + Anonymous FTP: + /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/sc3.1.tar.Z Mailing list: supercite-request@anthem.nlm.nih.gov (for subscriptions) supercite@anthem.nlm.nih.gov (for submissions) NOTE: Superyank is an old version of Supercite. ! ! 94: Gnus -- news reader within Emacs ! Author: Masanobu Umeda ! Latest version: 4.1 (comes with GNU Emacs 19) Anonymous FTP: ! /src.doc.ic.ac.uk:gnu/EmacsBits/elisp-archive/packages/gnus-4.1.tar.Z ! /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/gnus-4.1.tar.Z Newsgroups and mailing lists: English-only: ! gnu.emacs.gnus (newsgroup) info-gnus-english-request@cis.ohio-state.edu (for subscriptions) info-gnus-english@cis.ohio-state.edu (for submissions) *************** *** 2755,2791 **** info-gnus-request@flab.fujitsu.co.jp (for subscriptions) info-gnus@flab.fujitsu.co.jp (for submissions) ! ! 109: Calc -- poor man's Mathematica within Emacs ! Author: Dave Gillespie ! Latest released version: 2.02 ! Anonymous FTP: ! /csvax.cs.caltech.edu:pub/calc-2.02.tar.Z ! /prep.ai.mit.edu:pub/gnu/calc-2.02.tar.Z ! NOTE: Unlike Wolfram Research, Dave has never threatened to sue anyone ! for having a program with a similar command language to Calc. :-) ! ! 110: Calendar/Diary -- calendar manager within Emacs ! ! Author: Edward M. Reingold ! Latest version: 4.02 Anonymous FTP: ! /emr.cs.uiuc.edu:pub/emacs/calendar {???} ! Via e-mail: ! To: reingold@cs.uiuc.edu ! Subject: send-emacs-cal ! Put your best internet e-mail address in the body. ! ! 111: Ange-FTP -- transparent FTP access for Emacs's file access routines ! Author: Andy Norman ! Latest official version: 4.20 Anonymous FTP: - /alpha.gnu.ai.mit.edu:ange-ftp/ange-ftp.tar.Z /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/ange-ftp.tar.Z - /ugle.unit.no:pub/gnu/emacs-lisp/ange-ftp.tar.Z Mailing lists: - ange-ftp-lovers-request@anorman.hpl.hp.com (for subscriptions) Ange-FTP Lovers: ange-ftp-lovers@anorman.hpl.hp.com (for submissions) /ftp.reed.edu:pub/mailing-lists/ange-ftp/ (archives) --- 2133,2156 ---- info-gnus-request@flab.fujitsu.co.jp (for subscriptions) info-gnus@flab.fujitsu.co.jp (for submissions) ! ! 95: Calc -- poor man's Mathematica within Emacs ! Author: Dave Gillespie ! Latest version: 2.02c Anonymous FTP: ! /prep.ai.mit.edu:pub/gnu/calc-2.02c.tar.gz ! NOTE: Unlike Wolfram Research, Dave has never threatened to sue ! anyone for having a program with a similar command language to ! Calc. :-) ! ! 96: Ange-FTP -- transparent FTP access for Emacs's file access routines ! Author: Andy Norman ! Latest version: 1.56 (comes with GNU Emacs 19) Anonymous FTP: /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/ange-ftp.tar.Z Mailing lists: Ange-FTP Lovers: + ange-ftp-lovers-request@anorman.hpl.hp.com (for subscriptions) ange-ftp-lovers@anorman.hpl.hp.com (for submissions) /ftp.reed.edu:pub/mailing-lists/ange-ftp/ (archives) *************** *** 2792,2801 **** Ange-FTP Announcements: ange-ftp-lovers-announce@anorman.hpl.hp.com ! NOTE: now with support for accessing VMS, CMS, and MTS systems ! ! 112: VIP -- vi emulation for Emacs ! Author: Aamod Sane ! Latest released version: 4.3 Anonymous FTP: /cs.uiuc.edu:pub/vip4.3.tar.Z --- 2157,2166 ---- Ange-FTP Announcements: ange-ftp-lovers-announce@anorman.hpl.hp.com ! NOTE: now supports VMS, CMS, and MTS ftp servers ! ! 97: VIP -- vi emulation for Emacs ! Author: Aamod Sane ! Latest version: 4.3 Anonymous FTP: /cs.uiuc.edu:pub/vip4.3.tar.Z *************** *** 2802,2823 **** /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/modes/vip-mode.tar.Z NOTE: This version much more closely emulates vi than the one ! distributed with Emacs. ! ! 113: Dired -- better directory editor for Emacs ! ! Author: Sebastian Kremer ! Latest released version: 5.239 ! Anonymous FTP: /ftp.cs.buffalo.edu:pub/Emacs/diredall.tar.Z ! /ftp.uni-koeln.de:pub/gnu/emacs/diredall.tar.Z ! NOTE: This is a huge improvement over the Dired distributed with Emacs. ! This version will be in Emacs 19. ! ! 114: AUC TeX -- enhanced LaTeX mode with debugging facilities ! Author: Kresten Krab Thorup ! Latest released version: 6.1 {???} Anonymous FTP: ! /iesd.auc.dk:pub/emacs-lisp/auctex_6_1d.tar.Z ! /iesd.auc.dk:pub/emacs-lisp/auctex.tar.Z Mailing list: auc-tex-request@iesd.auc.dk (for subscriptions) --- 2167,2178 ---- /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/modes/vip-mode.tar.Z NOTE: This version much more closely emulates vi than the one ! distributed with Emacs. ! ! 98: AUC TeX -- enhanced LaTeX mode with debugging facilities ! Author: Kresten Krab Thorup ! Latest version: 9.1i Anonymous FTP: ! /iesd.auc.dk:pub/emacs-lisp/auctex-9.1i.tar.gz Mailing list: auc-tex-request@iesd.auc.dk (for subscriptions) *************** *** 2824,2833 **** auc-tex@iesd.auc.dk (for submissions) auc-tex_mgr@iesd.auc.dk (auc-tex development team) ! ! 115: Hyperbole -- extensible hypertext management system within Emacs ! Author: Bob Weiner Anonymous FTP: ! /wilma.cs.brown.edu:pub/hyperbole/ h*.tar.Z Mailing lists: hyperbole-announce -- Hyperbole release announcements only. --- 2179,2189 ---- auc-tex@iesd.auc.dk (for submissions) auc-tex_mgr@iesd.auc.dk (auc-tex development team) ! ! 99: Hyperbole -- extensible hypertext management system within Emacs ! Author: Bob Weiner + Latest version: 3.15 Anonymous FTP: ! /wilma.cs.brown.edu:pub/hyperbole/h3.15.tar.Z Mailing lists: hyperbole-announce -- Hyperbole release announcements only. *************** *** 2841,3309 **** Submissions: hyperbole@cs.brown.edu ! NOTE: Any member of the hyperbole mailing list is automatically a ! member of the hyperbole-announce mailing list. NOTE: No .UUCP or ! addresses are allowed on these mailing lists. ! ! 116: Byte Compiler -- enhanced version of Emacs's byte compiler ! ! Author: Jamie Zawinski , ! Hallvard B. Furuseth ! Anonymous FTP: ! /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/bytecomp.tar.Z ! /ftp.uu.net:languages/elisp/packages/bytecomp.tar.Z ! /src.doc.ic.ac.uk:gnu/EmacsBits/elisp-archive/packages/bytecomp.tar.Z ! ! 117: comint -- hugely enhanced shell mode and other derived modes ! ! Author: Olin Shivers ! Anonymous FTP: ! /cs.cmu.edu:/afs/cs.cmu.edu/user/shivers/lib/emacs/ ! {comint,cmu{tex,shell,scheme,lisp},ml}.el ! (anonymous password must contain `@', ! cannot cd to intermediate directories) ! ! 118: BBDB -- personal info rolodex integrated with mail/news readers ! Author: Jamie Zawinski ! Latest released version: 1.47 Anonymous FTP: ! /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/bbdb.tar.Z ! Mailing list: ! info-bbdb-request@lucid.com (for subscriptions) ! info-bbdb@lucid.com ! bbdb-announce-request@lucid.com (to be informed of new releases) ! Note: BBDB does not work with VM 4. It does work with VM 5, RMAIL, GNUS, ! and MH-E. ! ! 119: Ispell -- spell checker in C with interface for Emacs ! Author: Geoff Kuenning ! Latest released version: 2.0.02 ! Beta test version: 3.0 (9 patches) ! Anonymous FTP: ! /archive.cis.ohio-state.edu:/pub/gnu/ispell/ (version 2.0.02) ! /ftp.cs.ucla.edu:/pub/ispell/ (version 3.0, patches, dictionaries) ! /argus.math.orst.edu:pub/ispell/ (version 3.0, patches, dictionaries) ! /ftp.th-darmstadt.de:pub/dicts/ispell/ (mirror of argus) ! NOTE: Do not send mail to Geoff asking him to send you the latest ! version of Ispell. He does not have free e-mail. ! ! 120: Epoch -- enhanced GNU Emacs with better X interface ! ! Latest released version: 4.2 ! Anonymous FTP: ! /cs.uiuc.edu:pub/epoch-files/epoch/epoch-4.2.tar.Z ! /cs.uiuc.edu:pub/epoch-files/epoch/epoch-diff-4.1-4.2.tar.Z ! /src.doc.ic.ac.uk:gnu/epoch/ ! /aix370.rrz.uni-koeln.de:gnu/emacs/epoch/ ! Newsgroup and mailing lists: ! Epoch: ! gnu.emacs.epoch ! epoch-request@cs.uiuc.edu (for subscriptions) ! epoch@cs.uiuc.edu (for submissions) ! Epoch-Design: ! epoch-design-request@cs.uiuc.edu (for subscriptions) ! epoch-design@cs.uiuc.edu (for submissions) ! FAQ list: ! Maintainer: Marc Andreessen ! Anonymous FTP: ! /rtfm.mit.edu:pub/usenet/news.answers/epoch-faq ! /ftp.ncsa.uiuc.edu:outgoing/marca/epoch/Epoch.FAQ ! ! 121: Lucid GNU Emacs -- alternative Emacs 19 with better X interface ! ! Primary Maintainer: Jamie Zawinski ! Other Developers: Eric Benson ! Matthieu Devin ! Harlan Sexton ! Latest released version: 19.6 ! ! Anonymous FTP: ! /labrea.stanford.edu:pub/gnu/lucid/lemacs-19.6.tar.Z (source) ! ! /labrea.stanford.edu:pub/gnu/lucid/lemacs-19.6-sun4.tar.Z (Sun4binaries) ! ! Newsgroup and mailing lists: ! Bugs: ! alt.lucid-emacs.bug + ! bug-lucid-emacs-request@lucid.com (for subscriptions) ! bug-lucid-emacs@lucid.com (for submissions) ! Help: ! alt.lucid-emacs.help + ! help-lucid-emacs-request@lucid.com (for subscriptions) ! help-lucid-emacs@lucid.com (for submissions) ! ! 122: Demacs -- GNU Emacs altered to run on MS-DOS on 386/486 machines ! ! Authors: Manabu Higashida ! HIRANO Satoshi ! Latest released version: 1.2.0 ! Anonymous FTP: ! /utsun.s.u-tokyo.ac.jp:GNU/demacs/ (nearest to U.S.A.) ! /ftp.sigmath.osaka-u.ac.jp:pub/Msdos/Demacs/ ! /wnoc-fuk.wide.ad.jp:pub/msdos/Demacs/ ! /ftp.3com.com:pub/gnu/msdos/demacs/ ! /mindseye.berkeley.edu:pub/kanji/demacs/ ! /ftp.hawaii.edu:pub/editors/demacs.tar.Z ! /ftp.math.ksu.edu:pub/pc/demacs/ ! /wsmr-simtel20.army.mil:pd1: {ange-ftp syntax?} ! /ftp.uni-koeln.de:msdos/gnuprogs/dem120e.zip (executables, lisp-code, doc) ! (PLEASE USE ONLY OUTSIDE WORKING HOURS!) ! /ftp.uni-koeln.de:msdos/gnuprogs/dem120s.zip (sources, diffs) ! (PLEASE USE ONLY OUTSIDE WORKING HOURS!) ! /ftp.lysator.liu.se:pub/msdos/gnu/emacs/ ! /mizar.docs.uu.se:pub/gnu/demacs/ ! /iamsun.unibe.ch:PC/demacs/ ! /flop.informatik.tu-muenchen.de:outgoing/demacs.tar ! /ftp.funet.fi:pub/gnu/emacs/demacs/ ! /garbo.uwasa.fi:pc/editor/dem120e.zip ! /garbo.uwasa.fi:pc/editor/dem120s.zip ! /ftp.win.tue.nl:pub/gnu/demacs/ ! /ugle.unit.no:pub/gnu/Demacs/ ! {Does anyone know which sites have the Kanji version?} ! Via e-mail: ! From garbo.uwasa.fi: ! To: mailserv@garbo.uwasa.fi ! Subject: garbo-request ! Body: send pc/editor/dem120e.zip ! send pc/editor/dem120s.zip ! quit ! Downloading: ! EXEC-PC (Milwaukee, WI) 414-789-4210 (2400 bps) ! in the Mahoney MS-DOS file area in its Editors/wordprocessors ! library (F), named GNUEMACS.ZIP ! Channel 1 (Cambridge, MA) 617-345-8873 (9600 bps) ! in the New Uploads file area, named GNUEMACS.ZIP ! NOTE: Use the -d option of [pk]unzip for all .zip archives. Some sites ! have Demacs lharc'ed. If you need to find programs to unpack lharc and ! zip format archives, Chris Dean points out that you ! should see the comp.compression FAQ, available for FTP: ! /rtfm.mit.edu:pub/usenet/comp.compression/ ! Mailing list: ! NOTE: There is no mailing list for Demacs. However, there is a list ! for DJGPP, which is the environment that Demacs runs in. Many ! Demacs problems are actually issues with DJGPP. ! DJGPP: ! Subscriptions: ! To: listserv@sun.soe.clarkson.edu ! body: add djgpp ! or put `help' in the body. ! If this fails, mail to djgpp-request@sun.soe.clarkson.edu. ! Submissions: ! djgpp@sun.soe.clarkson.edu ! FAQ list: ! Maintainer: Dave Steibel ! Anonymous FTP: algol.cs.umbc.edu:pub/demacs/demacs.faq ! ! 123: Freemacs -- a small Emacs for MS-DOS ! ! Author: Russ Nelson ! Latest released version: 1.6a Anonymous FTP: ! /simtel20.army.mil:PD: {ange-ftp syntax?} ! /grape.ecs.clarkson.edu:pub/msdos/freemacs/ ! Via e-mail: ! To: archive-server@sun.soe.clarkson.edu ! body: help ! Via snail mail: ! address: Russell Nelson, 11 Grant St., Potsdam, NY 13676 ! Send $15 copying fee, and specify preferred floppy disk format: ! 5.25", 360K, or 3.50", 720K ! Mailing lists: ! Subscriptions: ! To: listserv@sun.soe.clarkson.edu ! body: add ! or put `help' in the body. ! List distribution addresses: ! freemacs-announce@sun.soe.clarkson.edu ! freemacs-help@sun.soe.clarkson.edu ! freemacs-workers@sun.soe.clarkson.edu (send bug reports here) ! ! 124: Patch -- program to apply "diffs" for updating files ! Author: Larry Wall ! Latest version: 2.0 patchlevel 12u8 ! (This is the version that supports the new unified diff format.) ! Anonymous FTP: ! /prep.ai.mit.edu:pub/gnu/patch-2.0.12u8.tar.Z ! /prep.ai.mit.edu:pub/gnu/patch-2.0.12g8.tar.Z (GNU version) ! ! GNU Emacs FAQ: Keybindings/Output ! If you are viewing this text in a GNU Emacs Buffer, you can type "M-2 C-x $" to ! get an overview of just the questions. Then, when you want to look at the text ! of the answers, just type "C-x $". ! ! To search for a question numbered XXX, type "M-C-s ^XXX:", followed by a C-r if ! that doesn't work, then type ESC to end the search. ! ! A `+' in the 78th column means something was inserted on the line. A `-' means ! something was deleted and a `!' means some combination of insertions and ! deletions occurred. ! ! Full instructions for getting the latest FAQ are in question 22. Also see the ! `Introduction to news.answers' posting in the `news.answers' newsgroup, or send ! e-mail to `mail-server@rtfm.mit.edu' with `help' on a body line, or use FTP, ! WAIS, or Prospero to rtfm.mit.edu. ! Changing Key Bindings and Handling Key Binding Problems ! 125: How do I bind keys (including function keys) to commands? ! ! 1. Find out what character sequence is generated by the keystroke sequence ! you wish to bind to a command. See question 129 for how to do this. ! Keep in mind that the character sequences generated by a keystroke ! sequence varies from one terminal to another. You may also get ! different results depending on what type of machine you are running on ! (see question 128). For example, these keystrokes may generate these ! character sequences: ! ! F1 ---> ESC [ 2 2 4 z ! Shift-R10 ---> ESC O t ! L7 ---> ESC [ 3 1 ~ ! Remove ---> C-@ ! ! 2. Figure out what the Emacs Lisp syntax is for this character sequence. ! Inside an Emacs Lisp string, RET, LFD, DEL, ESC, SPC, and TAB are ! specified with `\r', `\n', `\C-?', `\e', ` ', and `\t'. C-x is ! specified by `\C-x'. M-x is specified the same was as "ESC x". ! (Control characters may also be specified as themselves, but I don't ! recommend it.) An Emacs Lisp string begins and ends with the double ! quote character, `"'. Here are some examples: ! ! ESC [ D ---> "\e[D" ! ESC [ 2 2 7 z ---> "\e[227z" ! ESC [ 1 8 ~ ---> "\e[18~" ! C-M-r ---> "\e\C-r" ! ! 3. If some prefix of the character sequence is already bound, you must ! unbind it by binding it to `nil'. For example: ! ! (global-set-key "\e[" nil) ! ! 4. Pick a command to bind your key sequence to. A command can be a ! "symbol" with a function definition, or a "lambda list", or a string ! (which is treated as a macro). For example: ! ! (global-set-key "\e[D" 'backward-char) ! (global-set-key "\e[227~" "\exgoto-line\r") ; macro ! ! See `Key Bindings' and `Rebinding' in the online manual. ! ! In Emacs 19 (including Lucid Emacs), you can bind function key F24 like ! this: ! ! (global-set-key 'f24 'some-command) ! ! 126: Why does Emacs say `Key sequence XXX uses invalid prefix characters'? ! ! A prefix of the character sequence you were trying to bind was already ! bound. Usually, the sequence is "ESC [", in which case you should ! evaluate this form first: ! ! (define-key esc-map "[" nil) ! ! NOTE: By default, "ESC [" is bound to backward-paragraph, and if you do ! this you will lose this key binding. For most people, this is not a ! problem. ! ! See question 125. ! ! 127: Why doesn't this [terminal or window-system setup] code work in my ! .emacs file, but it works just fine after Emacs starts up? ! ! This is because you're trying to do something in your .emacs file that ! needs to be postponed until after the terminal/window-system setup code ! is loaded. This is a result of the order in which things are done ! during the startup of Emacs. For more details see question 135. ! ! In order to postpone the execution of Emacs Lisp code until after the ! terminal/window-system setup, set the value of the variable ! term-setup-hook or window-setup-hook to be a function which does what ! you want. ! ! See etc/OPTIONS for a complete explanation of what Emacs does every time ! it is started. ! ! Here is a simple example of how to set term-setup-hook: ! (setq term-setup-hook ! (function ! (lambda () ! (cond ((string-match "\\`vt220" (or (getenv "TERM") "")) ! ;; Make vt220's "Do" key behave like M-x: ! (define-key CSI-map "29~" 'execute-extended-command)) ! )))) ! ! 128: How do I use function keys under X Windows? ! ! This depends on whether you are running Emacs inside a terminal emulator ! window, or whether you are allowing Emacs to create its own X window. ! You can tell which you are doing by noticing whether Emacs creates a new ! window when you start it. ! ! If you are running Emacs inside a terminal emulator window, then it ! behaves exactly as it does on any other tty. In this case, for function ! keys to be useful, they must generate character sequences that are sent ! to the programs running inside the window as input. The `xterm' program ! has two different sets of character sequences that it generates when ! function keys are pressed, depending on the sunFunctionKeys X resource ! and the -sf and +sf command line options. (To find out what these key ! sequences are, see question 129.) In addition, with xterm, ! you can override what key sequence a specific function key (or any other ! key) will generate with the `translations' resource. This, for example: ! ! XTerm.VT100.Translations: #override \ ! F1: string(0x1b) string("[xyzzy") ! ! makes the function key F1 generate the character sequence "ESC [xyzzy". ! ! On the other hand, if Emacs is managing its own X window, the following ! description applies. Emacs receives `KeyPress' events from the X server ! when a key is pressed while the keyboard focus is in its window. The ! KeyPress event contains an X "keysym" code, which is simply an arbitrary ! number corresponding to the name of the keysym, and information on which ! "modifiers" such as `control' and `shift' are active. For example, the ! `Tab' keysym is 0xff09. (Generally, a key on the keyboard will generate a ! keysym whose name is the same as the label on the key, ie. the `Tab' key ! will normally generate the `Tab' keysym. This can be changed with the ! xmodmap program.) Emacs recognizes all the keysyms that correspond to ! standard ASCII characters and internally uses the ASCII character instead. ! ! (WARNING: I am about to describe a gross, disgusting hack to you, have ! your barf bag ready.) ! ! When Emacs receives the X keysym of one of the arrow keys, it behaves ! the same as if it had received a letter key with the control modifier ! down as follows (this is hard-coded): ! ! Up becomes C-p ! Down becomes C-n ! Right becomes C-f ! Left becomes C-b ! ! The way Emacs treats other keysyms depends on what kind of machine it was ! compiled on. The type of the display machine is irrelevant! Function ! keys are mapped internally to escape sequences, while other keys are ! completely ignored. ! ! 1. If compiled on a Sun, Emacs recognizes these X keysyms that ! are normally on a Sun keyboard: ! ! F1 through F9 ! L1 through L10 (same as F11 through F20) ! R1 through R15 (same as F21 through F35) ! (The keys labelled R8, R10, R12, and R14 usually are mapped to the ! X keysyms Up, Left, Right, and Down.) ! Break (the `Alternate' key is given this keysym) ! ! These keys work like Sun function keys. When Emacs receives the ! keysym, it will internally use character sequences that look like "ESC ! [ ### z", where ### is replaced by a number. The character sequences ! are identical to those generated by Sun's keyboard under SunView. Any ! function key not listed above generates "ESC [ - 1 z". ! ! In order to use these key sequences, they should be bound to commands ! using the standard key binding methods, just as if Emacs were running ! on a regular terminal. ! ! WARNING: F11 and L1 are the same keysym in X, as are F12 and L2, etc. ! {Yes, this is stupid. Complain to the X consortium.} ! ! 2. If not compiled on a Sun, the function keys will appear to Emacs in a ! way remarkably similar to the keys of a DEC LK201 keyboard (used on ! some VT series terminals). These X keysyms will be recognized: ! ! F1 through F20 ! Help (treated same as F15) ! Menu (treated same as F16, is the LK201 `Do' key) ! Find ! Insert (LK201 `Insert Here' key) ! Select ! Prior (LK201 `Prev Screen' key *** ONLY IN 18.58 AND LATER ***) ! Next (LK201 `Next Screen' key *** ONLY IN 18.58 AND LATER ***) ! ! And finally, the LK201 key labelled `Remove' (or `Delete') is often ! mapped to the Delete keysym which generates the DEL character (C-?) ! instead of the key sequence given by the LK201 `Remove' key. It may ! also be mapped to some other keysym, such as `_Remove', in which case ! you can't use it from within Emacs at all. ! ! Each function key will be internally converted to a character sequence ! that looks like "ESC [ ## ~", where ## is replaced by a number. The ! character sequences are identical to those generated by a LK201 ! keyboard. Any function key not listed above generates "ESC [ - 1 ~". ! ! For the complete list of the numbers which are generated by the function ! keys, look in the file src/x11term.c at the definitions of the function ! stringFuncVal. ! ! If you are running Emacs on a Sun machine, even if your X display is ! running on a non-Sun machine (eg., an X terminal), you get the setup ! described above for Suns. The determining factor is what type of ! machine Emacs is running (was compiled) on, not what type of machine ! your X display is on. ! ! If you have function keys not listed above on your keyboard, you can use ! `xmodmap' to change their keysym assignments to get keys that Emacs will ! recognize, but that may screw up other programs. ! ! X resources are not used by Emacs to affect the key sequences generated. ! In particular, there are no X key "translations" for Emacs. ! ! If you have function keys not listed above and you don't want to use ! xmodmap to change their names, you might want to make a modification to ! your Emacs. Johan Vromans has made available a patch for Emacs ! that adds the x-rebind-key function of Epoch to Emacs 18.58. This allows ! another layer of key rebinding before Emacs even sees the keys, and in ! this layer you can rebind all of the keys and modifier combinations as ! well. ! ! Anonymous FTP: ! /ftp.eu.net:gnu/emacs/FP-Xfun.Z ! /ftp.urc.tue.nl:pub/tex/emacs/FP-Xfun ! ! Johan Vromans explains what this buys for you: ! ! After implementing this, all keyboard keys can be configured to send ! user definable sequences, eg., ! ! (x-rebind-key "KP_F1" 0 "\033OP") ! ! This will have the keypad key PF1 send the sequence "ESC O P", just like ! an ordinary VT series terminal. ! ! 129: How do I tell what characters my function or arrow keys emit? ! ! Use this function by Randal L. Schwartz : ! ! (defun see-chars () ! "Displays characters typed, terminated by a 3-second timeout." ! (interactive) ! (let ((chars "") ! (inhibit-quit t)) ! (message "Enter characters, terminated by 3-second timeout.") ! (while (not (sit-for 3)) ! (setq chars (concat chars (list (read-char))) ! quit-flag nil)) ; quit-flag maybe set by C-g ! (message "Characters entered: %s" (key-description chars)))) ! ! Alternatively, use the "C-h l" view-lossage command, which will display ! the last 100 characters Emacs has seen in its input stream. Kevin ! Gallagher suggests typing some unique string ! like "wxyz", typing the key in question, then typing "C-h l". The ! characters that appear between "wxyz" and "C-h l" were generated by the ! key. ! ! 130: How do I set the X key "translations" for Emacs? ! Sorry, you can't; there are no "translations" to be set. Emacs is not ! written using the Xt library. The only way to affect the behavior of keys ! within Emacs is through `xmodmap' (outside Emacs) or `define-key' (inside ! Emacs). ! ! 131: How do I handle C-s and C-q being used for flow control? ! C-s and C-q are used in the XON/XOFF flow control protocol. This screws up Emacs because it binds these characters to commands. Also, by default --- 2197,2398 ---- Submissions: hyperbole@cs.brown.edu ! NOTE: Any member of the hyperbole mailing list is automatically a ! member of the hyperbole-announce mailing list. NOTE: No .UUCP or ! addresses are allowed on these mailing lists. ! ! 100: BBDB -- personal Info Rolodex integrated with mail/news readers ! Author: Jamie Zawinski ! Latest released version: 1.50 Anonymous FTP: ! /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/bbdb-1.50.tar.Z ! Mailing lists: ! info-bbdb-request@cs.uiuc.edu (for subscriptions) ! info-bbdb@cs.uiuc.edu (for submissions) ! bbdb-announce-request@cs.uiuc.edu (to be informed of new releases) ! NOTE: BBDB does not work with VM 4. It does work with VM 5, ! Rmail, Gnus, and MH-E. ! ! 101: Ispell -- spell checker in C with interface for Emacs ! Author: Geoff Kuenning ! Latest released version: 3.1.08 Anonymous FTP: ! Master Sites: ! /ftp.cs.ucla.edu:pub/ispell/ispell-3.1.08.tar.gz ! /ftp.math.orst.edu:pub/ispell/ispell-3.1.08.tar.gz ! Known Mirror Sites: (only directory names shown) ! /ftp.th-darmstadt.de:pub/dicts/ispell/ ! /ftp.nl.net:pub/textproc/ispell/ ! ! NOTE: * Do not ask Geoff to send you the latest version of Ispell. ! He does not have free e-mail. ! ! * This Ispell program is distinct from GNU Ispell 4.0. GNU ! Ispell 4.0 is no longer a supported product. ! ! 102: XEmacs -- alternative Emacs 19 with better X interface; formerly ! known as Lucid Emacs or lemacs. ! ! Primary Maintainer: Chuck Thompson ! Other Developers: Ben Wing ! Richard Mlynarik ! Jamie Zawinski ! Latest released version: 19.11 ! Anonymous FTP: ! /ftp.cs.uiuc.edu:pub/xemacs/xemacs-19.11.tar.gz ! Newsgroup and mailing lists: ! Bugs: ! alt.lucid-emacs.bug ! bug-lucid-emacs-request@cs.uiuc.edu (for subscriptions) ! bug-lucid-emacs@cs.uiuc.edu (for submissions) ! Help: ! alt.lucid-emacs.help ! help-lucid-emacs-request@cs.uiuc.edu (for subscriptions) ! help-lucid-emacs@cs.uiuc.edu (for submissions) ! NOTE: The XEmacs FAQ is available via the World-Wide Web at URL ! http://xemacs.cs.uiuc.edu/. ! ! 103: Patch -- program to apply "diffs" for updating files ! Author: Larry Wall ! Latest version: 2.1 ! Anonymous FTP: ! /prep.ai.mit.edu:pub/gnu/patch-2.1.tar.gz ! /ftp.funet.fi:pub/gnu/patch-2.1.tar.gz ! /ftp.uni-stuttgart.de:pub/unix/gnu/patch-2.1.tar.gz ! NOTE: See question 80 for other GNU distribution sites. ! Changing Key Bindings and Handling Key Binding Problems ! 104: How do I bind keys (including function keys) to commands? + Keys can be bound to commands either interactively or by predefinition + (e.g. in the .emacs file). To interactively bind keys for all modes, + type `M-x global-set-key RET KEY CMD RET'; for the current major mode + only, type `M-x local-set-key RET KEY CMD RET' (see the Emacs on-line + documentation for further details). + + To bind keys on starting Emacs or on starting any given mode, you can use + the following "trick." First bind the key interactively, then + immediately afterwards type `C-x ESC ESC C-a C-k C-g'. Now, the command + needed to bind the key is in the kill ring and can be yanked into the + .emacs file. If the key binding is global, no changes to the command are + required. For example, + + (global-set-key (quote [f1]) (quote help-for-help)) + + can be place directly into the .emacs file. If the key binding is local, + the command is used in conjunction with the `add-hook' command. For + example, in tex-mode, a local binding might be + + (add-hook 'tex-mode-hook + (function (lambda () + (local-set-key (quote [f1]) (quote help-for-help)))) + + NOTE: * Control characters in key sequence position of the form yanked + from the kill ring are given in their graphic form - i.e. CTRL is + shown as `^', TAB as a set of spaces (usually 8), etc. You may + want to convert these into their vector or string forms. + + * If some prefix key of the character sequence to be bound is + already bound as a complete key, then you must unbind it before + the new binding. For example, if `ESC {' is previously bound: + + (global-unset-key [?\e ?{]) ;; or + (local-unset-key [?\e ?{]) + + * Aside from commands and "lambda lists," a vector or string also + can be bound to a key and thus treated as a macro. For example: + + (global-set-key [f10] [?\C-x?\e?\e?\C-a?\C-k?\C-g]) ;; or + (global-set-key [f10] "\C-x\e\e\C-a\C-k\C-g") + + See `Key Bindings' in the Emacs on-line documentation for further + details. + + 105: Why does Emacs say `Key sequence XXX uses invalid prefix characters'? + + Usually one of two things has happened. In one case, the control + character in the key sequence has been misspecified (e.g. `C-f' used + instead of `\C-f' within a Lisp expression). In the other case, a + "prefix key" in the keystroke sequence you were trying to bind was + already bound as a "complete key." Historically, the `ESC [' prefix was + usually the problem, in which case you should evaluate either of these + forms before attempting to bind the key sequence: + (global-unset-key [?\e ?[]) ;; or + (global-unset-key "\e[") ! 106: Why doesn't this [terminal or window-system setup] code work in my ! .emacs file, but it works just fine after Emacs starts up? ! During startup, Emacs initializes itself according to a given code/file ! order. If some of the code executed in your .emacs file needs to be ! postponed until the initial terminal or window-system setup code has been ! executed but is not, then you will experience this problem (this ! code/file execution order is not enforced after startup). ! ! To postpone the execution of Emacs Lisp code until after terminal or ! window-system setup, treat the code as a "lambda list" and set the value ! of either the `term-setup-hook' or `window-setup-hook' variable to this ! "lambda function." For example, ! (setq term-setup-hook ! (function ! (lambda () ! (cond ((string-match "\\`vt220" (or (getenv "TERM") "")) ! ;; Make vt220's "Do" key behave like M-x: ! (global-set-key [do] 'execute-extended-command)) ! )))) ! ! For information on what Emacs does every time it is started, see the ! lisp/startup.el file. ! ! 107: How do I use function keys under X Windows? ! ! With Emacs 19, functions keys under X are bound like any other key. See ! question 104 for details. ! ! 108: How do I tell what characters or symbols my function or arrow keys ! emit? ! ! Put the following in your .emacs file and type `M-x see-chars' to use: ! ! (defun see-chars () ! "Display events received, terminated by a 3-second timeout." ! (interactive) ! (let (chars ! (inhibit-quit t)) ! (message "Enter characters or other events, terminated by a 3-second ! timeout.") ! (while (not (sit-for 3)) ! (setq chars (nconc chars (list (read-event))) ! quit-flag nil) ; quit-flag might be set by C-g. ! (if (not (input-pending-p)) ! (message "Events received until now: %s..." ! (key-description chars)))) ! (message "Events received: %s" (key-description chars)))) ! ! Alternatively, type "C-h c" then the function or arrow keys. The command ! will return either a function key symbol or character sequence (see the ! Emacs on-line documentation for an explanation). This works for other ! keys as well. ! ! 109: How do I set the X key "translations" for Emacs? ! Sorry, you can't; there are no "translations" to be set. Emacs is not ! written using the Xt library. The only way to affect the behavior of ! keys within Emacs is through `xmodmap' (outside Emacs) or `define-key' ! (inside Emacs). The `define-key' command should be used in conjunction ! with the `function-key-map' map. For instance, ! ! (define-key function-key-map [M-tab] [?\M-\t]) ! ! defines the `META TAB' key sequence. ! ! 110: How do I handle C-s and C-q being used for flow control? ! C-s and C-q are used in the XON/XOFF flow control protocol. This screws up Emacs because it binds these characters to commands. Also, by default *************** *** 3311,3323 **** output buffers. Sometimes, intermediate software using XON/XOFF flow control will prevent Emacs from ever seeing C-s and C-q. ! Possible solutions: ! * Disable the use of C-s and C-q for flow control. ! ! You need to determine what is the cause of the flow control. ! * your terminal ! Your terminal may use XON/XOFF flow control to have time to display all the characters it receives. For example, VT series terminals do --- 2400,2412 ---- output buffers. Sometimes, intermediate software using XON/XOFF flow control will prevent Emacs from ever seeing C-s and C-q. ! Possible solutions: ! * Disable the use of C-s and C-q for flow control. ! ! You need to determine the cause of the flow control. ! * your terminal ! Your terminal may use XON/XOFF flow control to have time to display all the characters it receives. For example, VT series terminals do *************** *** 3325,3345 **** example, on a VT220 you may select `No XOFF' in the setup menu. This is also true for some terminal emulation programs on PCs. ! When you turn off flow control at the terminal, you will also need to turn it off at the other end, which might be at the computer you are logged in to or at some terminal server in between. ! If you turn off flow control, characters may be lost; using a printer connected to the terminal may fail. You may be able to get around this problem by modifying the `termcap' entry for your terminal to ! include extra NUL padding characters. ! * a modem ! ! If you are using a dialup connection, the modems may be using XON/XOFF ! flow control. I don't know how to get around this. ! * a router or terminal server ! Some network box between the terminal and your computer may be using XON/XOFF flow control. It may be possible to make it use some other --- 2414,2434 ---- example, on a VT220 you may select `No XOFF' in the setup menu. This is also true for some terminal emulation programs on PCs. ! When you turn off flow control at the terminal, you will also need to turn it off at the other end, which might be at the computer you are logged in to or at some terminal server in between. ! If you turn off flow control, characters may be lost; using a printer connected to the terminal may fail. You may be able to get around this problem by modifying the `termcap' entry for your terminal to ! include extra NUL padding characters. ! * a modem ! ! If you are using a dialup connection, the modems may be using ! XON/XOFF flow control. It's not clear how to get around this. ! * a router or terminal server ! Some network box between the terminal and your computer may be using XON/XOFF flow control. It may be possible to make it use some other *************** *** 3346,3799 **** kind of flow control. You will probably have to ask your local network experts for help with this. ! * tty and/or pty devices ! If your connection to Emacs goes through multiple tty and/or pty devices, they may be using XON/XOFF flow control even when it is not necessary. ! Eirik Fuller writes: ! Some versions of `rlogin' (and possibly telnet) do not pass flow control characters to the remote system to which they connect. On ! such systems, Emacs on the remote system cannot disable flow control ! on the local system. Sometimes `rlogin -8' will avoid this problem. ! One way to cure this is to disable flow control on the local host ! (the one running rlogin, not the one running rlogind) using the stty ! command, before starting the rlogin process. On many systems, `stty ! start u stop u' will do this. ! Some versions of `tcsh' will prevent even this from working. One way around this is to start another shell before starting rlogin, and issue the stty command to disable flow control from that shell. ! Use `stty -ixon' instead of `stty start u stop u' on some systems. ! * Make Emacs speak the XON/XOFF flow control protocol. ! You can make Emacs treat C-s and C-q as flow control characters by ! evaluating this form: ! ! (set-input-mode nil t) ! If you are fixing this for yourself, simply put the form in your .emacs file. If you are fixing this for your entire site, the best place to ! put it is unclear. I don't know if this has any effect when used in ! lisp/site-init.el when building Emacs; I've never tried that. {Can ! someone tell me whether it works?} Putting things in users' .emacs files ! has a number of problems. ! ! Putting this form in lisp/default.el has the problem that if the user's ! .emacs file has an error, this will prevent lisp/default.el from being ! loaded and Emacs may be unusable for the user, even for correcting their ! .emacs file (unless they're smart enough to move it to another name). A ! possible solution is to initially disable C-s and C-q by setting ! keyboard-translate-table in lisp/site-init.el, either with swap-keys ! (see question 136) or with the following form: ! ! ;; by Roger Crew : ! (setq keyboard-translate-table ! "\C-@\C-a\C-b\C-c\C-d\C-e\C-f\C-g\C-h\C-i\C-j\C-k\C-l\C-m\C-n\C-o\C-p\C-^\C-r\C-\\\C-t\C-u\C-v\C-w\C-x\C-y\C-z\C-[\C-s\C-]\C-q\C-_") ! ! This will at least prevent Emacs from being confused by the flow control ! characters, even if lisp/default.el cannot be loaded. Then, in ! lisp/default.el, enable XON/XOFF flow control with set-input-mode. ! ! For further discussion of this issue, read the file PROBLEMS in the ! Emacs distribution. ! ! 132: How do I use commands bound to C-s and C-q (or any key) if these keys ! are filtered out? ! ! I suggest swapping C-s with C-\ and C-q with C-^: ! ! (swap-keys ?\C-s ?\C-\\) ! (swap-keys ?\C-q ?\C-^) ! ! See question 136 for the implementation of swap-keys. This method ! has the advantage that it simultaneously swaps the characters everywhere ! throughout Emacs, while just switching the keybindings will miss important ! places where the character codes are stored (eg., the search-repeat-char ! variable, major mode keymaps, etc.). ! ! To do this for an entire site, you may want to swap the keys in ! lisp/default.el. If only some of your users are connecting through ! XON/XOFF flow-controlled connections, you will want to do this ! conditionally. I suggest pre-swapping them in lisp/site-init.el when ! Emacs is built, and then in lisp/default.el, if it is determined to be ! safe, they can be reenabled (being careful not to screw up any other key ! mappings users might have established using keyboard-translate-table). ! See question 131 for an easy way to pre-swap these keys. ! ! WARNING: If you do this for an entire site, the users will be confused by ! the disparity between what the documentation says and how Emacs actually ! behaves. ! ! 133: Why does the `BackSpace' key invoke help? ! ! The BackSpace key (on every keyboard I've used) generates ASCII code 8. ! C-h sends the same code. In Emacs by default C-h invokes help-command. This is intended to be easy to remember since the first letter of "help" ! is "h". The easiest solution to this problem is to use C-h (and ! BackSpace) for help and DEL (the Delete key) for deleting the previous character. ! For many people this solution may be problematic: ! ! * They normally use BackSpace outside of Emacs for deleting the previous character typed. This can be solved by making DEL be the command for deleting the previous character outside of Emacs. This command will do this on many Unix systems: ! stty erase '^?' ! ! * The person may prefer using the BackSpace key for deleting the previous character because it is more conveniently located on their keyboard or because they don't even have a separate Delete key. In this case, the ! BackSpace key should be made to behave like Delete. There are several methods. ! ! * Under X Windows, the easiest solution is to change the BackSpace key ! into a Delete key like this: ! ! xmodmap -e "keysym BackSpace = Delete" ! ! * Some terminals (eg., VT3## terminals) allow the character generated by ! the BackSpace key to be changed from a setup menu. ! ! * You may be able to get a keyboard that is completely programmable. ! ! * Under X or on a dumb terminal, it is possible to swap the BackSpace ! and Delete keys inside Emacs: ! ! (swap-keys ?\C-h ?\C-?) ! ! See question 136 for the implementation of swap-keys. ! ! * Another approach is to switch keybindings and put help on "C-x h" ! instead: ! ! (global-set-key "\C-h" 'delete-backward-char) ! (global-set-key "\C-xh" 'help-command) ; override mark-whole-buffer ! ! Other popular key bindings for help are M-? and "C-x ?". ! ! WARNING: Don't try to bind DEL to help-command, because there are many ! modes that have local bindings of DEL that will interfere. ! ! 134: Why doesn't Emacs look at the stty settings for Backspace vs. Delete? ! Good question! ! ! 135: Why don't the arrow keys work? ! ! When Emacs starts up, it doesn't know anything about arrow keys at all ! (except when running under X, see question 128). During the process of ! starting up, Emacs will load a terminal-specific initialization file for ! your terminal type (as determined by the environment variable TERM), if ! one exists. This file has the responsibility for enabling the arrow keys. ! ! There are several things that can go wrong: ! ! 1. There is no initialization file for your terminal. ! ! You can determine this by looking in the lisp/term directory. If your ! terminal type (as determined by the TERM environment variable) is ! xxx-yy-z, then the first of these files in the lisp/term directory will ! be loaded as the terminal-specific initialization file: xxx-yy-z.el, ! xxx-yy.el, or xxx.el. ! ! There are two major cases of this problem: ! ! * Your terminal type is very similar to one that has an init file. ! ! In this case, there are several techniques suggested by Colin Jensen ! , Ben Liblit , and Marc ! Auslander : ! ! A. Add a symbolic link in lisp/term for your terminal type that ! points to the similar type. For example, you could make VT102 ! terminals work with this command: ! ! ln -s vt100.el vt102.el ! ! This fixes things for everyone on the system who uses the terminal ! type. ! ! B. If you can't do the solution in part A, you can add code to your ! term-setup-hook that loads the correct file like this: ! ! (setq term-setup-hook ! (function ! (lambda () ! (cond ((equal "vt102" (or (getenv "TERM") "")) ! (load (concat term-file-prefix "vt100"))) ! (;; Code for other terminal types goes here ... ! ))))) ! ! C. If you use `tset' to set your TERM environment variable when you ! login, you can use the `-m' switch to tell tset to use a terminal ! type known by Emacs instead of another similar one. For example, ! specifying this: ! ! tset ... -m 'dec-vt220:vt220' ... ! ! will make tset say you are on a `vt220' instead of a `dec-vt220'. ! ! D. Interactively, you can type "M-x load-library RET term/vt100" to ! load the terminal-specific initialization files for VT100 ! terminals. ! ! * Your terminal type is not similar to one that has an init file. ! ! One can be made for your terminal, or you can just add code to your ! own .emacs to handle this problem for yourself. For example, if your ! terminal's arrow keys send these character sequences: ! ! Up: ESC [ A ! Down: ESC [ B ! Right: ESC [ C ! Left: ESC [ D ! ! then you can bind these keys to the appropriate commands with code in ! your .emacs like this: ! ! (setq term-setup-hook ! (function ! (lambda () ! (cond ((string-match "\\`xyzzy" (or (getenv "TERM") "")) ! ;; First, must unmap the binding for left bracket ! (or (keymapp (lookup-key global-map "\e\[")) ! (define-key global-map "\e\[" nil)) ! ;; Enable terminal type xyzzy's arrow keys: ! (define-key global-map "\e\[A" 'previous-line) ! (define-key global-map "\e\[B" 'next-line) ! (define-key global-map "\e\[C" 'forward-char) ! (define-key global-map "\e\[D" 'backward-char)) ! ((string-match "\\`abcde" (or (getenv "TERM") "")) ! ;; Do something different for terminal type abcde ! ;; ..... ! ))))) ! ! NOTE: You may have to restart Emacs to get changes to take effect. ! ! NOTE: Your arrow keys may send sequences beginning with "ESC O" when ! Emacs is running, even if they send sequences beginning with "ESC [" at ! all other times. This is because Emacs uses any command there may be ! in your terminal's termcap entry for putting the terminal into ! "Application Keypad Mode". Just map these sequences the same way as ! above. ! ! The next two cases are problems even if there is a initialization file for ! your terminal type. ! ! 2. The initialization file for your terminal doesn't bind arrow keys. ! ! If your terminal type is `xterm', you will have to bind the arrow keys ! as in part 1 above, since the xterm.el file doesn't do anything useful. ! There may be other terminal types with the same problem. ! ! 3. Your terminal's arrow keys send individual control characters. ! ! For example, the arrow keys on an ADM-3 send C-h, C-j, C-k, and C-l. ! ! There is not much Emacs can do in this situation, since all the control ! characters except for C-^ and C-\ are already used as Emacs commands. ! It may be possible to convince the terminal to send something else when ! you press the arrow keys; it is worth investigating. ! ! You have to make the hard choices of how to rebind keys to commands to ! make things work the way you want. Another alternative is to start ! learning the standard Emacs keybindings for moving point around: C-b, ! C-f, C-p, and C-n. Personally, I no longer use the arrow keys when ! editing because I have switched keyboards so many times. ! ! 4. Your terminal's arrow keys send sequences beginning with "ESC [". ! ! Due to an extremely poor design decision (ie., these sequences are ANSI ! standard), none of the the terminal-specific initialization files that ! are distributed with Emacs will bind these character sequences to the ! appropriate commands by default. (This also applies to any other ! function keys which generate character sequences starting with "ESC ! [".) This is because it was deemed far more important to preserve the ! binding of M-[ to the backward-paragraph command. It appears that this ! will change in Emacs 19. ! ! Some of the terminal-specific initialization files that come with Emacs ! provide a command enable-arrow-keys that will fix this problem. To get ! this automatically invoked, put this in your .emacs: ! ! (setq term-setup-hook ! (function ! (lambda () ! (if (fboundp 'enable-arrow-keys) (enable-arrow-keys))))) ! ! We put this in our lisp/default.el file, so users don't have to worry ! about it: ! ! ;; don't override a user's term-setup-hook ! (or term-setup-hook ! (setq term-setup-hook ! (function ! (lambda () ! (and (fboundp 'enable-arrow-keys) ! ;; don't override a user key mapping ! (eq 'backward-paragraph (lookup-key esc-map "[")) ! (enable-arrow-keys)))))) ! ! If your terminal type is `sun', you should put this in your .emacs ! instead (or in addition to the above): ! ! (setq sun-esc-bracket t) ! ! It is possible that the terminal-specific initialization file for your ! terminal type was written locally and does not follow the rule ! mentioned above. In this case you may need to inspect it to find out ! how to enable the arrow keys. (Actually, if it was written locally, it ! probably enables the arrow keys by default.) ! ! 136: How do I "swap" two keys? ! ! When Emacs receives a character, you can make Emacs behave as though it ! received another character by setting the value of ! keyboard-translate-table. The following Emacs Lisp will do this for you, ! allowing you to "swap" keys. After arranging for this Lisp to be ! evaluated by Emacs, you can evaluate `(swap-keys ?A ?B)' to swap A and B. ! ! (defun swap-keys (key1 key2) ! "Swap keys KEY1 and KEY2 using map-key." ! (map-key key1 key2) ! (map-key key2 key1)) ! ! (defun map-key (from to) ! "Make key FROM behave as though key TO was typed instead." ! (setq keyboard-translate-table ! (concat keyboard-translate-table ! (let* ((i (length keyboard-translate-table)) ! (j from) ! (k i) ! (str (make-string (max 0 (- j (1- i))) ?X))) ! (while (<= k j) ! (aset str (- k i) k) ! (setq k (1+ k))) ! str))) ! (aset keyboard-translate-table from to) ! (let ((i (1- (length keyboard-translate-table)))) ! (while (and (>= i 0) (eq (aref keyboard-translate-table i) i)) ! (setq i (1- i))) ! (setq keyboard-translate-table ! (if (eq i -1) ! nil ! (substring keyboard-translate-table 0 (1+ i)))))) ! ! NOTE: You must evaluate the definition of these functions before calling ! them! For example, list the function definitions before their use in your ! .emacs file. ! ! NOTE: These functions take two numbers as arguments. The example above, ! `(swap-keys ?A ?B)' is actually `(swap-keys 65 66)', because `?A' is ! merely notation for 65, the ASCII value of `A'. ! ! NOTE: These functions only work for single characters. You cannot swap ! two multi-character sequences. ! ! 137: How do I produce C-XXX with my keyboard? ! ! For C-@ and C-^, often you can just type Control-2 and Control-6. For ! C-_, you may have to hold down the shift key, typing Control-Shift-Hyphen. ! C-@ can often be generated by typing Control-Space. C-@ is often called ! the NUL character, and has ASCII value 0. C-_ can often be generated by ! typing Control-7 or Control-/. C-? (aka DEL) may be generated by typing ! Shift-BackSpace or Control-BackSpace or a key labelled Delete or Del. ! ! Try Control with all of the digits on your keyboard to see what gets ! generated. ! ! 138: What if I don't have a Meta key? ! ! Instead of typing M-a, you can type "ESC a" instead. In fact, Emacs ! converts M-a internally into "ESC a" anyway (depending on the value of ! meta-prefix-char). ! ! 139: What if I don't have an Escape key? ! ! Type C-[ instead. This should send ASCII code 27 just like an Escape ! key would. Try also C-;. ! ! 140: How do I type DEL on PC terminal emulators? ! ! Some IBM PC compatibles do not have a key labeled `Del' or `Delete' {is ! this true?}. Those that do generally have it in an inconvenient location. ! (Also, in some terminal emulators, the `Del' key does not transmit DEL.) ! The result is the standard "BackSpace invoking help" problem (see question ! 133). ! ! The usual solution, suggested by Michael Covington ! , is to somehow tell the terminal emulator ! program that BackSpace should transmit DEL. Read the program's manual. ! Shift-BackSpace or Control-BackSpace may send DEL. The `Del' key may only ! send DEL if the NumLock key hasn't been pressed. ! ! 141: Can I make my `Compose Character' key behave like a Meta key? ! On a dumb terminal such as a VT220, no. It is rumored that certain VT220 clones could have their Compose key configured this way. If you're using ! X, you might be able to do this with the `xmodmap' program (this is ! what I do). ! ! 142: How do I bind a combination of modifier key and function key? ! ! Unless you're using Emacs under emacstool (or xvetool?), have a working ! version of x-rebind-key (see question 128), or are using Emacs 19 (Lucid ! Emacs), you can't do this with Emacs alone. ! ! If you are using emacstool, Emacs sees different character sequences for ! the combination of a modifier and a function key from what it sees for the ! function key alone. See etc/emacstool.1 for more information. Since ! Emacs sees different character sequences, you can bind these different ! sequences to different commands. ! ! If you are running Emacs inside a terminal emulator window like xterm, you ! can modify its translation tables to make it generate different character ! sequences for the combination of a modifier and a function key. For ! example, this X resource setting: ! ! XTerm.VT100.Translations: #override \ ! ShiftF1: string(0x1b) string("[xyzzy") ! ! makes Shift-F1 generate the character sequence "ESC [ xyzzy". You can ! bind these character sequences in Emacs as normal. Nick Ruprecht ! has written an extensive X ! translation mapping for xterm that does this. {Does this have an FTP ! site?} ! ! If you have x-rebind-key, you can have any arbitrary combination of ! modifiers with a key replaced by any sequence of "normal" characters. For ! example, this makes Shift-Return behave as though you had typed "C-x C-e" ! (example from Jerry Graves): ! ! (x-rebind-key "Return" 'shift "\C-x\C-e") ! ! In Emacs 19 (Lucid Emacs), you can bind Meta-Left-Arrow like this (example ! from Jamie Zawinski): ! ! (global-set-key '(meta left) 'backward-word) ! ! With the last two methods, use `xmodmap' and `xev' to discover the keysym ! and modifier names. ! ! 143: Why doesn't my Meta key work in an xterm window? ! Try all of these methods before asking for further help: ! * You may have big problems using `mwm' as your window manager. {Does anyone know a good generic solution to allow the use of the Meta key in Emacs with mwm?} ! ! * For X11R4: Make sure it really is a Meta key. Use `xev' to find out ! what keysym your Meta key generates. It should be either Meta_L or ! Meta_R. If it isn't, use xmodmap to fix the situation. ! * Make sure the pty the xterm is using is passing 8 bit characters. `stty -a' (or `stty everything') should show `cs8' somewhere. If it --- 2435,2655 ---- kind of flow control. You will probably have to ask your local network experts for help with this. ! * tty and/or pty devices ! If your connection to Emacs goes through multiple tty and/or pty devices, they may be using XON/XOFF flow control even when it is not necessary. ! Eirik Fuller writes: ! Some versions of `rlogin' (and possibly telnet) do not pass flow control characters to the remote system to which they connect. On ! such systems, Emacs on the remote system cannot disable flow ! control on the local system. Sometimes `rlogin -8' will avoid this ! problem. ! One way to cure this is to disable flow control on the local host ! (the one running rlogin, not the one running rlogind) using the ! stty command, before starting the rlogin process. On many systems, ! `stty start u stop u' will do this. ! Some versions of `tcsh' will prevent even this from working. One way around this is to start another shell before starting rlogin, and issue the stty command to disable flow control from that shell. ! Use `stty -ixon' instead of `stty start u stop u' on some systems. ! * Make Emacs speak the XON/XOFF flow control protocol. ! You can make Emacs treat C-s and C-q as flow control characters by ! evaluating the form ! ! (enable-flow-control) ! ! to unconditionally enable flow control or ! ! (enable-flow-control-on "vt100" "h19") ! ! (using your terminal names instead of "vt100" or "h19") to enable ! selectively. These commands will automatically swap `C-s' and `C-q' to ! `C-\' and `C-^'. Variables can be used to change the default swap keys ! (`flow-control-c-s-replacement' and `flow-control-c-q-replacement'). ! If you are fixing this for yourself, simply put the form in your .emacs file. If you are fixing this for your entire site, the best place to ! put it is in the lisp/site-start.el file. Putting this form in ! lisp/default.el has the problem that if the user's .emacs file has an ! error, this will prevent lisp/default.el from being loaded and Emacs ! may be unusable for the user, even for correcting their .emacs file ! (unless they're smart enough to move it to another name). ! ! For further discussion of this issue, read the file PROBLEMS (in the ! top-level directory when you unpack the Emacs source). ! ! 111: How do I bind `C-s' and `C-q' (or any key) if these keys are filtered ! out? ! ! To bind `C-s' and `C-q', use either `enable-flow-control' or ! `enable-flow-control-on'. See question 110 for usage and implementation ! details. ! ! To bind other keys, use `keyboard-translate'. See question 114 for usage ! details. To do this for an entire site, you should swap the keys in ! lisp/site-start.el. See question 110 for an explanation of why ! lisp/default.el should not be used. ! ! NOTE: * If you do this for an entire site, the users will be confused by ! the disparity between what the documentation says and how Emacs ! actually behaves. ! ! 112: Why does the `Backspace' key invoke help? ! ! The `Backspace' key (on most keyboards) generates ASCII code 8. `C-h' ! sends the same code. In Emacs by default `C-h' invokes help-command. This is intended to be easy to remember since the first letter of "help" ! is "h." The easiest solution to this problem is to use `C-h' (and ! Backspace) for help and DEL (the Delete key) for deleting the previous character. ! For many people this solution may be problematic: ! ! * They normally use Backspace outside of Emacs for deleting the previous character typed. This can be solved by making DEL be the command for deleting the previous character outside of Emacs. This command will do this on many Unix systems: ! stty erase '^?' ! ! * The person may prefer using the Backspace key for deleting the previous character because it is more conveniently located on their keyboard or because they don't even have a separate Delete key. In this case, the ! Backspace key should be made to behave like Delete. There are several methods. ! ! * Some terminals (e.g., VT3## terminals) allow the character generated by ! the Backspace key to be changed from a setup menu. ! ! * You may be able to get a keyboard that is completely programmable. ! ! * Under X or on a dumb terminal, it is possible to swap the Backspace and ! Delete keys inside Emacs: ! ! (keyboard-translate ?\C-h ?\C-?) ! ! See question 114 for further details of `keyboard-translate'. ! ! * Another approach is to switch key bindings and put help on "C-x h" ! instead: ! ! (global-set-key [?\C-h] 'delete-backward-char) ! (global-set-key [?\C-x ?h] 'help-command) ! ;; overrides mark-whole-buffer ! ! Other popular key bindings for help are M-? and "C-x ?". ! ! NOTE: * Don't try to bind DEL to help-command, because there are many ! modes that have local bindings of DEL that will interfere. ! ! 113: Why doesn't Emacs look at the stty settings for Backspace vs. Delete? ! Good question! ! ! 114: How do I "swap" two keys? ! ! In Emacs 19, you can swap two keys (or key sequences) by using the ! `keyboard-translate' function. For example, to turn `C-h' into DEL and ! DEL to `C-h', use ! ! (keyboard-translate ?\C-h ?\C-?) ; translate `C-h' to DEL ! (keyboard-translate ?\C-? ?\C-h) ; translate DEL to `C-h'. ! ! The first key sequence of the pair after the function identifies what is ! produced by the keyboard; the second, what is matched for in the keymaps. ! ! Keyboard translations are not the same as key bindings in keymaps. Emacs ! contains numerous keymaps that apply in different situations, but there ! is only one set of keyboard translations, and it applies to every ! character that Emacs reads from the terminal. Keyboard translations take ! place at the lowest level of input processing; the keys that are looked ! up in keymaps contain the characters that result from keyboard ! translation. ! ! Also see `Keyboard Translations' in the on-line manual. ! ! 115: How do I produce C-XXX with my keyboard? ! ! On terminals (but not under X), some common "aliases" are: ! ! CTRL-2 or CTRL-SPC for C-@ ! CTRL-6 for C-^ ! CTRL-7 or CTRL-SHIFT-- for C-_ ! CTRL-4 for C-\ ! CTRL-5 for C-] ! CTRL-/ for C-? ! ! Often other aliases exist; use the `C-h c' command and try `CTRL' with ! all of the digits on your keyboard to see what gets generated. You can ! also try the `C-h w' command if you know the name of the command. ! ! 116: What if I don't have a Meta key? ! ! Instead of typing "M-a", you can type "ESC a". In fact, Emacs converts ! M-a internally into "ESC a" anyway (depending on the value of ! meta-prefix-char). Note that you press "Meta" and "a" together, while ! you press "ESC", release it, and then press "a". ! ! 117: What if I don't have an Escape key? ! ! Type "C-[" instead. This should send ASCII code 27 just like an Escape ! key would. "C-3" may also work on some terminal (but not under X). For ! many terminals (notably DEC terminals) "F11" generates the "ESC" key. If ! not, the following form can be used bind it: ! ! (define-key function-key-map [f11] [?\e]) ; F11 is the documented ESC ! ; replacement on DEC terminals. ! ! 118: Can I make my `Compose Character' key behave like a Meta key? ! On a dumb terminal such as a VT220, no. It is rumored that certain VT220 clones could have their Compose key configured this way. If you're using ! X, you might be able to do this with the `xmodmap' program. ! ! 119: How do I bind a combination of modifier key and function key? ! ! With Emacs 19 you can indicate modified function keys in vector format ! through multi-prefixing the function key symbol. For example (from the ! Emacs on-line documentation): ! ! (global-set-key [?\C-x right] 'forward-page) ! ! where "?\C-x" is the Lisp character constant for the character "C-x". ! ! You can use the modifier keys CTRL, META, HYPER, SUPER, ALT and SHIFT ! with function keys. To represent these modifiers, prepend the strings ! "C-", "M-", "H-", "s-", "A-" and "S-" to the symbol name. Thus, here is ! how to make "Hyper-Meta-RIGHT" move forward a word: ! ! (global-set-key [H-M-right] 'forward-word) ! ! NOTE: * Not all modifiers are permitted in all situations. HYPER, SUPER, ! and ALT are available only under X (provided there are such ! keys). Non-ASCII keys and mouse events (e.g. "C-=" and ! "mouse-1") also fall under this category. ! ! See question 104 for general key binding instructions. ! ! 120: Why doesn't my Meta key work in an xterm window? ! Try all of these methods before asking for further help: ! * You may have big problems using `mwm' as your window manager. {Does anyone know a good generic solution to allow the use of the Meta key in Emacs with mwm?} ! ! * For X11: Make sure it really is a Meta key. Use `xev' to find out what ! keysym your Meta key generates. It should be either Meta_L or Meta_R. ! If it isn't, use xmodmap to fix the situation. ! * Make sure the pty the xterm is using is passing 8 bit characters. `stty -a' (or `stty everything') should show `cs8' somewhere. If it *************** *** 3800,3828 **** shows `cs7' instead, use `stty cs8 -istrip' (or `stty pass8') to fix it. ! * If there is an rlogin connection between the xterm and the Emacs, the ! `-8' argument may need to be given to rlogin to make it pass all 8 ! bits of every character. ! * If the Emacs is running under Ultrix, it is reported that evaluating (set-input-mode t nil) helps. ! * If all else fails, you can make xterm generate "ESC W" when you type M-W, which is the same conversion Emacs would make if it got the M-W anyway. In X11R4, the following resource specification will do this: ! XTerm.VT100.EightBitInput: false ! (This changes the behavior of the insert-eight-bit action.) ! With older xterms, you can specify this behavior with a translation: ! XTerm.VT100.Translations: #override \ Meta: string(0x1b) insert() ! You might have to replace `Meta' with `Alt'. ! ! 144: Why doesn't my ExtendChar key work as a Meta key under HP-UX 8.0? ! This is a result of an internationalization extension in X11R4 and the fact that HP is now using this extension. Emacs assumes that --- 2656,2684 ---- shows `cs7' instead, use `stty cs8 -istrip' (or `stty pass8') to fix it. ! * If there is an rlogin connection between the xterm and the Emacs, the ! `-8' argument may need to be given to rlogin to make it pass all 8 bits ! of every character. ! * If the Emacs is running under Ultrix, it is reported that evaluating (set-input-mode t nil) helps. ! * If all else fails, you can make xterm generate "ESC W" when you type M-W, which is the same conversion Emacs would make if it got the M-W anyway. In X11R4, the following resource specification will do this: ! XTerm.VT100.EightBitInput: false ! (This changes the behavior of the insert-eight-bit action.) ! With older xterms, you can specify this behavior with a translation: ! XTerm.VT100.Translations: #override \ Meta: string(0x1b) insert() ! You might have to replace `Meta' with `Alt'. ! ! 121: Why doesn't my ExtendChar key work as a Meta key under HP-UX 8.0? ! This is a result of an internationalization extension in X11R4 and the fact that HP is now using this extension. Emacs assumes that *************** *** 3831,3988 **** kludge is to run this command after each time the X server is started but preferably before any xterm clients are: ! xmodmap -e 'remove mod1 = Mode_switch' ! NOTE: This will disable the use of the extra keysyms systemwide, which may be undesirable if you actually intend to use them. - - 145: Where can I get key bindings to make Emacs emulate WordStar? - - There is a package `wordstar' by Jim Frost and - `ws-mode.el' by Juergen Nickelsen . Check in the - Emacs Lisp Archive (see question 89). - - 146: Where can I get an XEDIT emulator for Emacs? - - This question comes up once every couple of months. I have never seen a - positive reply, so I presume no one has ever written one. - Using Emacs with Alternate Character Sets ! 147: How do I make Emacs display 8-bit characters? ! ! There is a patch called the `8-bit ctl-arrow patch' that allows Emacs to ! display characters with codes from 128 to 255. {The original appears to ! have been by Kenneth Cline .} Partially based ! on Johan Widen's earlier work, Johan Vromans has updated this ! patch for Emacs 18.58 along with some other 8-bit improvements. ! ! Anonymous FTP: ! /ftp.eu.net:gnu/emacs/FP-EightBit.Z ! /ftp.urc.tue.nl:/pub/tex/emacs/FP-EightBit ! /cs.purdue.edu:pub/ygz/cemacs.tar.Z:cemacs/8bit-patch-18.57 ! /sics.se:archive/emacs-18.55-8bit-diff ! /laas.laas.fr:pub/emacs/patch-8bit-18.55 ! /laas.laas.fr:pub/emacs/patch-8bit-18.57 ! ! Via e-mail: ! To: mail-server@sics.se ! body: send emacs-18.55-8bit-diff ! ! Anders Edenbrandt has produced a more comprehensive ! patch for Emacs 18.59 that allows for 8-bit input and output. ! ! Anonymous FTP: ! /ftp.efd.lth.se:pub/gnu/emacs_8-bit.patch ! In the words of the author: ! With these patches, Emacs becomes fully 8-bit operational. There is ! support for displaying 8-bit characters, as well as for entering such ! characters from the keyboard. In addition, upcase/lowcase translation ! is supported, accented characters are recognized as "letters" (important ! when doing 'forward-word', for example), and text with 8-bit characters ! can be sorted correctly. ! ! A Meta-shift key can still be used, provided that you run in an ! environment where it is possible to distinguish between a character ! entered using the Meta-shift key and one entered directly. The diffs ! include patches to make this work under SunView (with emacstool) as ! well as under X. If you can't use a Meta-shift key, you have to enter ! Meta-commands with the ESC-prefix. ! ! The most comprehensive patches for 8-bit output are by Howard Gayle ! (originally for Emacs 18.55. These patches allow displaying any arbitrary ! string for a given 8-bit character (except TAB and C-j). Also supported ! is defining the sorting order and the uppercase and lowercase ! translations. It is reported that the 8-bit character support in Emacs 19 ! is largely based on these patches. Thomas Bellman ! has updated these patches for Emacs 18.59. ! ! Anonymous FTP: ! /sics.se:archive/emacs-gayle.tar.Z (patches for 18.55) ! /ftp.lysator.liu.se:pub/emacs/gayle-18.58.diff.tar.Z (patches) ! /ftp.lysator.liu.se:pub/emacs/emacs-18.59-gayle.tar.Z (patched Emacs) ! ! Epoch's 8-bit character support is based on Anders Edenbrandt's patches. ! Lucid Emacs has the ctl-arrow patch installed. Nemacs displays 8-bit ! characters, and it may be useful for displaying the 8-bit ISO-8859 ! alphabet, but I don't know for sure (see question 149). ! ! 148: How do I input 8-bit characters? ! ! Minor modes for ISO Latin-1 that allow one to easily input this character ! set have been written by several people. Such modes have been written by ! Matthieu Herrb (laas.laas.fr:pub/emacs/iso-latin-1.el), ! Johan Vromans {FTP site??}, and Marc Shapiro ! {FTP site??}. ! ! These approaches differ from the one taken by Anders Edenbrandt in that ! his method uses direct 8-bit input, while these methods use a compose ! sequence for 8-bit characters. {I have heard conflicting reports on ! whether this results in losing the Meta key. Perhaps this depends on ! whether Emacs is running under X. Can someone resolve this?} ! ! Karl Heuer is said to have a patch to allow ! 8-bit input. Georg-Wilhelm Koltermann also has a ! patch for either 18.57 or 18.58 that allows 8-bit input. ! ! Epoch comes with a patch that allows it to input 8-bit characters, but it ! is not enabled by default. {Is this right?} ! ! Jamie Zawinski says: ! ! Lucid GNU Emacs allows the input of any ISO-8859/1 keysyms that your ! keyboard generates (see xmodmap), and contains a package that implements ! a DEC/OpenWindows-like "Compose" key for systems which don't have one. ! ! 149: Where can I get an Emacs that can handle kanji characters? ! Nemacs 3.3.2 (Nihongo GNU Emacs) is a modified version of GNU Emacs 18.55 that handles kanji characters. It is available via anonymous FTP: ! /crl.nmsu.edu:pub/misc/nemacs-3.3.2.tar.Z ! /miki.cs.titech.ac.jp:JAPAN/nemacs/nemacs-3.3.2.tar.Z ! ! You might also need files for "wnn", a kanji input method (wnn-4.0.3{-README,.tar.Z} {on which machine?}). You need a terminal (or ! terminal emulator) that can display text encoded in JIS, Shift-JIS, or EUC ! (Extended Unix Code), or the ability to run Nemacs as a direct X Window ! client. ! ! 150: Where can I get an Emacs that can handle Chinese? ! ! `cemacs' by Stephen G. Simpson is a patch to Emacs 18.57 (the ctl-arrow patch) and some Emacs Lisp code that combined with Cxterm allows using Chinese characters. It is available via anonymous FTP: ! ! /crl.nmsu.edu:pub/chinese/cemacs.tar.Z /cs.purdue.edu:pub/ygz/cemacs.tar.Z ! ! Cxterm is available from the same place: ! /cs.purdue.edu:pub/ygz/cxterm-11.5.1.tar.Z ! ! 151: Where is an Emacs that can handle Semitic (right-to-left) alphabets? ! Joel M. Hoffman writes: ! ! A couple of years ago a wrote a hebrew.el file that allows right-to-left ! editing of Hebrew. I relied on the hardware to display the Hebrew ! letters, given the right codes, but not for any right-to-left support; ! the hardware also doesn't have to send any specific char. codes. Emacs ! keeps track of when the user is typing Hebrew vs. English. (The VT-* ! terminals in Israel contain built-in support for Hebrew.) ! ! To get it to work I had to modify only a few lines of GNU Emacs's source ! code --- just enough to make it 8-bit clean. ! [and in a separate message:] ! It doesn't produce time-order ["sefer" format] (I wouldn't recommend ! trying that with emacs, because converting time-order to screen-order with arbitrarily long lines is a bit tricky), but I also concocted a quick filter to convert screen-order into time-order. I'll be happy to --- 2687,2794 ---- kludge is to run this command after each time the X server is started but preferably before any xterm clients are: ! xmodmap -e 'remove mod1 = Mode_switch' ! NOTE: This will disable the use of the extra keysyms systemwide, which may be undesirable if you actually intend to use them. + 122: Where can I get key bindings to make Emacs emulate WordStar? + There is a package `wordstar' by Jim Frost located under + the "misc" directory at the Emacs Lisp Archive. + + 123: Where can I get an XEDIT emulator for Emacs? + + This question comes up once every couple of months. Searing for "xedit" + through most recent Lisp Code Directory fails to match any entries. + Using Emacs with Alternate Character Sets ! 124: How do I make Emacs display 8-bit characters? ! GNU Emacs 19 has built-in support for 8-bit characters. Here is an ! excerpt from the `European Display' page of the on-line manual: ! Some European languages use accented letters and other special symbols. ! The ISO 8859 Latin-1 character set defines character codes for many ! European languages in the range 160 to 255. ! ! Emacs can display those characters according to Latin-1, provided the ! terminal or font in use supports them. The `M-x ! standard-display-european' command toggles European character display ! mode. With a numeric argument, `M-x standard-display-european' enables ! European character display if and only if the argument is positive. ! ! Some operating systems let you specify the language you are using by ! setting a locale. Emacs handles one common special case of this: if ! your locale name for character types contains the string `8859-1' or ! `88591', Emacs automatically enables European character display mode ! when it starts up. ! ! 125: How do I input 8-bit characters? ! ! Again, from the `European Display' page of the on-line manual: ! ! If you enter non-ASCII ISO Latin-1 characters often, you might find ISO ! Accents mode convenient. When this minor mode is enabled, the ! characters ``', `'', `"', `^', `/' and `~' modify the following letter ! by adding the corresponding diacritical mark to it, if possible. To ! enable or disable ISO Accents mode, use the command `M-x ! iso-accents-mode'. This command affects only the current buffer. ! ! To enter one of those six special characters, type the character, ! followed by a space. Some of those characters have a corresponding ! "dead key" accent character in the ISO Latin-1 character set; to enter ! that character, type the corresponding ASCII character twice. For ! example, `''' enters the Latin-1 character acute-accent (character code ! 0264). ! ! 126: Where can I get an Emacs that can handle kanji characters? ! Nemacs 3.3.2 (Nihongo GNU Emacs) is a modified version of GNU Emacs 18.55 that handles kanji characters. It is available via anonymous FTP: ! /crl.nmsu.edu:pub/misc/nemacs-3.3.2.tar.Z ! /ftp.cs.titech.ac.jp:pub/gnu-rel/nemacs/nemacs-3.3.2.tar.gz ! ! You might also need files for "wnn," a kanji input method (wnn-4.0.3{-README,.tar.Z} {on which machine?}). You need a terminal (or ! terminal emulator) that can display text encoded in JIS, Shift-JIS, or ! EUC (Extended Unix Code), or the ability to run Nemacs as a direct X ! Windows client. ! ! 127: Where can I get an Emacs that can handle Chinese? ! ! Cemacs by Stephen G. Simpson is a patch to Emacs 18.57 (the ctl-arrow patch) and some Emacs Lisp code that combined with Cxterm allows using Chinese characters. It is available via anonymous FTP: ! /cs.purdue.edu:pub/ygz/cemacs.tar.Z ! ! Cxterm, a patch to Emacs 18.57 that allows you to enter Chinese ! characters, is available from the same place: ! /cs.purdue.edu:pub/ygz/cxterm-11.5.1.tar.Z ! ! 128: Where is an Emacs that can handle Semitic (right-to-left) alphabets? ! Joel M. Hoffman writes: ! ! A couple of years ago a wrote a hebrew.el file that allows ! right-to-left editing of Hebrew. I relied on the hardware to display ! the Hebrew letters, given the right codes, but not for any ! right-to-left support; the hardware also doesn't have to send any ! specific char. codes. Emacs keeps track of when the user is typing ! Hebrew vs. English. (The VT-* terminals in Israel contain built-in ! support for Hebrew.) ! ! To get it to work I had to modify only a few lines of GNU Emacs's ! source code --- just enough to make it 8-bit clean. ! [and in a separate message:] ! It doesn't produce time-order ["sefer" format] (I wouldn't recommend ! trying that with Emacs, because converting time-order to screen-order with arbitrarily long lines is a bit tricky), but I also concocted a quick filter to convert screen-order into time-order. I'll be happy to *************** *** 3989,3993 **** send you the requisite files if you want them. If you're using it for anything large, however, you'll want something that works better. ! Joel Hoffman has also written a "bi-directional bi-lingual Emacs-like" editor for MS-DOS named Ibelbe (Itty Bitty Emacs-Like Bidirectional --- 2795,2799 ---- send you the requisite files if you want them. If you're using it for anything large, however, you'll want something that works better. ! Joel Hoffman has also written a "bi-directional bi-lingual Emacs-like" editor for MS-DOS named Ibelbe (Itty Bitty Emacs-Like Bidirectional *************** *** 3994,4090 **** Editor). Ibelbe is written in Turbo Pascal and comes with source code. Here is the description: ! ! Ibelbe looks like emacs (it even has a minibuffer and filename completion), and fully supports both right-to-left and left-to-right editing. Other than an EGA monitor or better, no special hardware is required. You will need an EGA Hebrew font to use Ibelbe with Hebrew. ! Anonymous FTP: ! /israel.nysernet.org:israel/msdos/ibelbe.zip ! /israel.nysernet.org:israel/msdos/hebfont.zip ! Joseph Friedman has written patches for Emacs 18.55 and 18.58 that provide Semitic language support under X Windows. ! Warren Burstein says he has mapped 7-bit keys by ! modifying self-insert-command "for Hebrew input on 7-bit keyboards". ! A good suggestion is to query archie for files named with `hebrew'. - - GNU Emacs FAQ: Mail and News - This portion of the GNU Emacs FAQ list is cross-posted to `gnu.emacs.gnus' - because many of the questions herein deal with GNUS. See `gnu.emacs.help' for - the rest of the FAQ list. - - If you are viewing this text in a GNU Emacs Buffer, you can type "M-2 C-x $" to - get an overview of just the questions. Then, when you want to look at the text - of the answers, just type "C-x $". - - To search for a question numbered XXX, type "M-C-s ^XXX:", followed by a C-r if - that doesn't work, then type ESC to end the search. - - A `+' in the 78th column means something was inserted on the line. A `-' means - something was deleted and a `!' means some combination of insertions and - deletions occurred. - - Full instructions for getting the latest FAQ are in question 22. Also see the - `Introduction to news.answers' posting in the `news.answers' newsgroup, or send - e-mail to `mail-server@rtfm.mit.edu' with `help' on a body line, or use FTP, - WAIS, or Prospero to rtfm.mit.edu. ! Mail and News ! 152: How do I change the included text prefix in mail/news followups? ! ! Many people want Emacs to prefix included text with something like ` > ' ! instead of with three spaces. One way is to change the code of the ! function `mail-yank-original' in lisp/sendmail.el that prefixes with ! spaces. A more flexible solution is to use Supercite, which provides wide ! configurability in how you format included text in replies. See question ! 107. Both of these solutions work for RMAIL and GNUS. ! A related problem is how to prevent Emacs from including various headers of the replied-to message. For this, you should set the value of mail-yank-ignored-headers, which takes a regexp value. ! ! 153: How do I save a copy of outgoing mail? ! ! Two methods: ! ! 1. (setq mail-self-blind t) will result in a `BCC:' header line with your ! address being added to mail composition buffers. This will cause the ! mail system to send a copy of the mail back to you. ! ! 2. (setq mail-archive-file-name (expand-file-name "~/outgoing")) will ! result in an `FCC:' header line with the pathname of ~/outgoing being ! added to mail composition buffers. When you send the mail, Emacs will ! save a copy of the mail in the file ~/outgoing and then strip off the ! `FCC:' line before actually sending. ! ! WARNING: There is a bug in Emacs 18.58 that prevents mail readers such ! as RMAIL from reading the saved mail messages individually. See ! question 155. ! ! WARNING: If you are visiting the file ~/outgoing at the time you send ! the mail, this can cause a variety of horrible problems. Jamie ! Zawinski has written a solution for this. ! It does not work to put `set record filename' in the .mailrc file. ! ! 154: Why doesn't Emacs expand my aliases when sending mail? ! * You must separate multiple addresses in the headers of the mail buffer with commas. This is because Emacs supports RFC822 standard addresses like this one: ! To: Willy Smith ! However, you do not need to separate addresses with commas in your .mailrc file. ! WARNING: Emacs breaks up aliases in the .mailrc file into multiple addresses both on commas and on whitespace, regardless of any use of --- 2800,2871 ---- Editor). Ibelbe is written in Turbo Pascal and comes with source code. Here is the description: ! ! Ibelbe looks like Emacs (it even has a minibuffer and filename completion), and fully supports both right-to-left and left-to-right editing. Other than an EGA monitor or better, no special hardware is required. You will need an EGA Hebrew font to use Ibelbe with Hebrew. ! Anonymous FTP: ! /israel.nysernet.org:israel/computers/software/msdos/ibelbe.zip ! /israel.nysernet.org:israel/computers/software/msdos/hebfont.zip ! Joseph Friedman has written patches for Emacs 18.55 and 18.58 that provide Semitic language support under X Windows. ! Warren Burstein says he has mapped 7-bit keys by ! modifying self-insert-command "for Hebrew input on 7-bit keyboards." ! A good suggestion is to query archie for files named with `hebrew'. + Mail and News + 129: How do I change the included text prefix in mail/news followups? ! If you read mail with Rmail or news with Gnus, set the variable ! mail-yank-prefix. For VM, set vm-included-text-prefix. For mh-e, set ! mh-ins-buf-prefix. ! For fancier control of citations, use Supercite. See question 93. ! A related problem is how to prevent Emacs from including various headers of the replied-to message. For this, you should set the value of mail-yank-ignored-headers, which takes a regexp value. ! ! 130: How do I save a copy of outgoing mail? ! ! You can either mail yourself a copy by including a `BCC:' header in the ! mail message, or store a copy of the message directly to a file by ! including an `FCC:' header. ! ! If you use standard mail, you can automatically create a `BCC:' to ! yourself by putting ! ! (setq mail-self-blind t) ! ! in your .emacs. You can automatically include an `FCC:' field by putting ! something like the following in your .emacs file: ! ! (setq mail-archive-file-name (expand-file-name "~/outgoing")) ! ! The output file will be in Unix mail format, which can be read directly ! by VM, but not always by Rmail. See question 132. ! ! If you use mh-e add an FCC: or BCC: field to your components file. ! It does not work to put `set record filename' in the .mailrc file. ! ! 131: Why doesn't Emacs expand my aliases when sending mail? ! * You must separate multiple addresses in the headers of the mail buffer with commas. This is because Emacs supports RFC822 standard addresses like this one: ! To: Willy Smith ! However, you do not need to separate addresses with commas in your .mailrc file. ! WARNING: Emacs breaks up aliases in the .mailrc file into multiple addresses both on commas and on whitespace, regardless of any use of *************** *** 4091,4095 **** quotes. This is probably a bug. You can get around this by directly setting the value of mail-aliases. ! * Emacs normally only reads the `.mailrc' file once per session, when you start to compose your first mail message. If you edit .mailrc, you can --- 2872,2876 ---- quotes. This is probably a bug. You can get around this by directly setting the value of mail-aliases. ! * Emacs normally only reads the `.mailrc' file once per session, when you start to compose your first mail message. If you edit .mailrc, you can *************** *** 4096,4100 **** type "M-ESC (build-mail-aliases) RET" to make Emacs reread .mailrc. (You have to include the parentheses where they are shown!) ! * Emacs does not interpret vendor-specific additions to the format of the .mailrc file such as the `source' command. It also ignores any `set' --- 2877,2881 ---- type "M-ESC (build-mail-aliases) RET" to make Emacs reread .mailrc. (You have to include the parentheses where they are shown!) ! * Emacs does not interpret vendor-specific additions to the format of the .mailrc file such as the `source' command. It also ignores any `set' *************** *** 4101,4234 **** commands. The only commands it looks at are `alias' and `group' commands. ! ! 155: Why does RMAIL think all my saved messages are one big message? ! ! There is a bug for FCC-ed messages in Emacs 18.58 where it adds a timezone ! on the "From " line after the year instead of before the year. (Before it ! didn't add the timezone at all.) This is incompatible with the standard ! format for the "From " line, and RMAIL in particular can no longer ! distinguish between the messages. Karl Berry , Felix Lee ! , Nick Gianniotis and many ! others have all posted patches for this. Karl's is the simplest and just ! stops Emacs from adding the timezone: ! ! >*** ./ORIG/sendmail.el Tue Jan 28 16:22:56 1992 ! >--- ./sendmail.el Thu May 14 18:23:48 1992 ! >*************** ! >*** 285,287 **** ! > (insert "\nFrom " (user-login-name) " " ! >! (current-time-string) " " timezone "\n") ! > (insert-buffer-substring rmailbuf) ! >--- 285,287 ---- ! > (insert "\nFrom " (user-login-name) " " ! >! (current-time-string) "\n") ! > (insert-buffer-substring rmailbuf) ! ! 156: How can I sort the messages in my RMAIL folder? ! ! Use rmailsort.el by Masanobu Umeda. ! ! 157: Why does RMAIL need to write to /usr/spool/mail? ! ! This is the behavior of the `movemail' program which RMAIL uses. This indicates that movemail is configured to use lock files. ! RMS writes: ! Certain systems require lock files to interlock access to mail files. On these systems, movemail must write lock files, or you risk losing mail. You simply must arrange to let movemail write them. ! Other systems use the flock system call to interlock access. On these systems, you should configure movemail to use flock. ! ! 158: How do I recover my mail files after RMAIL munges their format? ! ! Users who just want to try RMAIL out to see how it works end up trapped ! using it because saved mail in their `mbox' file has been converted into ! an incompatible format (BABYL) that only RMAIL understands. RMAIL ! provides no obvious way to reverse this transformation. Kyle Jones has ! aptly named this "the great Emacs Mail Eating Monster". To convert a mail ! file back to standard Unix format, there are several methods: ! ! * Use the rmail-output ("C-o") command within RMAIL on each message in the ! file. First use M-x rmail or M-x rmail-input to visit the RMAIL file in ! Rmail mode. Type "1 j" to go to the first message. Use the C-o command ! to output the message to a Unix format file. Type "n" to go to the next ! message. Repeat. ! ! * If the file contains hundreds of messages, you may not want to repeat ! this for all of them. Instead of the above, after getting to the first ! message type this (where "mbox" is the file you want to put the messages ! in): ! ! C-x ( C-o mbox RET M-s ^From: RET M-0 C-x ) ! ! (The rmail-search command ("M-s") is used instead of just "n" because it ! is the only command which will cause an error when it reaches the last ! message in the file, which is necessary to terminate the keyboard macro. ! This will fail if there are messages in the file that don't have a ! `From:' header. This assumes rmail-delete-after-output is nil.) ! ! It is wise to save a copy of the RMAIL file first, in case you make a ! mistake. ! ! * There are software packages available for converting files or even ! entire directories of BABYL files to standard Unix format. These are ! helpful in this situation, but are intended mainly for people who have ! used RMAIL for a long time and are converting to some other mail reader. ! Lookup `rmail', `vm', and `babyl' in the Emacs Lisp Archive (see ! question 89). ! ! You may wish to disable RMAIL to avoid accidentally destroying your mbox ! file (I have this in my .emacs): ! ! (put 'rmail 'disabled t) ; avoid mbox destruction ! ! 159: How do I make Emacs automatically start my mail/news reader? ! ! Example: ! emacs -f gnus ! ! Also: ! alias gnus 'emacs -f gnus' ! ! It is probably unwise to automatically start your mail or news reader from ! your .emacs file. This would cause problems if you needed to run two ! copies of Emacs at one time. Also, this would make it difficult for you ! to start Emacs quickly when you needed to. ! ! 160: How do I read news under Emacs? ! ! There are at least three news reading packages that operate inside Emacs. ! `rnews' comes with Emacs. GNUS and Gnews come separately. rnews will ! be replaced by GNUS in Emacs 19. ! ! rnews works only with a local news spool directory. Both GNUS and Gnews ! handle reading news remotely via NNTP in addition to reading from a local ! news spool. GNUS supports reading mail stored in MH folders or articles ! saved by GNUS. ! ! Gnews is styled after `rn' and seems to work like RMAIL. GNUS feels more ! like VM. People have complained that GNUS uses a lot of CPU time (it ! does). Some people have complained that Gnews is slower than GNUS. ! ! For more information about GNUS, see question 108. ! ! Gnews was written by Matthew P. Wiener . ! The latest version seems to be 2.0, posted October 3, 1988. Matthew ! posted some fixes on October 26, 1988. Gnews does not appear to have been ! supported after this date. In particular, it has been reported that Gnews ! does not work with Emacs 18.57. There is a newsgroup for Gnews called ! gnu.emacs.gnews. ! ! 161: Why does `rnews' say "No News is good news" when there is news? ! ! rnews doesn't speak NNTP. You may need to use GNUS or Gnews. ! ! 162: Why doesn't GNUS work anymore via NNTP? ! There is a bug in NNTP version 1.5.10, such that when multiple requests are sent to the NNTP server, the server only handles the first one before --- 2882,2957 ---- commands. The only commands it looks at are `alias' and `group' commands. ! ! * If you like, you can expand mail aliases as abbrevs, as soon as you ! type them in. To enable this feature, execute the following: ! ! (add-hook 'mail-setup-hook 'mail-abbrevs-setup) ! ! 132: Why does Rmail think all my saved messages are one big message? ! ! A file created through the FCC: field in a message is in Unix Mail ! format, not the format that Rmail uses (BABYL format). Rmail will try to ! convert a Unix mail file into BABYL format on input, but sometimes it ! makes errors. For guaranteed safety, you can make the saved- messages ! file be an inbox for your Rmail file by using the function ! set-rmail-inbox-list. ! ! 133: How can I sort the messages in my Rmail folder? ! ! In Rmail, type C-c C-s C-h to get a list of sorting functions and their ! key bindings. ! ! 134: Why does Rmail need to write to /usr/spool/mail? ! ! This is the behavior of the `movemail' program which Rmail uses. This indicates that movemail is configured to use lock files. ! RMS writes: ! Certain systems require lock files to interlock access to mail files. On these systems, movemail must write lock files, or you risk losing mail. You simply must arrange to let movemail write them. ! Other systems use the flock system call to interlock access. On these systems, you should configure movemail to use flock. ! ! 135: How do I recover my mail files after Rmail munges their format? ! ! If you have just done rmail-input on a file and you don't want to save it ! in Rmail's format (called BABYL), just kill the buffer (with C-x k). ! ! If you typed M-x rmail and it read some messages out of your inbox and ! you want to put them in a Unix mail file, use C-o on each message. ! ! If you want to convert an existing file from BABYL format to Unix mail ! format, use the command M-x unrmail: it will prompt you for the input and ! output file names. ! ! 136: How do I make Emacs automatically start my mail/news reader? ! ! To start Emacs in Gnus: ! emacs -f gnus ! ! in Rmail: ! ! emacs -f rmail ! ! A more convenient way to start with Gnus: ! alias gnus 'emacs -f gnus' ! gnus ! ! It is probably unwise to automatically start your mail or news reader ! from your .emacs file. This would cause problems if you needed to run ! two copies of Emacs at one time. Also, this would make it difficult for ! you to start Emacs quickly when you needed to. ! ! 137: How do I read news under Emacs? ! ! Use M-x gnus. It is documented in Info (see question 14). ! ! 138: Why doesn't Gnus work via NNTP? ! There is a bug in NNTP version 1.5.10, such that when multiple requests are sent to the NNTP server, the server only handles the first one before *************** *** 4235,4442 **** blocking waiting for more input which never comes. NNTP version 1.5.11 claims to fix this. ! You can work around the bug inside Emacs like this: ! (setq nntp-maximum-request 1) ! ! I also have a patch for NNTP 1.5.10 by Mike Pelletier ! that is based on the timeout code that was in ! 1.5.9. However, please try to upgrade to 1.5.11 first. ! You can find out what version of NNTP your news server is running by ! telnetting to the NNTP port (usually 119) on the news server machine (ie., ! `telnet server-machine 119'). The server should give its version number ! in the welcome message. Type `quit' to get out. ! ! 163: How do I view text with embedded underlining (eg., ClariNews)? ! Underlining appears like this: ! _^Hu_^Hn_^Hd_^He_^Hr_^Hl_^Hi_^Hn_^Hi_^Hn_^Hg ! You can destructively remove underlining with M-x ununderline-region. ! For ClariNews articles, clari-clean.el by David N. Blank-Edelman ! will remove both underlining and overstriking ! automatically. ! ! 164: When I try to post a long article in GNUS (about 10K or longer), I get ! the error, "Writing to process: no more processes, nntpd" ! ! Upgrade to Emacs 18.58 or higher. ! ! 165: How do I save all the items of a multi-part posting in GNUS? ! ! Use gnus-mark.el by Jamie Zawinski . ! ! 166: Why does GNUS put the subjects in replies beyond the 80th column? ! ! This is a feature. If you set gnus-thread-hide-subject to non-nil, GNUS will only display the subject of the first posting in a thread, even if some of the replies use different subjects. It hides the subjects by putting them past the edge of the window and setting truncate lines to t. ! If your screen looks messed up, then for some reason truncate-lines in your `*Subject*' buffer has been set to nil. It should be set to t. ! ! (I have an enhancement to GNUS 3.13 that will make it only hide the subject ! of a posting when it is unchanged from the followed-up-to posting. Thus, ! you can use the subject hiding feature and still know when someone changes ! the subject. (I have forgotten who originally gave me the idea for this.)) ! ! 167: Why is GNUS so slow to start up? ! ! GNUS does several things that take quadratic time of the number of ! newsgroups that are listed in .newsrc. The quick fix for this is to ! remove all the newsgroups in which you have no interest from your .newrc ! file by using GNUS's C-k command in the `*Newsgroup*' buffer after ! displaying all newsgroups with the L command. If you were to directly ! edit your .newsrc to remove the newsgroups, GNUS would add them back. ! ! GNUS uses a quadratic algorithm to check for duplicates when the .newsrc ! file is newer than the .newsrc.el file (ie., you edited your .newsrc). ! GNUS uses a quadratic algorithm to check for new newsgroups every time it ! connects to the news server. {There may be other quadratic algorithms ! that I am not aware of.} ! ! You can speed up GNUS by using the C-k command in the *Newsgroup* buffer ! to remove newsgroups from your .newsrc file. ! ! Of course, GNUS will run faster if you make sure it is byte-compiled. ! ! Felix Lee wrote some enhancements called `gnus-speedups.el' that fix some ! of the problems. See the Emacs Lisp Archive. ! ! 168: How do I catch up all newsgroups in GNUS? ! In the `*Newsgroup*' buffer, type the following magical incantation: ! ! M-< C-x ( C-@ c y C-u C-@ C-e C-f C-f M-0 C-x ) ! Leave off the "M-<" if you only want to catch up from point to the end of the `*Newsgroup' buffer. ! ! 169: Why can't I kill in GNUS on the Newsgroups/Keywords/Control line? ! ! GNUS 3.14.1 will complain that the `Newsgroups:', `Keywords:', and ! `Control:' headers are `Unknown header field's. ! For the `Newsgroups:' header, there is an easy workaround: kill on the ! `Xref' header instead, which will be present on any cross-posted article. ! If you really want to kill on one of these headers, you can do it like this: ! (gnus-kill nil "^Newsgroups: .*\\(bad\\.group\\|worse\\.group\\)") ! ! Various people (eg., Greg Holley ) have posted ! solutions to allow more efficient killing on these headers than the ! preceding solution. Masanobu Umeda plans to fix this problem. ! ! 170: How do I get rid of flashing messages in GNUS for slow connections? ! ! GNUS outputs "NNTP: Reading..." message and then clears them, over and ! over. In version 3.14.1 there is a variable named nntp-debug-read that ! can help. Johan Vromans wrote a fix. Others have also written ! fixes. ! ! 171: Why is catch up slow in Gnews/GNUS? ! ! Because GNUS is marking crosspostings read. {I think it should do this at ! the time the article is read to spread out the load. Maybe someone will ! write the code to do this.} ! ! 172: Why does GNUS hang for a long time when posting? ! David Lawrence explains: ! The problem is almost always interaction between NNTP and C News. NNTP ! POST asks C News's inews to not background itself but rather hang around ! and give its exit status so it knows whether the post was successful. ! (That wait will on some systems not return the exit status of the ! waited for job is a different sort of problem.) It ends up taking a ! long time because inews is calling relaynews, which often waits for ! another relaynews to free the lock on the news system so it can file the ! article. ! My preferred solution is to change inews to not call relaynews, but ! rather use newsspool. This loses some error-catching functionality, but ! is for the most part safe as inews will detect a lot of the errors on ! its own. The C News folks have sped up inews, too, so speed should look ! better to most folks as that update propagates around. ! ! 173: Why don't my news postings in GNUS get past the local machine? ! ! Three possible reasons: local distribution, C News date problem (see ! question 174, and the path problem. This piece of code may fix the path ! problem for you: ! (setq gnus-use-generic-path t) ! ! 174: Why is the GNUS-generated `Date:' header invalid? ! ! GNUS generates `Date:' headers without time zones. C-News's `inews' ! doesn't replace it with a valid header, but will generate it if not ! already there. If it is invalid, the article will not be forwarded ! properly. Quick fix: ! ! (defun gnus-inews-date () nil) ! ! This is not fixed as of GNUS 3.14.1. ! ! 175: Why doesn't GNUS generate the `Lines:' header? ! ! GNUS was written for B news, which would generate the `Lines:' header. C ! news doesn't. There is a comment in C news's `inews' that you can ! uncomment to enable this functionality. Or you can have GNUS generate the ! header, for example: ! ! ;; idea by jbryans@beach.csulb.edu (Jack Bryans) ! (defun add-lines-header () ! ;; Count the number of lines in the current posting and insert the ! ;; header line Lines into the message. ! (save-excursion ! (goto-char (point-min)) ! (if (search-forward "\n\n") ;; ***** I suspect this is wrong ***** ! (let ((lines (count-lines (point) (point-max)))) ! (forward-line -1) ! (insert-string "Lines: " lines "\n"))))) ! ! Mike Williams has written something similar. ! ! Ronald Florence has a patch for GNUS that makes it ! calculate the `Lines:' header for incoming articles when necessary that ! works for sites with local news spools. ! ! David Lawrence says that GNUS 3.14.1 generates Lines ! if gnus-news-system is Cnews. ! ! 176: Why do I get "Cannot open load file" "nntp" when compiling GNUS? ! ! Specifically, the error message is this: ! ! Error occurred processing gnus.el: File error (("Cannot open load file" "nntp")) ! ! This means that nntp.el is not in Emacs's load-path, which is easy to ! happen when compiling using the Makefile. ! ! Easiest solution: set EMACSLOADPATH in Makefile (idea from Glenn Gribble ! ): ! ! EMACSLOADPATH=/usr/local/emacs/lisp:. ! ELC= env EMACSLOADPATH=$(EMACSLOADPATH) emacs -batch -f batch-byte-compile ! ! Another solution, in hack.el put this: ! ! (defun gross-hack () (setq load-path (cons "/directory" load-path))) ! ! Then in Makefile: ! ! ELC= emacs -batch -l hack.el -f gross-hack -f batch-byte-compile ! ! 177: How do I kill all articles in GNUS but those matching a pattern? ! ! Example: ! ;; kill everything (gnus-kill "subject" "" nil nil) --- 2958,3079 ---- blocking waiting for more input which never comes. NNTP version 1.5.11 claims to fix this. ! You can work around the bug inside Emacs like this: ! (setq nntp-maximum-request 1) ! You can find out what version of NNTP your news server is running by ! telnetting to the NNTP port (usually 119) on the news server machine ! (i.e., `telnet server-machine 119'). The server should give its version ! number in the welcome message. Type `quit' to get out. ! ! 139: How do I view text with embedded underlining (e.g., ClariNews)? ! Underlining appears like this: ! _^Hu_^Hn_^Hd_^He_^Hr_^Hl_^Hi_^Hn_^Hi_^Hn_^Hg ! You can destructively remove underlining with M-x ununderline-region. ! For ClariNews articles, clari-clean.el by David N. Blank-Edelman ! will remove both underlining and ! overstriking automatically. It is available on the Lisp Code Directory ! (see question 77). ! ! 140: How do I save all the items of a multi-part posting in Gnus? ! ! Use gnus-uu. Type C-c C-v C-h in the Gnus summary buffer to see a list ! of available commands. ! ! 141: Why does Gnus put the subjects in replies beyond the 80th column? ! ! This is a feature. If you set gnus-thread-hide-subject to non-nil, Gnus will only display the subject of the first posting in a thread, even if some of the replies use different subjects. It hides the subjects by putting them past the edge of the window and setting truncate lines to t. ! If your screen looks messed up, then for some reason truncate-lines in your `*Subject*' buffer has been set to nil. It should be set to t. ! ! 142: How do I make Gnus start up faster? ! ! Remove all the newsgroups in which you have no interest from your .newsrc ! file by using Gnus's C-k or C-w commands in the `*Newsgroup*' buffer, ! perhaps after displaying all newsgroups with the L command. ! Unsubscribing will not speed up Gnus. ! ! 143: How do I catch up all newsgroups in Gnus? ! In the `*Newsgroup*' buffer, type the following magical incantation: ! ! M-< C-x ( c y M-0 C-x ) ! Leave off the "M-<" if you only want to catch up from point to the end of the `*Newsgroup' buffer. ! ! 144: Why can't I kill in Gnus on the Newsgroups/Keywords/Control line? ! ! Gnus will complain that the `Newsgroups:', `Keywords:', and `Control:' ! headers are `Unknown header field's. ! For the `Newsgroups:' header, there is an easy workaround: kill on the ! `Xref' header instead, which will be present on any cross-posted article ! (as long as your site carries the cross-post group). ! If you really want to kill on one of these headers, you can do it like this: ! (gnus-kill nil "^Newsgroups: .*\\(bad\\.group\\|worse\\.group\\)") ! ! 145: How do I get rid of flashing messages in Gnus for slow connections? ! ! Set nntp-debug-read to nil. ! ! 146: Why is catch up slow in Gnus? ! ! Because Gnus is marking crosspostings read. You can control this with ! the variable gnus-use-cross-reference. ! ! 147: Why does Gnus hang for a long time when posting? ! David Lawrence explains: ! The problem is almost always interaction between NNTP and C News. NNTP ! POST asks C News's inews to not background itself but rather hang ! around and give its exit status so it knows whether the post was ! successful. (That wait will on some systems not return the exit status ! of the waited for job is a different sort of problem.) It ends up ! taking a long time because inews is calling relaynews, which often ! waits for another relaynews to free the lock on the news system so it ! can file the article. ! My preferred solution is to change inews to not call relaynews, but ! rather use newsspool. This loses some error-catching functionality, ! but is for the most part safe as inews will detect a lot of the errors ! on its own. The C News folks have sped up inews, too, so speed should ! look better to most folks as that update propagates around. ! ! 148: Why don't my news postings in Gnus get past the local machine? ! ! It could be that your Distribution: field is "local" or a synonym, or ! your Path: field may be wrong. This piece of code may fix the latter ! problem: ! (setq gnus-use-generic-path t) ! ! 149: Why doesn't Gnus generate the `Lines:' header? ! ! The posting software down the line from Gnus often generates a "Lines:" ! header so Gnus doesn't have to. If you want it to, just add Lines to the ! list in gnus-required-headers: ! ! (add-hook 'gnus-startup-hook ! '(lambda () ! (setq gnus-required-headers (cons 'Lines gnus-required-headers)))) ! ! 150: How do I kill all articles in Gnus but those matching a pattern? ! ! Example kill file code: ! ;; kill everything (gnus-kill "subject" "" nil nil) *************** *** 4448,4469 **** (beginning-of-line 1) (point)))) ! (gnus-Subject-clear-mark-forward 1)))) t) - ! ---------------------------------------------------------------------- ! Copyright (C) 1990, 1991, 1992 Joseph Brian Wells ! Copyright (C) 1992, 1993 Steven Byrnes This list of frequently asked questions about GNU Emacs with answers ("FAQ") may be translated into other languages, transformed into other ! formats (e.g. Texinfo, Info, WWW, WAIS, etc.), and updated with new ! information. The same conditions apply to any derivative of the FAQ as ! apply to the FAQ itself. Every copy of the FAQ must include this notice ! or an approved translation, information on who is currently maintaining ! the FAQ and how to contact them (including their e-mail address), and ! information on where the latest version of the FAQ is archived (including ! FTP information). The FAQ may be copied and redistributed under these ! conditions, except that the FAQ may not be embedded in a larger literary ! work unless that work itself allows free copying and redistribution. --- 3085,3124 ---- (beginning-of-line 1) (point)))) ! (gnus-summary-clear-mark-forward 1)))) t) ! ------------------------------------------------------------ ! Slightly modified by Richard Stallman ! Copyright 1994 Reuven M. Lerner ! Copyright 1992, 1993 Steven Byrnes ! Copyright 1990, 1991, 1992 Joseph Brian Wells This list of frequently asked questions about GNU Emacs with answers ("FAQ") may be translated into other languages, transformed into other ! formats (e.g. Texinfo, Info, WWW, WAIS), and updated with new information. ! ! The same conditions apply to any derivative of the FAQ as apply to the FAQ ! itself. Every copy of the FAQ must include this notice or an approved ! translation, information on who is currently maintaining the FAQ and how to ! contact them (including their e-mail address), and information on where the ! latest version of the FAQ is archived (including FTP information). ! ! The FAQ may be copied and redistributed under these conditions, except that ! the FAQ may not be embedded in a larger literary work unless that work ! itself allows free copying and redistribution. ! ! ------------------------------------------------------------ ! ! Special thanks to members of the FAQ team, who worked hard to ensure that ! answers were up-to-date: ! ! Ethan Bradford , Luis Fernandes ! , Denby Wong <3dw16@qlink.QueensU.CA>, Yair ! Friedman , Thi , Richard Levitte ! , "William G. Dubuque" , ! and Guan-Hsong Hsu . ! ! ! ! diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/FTP emacs-19.29/etc/FTP *** emacs-19.28/etc/FTP Mon Aug 15 19:02:05 1994 --- emacs-19.29/etc/FTP Sun Jun 18 23:01:02 1995 *************** *** 1,4 **** ! -*- text -*- ! How to get GNU Software by Internet FTP or by UUCP. Last updated 21 Apr 93. * Please send improvements to this file to gnu@prep.ai.mit.edu. --- 1,4 ---- ! -*- text -*- ! How to get GNU Software by Internet FTP or by UUCP. Last updated 11 June 95. * Please send improvements to this file to gnu@prep.ai.mit.edu. *************** *** 15,19 **** If you find this file in the Emacs distribution, there is a chance it ! is out of date. If you plan to FTP files from prep.ai.mit.edu, you might as well start by FTPing the current version of this file, which is `/pub/gnu/GNUinfo/FTP'. --- 15,19 ---- If you find this file in the Emacs distribution, there is a chance it ! is out of date. If you plan to FTP files from a GNU FTP host, you might as well start by FTPing the current version of this file, which is `/pub/gnu/GNUinfo/FTP'. *************** *** 55,59 **** Some ftp'ers have found it necessary for successful file transfer: - to explicitly use prep.ai.mit.edu internet address: ! 18.71.0.38 (as of 11 April 89) Files of differences from previous widely distributed GNU Emacs --- 55,59 ---- Some ftp'ers have found it necessary for successful file transfer: - to explicitly use prep.ai.mit.edu internet address: ! 18.159.0.42 (as of 18 June 95) Files of differences from previous widely distributed GNU Emacs *************** *** 71,90 **** /pub/gnu/elisp-manual-NN.tar.gz ! ** VMS FTP sites with GNU Emacs You can anonymously ftp a VMS version of GNU emacs from: ! - ftp.stacken.kth.se:/pub/GNU-VMS/ - also has some other VMS ! ports (and a few VMS binaries) of GNU software ! - addvax.llnl.gov ! - VMSD.OAC.UCI.EDU ! - RIGEL.EFD.LTH.SE [130.235.48.3] ! - ctrsci.cc.utah.edu - The 00readme.txt file gives details ! ! ** VMS FTP sites with GCC/G++ - mango.rsmas.miami.edu has a VMS version of the GCC/G++ compiler. Contact angel@flipper.miami.edu (angel li) for details. ! ! ** VMS sites with other GNU Software ! - cc.utah.edu [128.110.8.24], user anonymous, pass guest. ! The 00README.txt file gives details. ** Other GNU Software and How To FTP It --- 71,86 ---- /pub/gnu/elisp-manual-NN.tar.gz ! ** VMS FTP sites with GNU Software You can anonymously ftp a VMS version of GNU emacs from: ! - ftp.stacken.kth.se:[.GNU-VMS] - GNU Emacs and some other VMS ! ports (and some VMS binaries) of GNU software - mango.rsmas.miami.edu has a VMS version of the GCC/G++ compiler. Contact angel@flipper.miami.edu (angel li) for details. ! - addvax.llnl.gov - GNU Emacs ! - VMSD.OAC.UCI.EDU - GNU Emacs ! - RIGEL.EFD.LTH.SE [130.235.48.3] - GNU Emacs ! - ctrsci.cc.utah.edu - GNU Emacs - The 00readme.txt file gives details ! - cc.utah.edu [128.110.8.24] - misc. GNU software - user ! anonymous, pass guest. The 00README.txt file gives details. ** Other GNU Software and How To FTP It *************** *** 106,120 **** GNU Bulletin. To receive a copy, write to gnu@prep.ai.mit.edu. - ** TeX and How to FTP It - - We don't distribute TeX now, but it is free software. - - You can get TeX sources via anonymous FTP from labrea.stanford.edu in - pub/tex. The directory pub/tex/unix3.0 probably contains what you - want, but see pub/tex/README to be sure. The most recent incarnation - of the LaTeX macros are in labrea:pub/tex/latex. If you'd like to - support TUG and/or don't have access to the Internet, then write to - elisabet@max.acs.washington.edu about getting their tape distribution. - ** Scheme and How to FTP It --- 102,105 ---- *************** *** 125,130 **** --- 110,145 ---- Read the files INSTALL and README in the top level C Scheme directory. + ** TeX and How to Obtain It + + We don't distribute TeX now, but it is free software. + + TeX is a document formatter that is used, among other things, by the FSF + for all its documentation. You will need it if you want to make printed + manuals. + + TeX is freely redistributable. You can get it by ftp, tape, or CD/ROM. + + *** For FTP instructions, retrieve the file + ftp.cs.umb.edu:pub/tex/unixtex.ftp. (We don't include it here because it + changes relatively frequently. Sorry.) + + *** For TeX on a single tape (4mm DAT or QIC-24), ordering information is + available from unixtex@u.washington.edu. A distribution fee in the area + of US$210.00 covers administrative costs. Tapes will be available at + least through summer of 1994. + + *** The FSF hopes soon to distribute tapes of TeX itself, after the + University of Washington distribution service goes away. + + *** A minimal TeX collection (enough to process Texinfo files, anyway) + is included on the GNU source CD/ROM. See the file ORDERS in this + directory for more information. + ** Alternative Internet FTP Sources + Please do NOT use a site outside your country, until you have checked + all sites inside your country, and then your continent. Trans-ocean + TCP/IP links are very expensive and usually very low speed. + The administrators of louie.udel.edu maintains copies of GNU Emacs. The files are available via anonymous ftp under directory ~ftp/gnu. *************** *** 139,154 **** 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, daily full mirror, ran by ! ftp-admin@cs.ubc.ca), ftp.unicamp.br:/pub/gnu (Brazil manual mirror, ran by oliva@dcc.unicamp.br), archie.au:/gnu (Australia (archie.oz or archie.oz.au for ACSnet)), ftp.technion.ac.il:/pub/unsupported/gnu (Israel, daily full mirror, ran by ftp-admin), ftp.sun.ac.za:/pub/gnu ! (South Africa), ftp.informatik.tu-muenchen.de, ! ftp.informatik.rwth-aachen.de or germany.eu.net (mirror ran by ! archive-admin@germany.eu.net) (Germany), isy.liu.se (Sweden), ! ftp.stacken.kth.se or ftp.luth.se:/pub/unix/gnu (Sweden), ! ftp.sunet.se:/pub/gnu (Sweden 130.238.127.3 daily mirror, ran by ! archive@ftp.sunet.se (also mirros the Mailing List Archives) hp4nl.nluug.nl (Netherlands), ftp.win.tue.nl:/pub/gnu (Netherlands 131.155.70.100 daily mirror, ran by ftp@win.tue.nl), --- 154,175 ---- 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, ! daily full mirror, ran by ftp-admin@cs.ubc.ca), ! ftp.inf.utfsm.cl:/pub/gnu (Chile 146.83.198.3 nightly full mirror, ran ! by ftp@inf.utfsm.cl), ftp.unicamp.br:/pub/gnu (Brazil manual mirror, ran by oliva@dcc.unicamp.br), archie.au:/gnu (Australia (archie.oz or archie.oz.au for ACSnet)), ftp.technion.ac.il:/pub/unsupported/gnu (Israel, daily full mirror, ran by ftp-admin), ftp.sun.ac.za:/pub/gnu ! (South Africa), ftp.mcc.ac.uk:/pub/gnu (130.88.203.12 daily full ! mirror, ran by root@ftp.mcc.ac.uk), ! unix.hensa.ac.uk:/mirrors/uunet/systems/gnu, ftp.warwick.ac.uk ! (137.205.192.14 daily full mirror, ran by unixhelp@warwick.ac.uk), ! ftp.informatik.tu-muenchen.de, ftp.informatik.rwth-aachen.de or ! germany.eu.net (mirror ran by archive-admin@germany.eu.net) (Germany), ! isy.liu.se (Sweden), ftp.stacken.kth.se or ftp.luth.se:/pub/unix/gnu ! (Sweden), ftp.sunet.se:/pub/gnu (Sweden 130.238.127.3 daily mirror, ! ran by archive@ftp.sunet.se (also mirrors the Mailing List Archives) hp4nl.nluug.nl (Netherlands), ftp.win.tue.nl:/pub/gnu (Netherlands 131.155.70.100 daily mirror, ran by ftp@win.tue.nl), *************** *** 159,170 **** ftpmaint@ftp.univ-lyon1.fr) (France), ftp.ieunet.ie:pub/gnu (Ireland 192.111.39.1 weekly mirror, ran by archive@ieunet.ie), archive.eu.net ! (Europe 192.16.202.1), cair.kaist.ac.kr:/pub/gnu (Korea ! 143.248.11.170), ftp.nectec.or.th:/pub/mirrors/gnu (Thailand ! 192.150.251.32 daily mirror, ran by ftp@nwg.nectec.or.th), utsun.s.u-tokyo.ac.jp:/ftpsync/prep or ftp.cs.titech.ac.jp (Japan, ! nemacs, the japanese port of GNU Emacs, is under ~ftp/JAPAN). Please ! do NOT use a site outside your country, until you have checked all ! sites inside your country, and then your continent. Trans-ocean ! TCP/IP links are very expensive and usually very low speed. * Getting GNU software in Great Britain --- 180,189 ---- ftpmaint@ftp.univ-lyon1.fr) (France), ftp.ieunet.ie:pub/gnu (Ireland 192.111.39.1 weekly mirror, ran by archive@ieunet.ie), archive.eu.net ! (Europe 192.16.202.1), cair-archive.kaist.ac.kr:/pub/gnu (Korea ! 143.248.11.171, ran by ftpkeeper@cair-archive.kaist.ac.kr), ! ftp.nectec.or.th:/pub/mirrors/gnu (Thailand 192.150.251.32 daily ! mirror, ran by ftp@nwg.nectec.or.th), utsun.s.u-tokyo.ac.jp:/ftpsync/prep or ftp.cs.titech.ac.jp (Japan, ! nemacs, the japanese port of GNU Emacs, is under ~ftp/JAPAN). * Getting GNU software in Great Britain *************** *** 187,194 **** details. He can also write sun cartridge or exabyte tapes. ! These UK sites have just anonymous FTP access: ftp.mcc.ac.uk ! (130.88.203.12), unix.hensa.ac.uk:/pub/uunet/systems/gnu, ! ftp.warwick.ac.uk (137.205.192.14 daily full mirror, maintained by ! unixhelp@warwick.ac.uk). * Getting GNU software via UUCP --- 206,210 ---- details. He can also write sun cartridge or exabyte tapes. ! UK sites with just anonymous FTP access are in the above list. * Getting GNU software via UUCP diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/INTERVIEW emacs-19.29/etc/INTERVIEW *** emacs-19.28/etc/INTERVIEW Wed Sep 16 15:06:46 1987 --- emacs-19.29/etc/INTERVIEW Wed Jun 14 01:34:25 1995 *************** *** 413,416 **** --- 413,425 ---- Cambridge, MA 02139. + [In June 1995, this address changed to: + Free Software Foundation + 59 Temple Place - Suite 330 + Boston, MA 02111-1307, USA + Voice: +1-617-542-5942 + Fax: +1-617-542-2652 + -gnu@prep.ai.mit.edu + ] + BYTE: What are you going to do when you are done with the GNU system? diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/LPF emacs-19.29/etc/LPF *** emacs-19.28/etc/LPF Wed Jun 9 06:55:36 1993 --- emacs-19.29/etc/LPF Sun Oct 2 16:56:02 1994 *************** *** 1,11 **** Protect Your Freedom to Write Programs Join the League for Programming Freedom ! (Version of January 15, 1991) Ten years ago, programmers were allowed to write programs using all the techniques they knew, and providing whatever features they felt ! were useful. This is no longer the case. The new monopolies, ! software patents and interface copyrights, have taken away our ! freedom of expression and our ability to do a good job. "Look and feel" lawsuits attempt to monopolize well-known command --- 1,11 ---- Protect Your Freedom to Write Programs Join the League for Programming Freedom ! (Version of February 3, 1994) Ten years ago, programmers were allowed to write programs using all the techniques they knew, and providing whatever features they felt ! were useful. This is no longer the case. New monopolies, known as ! software patents and interface copyrights, have taken away our freedom ! of expression and our ability to do a good job. "Look and feel" lawsuits attempt to monopolize well-known command *************** *** 23,38 **** professors, students, businessmen, programmers and users dedicated to bringing back the freedom to write programs. The League is not ! opposed to the legal system that Congress intended--copyright on ! individual programs. Our aim is to reverse the recent changes made by ! judges in response to special interests, often explicitly rejecting ! the public interest principles of the Constitution. The League works to abolish the new monopolies by publishing articles, ! talking with public officials, boycotting egregious offenders, and in ! the future may intervene in court cases. On May 24, 1989, the League ! picketed Lotus headquarters on account of their lawsuits, and then ! again on August 2, 1990. These marches stimulated widespread media ! coverage for the issue. We welcome suggestions for other activities, ! as well as help in carrying them out. Membership dues in the League are $42 per year for programmers, --- 23,36 ---- professors, students, businessmen, programmers and users dedicated to bringing back the freedom to write programs. The League is not ! opposed to the legal system that Congress expressly established for ! software--copyright on individual programs. Our aim is to reverse the ! recent changes that prevent programmers from doing their work. The League works to abolish the new monopolies by publishing articles, ! talking with public officials, denouncing egregious offenders, and ! filing amicus curiae briefs, most notably against Lotus in its suit ! against Borland. We testified twice at the recent Patent Office ! hearings on software patents. We welcome suggestions for other ! activities, as well as help in carrying them out. Membership dues in the League are $42 per year for programmers, *************** *** 50,61 **** for information. ! If you have any questions, please write to the League or phone ! (617) 243-4091. Or send Internet mail to league@prep.ai.mit.edu. ! Jack Larsen, President ! Chris Hofstader, Secretary ! Steve Sisak, Treasurer ! Jack Larsen can be contacted at (708) 698-1160; Fax (708) 698-6221. To join, please send a check and the following information to: --- 48,59 ---- for information. ! If you have any questions, please write to the League, phone ! +1 617 621 7084, or send Internet mail to lpf@uunet.uu.net. ! Chris Hofstader, President ! Dean Anderson, Secretary ! Aubrey Jaffer, Treasurer ! Chris Hofstader can be reached at (617) 492-0023; FAX (617) 497-1632. To join, please send a check and the following information to: *************** *** 66,70 **** (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: --- 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: *************** *** 71,75 **** ! The address for League mailings (a few each year): --- 69,74 ---- ! The address for League mailings, a few each year; please indicate ! whether it is your home address or your work address: *************** *** 83,87 **** Your email address, so we can contact you for demonstrations or for writing letters. (If you don't want us to contact you for these ! things, please say so, but please give us your email address anyway.) --- 82,87 ---- Your email address, so we can contact you for demonstrations or for writing letters. (If you don't want us to contact you for these ! things, please say so, but please give us your email address anyway ! so we can save paper and postage by sending you the newsletter by email.) diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/MACHINES emacs-19.29/etc/MACHINES *** emacs-19.28/etc/MACHINES Sun Oct 30 15:09:36 1994 --- emacs-19.29/etc/MACHINES Tue Jun 20 15:13:14 1995 *************** *** 26,29 **** --- 26,59 ---- will configure Emacs for the latest version it knows about. + Acorn RISCiX (arm-acorn-riscix1.2) + + Emacs 19.29 has changes that ought to support RISCiX 1.2. + + Due to a bug in the RISCiX C compiler (3.4.5), emacs must + be built with gcc (versions 2.5.8 onwards). + + In addition, you will need GNU sed and GNU make, as the RISCiX release + versions of these utilities cannot cope with building emacs-19! + + GNU sed should be configured with: + + env 'DEFS=-Dgetopt=gnu_getopt -Dopterr=gnu_opterr -Doptind=gnu_optind \ + -Doptarg=gnu_optarg' ./configure + + GNU make (3.72+) should be configured with: + + env 'CFLAGS=-Dgetopt=gnu_getopt -Dopterr=gnu_opterr -Doptind=gnu_optind \ + -Doptarg=gnu_optarg' ./configure + + Emacs may be configured to use the X toolkit, by adding --with-x-toolkit + to the configure command. If you do this, you will need to edit the line + in src/Makefile which defines LIBW (about line 59) to read: + + LIBW= -lXaw_n + + This ensures that the non-shared widget library is used. + + It is unlikely that this version of emacs will work with RISCiX 1.1. + Alliant (fx80-alliant-bsd): *************** *** 39,42 **** --- 69,76 ---- Known to work with 19.26 and OS version 2.2, compiler version 1.3. + Alpha (DEC) running OSF/1 (alpha-dec-osf1) + + Patches merged in 19.29. + Altos 3068 (m68k-altos-sysv) *************** *** 56,110 **** uts native C compiler on uts version 5.2.5. ! Amiga ! Apollo running Domain (m68k-apollo-bsd) ! 18.52 works, to some extent. ! Code for dumping Emacs has been written, but we cannot distribute it yet. ! There are reports of bugs in cc -O on this system. ! ! In `lib-src/Makefile', don't expect emacsclient and emacsserver to ! compile. You might want to remove them from your makefile. ! ! Supposedly something in dired.c runs into a compiler bug. ! Paraphrasing the statement should avoid the problem. I have not yet ! received word as to the exact statement this is. ! ! The Apollo has a bizarre operating system which does not permit ! Emacs to be dumped with preloaded pure Lisp code. Therefore, each ! time you start Emacs on this system, the standard Lisp code is loaded ! into it. Expect it to take a long time. You can prevent loading of ! the standard Lisp code by specifying the -nl switch. It must ! come at the beginning of the command line; only the -t and -batch ! switches may come before it. ! ! There is one remaining problem on the Apollo. You must replace ! the CPP line in src/Makefile with "CPP = /usr/lib/cpp". ! The C preprocessor lives there rather than in /lib/cpp because the ! Aegis OS uses the /lib directory as the repository for shared libraries. ! ! ! Here is a design for a method of dumping and reloading the relevant ! necessary impure areas of Emacs. ! ! On dumping, you need to dump only the array `pure' plus the ! locations that contain values of forwarded Lisp variables or that are ! protected for garbage collection. The former can be found by a ! garbage- collection-like technique, and the latter are in the ! staticprolist vector (see alloc.c for both things). ! ! Reloading would work in an Emacs that has just been started; except ! when a switch is specified to inhibit this, it would read the dump ! file and set all the appropriate locations. The data loaded must be ! relocated, but that's not hard. Those locations that are of type ! Lisp_Object can be found by a technique like garbage-collection, and ! those of them that point to storage can be relocated. The other data ! read from the file will not need to be relocated. ! The switch to inhibit loading the data base would be used when it ! is time to dump a new data base. ! This would take a few seconds, which is much faster than loading ! the Lisp code of Emacs from scratch. AT&T 3b2, 3b5, 3b15, 3b20 (we32k-att-sysv) --- 90,135 ---- uts native C compiler on uts version 5.2.5. ! Apollo running X Windows (m68k-apollo-domain) ! Apollo version now supports dumping. It has been tested on SR10.3 and ! SR10.4. It certainly requires at least SR10.0, and maybe SR10.2. Be sure ! to build in the BSD environment. ! ! By default, everything is compiled with the switch "-W0,-opt,2". Don't try ! to change this to full optimization (-O). The full optimizer (in Domain CC ! 6.7, 6.8 and 6.9) generates some bad code in several modules which causes ! the emacs window, under X, to be refreshed with each keystroke. ! ! The configuration stuff should work for the most part. However, some Domain ! installations may have to edit src/Makefile manually after it is created. ! There are too many versions of both cc and X to automate this easily. ! ! In `lib-src/Makefile', emacsclient and emacsserver compile and work fine ! under CC 6.9. They now probably work under other versions of the compiler, ! as well. ! ! The Apollo Domain CC compiler will issue quite a few warning messages, ! mostly complaining about incompatible pointers. In general, these are ! harmless and can be ignored. If you discover otherwise, please submit a bug ! report identifying the problem in detail. ! ! When you try to dump emacs, you may get the message ".rwdi section needs ! relocation." This means you are linking with some code that has compressed ! data sections. In some cases this comes from linking with X libraries. Try ! using shared X libraries instead. With some versions of Domain/OS this is ! as simple as removing the "-lX11" from the LIBX line in src/Makefile. ! ! When running the configure script, use the configuration name ! "m68k-apollo-bsd". You will also need to use the "-with-gcc=no" and ! "-with-x" options. Depending upon your site configuration, you may have to ! use other configure options, as well. Examine the INSTALL file for other ! configure options. ! Check out the file 'lisp/x-apollo.el'. To use it, add ! (load "x-apollo") ! to your .emacs file. It provides useful default Apollo function key ! bindings. AT&T 3b2, 3b5, 3b15, 3b20 (we32k-att-sysv) *************** *** 207,211 **** This machine is the older Mips-based DECstation. ! Emacs does not support the Alpha CPU. We hope to support that in 19.29. 19.25 works on Ultrix 4.2. The 19.26 pretest was reported to work --- 232,236 ---- This machine is the older Mips-based DECstation. ! Emacs should now work on the Alpha CPU. 19.25 works on Ultrix 4.2. The 19.26 pretest was reported to work *************** *** 379,384 **** Some people report trouble using the GNU memory allocator under ! HP/UX version 9. We are told that these problems go away if you ! obtain the latest patches for the HP/UX C compiler. James J Dempsey says that this set of versions works for him: /bin/cc: --- 404,412 ---- Some people report trouble using the GNU memory allocator under ! HP/UX version 9. The problems often manifest as lots of ^@'s in the ! buffer. ! ! We are told that these problems go away if you obtain the latest ! patches for the HP/UX C compiler. James J Dempsey says that this set of versions works for him: /bin/cc: *************** *** 433,437 **** may be suboptimal. ! IBM RS/6000 (rs6000-ibm-aix) Emacs 19.26 is believed to work; its pretest was tested. --- 461,465 ---- may be suboptimal. ! IBM RS/6000 (rs6000-ibm-aix*) Emacs 19.26 is believed to work; its pretest was tested. *************** *** 489,499 **** indicates the Umax operating system). ! Intel 386 (i386-*-isc, i386-*-esix, i386-*-xenix, i386-*-linux, i386-*-freebsd, ! i386-intsys-sysv, i386-*-sysv3, i386-*-sysv4, i386-*-sysv4.2, i386-*-sysv5.3, i386-*-bsd4.2, ! i386-*-sco3.2v4, i386-*-bsd386, i386-*-386bsd ! or i486... or i586...) In the above configurations, * means that the manufacturer's name --- 517,528 ---- indicates the Umax operating system). ! Intel 386 (i386-*-isc, i386-*-esix, i386-*-bsdos2, i386-*-xenix, i386-*-linux, i386-*-freebsd, ! i386-*-sol2.4, i386-intsys-sysv, i386-*-sysv3, i386-*-sysv4, i386-*-sysv4.2, i386-*-sysv5.3, i386-*-bsd4.2, ! i386-*-sco3.2v4, i386-*-bsd386, i386-*-386bsd, ! i386-*-msdos, i386-*-windowsnt. ! i386... can be replaced with i486... or i586...) In the above configurations, * means that the manufacturer's name *************** *** 526,529 **** --- 555,561 ---- The 19.26 pretest was reported to work on SVR4.3 and on Freebsd. + 19.29 is reported to crash when using Motif on Solaris 2.5. + The reasons are not yet known. + Use i386-*-bsd386 for BSDI BSD/386; Emacs runs as of version 19.23. Make on that system is broken; use GNU make instead. *************** *** 546,550 **** If you are using System V release 4.2, you may find that `cc -E' puts spurious spaces in `src/xmakefile'. If that happens, ! specify CC=/lib/cpp as an option when you run make. There is no problem if you compile with GCC. --- 578,582 ---- If you are using System V release 4.2, you may find that `cc -E' puts spurious spaces in `src/xmakefile'. If that happens, ! specify CPP=/lib/cpp as an option when you run make. There is no problem if you compile with GCC. *************** *** 566,569 **** --- 598,610 ---- to config.h. + On SCO, there are problems in regexp matching when Emacs is compiled + with the system compiler. The compiler version is "Microsoft C + version 6", SCO 4.2.0h Dev Sys Maintenance Supplement 01/06/93; + Quick C Compiler Version 1.00.46 (Beta). The solution is to compile + with GCC. + + On ISC systems (2.02 and more recent), don't try to use the versions + of X that come with the system; use XFree86 instead. + There is no consistency in the handling of certain system header files on V.3. *************** *** 592,600 **** Note that the 3030 is the same as the Iris 2500 Turbo. ! Iris 4D (mips-sgi-irix[45].*) The 19.26 pretest was reported to work on IRIX 4.0.5 and 5.2. 19.23 was reported to work on IRIX 5.2, but you may need to install ! the "compiler_dev.hdr.internal" subsystem in order to compile Emacs. 19.22 was known to work on all Silicon Graphics machines running IRIX 4.0.5 or IRIX 5.1. --- 633,641 ---- Note that the 3030 is the same as the Iris 2500 Turbo. ! Iris 4D (mips-sgi-irix[456].*) The 19.26 pretest was reported to work on IRIX 4.0.5 and 5.2. 19.23 was reported to work on IRIX 5.2, but you may need to install ! the "compiler_dev.hdr.internal" subsystem in order to compile unexelfsgi.c. 19.22 was known to work on all Silicon Graphics machines running IRIX 4.0.5 or IRIX 5.1. *************** *** 611,624 **** versions 18.59 and later fix this bug. - Macintosh - - We are boycotting Apple because of Apple's efforts to take away - our freedom to write compatible imitations of existing software. - If you value your freedom to write such programs, we urge you - not to buy from Apple, not to develop software for Apple, and - certainly not to accept a job with Apple. - - See the file APPLE in this directory for more information. - Masscomp (m68k-masscomp-rtu) --- 652,655 ---- *************** *** 632,636 **** has been reported for "C version 1.2 under RTU 3.1". We do not wish to take the time to install the numerous workarounds required to ! compensate for this bug; go complain to Masscomp. For RTU version 3.1, define FIRST_PTY_LETTER to be 'p' in `src/s/rtu.h' --- 663,667 ---- has been reported for "C version 1.2 under RTU 3.1". We do not wish to take the time to install the numerous workarounds required to ! compensate for this bug. For RTU version 3.1, define FIRST_PTY_LETTER to be 'p' in `src/s/rtu.h' *************** *** 726,729 **** --- 757,769 ---- Version 18 is believed to work. + Paragon OSF/1 (i860-intel-osf1) + + Changes merged in 19.29. + + 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 + Plexus (m68k-plexus-sysv) *************** *** 771,779 **** versions. ! Sequent Symmetry (i386-sequent-bsd) ! Emacs 19 should work. However, if you compile with the Sequent compiler, ! you may find Emacs does not restore the terminal settings on exit. ! If this happens, compile with GCC. SONY News (m68k-sony-bsd4.2 or m68k-sony-bsd4.3) --- 811,845 ---- versions. ! Sequent Symmetry (i386-sequent-bsd, i386-sequent-ptx) ! ! Emacs 19 should work on Dynix (BSD). However, if you compile with ! the Sequent compiler, you may find Emacs does not restore the ! terminal settings on exit. If this happens, compile with GCC. ! ! Emacs 19.27 contains patches that should support ! DYNIX/ptx 1.4 and 2.1 with the native cc compiler. ! ! Gcc can't compile src/process.c due to a non-standard Sequent asm ! keyword extension supported by cc and used for the network byte/word ! swapping functions in the PTX /usr/include/netinet/in.h file. Gcc ! 2.5.8 includes the file which can be included into ! netinet/in.h to perform these byte/word swapping functions in the ! same manner. Patches have been submitted to the FSF against gcc ! 2.6.0 to fix this problem and allow Emacs to be built with gcc. ! ! If your machine does not have TCP/IP installed, you will have to edit the ! src/s/ptx.h file and comment out #define TCPIP_INSTALLED. ! ! Siemens Nixdorf RM600 and RM400 (mips-siemens-sysv4) ! ! Changes merged in 19.29. This configuration should also work for ! Pyramid MIS Server running DC-OSX 1.x. The version configured with ! `--with-x' works without any modifications, but `--with-x-toolkit' ! works only if the Athena library and the Toolkit library are linked ! statically. For this, edit `src/Makefile' after the `configure' run ! and modify the lines with `-lXaw' and `-lXt' as follows: ! LIBW= /usr/lib/libXaw.a ! LIBXT= $(LIBW) -lXmu /usr/lib/libXt.a $(LIBXTR6) -lXext SONY News (m68k-sony-bsd4.2 or m68k-sony-bsd4.3) *************** *** 847,850 **** --- 913,919 ---- compiler version, so we cannot easily arrange to supply them. + On SunOS 4.1.1, do not use /usr/5bin/cc. You can use gcc or/usr/bin/cc. + Make sure the environment variable LD_LIBRARY_PATH is not defined. + Some people report crashes on SunOS 4.1.3 if SYSTEM_MALLOC is defined. Others have reported that Emacs works if SYSTEM_MALLOC is defined, and not *************** *** 867,881 **** rather than an Emacs bug. ! On Solaris 2.2 with SUNWspro 2.0.1, src/Makefile used to get bad data-- ! spurious spaces. In 19.23, changes in configure ought to use a different ! cpp that avoids this problem. ! ! On Solaris, if linking gives the error that `bss_end' and `main' ! are undefined, it may mean that the C preprocessor did the wrong ! thing when processing `src/ymakefile' into `src/xmakefile'. ! A tell-tale sign of this in `src/xmakefile' is the presence of ! extra spaces, as in unexelf.o: unexelf . o $(config_h) ! If this happens, try using GCC to compile Emacs, ! or at least to preprocess `src/ymakefile' into `src/xmakefile'. If you have trouble using open-network-stream, get the distribution --- 936,943 ---- rather than an Emacs bug. ! On Solaris, do not use /usr/ucb/cc. Use /opt/SUNWspro/bin/cc. Make ! sure that /usr/ccs/bin and /opt/SUNWspro/bin are in your PATH before ! /usr/ucb. (Most free software packages have the same requirement on ! Solaris.) If you have trouble using open-network-stream, get the distribution *************** *** 909,912 **** --- 971,986 ---- HARDWARE, just build it on the Sun 2. + On Sunos 4.1.3, the word is that Emacs can loop infinitely + on startup with X due perhaps to a bug in Sunos. Installing all of + these Sun patches fixes the problem. We don't know which of them + are really relevant. + + 100075-11 100224-06 100347-03 100482-05 100557-02 100623-03 100804-03 + 101080-01 100103-12 100249-09 100496-02 100564-07 100630-02 100891-10 + 101134-01 100170-09 100296-04 100377-09 100507-04 100567-04 100650-02 + 101070-01 101145-01 100173-10 100305-15 100383-06 100513-04 100570-05 + 100689-01 101071-03 101200-02 100178-09 100338-05 100421-03 100536-02 + 100584-05 100784-01 101072-01 101207-01 + Tadpole 68K (m68k-tadpole-sysv) *************** *** 1023,1026 **** --- 1097,1106 ---- See under "Intel 386". + MSDOS + + For installation on MSDOS, see the file etc/INSTALL and search for + `MSDOG'. See the file etc/MSDOS for information about using Emacs + on MSDOS. + SCO Unix If you have TCP but not X, you need to edit src/s/sco4.h *************** *** 1157,1160 **** --- 1237,1245 ---- distribution. See the file ../vms/VMSINSTALL for info on moving Unix distributions to VMS, and other VMS-related topics. + + Windows NT + + For installation on Windows NT, see the file etc/INSTALL and search for + `Windows NT'. Xenix (xenix) diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/MAILINGLISTS emacs-19.29/etc/MAILINGLISTS *** emacs-19.28/etc/MAILINGLISTS Tue Apr 19 20:47:41 1994 --- emacs-19.29/etc/MAILINGLISTS Mon Feb 27 19:57:19 1995 *************** *** 1,3 **** ! GNU Project Electronic Mailing Lists. Last Updated 23 Feb 94 Please report improvements to: gnu@prep.ai.mit.edu --- 1,3 ---- ! GNU Project Electronic Mailing Lists. Last Updated 27 Feb 95 Please report improvements to: gnu@prep.ai.mit.edu diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/MH-E-NEWS emacs-19.29/etc/MH-E-NEWS *** emacs-19.28/etc/MH-E-NEWS Tue Mar 15 01:17:31 1994 --- emacs-19.29/etc/MH-E-NEWS Tue May 30 17:15:49 1995 *************** *** 1,194 **** ! This file is automatically generated from news-mh-e.txinfo. Do not edit. ! User-visible changes to mh-e in version 4.0 from 3.8 ! Note: there are many internal changes to mh-e in this release. If you ! have the previous version loaded into your Emacs, you will probably not ! be able to load this version on top of it. ! New Features in mh-e ! ==================== ! Background folder collection. The first time you are prompted for a ! folder, you must wait while mh-e collects the names of all existing ! folders. Now however, if you abort, collecting will continue in the ! background, and you can do something else in Emacs until the collection ! completes. Normally, mh-e will begin collecting folders names in the ! background when you first load it; you can disable this feature by ! setting `mh-auto-folder-collect' to nil. ! There is support for composing MIME messages using the `mhn' program ! from MH 6.8. See the documentation string for mh-edit-mhn. (While ! composing a letter, type `C-h k C-c C-e'.) See also mhn(1). There is ! as yet no support for reading MIME messages. ! `mh-show', typically on `.', repositions to the start of the message if ! the message is already visible. It used to do nothing in this case. ! The function `mh-unshar-msg' is renamed `mh-store-msg'. It now does ! uudecoding, too. Someday it should do MIME. It remembers the last ! directory you used and offers it as the default for next time. ! New function `mh-header-display', on `,', displays the message with all ! headers, including those normally not displayed. Type `.' to display ! the message normally again. ! New function `mh-list-sequences' lists the sequences in use in the ! current folder. ! New function `mh-version' displays version information about MH and ! mh-e. Please use the output in bug reports. ! `mh-quit' now burys the folder buffer and show buffer. ! ! New mh-e hooks and customization variables ========================================== ! `mh-pick-mode-hook': new hook called by new mode `mh-pick-mode'. The ! pick buffer didn't used to have its own mode. Another advantage of ! `mh-pick-mode' is that `C-h m' works in the pick buffer. ! ! `mail-citation-hook': new variable for supercite. ! ! `mh-refile-msg-hook': new hook called by `mh-refile-msg' (and ! `mh-refile-or-write-again' when refiling). ! ! `mh-msg-folder-hook': new hook used by `mh-refile-msg' and `mh-to-fcc' ! to provide a default folder for user prompt. ! ! `mh-show-hook': new hook called by `mh-show'. ! ! `mh-delete-msg-hook': new hook called by `mh-delete-msg'. ! `mh-show-mode-hook': new hook called by new mode `mh-show-mode' for ! `show-' buffers. ! `mh-comp-formfile': new variable so can customize `components' file. ! `mh-sortm-args': new variable, a list of extra arguments to be passed to ! sortm by `mh-sort-folder'. Give an argument to `mh-sort-folder' to ! suppress this behavior. ! `mh-send-prog': new variable so can customize name of `send' program in ! case of name conflicts. ! `mh-scan-prog': new variable so can customize name of `scan' program to ! generate custom effects. ! `mh-inc-prog': new variable so can customize name of `inc' program to do ! fancy management of incoming messages. ! `mh-forwarded-letter-subject': new function used by `mh-forward' to ! compute the Subject line of the new message. It is a small function ! which can be replaced by the user for customization. Uses the new ! variable `mh-forward-subject-format', which allows some simple ! customizations without rewriting even `mh-forwarded-letter-subject'. ! `mh-new-draft-cleaned-headers': new variable, header lines removed by ! `mh-edit-again' and `mh-extract-rejected-mail' before offering a message ! as a new draft. ! ! `mh-signature-file-name': new variable used by `mh-insert-signature' to ! so can customize name of the file to insert. ! ! `mh-read-address': new function called to read all To: and Cc: ! addresses. ! ! `mh-msg-folder-hook': new hook used by `mh-refile-msg' and `mh-to-fcc' ! to provide a default folder for user prompt. ! ! ! Key binding changes in mh-e =========================== ! `,' runs new function `mh-header-display'. It is like `.' but it ! displays *all* the headers. ! ! `M-#' runs the new function `mh-delete-seq'. One used to have to type ! `C-u M-%' to delete a sequence. ! `<' no longer does `mh-first-msg', but `M->' now does `mh-last-msg'. ! This allows first and last to be consistent (`>' was taken) and is more ! likely to be discovered by chance anyway. ! `M-d' runs `mh-redistribute', `r' runs `mh-reply' (on the theory that ! the more commonly used function should be easier to type, and the ! obscure action of redistributing can be harder to type). ! `M-o' changed to `C-o' (`mh-write-msg-to-file'). It was interfering ! with arrow keys for some people. ! `M-n' now runs `mh-store-msg' (formerly `mh-unshar-msg'). ! `b' no longer runs `mh-quit'; use `q' instead. `b' may be used in a ! future version for something else. ! Minor improvements to mh-e ! ========================== ! The mh-e code is now divided into multiple Emacs Lisp files, so it ! starts up faster because Emacs doesn't have to load all of it at once. ! (This change also makes it easier for the maintainer to manage things.) ! When searching for the directory containing the MH programs, search the ! user's PATH in addition to the built-in directories, to increase the ! chance of finding the MH programs. ! The subject for a forwarded message no longer has ugly square brackets ! around it. ! The name of the folder is no longer appears twice in the show buffer ! mode line. ! When typing a folder name in the minibuffer, parent folders complete to ! the trailing slash (/), for easier typing of subfolders. ! ! The folder buffer mode name changed from `mh-e scan' or `mh-e show' to ! `MH-Folder', which makes the hook name easier to guess. Added ! `mh-showing' to `minor-mode-alist' so there is still an indication in ! the mode line of whether messages will be shown automatically. ! ! `mh-rename-seq' does completion on the old sequence name. ! ! If called by a user who has never used MH on this system before, mh-e ! runs the MH program `install-mh' to get them set up. ! ! Undo history for previous messages is not kept to avoid wasting memory. ! ! The internal temp buffer used by mh-e has `buffer-offer-save' explicitly ! nil. This change benefits people who change the `buffer-offer-save' ! default. ! ! ! Bug fixes to mh-e ================= ! `mh-to-field': don't bomb if no To: field. ! ! `mh-get-new-mail': restore annotations, e.g., cur, even if no new mail. ! ! `mh-rename-seq': verify that the new seq name was accepted by `mark' ! before updating state. ! ! `mh-internal-seq': the Previous sequence is not notated, since it would ! notate everything scanned. ! ! `mh-read-draft': don't call `find-file-noselect' so an `auto-mode-alist' ! doesn't trigger `mh-letter-mode-hook' twice. Faster, too. ! `mh-show': If user moves onto a message that doesn't exist, don't leave ! the cursor in the show pane. ! `mh-delete-scan-msgs': use `equal', not `=', on the result of ! `mh-get-msg-num', since it may be nil. ! `mh-get-field': do anchored search so searching for `reply-to:' doesn't ! find `in-reply-to:'. ! `mh-widen': do nothing if not narrowed. ! `mh-clean-message-header': find end of headers even if no body. --- 1,139 ---- ! User-visible changes to mh-e in version 5.0 from 4.1. ! Note: This being a major release, there are many internal changes. ! This document lists only changes to the external interfaces of mh-e. ! When upgrading, you must either explicitly reload the new versions of ! all mh-e files that are already loaded or restart your Emacs. + mh-e 5.0.1 contains minor changes from mh-e 5.0 to integrate it with + Emacs 19.29. ! Major Changes and New Features in mh-e ! ====================================== ! The emphasis for this release has been on consistency and ! documentation. Many documentation strings were enhanced. ! Documentation strings were changed to comments for internal functions ! and variables. ! There is now proper documentation in the form of a 75-page users ! manual. The Texinfo source is mh-e.texi; the formatted Info document ! is mh-e.info. ! There is a new command `mh-update-sequences', which updates MH's ! idea of what messages are in the Unseen sequence and what is the current ! folder and message. `mh-quit' calls it. While `mh-execute-commands' ! has always done this updating as a side effect, the new function is ! faster. ! The MH profile entry "Inbox:" is supported. ! If the show-buffer is modified, the user is queried before mh-e ! reuses the buffer to show a different message. This buffer is also ! auto-saved and backed up correctly. ! `mh-store-buffer' is significantly more robust. It now handles ! messages created by a wide variety of packaging software. The status ! message for `uudecode' includes the name of the file created. An error ! is signaled if the subprocess exits with a non-zero status. ! `mh-search-folder' behaves predictably, adding messages found to the ! `search' sequence. It correctly handles the case of no messages found. ! `mh-burst-digest' (`M-b') now only rescans the part of the folder ! affected by the burst. It is now much faster in a large folder. ! New mh-e Hooks and Customization Variables ========================================== ! `mh-default-folder-for-message-function': new name for the old ! `mh-msg-folder-hook', which wasn't a hook. The old name was confusing, ! leading people to think they could use `add-hook' with it, when ! actually `setq' is the correct way. ! `mh-sortm-args': When this variable is used has changed. Now ! `mh-sortm-args' is passed if there IS a prefix argument to ! `mh-sort-folder'. The assumption is that for arguments you normally ! want, you would specify them in an MH profile entry. ! `mh-mhn-args': new hook, a list of additional arguments to pass to ! the `mhn' program if `mh-edit-mhn' is given a prefix argument. ! `mh-edit-mhn-hook': new hook called by `mh-edit-mhn', the function ! that formats MIME messages. ! `mh-folder-list-change-hook': new hook, called whenever the cached ! list of folders, `mh-folder-list', is changed. ! `mh-find-path-hook': new hook, called when entering mh-e. ! `mh-repl-formfile': new variable, used to change the format file ! used by `mh-reply' from the default of "replcomps". ! New variables to customize the scan format and notating: ! `mh-note-deleted', `mh-note-refiled', `mh-note-seq', `mh-note-cur', ! `mh-note-copied', `mh-note-printed'. ! Key Binding Changes in mh-e =========================== ! `RET' runs `mh-show' for consistency with the Finder and Info. The ! old binding `.' still works, but `RET' is now the standard binding. ! `M-<' now runs `mh-first-msg' for consistency with `M->', which runs ! `mh-last-msg'. ! `C-c C-f C-d' in MH-Letter mode moves to a Dcc: header field. ! `C-c C-f C-r' in MH-Letter mode moves to a From: header field. ! `g' is now the standard binding for `mh-goto-msg'. The old binding ! `j' still works. ! Other Improvements and Changes to mh-e ! ====================================== + `mh-lpr-command-format' no longer passes the "-p" argument to `lpr' + by default. The mail header typically has the date anyway. ! When prompting for a sequence name, if no sequences have been used ! yet, mh-e will offer the first sequence the current message is in. ! The patterns of more mailers are recognized by ! `mh-extract-rejected-mail'. ! `mh-insert-prefix-string' no longer wraps the call to the ! `mail-citation-hook' function in a `save-excursion' so the hook writer ! can choose whether to leave point at the beginning or the end of the ! yanked text. ! `mh-write-msg-to-file': The prompt now refers to "message" or ! "message body" depending on which will be written. (This is controlled ! by a prefix argument.) The file defaults to the last-used file instead ! of supplying only the directory name. ! mh-e uses message ranges when running MH commands. Thus "rmm 1 2 3 ! 4 6" is now "rmm 1-4 6". This change makes it less likely to overflow ! system argument list limits, and it might be faster, too. ! Bug Fixes to mh-e ================= ! mh-e's idea of the unseen sequence now stays in sync with MH's ! better. ! Functions that are supposed to find fields in the message header no ! longer look in the message body. ! mh-e would sometimes fail to remove the "%" from a scan line when the ! message was removed from a sequence if the message was also in the ! Previous sequence. ! The variable `mh-inc-prog' is now correctly used in all places. ! `mh-pipe-msg' runs the process in the correct directory. ! A partially scanned folder will no longer lose the "/select" ! annotation when you execute marked deletes and refiles with `x'. diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/MH-E-ONEWS emacs-19.29/etc/MH-E-ONEWS *** emacs-19.28/etc/MH-E-ONEWS --- emacs-19.29/etc/MH-E-ONEWS Tue Mar 15 01:17:31 1994 *************** *** 0 **** --- 1,194 ---- + This file is automatically generated from news-mh-e.txinfo. Do not edit. + + User-visible changes to mh-e in version 4.0 from 3.8 + + Note: there are many internal changes to mh-e in this release. If you + have the previous version loaded into your Emacs, you will probably not + be able to load this version on top of it. + + + New Features in mh-e + ==================== + + Background folder collection. The first time you are prompted for a + folder, you must wait while mh-e collects the names of all existing + folders. Now however, if you abort, collecting will continue in the + background, and you can do something else in Emacs until the collection + completes. Normally, mh-e will begin collecting folders names in the + background when you first load it; you can disable this feature by + setting `mh-auto-folder-collect' to nil. + + There is support for composing MIME messages using the `mhn' program + from MH 6.8. See the documentation string for mh-edit-mhn. (While + composing a letter, type `C-h k C-c C-e'.) See also mhn(1). There is + as yet no support for reading MIME messages. + + `mh-show', typically on `.', repositions to the start of the message if + the message is already visible. It used to do nothing in this case. + + The function `mh-unshar-msg' is renamed `mh-store-msg'. It now does + uudecoding, too. Someday it should do MIME. It remembers the last + directory you used and offers it as the default for next time. + + New function `mh-header-display', on `,', displays the message with all + headers, including those normally not displayed. Type `.' to display + the message normally again. + + New function `mh-list-sequences' lists the sequences in use in the + current folder. + + New function `mh-version' displays version information about MH and + mh-e. Please use the output in bug reports. + + `mh-quit' now burys the folder buffer and show buffer. + + + New mh-e hooks and customization variables + ========================================== + + `mh-pick-mode-hook': new hook called by new mode `mh-pick-mode'. The + pick buffer didn't used to have its own mode. Another advantage of + `mh-pick-mode' is that `C-h m' works in the pick buffer. + + `mail-citation-hook': new variable for supercite. + + `mh-refile-msg-hook': new hook called by `mh-refile-msg' (and + `mh-refile-or-write-again' when refiling). + + `mh-msg-folder-hook': new hook used by `mh-refile-msg' and `mh-to-fcc' + to provide a default folder for user prompt. + + `mh-show-hook': new hook called by `mh-show'. + + `mh-delete-msg-hook': new hook called by `mh-delete-msg'. + + `mh-show-mode-hook': new hook called by new mode `mh-show-mode' for + `show-' buffers. + + `mh-comp-formfile': new variable so can customize `components' file. + + `mh-sortm-args': new variable, a list of extra arguments to be passed to + sortm by `mh-sort-folder'. Give an argument to `mh-sort-folder' to + suppress this behavior. + + `mh-send-prog': new variable so can customize name of `send' program in + case of name conflicts. + + `mh-scan-prog': new variable so can customize name of `scan' program to + generate custom effects. + + `mh-inc-prog': new variable so can customize name of `inc' program to do + fancy management of incoming messages. + + `mh-forwarded-letter-subject': new function used by `mh-forward' to + compute the Subject line of the new message. It is a small function + which can be replaced by the user for customization. Uses the new + variable `mh-forward-subject-format', which allows some simple + customizations without rewriting even `mh-forwarded-letter-subject'. + + `mh-new-draft-cleaned-headers': new variable, header lines removed by + `mh-edit-again' and `mh-extract-rejected-mail' before offering a message + as a new draft. + + `mh-signature-file-name': new variable used by `mh-insert-signature' to + so can customize name of the file to insert. + + `mh-read-address': new function called to read all To: and Cc: + addresses. + + `mh-msg-folder-hook': new hook used by `mh-refile-msg' and `mh-to-fcc' + to provide a default folder for user prompt. + + + Key binding changes in mh-e + =========================== + + `,' runs new function `mh-header-display'. It is like `.' but it + displays *all* the headers. + + `M-#' runs the new function `mh-delete-seq'. One used to have to type + `C-u M-%' to delete a sequence. + + `<' no longer does `mh-first-msg', but `M->' now does `mh-last-msg'. + This allows first and last to be consistent (`>' was taken) and is more + likely to be discovered by chance anyway. + + `M-d' runs `mh-redistribute', `r' runs `mh-reply' (on the theory that + the more commonly used function should be easier to type, and the + obscure action of redistributing can be harder to type). + + `M-o' changed to `C-o' (`mh-write-msg-to-file'). It was interfering + with arrow keys for some people. + + `M-n' now runs `mh-store-msg' (formerly `mh-unshar-msg'). + + `b' no longer runs `mh-quit'; use `q' instead. `b' may be used in a + future version for something else. + + + Minor improvements to mh-e + ========================== + + The mh-e code is now divided into multiple Emacs Lisp files, so it + starts up faster because Emacs doesn't have to load all of it at once. + (This change also makes it easier for the maintainer to manage things.) + + When searching for the directory containing the MH programs, search the + user's PATH in addition to the built-in directories, to increase the + chance of finding the MH programs. + + The subject for a forwarded message no longer has ugly square brackets + around it. + + The name of the folder is no longer appears twice in the show buffer + mode line. + + When typing a folder name in the minibuffer, parent folders complete to + the trailing slash (/), for easier typing of subfolders. + + The folder buffer mode name changed from `mh-e scan' or `mh-e show' to + `MH-Folder', which makes the hook name easier to guess. Added + `mh-showing' to `minor-mode-alist' so there is still an indication in + the mode line of whether messages will be shown automatically. + + `mh-rename-seq' does completion on the old sequence name. + + If called by a user who has never used MH on this system before, mh-e + runs the MH program `install-mh' to get them set up. + + Undo history for previous messages is not kept to avoid wasting memory. + + The internal temp buffer used by mh-e has `buffer-offer-save' explicitly + nil. This change benefits people who change the `buffer-offer-save' + default. + + + Bug fixes to mh-e + ================= + + `mh-to-field': don't bomb if no To: field. + + `mh-get-new-mail': restore annotations, e.g., cur, even if no new mail. + + `mh-rename-seq': verify that the new seq name was accepted by `mark' + before updating state. + + `mh-internal-seq': the Previous sequence is not notated, since it would + notate everything scanned. + + `mh-read-draft': don't call `find-file-noselect' so an `auto-mode-alist' + doesn't trigger `mh-letter-mode-hook' twice. Faster, too. + + `mh-show': If user moves onto a message that doesn't exist, don't leave + the cursor in the show pane. + + `mh-delete-scan-msgs': use `equal', not `=', on the result of + `mh-get-msg-num', since it may be nil. + + `mh-get-field': do anchored search so searching for `reply-to:' doesn't + find `in-reply-to:'. + + `mh-widen': do nothing if not narrowed. + + `mh-clean-message-header': find end of headers even if no body. + diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/Makefile emacs-19.29/etc/Makefile *** emacs-19.28/etc/Makefile Thu Apr 21 00:53:12 1994 --- emacs-19.29/etc/Makefile Wed Apr 26 16:58:07 1995 *************** *** 10,14 **** -rm -f core ! clean distclean realclean: -rm -f DOC* core --- 10,14 ---- -rm -f core ! clean distclean maintainer-clean: -rm -f DOC* core *************** *** 22,23 **** --- 22,33 ---- relock: chmod u-w $(SOURCES) + + # ${etcdir}/e/eterm is used by ../lisp/term.el. + # TERMINFO systems use terminfo files compiled by the Terminfo Compiler (tic). + # These files are binary, and depend on the version of tic, but they seem + # to be system-independent and backwardly compatible. + # So there should be no need to recompile the distributed binary version. + TIC=tic + e/eterm: e/eterm.ti + TERMINFO=`pwd`; export TERMINFO; $(TIC) e/eterm.ti + diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/NEWS emacs-19.29/etc/NEWS *** emacs-19.28/etc/NEWS Wed Oct 26 08:26:32 1994 --- emacs-19.29/etc/NEWS Wed Jun 21 15:02:04 1995 *************** *** 1,4 **** ! GNU Emacs NEWS -- history of user-visible changes. 10 Sep 1994 ! Copyright (C) 1993, 1994 Free Software Foundation, Inc. See the end for copying conditions. --- 1,4 ---- ! GNU Emacs NEWS -- history of user-visible changes. 1 May 1995 ! Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc. See the end for copying conditions. *************** *** 5,15 **** Please send Emacs bug reports to bug-gnu-emacs@prep.ai.mit.edu. For older news, see the file ONEWS. ! Emacs 19.28 has no changes except bug fixes. * Changes in Emacs 19.27 ! There are no changes; however, here is one bug fix made in 19.26 ! that users think should be documented here. ** SPC and DEL in Info now handle menus consistently. --- 5,1476 ---- Please send Emacs bug reports to bug-gnu-emacs@prep.ai.mit.edu. For older news, see the file ONEWS. + + * User Editing Changes in Emacs 19.29 + + ** If you run out of memory. + + If you get the error message "Virtual memory exhausted", type C-x s. + That way of saving files has the least additional memory needs. Emacs + 19.29 keeps a reserve of memory which it makes available when this + error happens; that is to ensure that C-x s can complete its work. + + Once you have saved your data, you can exit and restart Emacs, or use + M-x kill-some-buffers to free up space. If you kill buffers + containing a substantial amount of text, you can go on editing. + + Do not use M-x buffer-menu to save or kill buffers when you are out of + memory, because that needs a fair amount memory itself and you may not + have enough to get it started. + + ** The format of compiled files has changed incompatibly. + + Byte-compiled files made with Emacs 19.29 normally use a new format + that will not work in older Emacs versions. You can compile files + in the old format if you wish; see "Changes in compilation," below. + + ** Emacs 19.29 supports the DEC Alpha. + + ** Emacs runs on Windows NT. + + This port does not yet support windowing features. It works like a + text-only terminal, but it does support a mouse. + + In general, support for non-GNU-like operating systems is not a high + priority for the GNU project. We merged in the support for Windows NT + because that system is expected to be very widely used. + + ** Emacs supports Motif widgets. + + You can build Emacs with Motif widgets by specifying --with-x-toolkit=motif + when you run configure. + + Motif defines collections of windows called "tab groups", and uses the + tab key and the cursor keys to move between windows in a tab group. + Emacs naturally does not support this--it has other uses for the tab + key and cursor keys. Emacs does not support Motif accelerators either, + because it uses its normal keymap event binding features. + + We give higher priority to operation with a free widget set than to + operation with a proprietary one. + + ** If Emacs or the computer crashes, you can recover all the files you + were editing from their auto save files by typing M-x recover-session. + This first shows you a list of recorded interrupted sessions. Move + point to the one you choose, and type C-c C-c. + + Then recover-session asks about each of the files that were being + edited during that session, asking whether to recover that file. If + you answer y, it calls recover-file, which works in its normal + fashion. It shows the dates of the original file and its auto-save + file and asks once again whether to recover that file. + + When recover-session is done, the files you've chosen to recover + are present in Emacs buffers. You should then save them. + Only this--saving them--updates the files themselves. + + ** Menu bar menus now stay up if you click on the menu bar item and + release the mouse button within a certain amount of time. This is in + the X Toolkit version. + + ** The menu bar menus have been rearranged and split up to make for a + better organization. Two new menu bar menus, Tools and Search, + contain items that were formerly in the Files and Edit menus, as well + as some that did not exist in the menu bar menus before. + + ** Emacs can now display on more than one X display at the same time. + Use the command make-frame-on-display to create a frame, specifying + which display to use. + + ** M-x talk-connect sets up a multi-user talk connection + via Emacs. Specify the X display of the person you want to talk to. + You can talk to any number of people (within reason) by using + this command repeatedly to specify different people. + + ** 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. + + ** When you start Emacs, you can now specify option names in + long GNU form (starting with `--') and you can abbreviate the names. + + You can now specify the options in any order. + The previous requirements about the order of options + have been eliminated. + + The -L or --directory option lets you specify an additional + directory to search for Lisp libraries (including libraries + that you specify with the -l or --load options). + + ** Incremental search in Transient Mark mode, if the mark is already + active, now leaves the mark active and does not change its position. + You can make incremental search deactivate the mark once again with + this expression. + + (add-hook 'isearch-mode-hook 'deactivate-mark) + + ** C-delete now deletes a word backwards. This is for compatibility + with some editors in the PC world. (This key is not available on + ordinary ASCII terminals, because C-delete is not a distinct character + on those terminals.) + + ** ESC ESC ESC is now a command to escape from various temporary modes + and states. + + ** M-x pc-bindings-mode sets up bindings compatible with many PC editors. + In particular, Delete and its variants delete forward instead of backward. + Use Backspace to delete backward. + + C-Backspace kills backward a word (as C-Delete normally would). + M-Backspace does undo. + Home and End move to beginning and end of line + C-Home and C-End move to beginning and end of buffer. + + ** The key sequence for evaluating a Lisp expression using the minibuffer + is now ESC :. It used to be ESC ESC, but we moved it to make way for + the ESC ESC ESC feature, on the grounds that people who evaluate Lisp + expressions are experienced users and can cope with a change. + + ** The f1 function key is now equivalent to the help key. This is + done with key-translation-map; delete the binding for f1 in that map + if you want to use f1 for something else. + + ** Mouse-3, in the simplest case, still sets the region. But now, it + places the mark where point was, and sets point where you click. + (It used to set the mark where you click and leave point alone.) + + If you position point with Mouse-1, then scroll with the scroll bar + and use Mouse-3, Mouse-3 uses the position you specified with Mouse-1 + 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 + reason other than the scroll bar, cancels the special state set up by + Mouse-1--so that a subsequent Mouse-3 click will use the actual value + of point. + + ** C-mouse-3 now pops up a mode-specific menu of commands--normally + the same ones available in the mode's own menu bar menus. + + ** C-mouse-2 now pops up a menu of faces, indentation, justification, + and certain other text properties. This menu is also available + through the menu-bar Edit menu. It is meant for use with Enriched + mode. + + *** You can use this menu to change the face of the region. + You can also set the face of the region with the new M-g command. + + *** The menu also includes commands for indenting the region, + which locally changes the values of left-margin and fill-column that + are used. + + *** All fill functions now indent every line to the left-margin. If + there is also a fill-prefix, that goes after the margin indentation. + + *** Open-line and newline also make sure that the lines they create + are indented to the left margin. + + *** It also allows you to set the "justification" of the region: + whether it should be centered, flush right, and so forth. The fill + functions (including auto-fill-mode) will maintain the justification + and indentation that you request. + + *** The new function `list-colors-display' shows you what colors are + available. This is also accessible from the C-mouse-2 menu. + + ** You can now save and load files including their faces and other + text-properties by using Enriched-mode. Files are saved in an + extended version of the MIME text/enriched format. You can use the + menus described above, or M-g and other keyboard commands, to + alter the formatting information. + + ** C-mouse-1 now pops up the menu for changing the frame's default font. + + ** You can input Hyper, Super, Meta, and Alt characters, as well as + non-ASCII control characters, on an ASCII-only terminal. + To do this, use + + C-x @ h -- hyper + C-x @ s -- super + C-x @ m -- meta + C-x @ a -- alt + C-x @ S -- shift + C-x @ c -- control + + These are not ordinary key sequences; they operate through + function-key-map, which means they can be used even in the + middle of an ordinary key sequence. + + ** Outline minor mode and Hideif mode now use C-c @ as their prefix + character. + + ** Echo area messages are now logged in the "*Messages*" buffer. The + size of this buffer is limited to message-log-max lines. + + ** RET in various special modes for read-only buffers that contain + lists of items now selects the item point is on. These modes include + Dired, Compilation buffers, Buffer-menu, Tar mode, and Occur mode. + (In Info, RET follows the reference near point; in completion list + buffers, RET chooses the completion around point.) + + ** set-background-color now updates the modeline face in a special + way. If that face was previously set up to be reverse video, the + reverse of the default face, then set-background-color updates it so + that it remains the reverse of the default face. + + ** The functions raise-frame and lower-frame are now commands. + When used interactively, they apply to the selected frame. + + ** M-x buffer-menu now displays the buffer list in the selected window. + Use M-x buffer-menu-other-window to display it in another window. + + ** M-w followed by a kill command now *does not* append the text in + the kill ring. In consequence, M-w followed by C-w works as you would + expect: it leaves the top of the kill ring matching the region that + you killed. + + ** In Lisp mode, the C-M-x command now executes defvar forms in a + special way: it unconditionally sets the variable to the specified + default value, if there is one. Normal execution of defvar does not + alter the variable if it already has a non-void value. + + ** In completion list buffers, the left and right arrow keys run the + new commands previous-completion and next-completion. They move one + completion at a time. + + ** While doing completion in the minibuffer, the `prior' or `pageup' + key switches to the completion list window. + + ** When you exit the minibuffer with empty contents, the empty string + is not put in the minibuffer history. + + ** The default buffer for insert-buffer is now the "first" buffer + other than the current one. If you have more than one window, this + is a buffer visible in another window. (Usually it is the buffer + that C-M-v would scroll.) + + ** The etags program is now capable of recording tags based on regular + expressions provided on the command line. + + This new feature allows easy support for constructs not normally + handled by etags, such as the macros frequently used in big C/C++ + projects to define project-specific structures. It also enables the + use of etags and TAGS files for languages not supported by etags. + + The Emacs manual section on Tags contains explanations and examples + for Emacs's DEFVAR, VHDL, Cobol, Postscript and TCL. + + ** Various mode-specific commands that used to be bound to C-c LETTER + have been moved. + + *** In gnus-uu mode, gnus-uu-interactive-scan-directory is now on C-c C-d, + and gnus-uu-interactive-save-current-file is on C-c C-z. + + *** In Scribe mode, scribe-insert-environment is now on C-c C-v, + scribe-chapter is on C-c C-c, scribe-subsection is on C-c C-s, + scribe-section is on C-c C-t, scribe-bracket-region-be is on C-c C-e, + scribe-italicize-word is on C-c C-i, scribe-bold-word is on C-c C-b, + and scribe-underline-word is on C-c C-u. + + *** In Gomoku mode, gomoku-human-takes-back is now on C-c C-b, + gomoku-human-plays is on C-c C-p, gomoku-human-resigns is on C-c C-r, + and gomoku-emacs-plays is on C-c C-e. + + *** In the Outline mode defined in allout.el, + outline-rebullet-current-heading is now on C-c *. + + ** M-s in Info now searches through the nodes of the Info file, + just like s. The alias M-s was added so that you can use the same + command for searches in both Info and Rmail. + + ** iso-acc.el now lets you enter inverted-! and inverted-? + with the sequences ~! and ~?. + + ** M-x compare-windows now pushes mark in both windows before + it starts moving point. + + ** There are two new commands in Dired, A (dired-do-search) + and Q (dired-do-query-replace). These are similar to tags-search and + tags-query-replace, but instead of searching the list of files that + appears in a tags table, they search all the files marked in Dired. + + ** Changes to dabbrev. + + A new function, `dabbrev-completion' (bound to M-C-/), expands the + unique part of an abbreviation. + + Dabbrev now looks for expansions in other buffers, looks for symbols + instead of words and it works in the minibuffer. + + Dabbrev can be customized to work for shell scripts, with variables + that sometimes have and sometimes haven't a leading "$". See the + variable 'dabbrev-abbrev-skip-leading-regexp'. + + ** In Rmail, the command rmail-input-menu has been eliminated. The + feature of selecting an Rmail file from a menu is now implemented in + another way. + + ** Bookmarks changes. + + *** It now works to set bookmarks in Info nodes. + + *** Bookmarks can have annotations; type "C-h m" after doing + "M-x list-bookmarks", for more information on annotations. + + *** The bookmark-jump popup menu function is now `bookmark-menu-jump', for + those who bind it to a mouse click. + + *** The default bookmarks file name is now "~/.emacs.bmk". If you + already have a bookmarks file, it will be renamed automagically when + you next load it. + + ** New package, ps-print. + + The ps-print package generates PostScript printouts of buffers or + regions, and includes face attributes such as color, underlining, + boldface and italics in the printed output. + + ** New package, msb. + + The msb package provides a buffer-menu in the menubar with separate + menus for different types of buffers. + + ** `cpp.el' is a new library that can highlight or hide parts of a C + file according to C preprocessor conditionals. To try it, run the + command M-x cpp-highlight-buffer. + + ** Changes in CC mode. + + *** c-set-offset and related functions and variables can now accept + variable symbols. Also ++ and -- which mean 2* positive and negative + c-basic-offset respectively. + + *** 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). + + *** New variable, c-hanging-comment-ender-p for controlling + c-fill-paragraph's behavior. + + *** New syntactic symbol: statement-case-open. This is assigned to lines + containing an open brace just after a case/default label. + + *** New variable, c-progress-interval, which controls minibuffer update + message displays during long re-indention. This is a new feature + which prints percentage complete messages at specified intervals. + + ** Makefile mode changes. + + *** The electric keys are not enabled by default. + + *** There is now a mode-specific menu bar menu. + + *** The mode supports font-lock, add-log, and imenu. + + *** The command M-TAB does completion of target names and variable names. + + ** icomplete.el now works more like a minor mode. Use M-x icomplete-mode + to turn it on and off. + + Icomplete now supports an `icomplete-minibuffer-setup-hook', which is + run on minibuffer setup whenever icompletion will be occurring. This + hook can be used to customize interoperation of icomplete with other + minibuffer-specific packages, eg rsz-mini. See the doc string for + more info. + + ** Ediff change. + + Use ediff-revision instead of vc-ediff. It also replaces rcs-ediff, + for those who use that; if you want to use a version control package + other than vc.el, you must set the variable + ediff-version-control-package to specify which package. + + ** VC now supports branches with RCS. + + You can use C-u C-x C-q to select any branch or version by number. + It reads the version number or branch number with the minibuffer, + then checks out the file unlocked. + + Type C-x C-q again to lock the selected branch or version. + When you check in changes to that branch or version, there are two + possibilities: + + -- If you've selected a branch, or a version at the tip of a branch, + then the new version adds to that branch. If you wish to create a + new branch, use C-u C-x C-q to specify a version number when you check + in the new version. + + -- If you've selected an inner version which is not the latest in its + branch, then the new version automatically creates a new branch. + + ** VC now supports CVS as well as RCS and SCCS. + + Since there are no locks in CVS, some things behave slightly + different when the backend is CVS. When vc-next-action is invoked + in a directory handled by CVS, it does the following: + + If the file is not already registered, this registers it for version + control. This does a "cvs add", but no "cvs commit". + If the file is added but not committed, it is committed. + If the file has not been changed, neither in your working area or + in the repository, a message is printed and nothing is done. + If your working file is changed, but the repository file is + unchanged, this pops up a buffer for entry of a log message; when you + finish the log message with C-c C-c, that checks in the resulting + changes along with the log message as change commentary. A writable + file remains in existence. + + If vc-next-action changes the repository file, it asks you + whether to merge in the changes into your working copy. ! vc-directory, when started in a CVS file hierarchy, reports ! all files that are modified (and thus need to be committed). ! (When the backend is RCS or SCCS vc-directory reports all ! locked files). ! ! VC has no support for running the initial "cvs checkout" to get a ! working copy of a module. You can only use VC in a working copy of ! a module. ! ! You can disable the CVS support as follows: ! ! (setq vc-master-templates (delq 'vc-find-cvs-master vc-master-templates)) ! ! or by setting vc-handle-cvs to nil. ! ! This may be desirable if you run a non-standard version of CVS, or ! if CVS was compiled with FORCE_USE_EDITOR or (possibly) ! RELATIVE_REPOS. ! ! ** Comint and shell mode changes: ! ! *** Completion works with file names containing quoted characters. ! ! File names containing special characters (such as " ", "!", etc.) that are ! quoted with a "\" character are recognised during completion. Special ! characters are quoted when they are inserted during completion. ! ! *** You can use M-x comint-truncate-buffer to truncate the buffer. ! ! When this command is run, the buffer is truncated to a maximum number ! of lines, specified by the variable comint-buffer-maximum-size. Just ! like the command comint-strip-ctrl-m, this can be run automatically ! during process output by doing this: ! ! (add-hook 'comint-output-filter-functions ! 'comint-truncate-buffer) ! ! ** Telnet mode buffer name changed. ! ! The buffer name for a Telnet buffer is now *telnet-HOST*, not ! *HOST-telnet*. This is for consistency with other Emacs packages. ! ! ** M-x man (man) is now faster and more robust. On systems where the ! entire man page is indented, the indentation is removed. ! ! The user option names that used to end in -p now end in -flag. The ! new names are: Man-reuse-okay-flag, Man-downcase-section-letters-flag, ! Man-circular-pages-flag. The Man-notify user option has been renamed to ! Man-notify-method and accepts one more value, `pushy', that just ! switches the current buffer to the manpage buffer, without switching ! frames nor changing your windows configuration. ! ! A new user option Man-fontify-manpage-flag disables fontification ! (thus speeding up man) when set to nil. Default is to fontify if a ! window system is used. Two new user options Man-overstrike-face ! (default 'bold) and Man-underline-face (default 'underline) can be set ! to the preferred faces to be used for the words that man overstrikes ! and underlines. Useful for those who like coloured man pages. ! ! Two new interactive functions are provided: Man-cleanup-manpage and ! Man-fontify-manpage. Both can be used on a buffer that contains the ! output of a `rsh host man manpage' command, or the output of an ! `nroff -man -Tman manpage' command to make them readable. ! Man-cleanup-manpage is faster, but does not fontify. ! ! ** The new function modify-face makes it easy to specify ! all the attributes of a face, all at once. ! ! ** Faces now support background stippling. ! ! Use the command set-face-stipple to specify the stipple-pattern for a ! face. Use face-stipple to access the specified stipple pattern. The ! existing face functions now handle the stipple pattern when ! appropriate. ! ! If you specify one of the standard gray colors as a face background ! color, and your display doesn't handle gray, Emacs automatically uses ! stipple instead to get the same effect. ! ! ** Changes in Font Lock mode. ! ! *** Fontification ! ! Two new default faces are provided; `font-lock-variable-name-face' and ! `font-lock-reference-face'. The face `font-lock-doc-string-face' has ! been removed since it is the same as the existing ! `font-lock-string-face'. Where appropriate, fontification ! automatically uses these new faces. ! ! Fontification via commands `font-lock-mode' and ! `font-lock-fontify-buffer' is now cleanly interruptible (i.e., with ! C-g). If you interrupt during the fontification process, the buffer ! remains in its previous modified state and all highlighting is removed ! from the buffer. ! ! For C/C++ modes, Font Lock mode is much faster but highlights much ! more. Other modes are faster/more extensive/more discriminatory, or a ! combination of these. ! ! To enable Font Lock mode, add the new function `turn-on-font-lock' in ! one of the following ways: ! ! (add-hook 'c-mode-hook 'turn-on-font-lock) ! ! Or for any visited file with: ! ! (add-hook 'find-file-hooks 'turn-on-font-lock) ! ! *** Supports color and grayscale displays ! ! Font Lock mode supports different ways of highlighting, depending on ! the type of display and background shade. Attributes (face color, ! bold, italic and underline, and display type and background mode) can ! be controlled either from Emacs Lisp or X resources. ! ! See the new variables `font-lock-display-type' and ! `font-lock-face-attributes'. ! ! *** Supports more modes ! ! The following modes are directly supported: ! ! ada-mode, asm-mode, bibtex-mode, c++-c-mode, c++-mode, c-mode, ! change-log-mode, compilation-mode, dired-mode, emacs-lisp-mode, ! fortran-mode, latex-mode, lisp-mode, mail-mode, makefile-mode, ! outline-mode, pascal-mode, perl-mode, plain-tex-mode, rmail-mode, ! rmail-summary-mode, scheme-mode, shell-mode, slitex-mode, tex-mode, ! texinfo-mode. ! ! See the new variables `font-lock-defaults-alist' and ! `font-lock-defaults'. ! ! Some modes support different levels of fontification. You can choose ! to use the minimum or maximum available decoration by changing the ! value of the new variable `font-lock-maximum-decoration'. ! ! Programmers are urged to make available to the community their own ! keywords for modes not yet supported. See font-lock.el for ! information about efficiency. ! ! *** fast-lock ! ! The fast-lock package speeds up Font Lock mode by saving font choices ! in associated cache files. When you visit a file with Font Lock mode ! and Fast Lock mode turned on for the first time, the file's buffer is ! fontified as normal. When certain events occur (such as exiting ! Emacs), Fast Lock saves the highlighting in a cache file. When you ! subsequently visit this file, its cache is used to restore the ! highlighting. ! ! To use this package, put in your `~/.emacs': ! ! (add-hook 'font-lock-mode-hook 'turn-on-fast-lock) ! ! To control the use of caches, see the documentation for `fast-lock-mode'. ! ! *** New extension fast-lock. ! ! The fast-lock package speeds up Font Lock mode by saving (and reading) ! a file's highlighting to (and from) associated cache files. When you ! visit a file with Font Lock mode and Fast Lock mode turned on for the ! first time, the file's buffer is fontified as normal. When certain ! events occur (such as exiting Emacs), Fast Lock saves the highlighting ! in a cache file. When you subsequently visit that file with Font Lock ! mode and Fast Lock mode turned on, its cache is used to restore the ! highlighting. ! ! To use this package, put in your `~/.emacs': ! ! (add-hook 'font-lock-mode-hook 'turn-on-fast-lock) ! ! To control the use of caches, see the documentation for `fast-lock-mode'. ! ! ** You can tell pop-to-buffer to display certain buffers in the selected ! window rather than finding some other window to display them in. ! There are two variables you can use to specify these buffers. ! ! same-window-buffer-names holds a list of buffer names; if a buffer's ! name appears in this list, pop-to-buffer puts it in the selected window. ! ! same-window-regexps holds a list of regexps--if any one of them ! matches a buffer's name, then pop-to-buffer puts that buffer in the ! selected window. ! ! The default values of these variables are not nil: they list various ! buffers that normally appear, when you as for them, in the selected ! window. These include shell buffers, mail buffers, telnet buffers, ! and others. By removing elements from these variables, you can ask ! Emacs to display those buffers in separate windows. ! ! ** The special-display-buffer-names and special-display-regexps lists ! have been generalized. An element may now be a list. The car of the list ! is the buffer name or regular expression for matching buffer names. ! ! The cdr of the list can be an alist specifying additional frame ! parameters for use in constructing the special display frame. ! ! Alternatively, the cdr can have this form: ! ! (FUNCTION ARGS...) ! ! where FUNCTION is a symbol. Then the frame is constructed by calling ! FUNCTION; its first argument is the buffer, and its remaining ! arguments are ARGS. ! ! ** If the environment variable REPLYTO is set, its value is the default ! for mail-default-reply-to. ! ! ** When you send a message in Emacs, if you specify an Rmail file with ! the FCC: header field, Emacs converts the message to Rmail format ! before writing it. Thus, the file never contains anything but Rmail ! format messages. ! ! ** The new variable mail-from-style controls whether the From: header ! should include the sender's full name, and if so, which format to use. ! ! ** The new variable mail-personal-alias-file specifies the name of the ! user's personal aliases. This defaults to the file ~/.mailrc. ! mailabbrev.el used to have its own variable for this purpose ! (mail-abbrev-mailrc-file). That variable is no longer used. ! ! ** In Buffer-Menu mode, the d and C-d commands (which mark buffers for ! deletion) now accept a prefix argument which serves as a repeat count. ! ! ** Changes in BibTeX mode. ! ! *** Reference keys can now be entered with TAB completion. All ! reference keys defined in that buffer and all labels that appear in ! crossreference entries are object to completion. ! ! *** Braces are supported as field delimiters in addition to quotes. ! BibTeX entries may have brace-delimited and quote-delimited fields ! intermixed. The delimiters generated for new entries are specified by ! the variables bibtex-field-left-delimiter and ! bibtex-field-right-delimiter on a buffer-local basis. Those variables ! default to braces, since it is easier to put quote accented characters ! (as the german umlauts) into a brace-delimited entry. ! ! *** The function bibtex-clean-entry can now be invoked with a prefix ! argument. In this case, a label is automatically generated from ! various fields in the record. If bibtex-clean-entry is invoked on a ! record without label, a label is also generated automatically. ! Various variables (all beginning with `bibtex-autokey-') control the ! creation of that key. The variable bibtex-autokey-edit-before-use ! determines, if the user is allowed to edit auto-generated reference ! keys before they are used. ! ! *** A New function bibtex-complete-string completes strings with ! respect to the strings defined in this buffer and a set of predefined ! strings (initialized to the string macros defined in the standard ! BibTeX style files) in the same way in which ispell-complete-word ! works with respect to words in a dictionary. Candidates for ! bibtex-complete-string are initialized from variable ! bibtex-predefined-strings and by parsing the files found in ! bibtex-string-files for @String definitions. ! ! *** Every reference/field pair has now attached a comment which ! appears in the echo area when this field is edited. These comments ! should provide useful hints for BibTeX usage, especially for BibTeX ! beginners. New variable bibtex-help-message determines if these help ! messages are to appear in the minibuffer when moving to a text entry. ! ! *** Inscriptions of menu bar changed from "Entry Types" to ! "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". ! ! *** The variable bibtex-include-OPTcrossref is now not longer a binary ! switch but a list of reference names which should contain a crossref ! field. E.g., you can tell bibtex-mode you want a crossref field for ! @InProceedings and @InBook entries but for no other. ! ! *** The function validate-bibtex-buffer was completely rewritten to ! validate if a buffer is syntactically correct. find-bibtex-duplicates ! is no longer a function itself but was moved into ! validate-bibtex-buffer. ! ! *** Cleaning a BibTeX entry tests, if necessary fields are there. ! E.g., if you tell bibtex-mode to include a crossref entry, some fields ! are optional which would be required without the crossref entry. If ! you now leave the crossref entry empty and do a bibtex-clean-entry ! with some now required fields left empty, version 2.0 of bibtex.el ! complains about the absence of these fields, whereas version 1.3 ! didn't. ! ! *** Default value for variables bibtex-maintain-sorted-entries and ! bibtex-sort-ignore-string-entries is now t. ! ! *** All interactive functions are renamed to begin with `bibtex-'. ! ! *** Keybindings with \C-c\C-e entry changed for unification. Often ! used reference types are now on control-modified keys, mediocre used ! types are on unmodified keys, seldom used types are on shift-modified ! keys and almost never used types on meta-modified keys. ! ! * Configuration Changes in Emacs 19.29 ! ! ** Emacs now uses directory /usr/local/share for most of its installed ! files. This follows a GNU convention for directory usage. ! ! ** The option --with-x11 is no longer supported. ! X11 is the only version of X that Emacs 19.29 supports; ! use --with-x if you need to request X support explicitly. ! (Normally this should not be necessary, since configure should ! automatically enable X support if X is installed on your machine.) ! ! ** If you use the site-init.el file to set the variable ! mail-host-address to a string in the dumped Emacs, that string becomes ! the default host address for initializing user-mail-address. ! 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 + current default obarray). + + If the specified symbol is not in the obarray, or if there's no symbol + in the obarray matching the specified string, unintern does nothing + 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', + `window', `buffer', `subr', `compiled-function', + `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 + later. The result is: if you have called eval-after-load for a file, + and if that file has been loaded, then regardless of the order of + 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 you edit by hand, but it is + 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. + `plist-put' returns the modified property-list; you must store it + 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'. Here is an example: + + (setq foo '(a b)) => (a b) + + (add-to-list 'foo 'c) => (c a b) + + (add-to-list 'foo 'b) => (c a b) + + foo => (c a b) + + * Changes in compilation. + + Functions and variables loaded from a byte-compiled file + now refer to the file for their doc strings. + + This has a few consequences: + + -- Loading the file is faster and uses less memory. + -- Reference to doc strings is a little slower (the same speed + as reference to the doc strings of primitive and preloaded functions). + -- The compiled files will not work in old versions of Emacs. + -- If you move the compiled file after loading it, Emacs can no longer + find these doc strings. + -- If you alter the compiled file (such as by compiling a new + version), then further access to documentation strings will get + nonsense results. + + The byte compiler now optionally supports lazy loading of compiled + functions' definitions. If you enable this feature when you compile, + loading the compiled file does not actually bring the function + definitions into core. Instead it creates references to the compiled + file, and brings each function's definition into core the first time + you call that function, or when you force it with the new function + `fetch-bytecode'. + + Using the lazy loading feature has a few consequences: + + -- Loading the file is faster and uses less memory. + -- Calling any function in the file for the first time is slower. + -- If you move the compiled file after loading it, Emacs can no longer + find the function definitions. + -- If you alter the compiled file (such as by compiling a new + version), then further access to functions not already loaded + will get nonsense results. + + To enable the lazy loading feature, set up a non-nil file local + variable binding for the variable `byte-compile-dynamic' in the Lisp + source file. For example, put this on the first line: + + -*-byte-compile-dynamic: t;-*- + + It's a good idea to use the lazy loading feature for a file that + contains many functions, most of which are not actually used by a + given user in a given session. + + To turn off the basic feature of referring to the file for doc + strings, set byte-compile-dynamic-docstrings to nil. You can do this + globally, or for one source file by adding this to the first line: + + -*-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 as single characters in a future release. To concatenate + numbers in string form, use `number-to-string' first, or rewrite the + 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 + string, the string must be given. Therefore, this function can be + used in place of `buffer-substring' and `substring', when using + `match-beginning' and `match-end' to find match positions. + + (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 string which is the same as + 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. + Call the function `make-local-hook' to do this. + + Once a hook variable is buffer-local, you can add hooks to it either + globally or locally. run-hooks runs the local hook functions + of the current buffer, then all the global hook functions. + + The functions add-hook and remove-hook take an additional optional + argument LOCAL which says whether to add (or remove) a local hook + function or a global one. + + Local hooks use t as an element of the (local) value of the hook + 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. + The reason for this change is to get higher speed. + + There are new functions you can use if you really want to search or + match with Posix behavior: posix-search-forward, + posix-search-backward, posix-looking-at, and posix-string-match. Call + these just like re-search-forward, re-search-backward, looking-at, and + 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. + + `format-alist' has one element for each format. Each element is a + list like this: + (NAME DOC-STRING REGEXP FROM-FN TO-FN MODIFY MODE-FN) + containing the name of the format, a documentation string, a regular + expression which is used to recognize files in that format, a decoding + function, an encoding function, a flag that indicates whether the + encoding function modifies the buffer, and a mode function. + + FROM-FN is called to decode files in that format; it gets two args, BEGIN + and END, and can make any modifications it likes, returning the new + end position. It must make sure that the beginning of the file no + longer matches REGEXP, or else it will get called again. + TO-FN is called to encode a region into that format; it is also passed BEGIN + and END, and either returns a list of annotations as in + `write-region-annotate-functions', or modifies the region and returns + the new end position. + MODIFY, if non-nil, means the TO-FN modifies the region. If nil, TO-FN may + not make any changes and should return a list of annotations. + + `insert-file-contents' checks the beginning of the file that it is + inserting to see if it matches one of the regexps. If so, then it + calls the decoding function, and then looks for another match. When + visiting a file, it also calls the mode function, and sets the + variable `buffer-file-format' to the list of formats that the file + used. + + `write-region' calls the encoding functions for each format in + `buffer-file-format' before it writes the file. To save a file in a + different format, either set `buffer-file-format' to a different + value, or call the new function `format-write-file'. + + Since some encoding functions may be slow, you can request that + auto-save use a format different from the buffer's default by setting + the variable `auto-save-file-format' to the desired format. This will + 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 to stop using those sequences, + 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-M-newline, and (meta ?d) + 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 + defined. + + The new interactive code `K' reads a key sequence similarly, but does + not convert the last event. `K' is useful for reading a key sequence + 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. + + Note that overriding-local-map does still affect the execution of key + sequences entered using the menu bar. So if you use + overriding-local-map, and a menu bar key sequence comes in, you should + make sure to clear overriding-local-map before that key sequence gets + looked up and executed. But this is what you'd normally do anyway: + programs that use overriding-local-map normally exit and "put back" + 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 + generates a delete-frame event. The standard definition of this event + is a command that deletes the frame that received the event, and kills + Emacs when the last visible or iconified frame is deleted. You can + 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 + selected frame. The terminal-local variables are + default-minibuffer-frame, system-key-alist, defining-kbd-macro, and + last-kbd-macro. There is no way for Lisp programs to create others. + + 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 + the screen and (- N) means N pixels to the left of the right edge. In + both cases, N may be zero (exactly at the edge) or negative (putting + the window partly off the screen). + + The function x-parse-geometry can return values of these forms + 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 frame's buffer predicate (if it + 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 + "HOST:DPYNUMBER.SCREENNUMBER". + + The functions x-server-... and x-display-... now take an optional + argument which specifies the display to ask about. You can use either + a display name string or a frame. A value of nil stands for the + selected frame. + + To close the connection to an X display, use the function + x-close-connection. Specify which display with a display name. You + cannot close the connection if Emacs still has frames open on that + display. + + x-display-list returns a list indicating which displays Emacs has + 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 + always leave the newly created buffer in Fundamental mode. + + Creating a new buffer by visiting a file or with switch-to-buffer, + pop-to-buffer, and similar functions does call set-buffer-major-mode + 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 + narrowing. An indirect buffer has a name of its own, distinct from + those of the base buffer and all other buffers. An indirect buffer + cannot itself be visiting a file (though its base buffer can be). + The base buffer cannot itself be indirect. + + Use (make-indirect-buffer BASE-BUFFER NAME) to make an indirect buffer + named NAME whose base is BASE-BUFFER. If BASE-BUFFER is an indirect + buffer, its base buffer is used as the base for the new buffer. + + You can make an indirect buffer current, or switch to it in a window, + just as you would a non-indirect buffer. + + The function buffer-base-buffer, given an indirect buffer, returns its + base buffer. It returns nil when given an ordinary buffer (not + indirect). + + The library `noutline' has versions of Outline mode and Outline minor + mode which let you display different parts of the outline in different + 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. + To do this, specify for the third argument, BUFFER, a list of the form + (BUFFER-OR-NAME ERROR-DESTINATION) + BUFFER-OR-NAME specifies where to put ordinary output; it should + be a buffer or buffer name, or t, nil or 0. This is what would + have been the BUFFER argument, ordinarily. + + ERROR-DESTINATION specifies where to put the error output. + nil means discard it, t means mix it with the ordinary output, + and a string specifies a file name to write this output into. + + You can't specify a buffer to put the error output in; that is not + easy to implement directly. You can put the error output into a + buffer by sending it to a temporary file and then inserting the file + 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, + controls this. + + If its value is t, then any non-nil `invisible' property makes + a character invisible. + + 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. + + When the `invisible' property value appears as the car of a member of + the `buffer-invisibility-spec' list, then the cdr of that member has + an effect. If it is non-nil, then an ellipsis appears in place of the + character. (This happens only for the *last* invisible character in a + series of consecutive invisible characters, and only at the end of a + line.) + + If a character's `invisible' property is a list, then Emacs checks each + element of the list against `buffer-invisibility-spec'. If any element + 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 + terminal; other frames are not displayed at all. The selected frame + number appears in the mode line after `Emacs', except for frame 1. + + Switching frames on ASCII terminals is therefore more or less + 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 frame as the sole argument. + 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. + + This change affects three overlay properties: the modification-hooks + property, a list of functions called for deletions overlapping the + overlay's range and for insertions inside it; the + insert-in-front-hooks, a list of functions called for insertions at + the beginning of the overlay; and the insert-behind-hooks, a list of + functions called for insertions at the end of the overlay. + + Each function is called both before and after each change that it + applies to. Before the change, it is called with four arguments: + (funcall FUNCTION OVERLAY nil START END) + START and END are the same arguments that the before-change-functions + receive. + + After the change, each function is called with five arguments: + (funcall FUNCTION OVERLAY t START END OLDSIZE) + The last arguments, START and END and OLDSIZE, + are the same arguments that the after-change-functions receive. + + 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. + + Specifically, if an overlay does not have the property PROP that you + ask for, but it does have a `category' property which is a symbol, + 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 + argument. If the function returns non-nil, fill-paragraph assumes it + has done the job and simply passes on whatever value it returned. + + The usual use of this feature is to fill comments in programming + 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-justify a line, to the beginning + 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 backwards compatibility, a ^ at + 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. + + Setting debug-on-error non-nil turns off this feature; then errors in + filters and sentinels are not caught. As a result, they can invoke + 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.g. isearch.el) should probably + 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 + other useful character to store for this element is a space, to make + less visual separation between two side-by-side windows displaying + 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 + should use caches to handle long lines more quickly. This variable is + buffer-local, in all buffers. + + Normally, the line-motion functions work by scanning the buffer for + newlines. Columnar operations (like `move-to-column' and + `compute-motion') also work by scanning the buffer, summing character + widths as they go. This works well for ordinary text, but if the + buffer's lines are very long (say, more than 500 characters), these + motion functions will take longer to execute. Emacs may also take + longer to update the display. + + If cache-long-line-scans is non-nil, these motion functions cache + the results of their scans, and consult the cache to avoid rescanning + regions of the buffer until the text is modified. The caches are most + beneficial when they prevent the most searching---that is, when the + buffer contains long lines and large regions of characters with the + same, fixed screen width. + + When cache-long-line-scans is non-nil, processing short lines will + become slightly slower (because of the overhead of consulting the + cache), and the caches will use memory roughly proportional to the + number of newlines and characters whose screen width varies. + + The caches require no explicit maintenance; their accuracy is + maintained internally by the Emacs primitives. Enabling or disabling + the cache should not affect the behavior of any of the motion functions; + 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 + is non-nil if at least two non-minibuffer frames are visible. These + variables may be useful in constructing the value of frame-title-format + 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, such as 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 a list of specific items of + information, such as the year, month, day of week, day of month, hour, + minute and second into a time value. + * Changes in Emacs 19.27 ! There are no changes; however, here is one bug fix made in 19.26 that users ! think should be documented here. ** SPC and DEL in Info now handle menus consistently. *************** *** 88,91 **** --- 1549,1555 ---- to a particular date. + The D command displays diary entries from a specified diary file (not + your standard diary file). + ** In the gnus-uu package, the binding for gnus-uu-threaded-decode-and-view is now C-c C-v C-d, not C-c C-v C-h. Thus, C-c C-v C-h is now available *************** *** 908,915 **** data in the undo list. - ** If you set auto-save-list-file-name to a non-nil value, it specifies - a file; then auto-saving writes a list of all auto save file names of - all Emacs buffers into that file. - ** The variable inhibit-first-line-modes-regexps specifies classes of file names for which -*- on the first line should not be looked for. --- 2372,2375 ---- *************** *** 3568,3572 **** Copyright information: ! Copyright (C) 1993 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies --- 5028,5032 ---- Copyright information: ! Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies *************** *** 3583,3584 **** --- 5043,5045 ---- mode: text end: + diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/ORDERS emacs-19.29/etc/ORDERS *** emacs-19.28/etc/ORDERS Mon Jun 20 12:56:02 1994 --- emacs-19.29/etc/ORDERS Sat Jun 17 17:07:26 1995 *************** *** 1,26 **** The actual order form follows the descriptions of media contents. Please send suggestions for improvements to gnu@prep.ai.mit.edu or the postal address at the end of the order form. Thank You. - Most of this file is excerpted from the June 1994 GNU's Bulletin. - --------------------------------------------------------------------- ! FSF Order Form with Descriptions June, 1994 ! Free Software Foundation, Inc. Telephone: +1-617-876-3296 ! 675 Massachusetts Avenue FAX: +1-617-492-9057 ! Cambridge, MA 02139-3309 FAX (in Japan): ! USA 0031-13-2473 (KDD) ! Electronic mail: `gnu@prep.ai.mit.edu' 0066-3382-0158 (IDC) ! There are some sections (e.g. ``Forthcoming GNUs'') which are not in this ! Order Form file. If you wish to see them, ask gnu@prep.ai.mit.edu for the ! complete June 1994 GNU's Bulletin. --- 1,29 ---- 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) ! There are some sections (e.g. ``Forthcoming GNUs'' and ``How to Get GNU ! Software'') which are not in this Order Form file. If you wish to see them, ! ask gnu@prep.ai.mit.edu for the complete June, 1995 GNU's Bulletin. *************** *** 32,56 **** Free Software Redistributors Donate Help from Free Software Companies ! Major Changes in GNU Software and Documentation GNU Documentation ! GNU Software ! Program/Package Cross Reference Tapes ! Languages Tape ! Utilities Tape ! Emacs Tape Scheme Tape X11 Tapes ! Berkeley 4.4BSD--Lite Tape VMS Emacs and VMS Compiler Tapes CD-ROMs Pricing of the GNU CD-ROMs ! May 1994 Source Code CD-ROM ! November 1993 Source Code CD-ROM Compiler Tools Binaries CD-ROM MS-DOS Diskettes ! DJGPP Diskettes ! Emacs Diskettes ! Selected Utilities Diskettes Windows Diskette Tape & CD-ROM Subscription Service --- 35,65 ---- 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 ! Berkeley 4.4BSD-Lite Tape VMS Emacs and VMS Compiler Tapes 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 *************** *** 70,79 **** 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 have your donation matched by your employer (or, in some ! cases, by Cygnus Support (see ``Cygnus Matches Donations!''). If you do not ! know, please ask your personnel department. Also try and get the FSF listed ! on the list of organizations for your company's matching gifts program. $500 $250 $100 $50 other $________ --- 79,92 ---- 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 $________ *************** *** 81,96 **** Other currency:________ - Circle the amount you are donating, cut out this form, and send it with your - donation to: - - Free Software Foundation - 675 Massachusetts Avenue - Cambridge, MA 02139-3309 - USA - - You can charge a donation to any of Visa, Mastercard, JCB, Diner's Club, or - Carte Blanche. Charges may also be faxed to +1-617-492-9057; in Japan fax - to: 0031-13-2473 (KDD) or 0066-3382-0158 (IDC). Card type: __________________ Expiration Date: _____________ --- 94,103 ---- Other currency:________ + 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: _____________ *************** *** 98,105 **** Account Number: _____________________________________________ ! Your Signature: _____________________________________________ Cygnus Matches Donations! ************************* --- 105,120 ---- Account Number: _____________________________________________ ! Cardholder's Signature: _____________________________________ ! ! Name: _______________________________________________________ ! ! Street Address: _____________________________________________ + City/State/Province: ________________________________________ + Zip Code/Postal Code/Country: _______________________________ + + Cygnus Matches Donations! ************************* *************** *** 113,118 **** the FSF each quarter. The FSF will provide the contributor with a receipt to recognize the contribution (which is tax-deductible on U.S. tax returns). ! For more information, please contact Cygnus at `info@cygnus.com.' ! Cygnus Support 1937 Landings Drive --- 128,132 ---- the FSF each quarter. The FSF will provide the contributor with a receipt to recognize the contribution (which is tax-deductible on U.S. tax returns). ! For more information, please contact Cygnus: Cygnus Support 1937 Landings Drive *************** *** 121,125 **** Telephone: 415-903-1400 ! +1-800-Cygnus1 Fax: 415-903-0122 Electronic-Mail: `info@cygnus.com' --- 135,139 ---- Telephone: 415-903-1400 ! +1-800-Cygnus1 (-294-6871) Fax: 415-903-0122 Electronic-Mail: `info@cygnus.com' *************** *** 134,148 **** by Richard Stallman ! Austin Code Works, a redistributor of free software, has agreed to support ! free software development by giving the FSF 20% of the selling price for the ! GNU software packages they produce and sell. ! ! The Sun Users Group Deutschland has agreed to add a donation to the FSF to ! the price of their next CD-ROM of GNU software. Potential purchasers will ! know precisely how much is for the FSF and how much is for SUGD. In the long run, the success of free software depends on how much new free software people develop. Free software distribution offers an opportunity to ! raise funds for such development in an ethical way. These two redistributors have made use of the opportunity. Many others let it go to waste. --- 148,167 ---- 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 software people develop. Free software distribution offers an opportunity to ! raise funds for such development in an ethical way. These redistributors have made use of the opportunity. Many others let it go to waste. *************** *** 158,163 **** To make this work, you must insist on numbers that you can compare, such as, "We will give ten dollars to the Foobar project for each disk sold." A vague ! commitment, such as "A portion of the profits are donated", doesn't give you ! a basis for comparison. Even a precise fraction "of the profits from this disk" is not very meaningful, since creative accounting and unrelated business decisions can greatly alter what fraction of the sales price counts --- 177,182 ---- To make this work, you must insist on numbers that you can compare, such as, "We will give ten dollars to the Foobar project for each disk sold." A vague ! commitment, such as "A portion of the profits is donated," doesn't give you a ! basis for comparison. Even a precise fraction "of the profits from this disk" is not very meaningful, since creative accounting and unrelated business decisions can greatly alter what fraction of the sales price counts *************** *** 167,171 **** they do or support. Some kinds make much more long-term difference than others. For example, maintaining a separate version of a GNU program ! contributes very little; maintaining a program on behalf of the GNU project 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 --- 186,190 ---- they do or support. Some kinds make much more long-term difference than others. For example, maintaining a separate version of a GNU program ! contributes very little; maintaining a program on behalf of the GNU Project 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 *************** *** 190,319 **** 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. Also see ! ``Cygnus Matches Donations!''. ! ! Contributed Software GbR ! Graefestr. 76 ! D-10967 Berlin ! Germany ! ! Telephone: (+49-30) 694-69-07 ! Fax: (+49-30) 694-68-09 ! Electronic-Mail: `info@contrib.de' ! BBS & no-charge free software archive: ! Dialins: (+49-30) 693-40-51 (eight USR DS's) ! (+49-30) 694-60-55 (five ZyXELs) ! Telnet: `uropax.contrib.de' [192.109.39.2] ! FTP: `ftp.contrib.de' ! WWW: `http://www.contrib.de/' ! ! ! Hundred Acre Consulting ! 5301 Longley Lane, Suite D-144 ! Reno, NV 89511 ! USA ! ! Telephone: 702-829-9700 ! +1-800-245-2885 ! Fax: 702-829-9926 ! Electronic-Mail: `info@pooh.com' ! FTP: `ftp.pooh.com' ! WWW: `http://www.pooh.com/' ! Gopher: `gopher.pooh.com' ! ! ! ! Major Changes in GNU Software and Documentation ! *********************************************** ! ! We don't list version number changes in this section, just major changes ! since January 1994. ! ! * FSF Now Distributing X11R6, as well as X11R5 ! ! FSF updated the ``X11 Tapes'' and the ``May 1994 Source Code CD-ROM'' to ! the just-released X11R6. This is the first major update since X11R5 was ! released in September, 1991. We will distribute X11R5 on tape until ! X11R6 is stable, and on the ``November 1993 Source Code CD-ROM'', ! while supplies last. ! ! * 4.4BSD-Lite (Also see ``4.4BSD-Lite Tape''.) ! ! The FSF has begun distributing 4.4BSD-Lite and dropped the old Berkeley ! Networking 2 tape. The "Lite" refers to the omittance of some ! proprietary files that still remain in the full 4.4BSD distribution. ! However, 4.4BSD-Lite is considerably more complete than the previous ! Networking 2 release. ! ! * Common Lisp Freed! ! ! GNU Common Lisp (GCL) has been added. Previously, GCL had distribution ! terms under which each user had to have a signed paper contract on file. ! However, the authors recently decided to switch to the GPL. See ``GNU ! Software'', and ``Emacs Tape'', for more information. ! ! * Manual Updated since Last Bulletin ! ! The GNU Emacs Lisp Reference Manual has been updated. The new edition ! includes bug fixes and additional information. See ``GNU Documentation''. ! ! * New Program on the Languages Tape ! ! Octave has been added. See ``GNU Software'' and ``Languages Tape'', ! for more information. ! ! * New Programs on the Utilities Tape ! ! `ed' has been added. `elvis' has been replaced by `nvi'. See ``GNU ! Software'' and ``Utilities Tape'', for more information. ! ! * New Programs on the Source Code CD-ROM ! ! This CD-ROM has all the new programs and changes on the tapes. X11R6 has ! also replaced X11R5. See ``Source Code CD-ROM'', for details. ! ! * Experimental Tape Takes a Recess ! ! We are not currently distributing the Experimental Tape because most of ! the programs that were on it are now stable. GCC, GAS, Binutils, libg++, ! and the C Library are now on the ``Languages Tape'', replacing prior ! releases. Oleo & GNU Graphics are now on the ``Utilities Tape''. ! ! * Compiler Tools Binaries CD-ROM ! ! We now have a CD-ROM that contains executables for the GNU compiler tools ! for some systems that don't normally come with a compiler. This allows ! users of those systems to compile GNU and other free software without ! having to buy a proprietary compiler. See ``Compiler Tools Binaries ! CD-ROM'', for more details, including which platforms are supported. ! ! We hope to include more systems with each update of this CD-ROM. If you ! can help build binaries for new systems, or have a system to suggest, ! please contact us at either address on the front cover. ! ! * Source CD-ROM Subscriptions ! ! We are now offering a subscription service for the Source Code CD-ROM in ! addition to our tape subscription service. For the price of 3 CD-ROMs ! (plus any shipping costs) you get the next 4 that we make. Presently we ! make two updates a year, but we may go to more frequent updates. See ! ``Tape & CD-ROM Subscription Service''. ! ! * FSF Accepts Orders and Donations via Fax - You can now send orders and donations to FSF by fax. Please fax in a - completed order form, including credit card information, since orders - must be prepaid. We do *not* accept purchase orders. The number is - +1-617-492-9057 in the U.S. and everywhere else except Japan. In Japan, - the fax numbers are toll-free: 0031-13-2473 (KDD) and - 0066-3382-0158 (IDC). - * FSF T-shirts Improved! - We have added a copy of the GNU General Public License to the back of our - T-shirt, which used to be blank. See ``FSF T-shirt''. - - - GNU Documentation ***************** --- 209,228 ---- 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 ! Software Research Associates, Inc. ! 1-1-1 Hirakawa-cho, Chiyoda-ku ! Tokyo 102, Japan ! ! Phone: (+81-3)3234-2611 ! Fax: (+81-3)3942-5174 ! E-mail: `info-wingnut@sra.co.jp' GNU Documentation ***************** *************** *** 320,339 **** GNU is dedicated to having quality, easy-to-use online and printed ! documentation. GNU manuals are intended to explain the 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-like display via the menu-driven Info system. Source for these ! manuals comes with our software, and they are available in hardcopy; see the ! Free Software Foundation Order Form, in the centerfold. 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. Each book has an inner cloth spine and an outer cardboard cover that will not break or crease as an ordinary paperback will. Currently, the ! `Emacs', `GDB', `Emacs Lisp Reference', `GAWK', `Make', `Flex', `Bison', and ! `Texinfo' manuals have this binding. The other GNU manuals are also bound so ! they lie flat when opened, using a GBC binding. All of our manuals are 7in ! by 9.25in except the `Calc' manual, which is 8.5in by 11in. The edition number of the manual and version number of the program listed --- 229,248 ---- 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 *************** *** 340,354 **** after each manual's name were current at the time this Bulletin was published. ! The `Emacs Manual' (9th Edition for Version 19) 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. ! ! `Debugging with GDB' (Edition 4.09 for Version 4.9) 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 `GNU Emacs Lisp Reference Manual' (Edition 2.3 for Version 19.23) covers this programming language in depth, including data types, control structures, functions, macros, syntax tables, searching/matching, modes, windows, --- 249,272 ---- 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, *************** *** 360,364 **** language. ! The `Make Manual' (Edition 0.43 for Version 3.68) 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 --- 278,282 ---- 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 *************** *** 366,373 **** users and a section about automatically generated dependencies. ! The `Flex Manual' (Edition 1.03 for Version 2.3.7) tells you how to write a lexical scanner definition for the `flex' program to create a C++ or C-coded ! scanner that will recognize the patterns described. You need no prior ! knowledge of scanner generators. The `Bison Manual' (December 1993 Edition for Version 1.23) teaches you how --- 284,291 ---- 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 *************** *** 375,385 **** C-coded parsers. You need no prior knowledge of parser generators. ! `Using and Porting GNU CC' (October 1993 Edition for Version 2.5) explains ! how to run, install, and port the GNU C Compiler to new systems. It ! describes new features and incompatibilities of the compiler, but people not ! familiar with C will also need a good reference on the C programming ! language. This manual also covers G++. ! The `Texinfo Manual' (Edition 2.19 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, --- 293,303 ---- C-coded parsers. You need no prior knowledge of parser generators. ! `Using and Porting GNU CC' (September 1994 Edition for Version 2.6) tells how ! to run, install, and port the GNU C Compiler to new systems. It lists new ! 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, *************** *** 393,432 **** programmers. ! The `C Library Reference Manual' (June 1993 Edition for Version 1.07) ! 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. It is new, and ! needs corrections and improvements. Please send them to ! `bug-glibc-manual@prep.ai.mit.edu'. ! The `Emacs Calc Manual' (Edition 2.02 for Version 2.02) includes both a ! tutorial and a reference manual for Calc. It describes how to do ordinary ! arithmetic, how to use Calc for algebra, calculus, and other forms of ! mathematics, and how to extend Calc. ! GNU Software ************ ! All our software is available via anonymous FTP; see ``How to Get GNU ! Software''. In addition we offer software on various media and printed ! documentation: ! * see ``CD-ROMs''. ! * see ``Tapes''. ! * see ``MS-DOS Diskettes''. ! * see ``GNU Documentation'', including manuals and reference cards. We welcome all bug reports sent to the appropriate electronic mailing list ! (see ``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 or diskette, some of the programs may be ! newer, and therefore the version number higher. Key to cross reference: --- 311,348 ---- programmers. ! 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 ! and a reference manual. It tells how to do ordinary arithmetic, how to use ! Calc for algebra, calculus, and other forms of mathematics, and how to extend ! Calc. ! 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::. ! * *Note Tapes::. ! * *Note MS-DOS Diskettes::. ! * *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: *************** *** 439,450 **** Djgpp Diskettes EmcsD Emacs Diskettes ! EmcsT ! Emacs Tape LangT ! Language Tape LiteT --- 355,369 ---- Djgpp Diskettes + DosCD + MS-DOS CD-ROM + EmcsD Emacs Diskettes ! LspEmcT ! Lisps/Emacs Tape LangT ! Languages Tape LiteT *************** *** 478,499 **** X11 Required Tape Configuring GNU Software: We are using a uniform scheme for configuring GNU software packages in order ! to compile them, which uses the `autoconf' program. All GNU software ! supports the same alternatives for naming machine and system types. This ! makes it possible to configure any and all GNU software in the same manner. ! ! The configuration scheme also supports configuring a directory containing ! several GNU packages with one command. 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 can also specify both the host and target system, so - you can easily configure and build cross-compilation tools. GNU software currently available: ! (For new features and coming programs, see ``Forthcoming GNUs''.) * `acm' (SrcCD, UtilT) --- 397,417 ---- 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) *************** *** 500,506 **** `acm' is a LAN-oriented, multiplayer aerial combat simulation that runs ! under the MIT X Window System. Players engage in air to air combat ! against one another using heat seeking missiles and cannons. Eventually ! we hope to turn this into a more general purpose flight simulator. * Autoconf (SrcCD, UtilT) --- 418,424 ---- `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) *************** *** 524,577 **** readline library. BASH conforms to the POSIX 1003.2 shell specification. ! * `bc' (SrcCD, UtilT) ! `bc' is an interactive algebraic language with arbitrary precision. GNU ! `bc' follows the POSIX 1003.2 draft standard, with several extensions ! including multi-character variable names, an `else' statement and full ! Boolean expressions. GNU `bc' does not require the separate `dc' ! program. ! * BFD (BinCD, LangT, SrcCD) The Binary File Descriptor library allows a program which operates on ! object files (e.g. `ld' or GDB) to support many different formats in a clean way. BFD provides a portable interface, so that only BFD needs to know the details of a particular format. One result is that all ! programs using BFD will support formats such as a.out, COFF, ELF & ! OSF-Rose. BFD comes with source for Texinfo documentation (not yet ! published on paper). ! ! Presently BFD is not distributed separately because it is not yet ! completely stable; however, it is included with packages that use it. ! ! * Binutils (BinCD, LangT, SrcCD) ! ! Binutils includes the programs: `ar', `c++filt', `demangle', `gprof', ! `ld', `nlmconv', `nm', `objcopy', `objdump', `ranlib', `size', `strings', ! & `strip'. ! ! Binutils Version 2 is completely rewritten to use 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. The `objdump' program 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 such as symbols and relocations from any file format understood by ! BFD. ! * Bison (BinCD, LangT, SrcCD, VMSCompT) Bison is an upwardly compatible replacement for the parser generator `yacc'. Texinfo source for the `Bison Manual' and reference card are ! included. See ``GNU Documentation''. ! * GNU C Library (LangT, SrcCD) ! The GNU C library supports ANSI C-1989 and POSIX 1003.1-1990 and has most ! of the functions specified in POSIX 1003.2-1992. It is upwardly ! compatible with 4.4BSD and includes many System V functions, plus GNU ! extensions. The C Library will perform many functions of the Unix system calls in --- 442,496 ---- 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 ! distributed as part of the same package, but GNU `bc' is not implemented ! as a `dc' preprocessor. ! * BFD (BinCD, DjggpD, DosCD, LangT, SrcCD) The Binary File Descriptor library allows a program which operates on ! object files (e.g., `ld' or GDB) to support many different formats in a clean way. BFD provides a portable interface, so that only BFD needs to 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 `yacc'. Texinfo source for the `Bison Manual' and reference card are ! 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 ! functions in POSIX 1003.2-1992. It is upwardly compatible with 4.4BSD ! and includes many System V functions, plus GNU extensions. The C Library will perform many functions of the Unix system calls in *************** *** 578,582 **** the Hurd. Mike Haertel has written a fast `malloc' which wastes less memory than the old GNU version. The GNU regular-expression functions ! (regex) now nearly conform to the POSIX 1003.2 standard. GNU `stdio' lets you define new kinds of streams, just by writing a few --- 497,501 ---- 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. GNU `stdio' lets you define new kinds of streams, just by writing a few *************** *** 589,692 **** utilities. ! Version 1.08 has just been released, adding support for Sun RPC, `mmap' ! and friends, and compatibility with several more traditional Unix ! functions. It 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 (see ! ``GNU Documentation''.); the manual still needs updating. ! * GNU C++ Library (BinCD, LangT, SrcCD) ! The GNU C++ library (libg++) is an extensive collection of C++ `forest' ! classes, a new IOStream library for input/output routines, and support ! tools for use with G++. Among the classes supported are Obstacks, multiple-precision Integers and Rationals, Complex numbers, arbitrary ! length Strings, BitSets and BitStrings. There is also a set of ! pseudo-generic prototype files for generating common container classes. ! Texinfo source for partial documentation is included (not yet published ! on paper). ! * Calc (EmcsT, SrcCD) Calc (written by Dave Gillespie in Emacs Lisp) is an extensible, advanced ! desk calculator and mathematical tool that runs as part of GNU Emacs. If ! you wish, you can use Calc just as a simple four-function calculator, but ! it provides additional features including choice of algebraic or RPN ! (stack-based) entry, logarithmic functions, trigonometric and financial ! functions, arbitrary precision, complex numbers, vectors, matrices, ! dates, times, infinities, sets, algebraic simplification, ! differentiation, and integration. It also outputs to `gnuplot'. Calc ! comes with Texinfo source for a reference card and the `Calc Manual', ! which serves as a tutorial and reference. See ``GNU Documentation''. ! * GNU Chess (SrcCD, UtilT) GNU Chess lets the computer play a full game of chess with you. It runs ! on most platforms and has dumb terminal, "curses", and X terminal ! interfaces. ! ! 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, and a ! database which lets it play the first several moves in the game quickly. ! ! Recent improvements include better heuristics, faster evaluation, ! thinking on opponent's time, Swedish and German language support, support ! for more book formats, a rudimentary Bobby Fischer clock, and bug fixes. ! ! GNU Chess is primarily supported by Stuart Cracraft, Mike McGann, Chua ! Kong Sian, and Tim Mann on behalf of the FSF. ! ! Stuart Cracraft ! 25682 Cresta Loma ! Laguna Niguel, CA 92677 ! USA ! ! Telephone: +1-714-347-8107 ! Electronic-Mail: `cracraft@ai.mit.edu' ! ! * CLISP (EmcsT, SrcCD) ! CLISP is a Common Lisp implementation (CLtL1 + parts of CLtL2) by Bruno ! Haible and Michael Stoll. It mostly supports the Lisp described by ! `Common LISP: The Language (1st edition)'. CLISP includes an ! interpreter, a byte-compiler, a subset of CLOS and, for some machines, a ! screen editor. It has user interfaces in English & German (& French ! soon), chooseable at compile time. Major packages that run in CLISP ! include PCL and, on Unix machines, CLX & Garnet. CLISP needs only 1.5 ! MB of memory and runs on many microcomputers (including the Atari ST, ! Amiga 500-4000, most MS-DOS systems & OS/2) & some Unix workstations ! (Linux, Sun4, Sun386, HP9000/800, SGI, Sun3 and others). ! ! * GNU Common Lisp (EmcsT, SrcCD) ! ! GNU Common Lisp (GCL) has a compiler and interpreter for 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. It is based on AKCL and KCL. KCL was written by Taiichi ! Yuasa and Masami Hagiya in 1984, and AKCL has been developed by William ! Schelter since 1987. ! ! 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 and returning 1 value, so it cannot ! really be any more efficient on such calls. It has a conservative GC ! 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 the other Emacs window. ! It has profiling tools based on the C profiling tools, which count ! function calls and percentage of time. CLX works with GCL. There is an ! Xlib interface via C. PCL worked with earlier versions. See ! ``Forthcoming GNUs'', for plans for about GCL. ! ! GCL version 1.0 is being released under the GNU Library General Public ! License. (FTP `/pub/gnu/gcl.README' on `prep.ai.mit.edu'.) Get source ! from `ftp.cli.com'. For details ask `schelter@math.utexas.edu'. ! * `cpio' (SrcCD, UtilD, UtilT) `cpio' is an alternative archive program with all the features of SVR4 --- 508,599 ---- utilities. ! 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 ! desk calculator & mathematical tool that runs as part of GNU Emacs. You ! 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. ! It mostly supports the Lisp described by `Common LISP: The Language (2nd ! 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 *************** *** 702,713 **** 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, ask `office@usenix.org'. - * `dc' (SrcCD, UtilT) - - `dc' is an RPN calculator. GNU `bc' does not require a separate `dc' - program to run. This version of `dc' will eventually be merged with GNU - `bc'. - * DejaGnu (LangT, SrcCD) --- 609,614 ---- 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) *************** *** 714,736 **** DejaGnu is a framework for testing other programs that provides a single front end for all tests. The framework's flexibility and consistency ! make it easy to write tests for any program. DejaGnu comes with ! `expect', which runs scripts to conduct dialogs with programs; and Tcl, ! which is an embeddable scripting language. The FSF hopes to replace Tcl ! with a cleaner programming language someday. ! ! * Demacs, GNU Emacs for MS-DOS (EmcsD) ! ! Manabu Higashida and Hirano Satoshi have released Demacs, a GNU Emacs ! port for 386/486 based MS-DOS machines. It is compatible with XMS ! memory managers and VCPI, but not yet with Microsoft Windows extended ! mode or other DPMI managers. Anonymous FTP it from `oak.oakland.edu' in ! `/pub/msdos/demacs' (USA) & `utsun.s.u-tokyo.ac.jp' in `/GNU/demacs' ! (Japan). For an FTP site list and the current status of Demacs, email to ! `demacs@sigmath.osaka-u.ac.jp'. For details, FTP the `README' file. ! ! The FSF is offering Demacs on diskette. We will replace it with GNU ! Emacs 19, as soon as the MS-DOS port is ready. See ``Emacs Diskettes''. ! * Diffutils (SrcCD, UtilD, UtilT) GNU `diff' compares files showing line-by-line changes in several --- 615,622 ---- 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 *************** *** 738,764 **** Diffutils package contains `diff', `diff3', `sdiff', and `cmp'. ! These improvements have recently been made to Diffutils: A new heuristic ! for `diff' greatly reduces the time needed to compare large input files ! that contain many differences, and produces output that is usually ! smaller rather than larger. New `diff' options give detailed control ! over output format, e.g. to provide if-then-else output for programming ! languages other than C. Message wordings and the definition of "white ! space" have been revised for compatibility with the POSIX.2 standard ! (ISO/IEC 9945-2:1993). ! ! * DJGPP (BinCD, DjgppD) ! ! DJ Delorie has ported GCC/G++ 2.5.7 (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). The FSF offers it on the ``DJGPP Diskettes'', ! and on the ``Compiler Tools Binaries CD-ROM''. Or FTP file ! `/pub/msdos/djgpp' from `oak.oakland.edu' (or another SimTel mirror ! site). Ask `djgpp-request@sun.soe.clarkson.edu' to join a mailing list ! for DJGPP users. * `dld' (LangT, SrcCD) --- 624,645 ---- 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) *************** *** 769,773 **** 3.4 & 4.0), SPARC (SunOS 4.0), Sequent Symmetry (Dynix), & Atari ST. ! * `doschk' (SrcCD, UtilT) This program is intended as a utility to help software developers ensure --- 650,654 ---- 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 *************** *** 785,791 **** Ed is the standard text editor. ! * Elib (EmcsT, SrcCD) ! This is a small library of Emacs Lisp functions, including routines for using AVL trees and doubly-linked lists. --- 666,672 ---- 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. *************** *** 793,825 **** In 1975, Richard Stallman developed the first Emacs, an extensible, ! customizable real-time display editor. GNU Emacs is his second ! implementation. It offers true Lisp--smoothly integrated into the ! editor--for writing extensions, and provides an interface to the MIT X ! Window System. In addition to its powerful native command set, ! extensions which emulate other popular editors are distributed: vi, EDT ! (DEC's VMS editor) and Gosling (aka Unipress) Emacs. It has many other ! features which make it a full computing support environment. Source for ! the `GNU Emacs Manual', the `GNU Emacs Lisp Reference Manual', and a ! reference card come with the software. See ``GNU Documentation''. ! ! * GNU Emacs 18 (EmcsD, EmcsT, SrcCD, VMSEmcsT) ! ! GNU Emacs 18.59 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 (see ``MS-DOS Diskettes''. & ``Free ! Software for Microcomputers'')), 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. --- 674,709 ---- 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. *************** *** 830,896 **** (Dual machines), VMS (vers. 4.0, 4.2, 4.4, 5.5) & Xenix (386). ! * GNU Emacs 19 (EmcsT, SrcCD) ! 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, using a new mechanism capable of 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. ! ! New features in Emacs 19.23 include X toolkit support, dialog boxes, ! operation on MS-DOS, much faster text properties, keyboard equivalents ! shown automatically in menus, and text that highlights when you move the ! mouse over it. ! ! Unlike some other recent derivations of Emacs, Emacs 19 from the Free ! Software Foundation continues to work on character-only terminals as ! well as under the MIT X Window System. ! ! Emacs 19.23 is known to work on, in hardware order: Bull DPX/2 2nn & 3nn ! (SVR3) & sps7 (SVR2); Clipper; 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 (4.3BSD or HP-UX 7, 8, 9); Intel i386 & i486 (386BSD, AIX, BSDI/386, ! FreeBSD, Esix, ISC, Linux, MS-DOS, NetBSD, SCO3.2v4 with ODT, SysV, ! Xenix); IBM RS6000 (AIX 3.2); IBM RT/PC (AIX or BSD); Motorola Delta 147 ! & 187 (SVR3, SVR4, & m88kbcs); National Semiconductor 32K (Genix); NeXT ! (BSD or Mach 2 w/ NeXTStep 3.0); Prime EXL (SysV); Pyramid (BSD); ! Sequent Symmetry (BSD); SGI Iris 4D (Irix 4.x & 5.x); Sony News/RISC ! (NewsOS); Sun 3 & 4, SPARC 1, 1+, 2, 10 & Classic (SunOS 4.0, 4.1, ! Solaris 2.0-2.3); Tadpole 68k (SysV); Tektronix XD88 (SVR3) & 4300 ! (BSD); & Titan P2 & P3 (SysV). In operating system order: AIX (i386, RS6000, RT/PC); 4.1, 4.2, 4.3BSD ! (i386, Gould Power Node & NP1, HP9000 series 300, NeXT, Pyramid, ! Symmetry, Tektronix 4300, RT/PC); DG/UX (Aviion); Esix (i386); FreeBSD ! (i386); Genix (ns32k); HP-UX 7, 8, 9 (HP 9000 series 200, 300, 700, 800, ! but not 500); Irix 4 & 5 (Iris 4D); ISC (i386); Linux (i386); NetBSD ! (i386, HP9000 series 300); Mach 2 & 3 (i386, NeXT); SCO 3.2v4 (i386); ! SVR2 (Bull sps7); SVR3 (Bull DPX/2 2nn & 3nn, Motorola Delta 147 & 187, ! Tektronix XD88); SVR4 (Motorola Delta 147 & 187); 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); & Xenix (i386). Other configurations supported by Emacs 18 should work with few changes in Emacs 19; as users tell us more about their experiences with different ! systems, we will augment the list. Also see ``Forthcoming GNUs''. * `es' (SrcCD, UtilT) ! `es' is an extensible shell based on `rc' that has first class functions, ! lexical scope, an exception system, and rich return values (i.e. ! functions can return values other than just numbers). Like `rc', it is ! great for both interactive use and for scripting, particularly because ! its quoting rules are much less baroque than the C or Bourne shells. * `f2c' (LangT, SrcCD) --- 714,791 ---- (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 in Emacs 19; as users tell us more about their experiences with different ! 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) *************** *** 897,921 **** `f2c' converts Fortran-77 source files into C or C++, which can be ! compiled with GCC. You can get bug fixes via FTP from `netlib.att.com' ! in the file `/netlib/f2c/changes.Z' or by email from ! `netlib@research.att.com'. See ``Forthcoming GNUs'', for information ! about GNU Fortran. ! ! * NetFax (SrcCD, UtilT) ! ! NetFax is a freely-available fax spooling system originally developed in ! the MIT AI Lab. It provides Group 3 fax transmission and reception ! services for a networked Unix system. It requires a faxmodem which ! accepts Class 2 fax commands. Contact `bug-fax@prep.ai.mit.edu' for ! more information. ! * Fileutils (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', `touch', & `vdir'. Only some of these are on the ! ``Selected Utilities Diskettes''. ! * `find' (SrcCD, UtilD, UtilT) `find' is frequently used both interactively and in shell scripts to --- 792,808 ---- `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 *************** *** 928,943 **** 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. ! This host collects information about who is logged in to other hosts at ! that site. If a user at site A wants to know about users logged on at ! site B, a single query to any machine at the site will return complete ! information. ! * `flex' (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. Texinfo source for the ! `Flex Manual' and reference card are included. See ``GNU Documentation''. * Fontutils (SrcCD, UtilT) --- 815,837 ---- 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) *************** *** 951,983 **** `xbfe'. ! * GAS (BinCD, LangT, SrcCD) ! GAS is the GNU assembler. Native assembly works for many systems, ! including: Sun 3, 4, & SPARC (SunOS 4.1 or Solaris 2); i386 (AIX, ! 386BSD, BSDI/386, Linux, SCO, Unixware); m68k (BSD, HP-UX, Convergent ! Technologies SysV); MIPS (Ultrix, Irix); Hitachi H8/300 and H8/500; & ! VAX (BSD, Ultrix, VMS). Cross assembling can be done for most of the ! above systems, plus: i386 (SCO, go32 MS-DOS/DJGPP); ebmon29k; Hitachi ! H8/300; i960 (b.out, COFF); MIPS ECOFF (Ultrix, Iris, MIPS Magnum); ! Nindy 960; vxworks (68k or 960); & Zilog Z8000. See ``Forthcoming ! GNUs'', for plans for future releases of GAS. ! ! * GAWK (LangT, SrcCD) ! ! GAWK is upwardly compatible with the System V Release 4 and POSIX ! versions of `awk'. It also provides several useful extensions not found ! in other `awk' implementations. Texinfo source for the `GAWK Manual' ! comes with the software. See ``GNU Documentation''. ! ! * GCC (BinCD, DjgppD, LangT, SrcCD, VMSCompT) ! ! Version 2 of the GNU C Compiler supports three languages: C, C++ and ! Objective-C; the source file name suffix or a compiler option selects the ! language. The front end 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 --- 845,866 ---- `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 *************** *** 993,1000 **** scheduling or delay slots), a feature for assigning attributes to instructions, and many local optimizations that are automatically ! deduced from the machine description. Function-wide CSE has been ! written, but needs to be cleaned up before it can be installed. ! Position-independent code is supported on the 68k, i386, Hitachi Slt, ! Hitachi H8/300, Clipper, 88k, SPARC & SPARClite. GCC can open-code most arithmetic on 64-bit values (type `long long --- 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 *************** *** 1002,1008 **** 68k; other machines will follow. ! GCC supports full ANSI C, traditional C and GNU C extensions. GNU C has ! been extended to support nested functions, nonlocal gotos, and taking the ! address of a label. GCC can generate a.out, COFF, ELF & OSF-Rose files when used with a --- 884,890 ---- 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 *************** *** 1010,1112 **** formats: BSD stabs, COFF, ECOFF, ECOFF with stabs & DWARF. ! GCC generates code for many CPUs, including: a29k, Alpha, ARM, Convex cN, ! Clipper, Elxsi, H8300, HP-PA (1.0 and 1.1) i370, i386, i486, i860, i960, ! m68k, m68020, m88k, MIPS, ns32k, Pyramid, ROMP, RS6000, SH, SPARC, ! SPARClite, VAX, and we32k. Operating systems supported include: AIX, ACIS, AOS, BSD, Clix, Ctix, ! DG/UX, Dynix, Genix, HP-UX, ISC, Irix, Linux, Luna, LynxOS, Mach, Minix, ! NewsOS, OSF, OSF-Rose, RISCOS, SCO, Solaris 2, SunOS 4, SysV, Ultrix, ! Unos, & VMS. ! ! The old (version 1) machine descriptions for the Alliant, Tahoe and Spur ! (as well as a new port for the Tron) do not work, but are still included ! in the distribution in case someone wants to work on them. Using the configuration scheme for GCC, building a cross-compiler is as ! easy as building a compiler for the same target machine. Version 2 ! supports more general calling conventions: it can pass arguments "by ! reference" and can preallocate the space for stack arguments. GCC 2 on ! the SPARC uses the SPARC conventions for structure arguments and return ! values. ! ! We no longer distribute or maintain version 1 of GCC, G++, or libg++. ! ! Texinfo source for the GCC manual, `Using and Porting GNU CC', is ! included with the compiler. ! ! See ``Forthcoming GNUs'', for plans for later releases of GCC. ! ! * GDB (BinCD, LangT, SrcCD) ! ! In GDB, object files and symbol tables are now read via the BFD library, ! which allows a single copy of GDB to debug programs of multiple object ! file formats such as a.out and COFF. Other new features include command ! language improvements, remote debugging over serial lines or TCP/IP, and ! watchpoints (breakpoints triggered when the value of an expression ! changes). Exception handling, SunOS shared libraries and C++ multiple ! inheritance are only supported when used with GCC version 2. ! ! GDB comes with a command line user interface; GNU Emacs is distributed ! with a GDB mode, and `xxgdb' provides an X interface (but it is not ! distributed or maintained by the FSF; it is available for anonymous FTP ! from `ftp.x.org' in the `/contrib' directory). ! ! GDB uses a standard remote interface to a simulator library which (so ! far) has 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*: DEC Alpha (OSF/1), Amiga 3000 (Amix), DECstation ! 3100 & 5000 (Ultrix), HP 9000/300 (BSD), IBM RS/6000 (AIX), i386 ! (BSD, SCO, Linux, LynxOS), Motorola Delta m88k (System V), NCR 3000 ! (SVR4), SGI Iris (MIPS running Irix V3 & V4), SONY News (NewsOS ! 3.x), Sun-3 & SPARC (SunOS 4.1, Solaris 2.0) & Ultracomputer (29K running Sym1). ! * *target*, but not *host*: i960 Nindy, AMD 29000 (COFF & a.out), ! Fujitsu SPARClite, Hitachi H8/300, m68k & m68332. ! ! * *host*, but not *target*: Intel 386 (Mach), IBM RT/PC (AIX) & ! HP/Apollo 68k (BSD). - GDB can use the symbol tables emitted by the compilers supplied by most - vendors of MIPS-based machines, including DEC. (These tables are in a - format which almost nobody else uses.) Texinfo source for the manual - `Debugging with GDB' and a reference card are included. See - ``GNU Documentation''. - * `gdbm' (LangT, SrcCD, UtilD) ! The `gdbm' library is the GNU replacement for the traditional `dbm' and ! `ndbm' libraries. It implements a database using quick lookup by ! hashing. `gdbm' does not need sparse file formats (unlike its Unix counterparts). ! * Ghostscript (SrcCD, UtilT) ! Ghostscript is GNU's graphics language which is almost fully compatible ! with Postscript (see ``Forthcoming GNUs''). ! The current version of Ghostscript is 2.6.1. Features include the ability to use the fonts provided by the platform on which Ghostscript ! runs (MIT 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 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. ! ! Ghostscript accepts commands in Postscript and executes them by writing ! directly to a printer, drawing on an X window, or writing to a file that ! you can print later (or to a bitmap file that you can manipulate with ! other graphics programs). Ghostscript includes a C-callable graphics library (for client programs --- 892,996 ---- 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 ! produced by many different compilers; however, C++ debugging will have ! 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 ! allows a single copy of GDB to debug programs with multiple object file ! formats (e.g., a.out, COFF, ELF). Other features include a rich command ! language, remote debugging over serial lines or TCP/IP, and watchpoints ! (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' ! libraries. It implements a database using quick lookup by hashing. ! `gdbm' does not ordinarily make sparse files (unlike its Unix and BSD 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 *************** *** 1115,1129 **** do *not* ask the FSF staff any questions about this; we do not use PCs). - See ``Forthcoming GNUs'', for plans for later releases of Ghostscript. - * Ghostview (SrcCD, UtilT) Tim Theisen, `ghostview@cs.wisc.edu', has created Ghostview, a previewer ! for multi-page files that runs on top of Ghostscript. Ghostview provides ! an X11 user interface for the Ghostscript interpreter. Ghostview and Ghostscript function as two cooperating programs; Ghostview creates a ! viewing window and Ghostscript draws in it. There is a port for ! Ghostview to MS-Windows called "GSview for Windows". For information ! about future releases of this program, see ``Forthcoming GNUs''. * `gmp' (LangT, SrcCD) --- 999,1008 ---- 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) *************** *** 1133,1138 **** interface. - See ``Forthcoming GNUs'', for the plans for later releases of `gmp'. - * GNATS (SrcCD, UtilT) --- 1012,1015 ---- *************** *** 1146,1150 **** applications. ! * `gnuplot' (SrcCD, UtilT) `gnuplot' is an interactive program for plotting mathematical --- 1023,1027 ---- applications. ! * `gnuplot' (SrcCD, UtilT, WdwsD) `gnuplot' is an interactive program for plotting mathematical *************** *** 1151,1155 **** 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. * GnuGo (SrcCD, UtilT) --- 1028,1033 ---- 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) *************** *** 1159,1193 **** * `gperf' (LangT, SrcCD) ! `gperf' is a "perfect" hash-table generation utility. There are ! actually two implementations of `gperf', one written in C and one in ! C++. Both will produce hash functions in either C or C++. * GNU Graphics (SrcCD, UtilT) ! GNU Graphics is a set of programs which produce plots from ASCII or ! binary data. It supports output to Tektronix 4010, Postscript & the MIT ! X Window System or compatible devices. Features include support for ! output in ln03 and TekniCAD TDA file formats; a replacement for the ! `spline' program; examples of shell scripts using `graph' and `plot'; & a ! statistics toolkit. ! ! Existing ports need retesting. Contact Rich Murphey, `Rich@rice.edu', ! if you can help test/port it to anything beyond a SPARCstation. ! ! * grep (SrcCD, UtilD, UtilT) ! ! This package contains GNU `grep', `egrep', and `fgrep'. They are much ! faster than the traditional Unix versions. ! ! * Groff (SrcCD, UtilT) ! ! Groff is a document formatting system, which includes drivers for ! Postscript, TeX `dvi' format, and typewriter-like devices, as well as ! implementations of `eqn', `nroff', `pic', `refer', `tbl', `troff', and ! the `man', `ms', and `mm' macros. 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. Groff users are encouraged to contribute enhancements. Most needed are --- 1037,1074 ---- * `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 *************** *** 1194,1214 **** complete Texinfo documentation, a `grap' emulation (a `pic' preprocessor for typesetting graphs), a page-makeup postprocessor similar to `pm' ! (see `Computing Systems', Vol. 2, No. 2; ask `office@usenix.org' for ! information on obtaining 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 that is provided with the ! distribution can be sent to `bug-groff@prep.ai.mit.edu'. ! * `gzip' (DjgppD, EmcsT, LangT, 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 have switched to another ! compression program, `gzip'. `gzip' can expand LZW-compressed files but ! uses a different algorithm for compression which generally produces ! better results. It also uncompresses files compressed with System V's ! `pack' program. ! * `hello' (SrcCD, UtilT) The GNU `hello' program produces a familiar, friendly greeting. It --- 1075,1097 ---- complete Texinfo documentation, a `grap' emulation (a `pic' preprocessor 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 *************** *** 1217,1221 **** General Public License, users are free to share and change it. ! Like any truly useful program, `hello' provides a built-in mail reader. * `hp2xx' (SrcCD, UtilT) --- 1100,1104 ---- 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) *************** *** 1230,1235 **** under X11 (Unix), OS/2 (PM & full screen), MS-DOS (SVGA, VGA, & HGC). ! * `indent' (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 --- 1113,1125 ---- 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 *************** *** 1238,1247 **** functionality than other versions, e.g., it handles C++ comments. ! * Ispell (SrcCD, UtilT) Ispell is an interactive spell checker that suggests "near misses" as ! replacements for unrecognized words. System and user-maintained ! dictionaries can be used. Standalone and GNU Emacs interfaces are ! available. * JACAL *Not available from the FSF* --- 1128,1141 ---- 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* *************** *** 1249,1255 **** 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, and algebraic ! functions, differential operators and holonomic functions. In addition, ! vectors, matrices, and tensors of the above objects are included. JACAL was written in Scheme by Aubrey Jaffer. It comes with SCM, an IEEE --- 1143,1149 ---- 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 *************** *** 1256,1273 **** 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. Get JACAL, ! SLIB and SCM sources via anonymous FTP from either `ftp.maths.tcd.ie' in ! `/pub/bosullvn/jacal', `altdorf.ai.mit.edu' in `/archive/scm', or ! `prep.ai.mit.edu' in `/pub/gnu/jacal'. ! ! 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 ! USA ! * `m4' (SrcCD, UtilD, UtilT) GNU `m4' is an implementation of the traditional Unix macro processor. --- 1150,1169 ---- 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. *************** *** 1277,1281 **** doing arithmetic, etc. ! * `make' (BinCD, EmcsT, LangT, SrcCD, UtilD, UtilT) GNU `make' supports POSIX 1003.2 and has all but a few obscure features --- 1173,1178 ---- 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 *************** *** 1283,1290 **** extensions. GNU extensions include long options, parallel compilation, flexible implicit pattern rules, conditional execution and powerful text ! manipulation functions. Recent versions have improved error reporting ! and added support for the popular `+=' syntax to append more text to a ! variable's definition. Texinfo source for the `Make Manual' comes with ! the program. See ``GNU Documentation''. GNU `make' is on several of our tapes because some system vendors supply --- 1180,1185 ---- 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 *************** *** 1294,1300 **** itself on such systems. * MandelSpawn (SrcCD, UtilT) ! A parallel Mandelbrot generation program for the MIT X Window System. * mtools (SrcCD, UtilT) --- 1189,1197 ---- 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) *************** *** 1303,1317 **** write and manipulate files on an MS-DOS file system (usually a diskette). ! * MULE (SrcCD) ! MULE is a MULtilingual Enhancement to GNU Emacs 18. It can handle many character sets at once including Japanese, Chinese, Korean, Vietnamese, ! Thai, Greek, the ISO Latin-1 through Latin-5 character sets, Ukrainian, ! 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. See ``GNU ! and Other Free Software in Japan'', for more information about MULE. * NetHack (SrcCD, UtilT) --- 1200,1215 ---- 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) *************** *** 1332,1357 **** most of the functionality of the original `vi'/`ex', except "open" mode & the `lisp' option, which will be added. Enhancements over `vi'/`ex' ! include split screens with multiple buffers, ability to handle 8-bit ! data, infinite file & line lengths, tag stacks, infinite undo & extended ! regular expressions. It runs under BSD, Linux, NetBSD, FreeBSD, BSDI, ! AIX, HP-UX, DGUX, IRIX, PSF, PTX, Solaris, SunOS, Ultrix, Unixware & ! should port easily to many other systems. * Octave (LangT, SrcCD) ! Octave is a high-level language that is primarily intended for numerical ! computations. It provides a convenient command line interface for ! solving linear and nonlinear problems numerically. ! ! Octave does arithmetic for real and complex scalars and matrices, solve ! sets of nonlinear algebraic equations, integrate functions over finite ! and infinite intervals, and integrate systems of ordinary differential ! and differential-algebraic equations. Send queries and bug reports to: ! `bug-octave@che.utexas.edu'. ! ! Octave is available via anonymous ftp from `ftp.che.utexas.edu' in the ! directory `/pub/octave'. The files are in gzipped `tar' format (see the ! file `/pub/gnu/README' on `prep.ai.mit.edu'). Source is included for a ! 150+ page Texinfo manual, which is not yet published by the FSF. * Oleo (SrcCD, UtilT) --- 1230,1275 ---- most of the functionality of the original `vi'/`ex', except "open" mode & 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) *************** *** 1358,1366 **** Oleo is a spreadsheet program (better for you than the more expensive ! spreadsheets). It supports the MIT X Window System and character-based 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. See ``Forthcoming GNUs'', for the plans for later releases of Oleo. --- 1276,1284 ---- Oleo is a spreadsheet program (better for you than the more expensive ! spreadsheets). It supports the X Window System and character-based 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. *************** *** 1371,1375 **** produces readable, maintainable, portable C. ! * `patch' (SrcCD, UtilT) `patch' is our version of Larry Wall's program to take `diff''s output --- 1289,1293 ---- produces readable, maintainable, portable C. ! * `patch' (DjgppD, DosCD, SrcCD, UtilT) `patch' is our version of Larry Wall's program to take `diff''s output *************** *** 1377,1384 **** version. ! * PCL (EmcsT, SrcCD) PCL is a free implementation of a large subset of CLOS, the Common Lisp ! Object System. It runs under CLISP, mentioned above. * `perl' (LangT, SrcCD) --- 1295,1302 ---- 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) *************** *** 1385,1399 **** Larry Wall's `perl' combines the features and capabilities of `sed', ! `awk', `sh' and C, as well as interfaces to all the system calls and ! many C library routines. A perl mode for editing `perl' code comes with ! GNU Emacs 19. * `ptx' (SrcCD, UtilD, UtilT) ! GNU `ptx' is the GNU version of the traditional permuted index ! generator. It can handle multiple input files at once, produce TeX ! compatible output, and produce readable "KWIC" (KeyWords In Context) ! indexes without needing to use `nroff'. This version does not handle ! input files that do not fit in memory all at once. * `rc' (SrcCD, UtilT) --- 1303,1315 ---- 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) *************** *** 1406,1413 **** * RCS (SrcCD, UtilD, UtilT) ! The Revision Control System, RCS, is used for version control and 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 article. * `recode' (SrcCD, UtilT) --- 1322,1329 ---- * 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) *************** *** 1423,1433 **** The GNU regular expression library supports POSIX.2, except for ! internationalization features. In the past, it has been included in many ! GNU programs which use regex routines. Now it is finally available ! separately. A faster version of this library comes with `sed'. ! * Scheme (SchmT) ! For information about Scheme, see ``Scheme Tape''. * `screen' (SrcCD, UtilT) --- 1339,1350 ---- 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) *************** *** 1434,1454 **** `screen' is a terminal multiplexer that runs several separate "screens" ! (ttys) on a single physical character-based terminal. Each virtual ! terminal emulates a DEC VT100 plus several ANSI X3.64 and ISO 2022 ! functions. `screen' sessions can be detached and resumed later on a ! different terminal type. ! ! * `sed' (SrcCD, UtilD, UtilT) ! ! `sed' is a stream-oriented version of `ed'. It is used copiously in ! shell scripts. GNU `sed' comes with the rx library, which is a faster ! version of regex (see ``Forthcoming GNUs''). ! * Shellutils (SrcCD, UtilT) Use shellutils interactively or in shell scripts: `basename', `date', ! `dirname', `echo', `env', `expr', `false', `groups', `id', `nice', ! `nohup', `printenv', `printf', `sleep', `stty', `su', `tee', `test', ! `true', `tty', `uname', `who', `whoami', and `yes'. * GNU Shogi (SrcCD, UtilT) --- 1351,1381 ---- `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) *************** *** 1455,1474 **** Shogi is a Japanese game similar to Chess; a major difference is that ! captured pieces can be returned into play. ! ! GNU Shogi has been created by modifying 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 a good order of moves towards specific opening ! patterns. There are both character and X display interfaces. ! ! GNU Shogi is primarily supported by Matthias Mutz on behalf of the FSF. ! ! Matthias Mutz ! Universitaet Passau, FMI ! 94030 Passau ! Germany ! ! Electronic-mail: `mutz@fmi.uni-passau.de' * Smalltalk (LangT, SrcCD) --- 1382,1392 ---- 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) *************** *** 1486,1490 **** for the graphic user interface (`GUI') related classes. ! See ``Forthcoming GNUs'', for plans for later releases of Smalltalk. * Superopt (LangT, SrcCD) --- 1404,1408 ---- for the graphic user interface (`GUI') related classes. ! *Note Forthcoming GNUs::, for plans for later releases of Smalltalk. * Superopt (LangT, SrcCD) *************** *** 1492,1500 **** 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 the GNU superoptimizer, `gso', a ! function, 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) --- 1410,1418 ---- 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) *************** *** 1513,1517 **** 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. See ``GNU Documentation''. * TeX (SrcCD) --- 1431,1435 ---- 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) *************** *** 1524,1530 **** consists of Karl Berry's `web2c' TeX package, the sources for which are available via anonymous ftp; retrieval instructions are in ! `pub/tex/FTP.nwc' 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 --- 1442,1448 ---- 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 *************** *** 1531,1576 **** 4-track QIC-24 cartridge or a 4mm DAT cartridge, send $210.00 to: ! Northwest Computing Support Center ! DR-10, Thomson Hall 35 ! University of Washington ! Seattle, WA 98195 ! USA ! ! Electronic-Mail: `unixtex@u.washington.edu' ! Telephone: +1-206-543-6259 ! ! Please make checks payable to the University of Washington. Checks must ! be in U.S. dollars, drawn on a U.S. bank. Prepaid orders are preferred ! but purchase orders are acceptable; however, they carry an extra charge ! of $10.00 to pay for invoice processing. 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 (EmcsT, LangT, SrcCD, UtilD, UtilT) Texinfo is a set of utilities which generate both printed manuals and ! online hypertext-style 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. See ``GNU Documentation''. ! * Textutils (SrcCD, UtilT) The Textutils programs manipulate textual data. They include: `cat', ! `cksum', `comm', `csplit', `cut', `expand', `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 moved between different computers. ! (Traditionally, Forth implementations are written in assembler to use ! the underlying hardware as optimally as possible, but this also makes ! them less portable.) * `time' (SrcCD, UtilT) --- 1449,1495 ---- 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) *************** *** 1596,2057 **** published by the FSF. ! * `uuencode' and `uudecode' (SrcCD, UtilT) ! `uuencode' and `uudecode' are used to transmit binary files over ! transmission mediums that support only simple ASCII data. ! * `wdiff' (SrcCD, UtilT) ! `wdiff' is a front-end to GNU `diff'. It compares two files, finding ! which words have been deleted or added to the first in order to create ! the second. It has many output formats and interacts well with ! terminals and pagers. `wdiff' is particularly useful when two texts ! differ only by a few words and paragraphs have been refilled. ! Program/Package Cross Reference ******************************* ! Here is a list of what package each GNU program or library is in. Programs ! on the two X11 tapes and the 4.4BSD-Lite tapes are not included, due to lack ! of space in this Bulletin. You can anonymous FTP a full list from ! `prep.ai.mit.edu' in the file `/pub/gnu/ProgramIndex'. ! ! a2p perl ! acm acm ! acms acm ! addftinfo Groff ! afm2tfm TeX ! ar Binutils ! autoconf Autoconf ! autoheader Autoconf ! ! b2m Emacs ! basename Shellutils ! bash BASH ! bc bc ! bdftops Ghostscript ! bibtex TeX ! bison Bison ! bms MandelSpawn ! bpltobzr Fontutils ! build ispell ! bzrto Fontutils ! ! c++ GCC ! c++filt Binutils ! c2ph perl ! cat Textutils ! cbars wdiff ! cc GCC ! cc1 GCC ! cc1obj GCC ! cc1plus GCC ! cccp GCC ! charspace Fontutils ! chgrp Fileutils ! chmod Fileutils ! chown Fileutils ! ci RCS ! cksum Textutils ! clisp CLISP ! cmail xboard ! cmmf TeX ! cmp Diffutils ! co RCS ! comm Textutils ! cp Fileutils ! cpio cpio ! cpp GCC ! cppstdin perl ! csplit Textutils ! ctags Emacs ! cu UUCP ! cut Textutils ! cvs CVS ! cvscheck CVS ! cvtmail Emacs ! ! d Fileutils ! date Shellutils ! dc dc ! dd Fileutils ! delatex TeX ! demangle Binutils ! descend CVS ! detex TeX ! df Fileutils ! diff Diffutils ! diff3 Diffutils ! digest-doc Emacs ! dir Fileutils ! dirname Shellutils ! dld dld ! doschk doschk ! du Fileutils ! dvi2tty TeX ! dvicopy TeX ! dvips TeX ! dvitype TeX ! ! ecc ecc ! echo Shellutils ! ed ed ! edit-pr GNATS ! egrep grep ! emacs Emacs ! emacsclient Emacs ! emacsserver Emacs ! emacstool Emacs ! env Shellutils ! eqn Groff ! es es ! esdebug es ! etags Emacs ! ex nvi ! expand Textutils ! expect DejaGnu ! expr Shellutils ! ! f2c f2c ! fakemail Emacs ! false Shellutils ! fax NetFax ! faxenq NetFax ! faxmail NetFax ! faxps NetFax ! faxq NetFax ! faxrm NetFax ! faxsend NetFax ! faxspooler NetFax ! fc f2c ! fgrep grep ! find find ! find2perl perl ! finger finger ! fingerd finger ! fixfonts Texinfo ! fixinc.svr4 GCC ! fixincludes GCC ! flex flex ! fold Textutils ! font2c Ghostscript ! fontconvert Fontutils ! forth Tile Forth ! forthicon Tile Forth ! forthtool Tile Forth ! freq ispell ! freqtbl ispell ! ! g++ GCC ! gas GAS ! gawk Gawk ! gcc GCC ! gdb GDB ! genclass libg++ ! gftodvi TeX ! gftopk TeX ! gftype TeX ! ghostview Ghostview ! gnats GNATS ! gnuchess Chess ! gnuchessc Chess ! gnuchessn Chess ! gnuchessr Chess ! gnuchessx Chess ! gnupdisp Shogi ! gnuplot gnuplot ! gnuplot_x11 gnuplot ! gnushogi Shogi ! gnushogir Shogi ! gnushogix Shogi ! go GnuGo ! gperf gperf ! gperf libg++ ! gprof Binutils ! graph Graphics ! grep grep ! grodvi Groff ! groff Groff ! grops Groff ! grotty Groff ! groups Shellutils ! gs Ghostscript ! gsbj Ghostscript ! gsdj Ghostscript ! gslj Ghostscript ! gslp Ghostscript ! gsnd Ghostscript ! gsrenderfont Fontutils ! gunzip gzip ! gzexe gzip ! gzip gzip ! ! h2ph perl ! h2pl perl ! head Textutils ! hello hello ! hexl Emacs ! hp2xx hp2xx ! ! id Shellutils ! ident RCS ! imageto Fontutils ! imgrotate Fontutils ! indent indent ! indxbib Groff ! info Texinfo ! inimf TeX ! initex TeX ! install Fileutils ! ispell ispell ! ! join Textutils ! ! lasergnu gnuplot ! latex TeX ! ld Binutils ! less less ! lesskey less ! libbfd.a Binutils ! libbfd.a GAS ! libbfd.a GDB ! libbzr.a Fontutils ! libc.a C Library ! libcurses.a nvi ! libF77.a f2c ! libg++.a libg++ ! libgdbm.a gdbm ! libgf.a Fontutils ! libgmp.a gmp ! libI77.a f2c ! libnihcl.a NIHCL ! libnihclmi.a NIHCL ! libnihclvec.a NIHCL ! liboctave.a Octave ! libpbm.a Fontutils ! libpk.a Fontutils ! libtcl.a DejaGnu ! libtermcap.a Termcap ! libtfm.a Fontutils ! libwidgets.a Fontutils ! limn Fontutils ! lkbib Groff ! ln Fileutils ! locate find ! look ispell ! lookbib Groff ! ls Fileutils ! ! m4 m4 ! make Make ! make-docfile Emacs ! make-path Emacs ! makeindex TeX ! makeinfo Texinfo ! MakeTeXPK TeX ! man-macros Groff ! mattrib mtools ! mcd mtools ! mcopy mtools ! mdel mtools ! mdir mtools ! me-macros Groff ! merge RCS ! mf TeX ! mformat mtools ! mft TeX ! mkdir Fileutils ! mkfifo Fileutils ! mkmanifest mtools ! mkmodules CVS ! mknod Fileutils ! mlabel mtools ! mm-macros Groff ! mmd mtools ! movemail Emacs ! mrd mtools ! mread mtools ! mren mtools ! ms-macros Groff ! mslaved MandelSpawn ! mt cpio ! mtype mtools ! mv Fileutils ! mvdir Fileutils ! mwrite mtools ! ! nethack Nethack ! nice Shellutils ! nl Textutils ! nlmconv Binutils ! nm Binutils ! nohup Shellutils ! nroff Groff ! ! objc GCC ! objcopy Binutils ! objdump Binutils ! objective-c GCC ! octave Octave ! od Textutils ! oleo Oleo ! ! p2c p2c ! paste Textutils ! patch patch ! patgen TeX ! pathchk Shellutils ! perl perl ! pfbtops Groff ! pic Groff ! pktogf TeX ! pktype TeX ! plot2fig Graphics ! plot2plot Graphics ! plot2ps Graphics ! plot2tek Graphics ! pltotf TeX ! pooltype TeX ! pr Textutils ! pr-addr GNATS ! pr-edit GNATS ! printenv Shellutils ! printf Shellutils ! protoize GCC ! ps2ascii Ghostscript ! ps2epsi Ghostscript ! psbb Groff ! ptx ptx ! ! query-pr GNATS ! ! ranlib Binutils ! rc rc ! rcs RCS ! rcs-to-cvs CVS ! rcs2log Emacs ! rcsdiff RCS ! rcsfreeze RCS ! rcsmerge RCS ! recode recode ! refer Groff ! rlog RCS ! rm Fileutils ! rmdir Fileutils ! rmt cpio ! rmt tar ! runtest DejaGnu ! runtest.exp DejaGnu ! ! s2p perl ! sccs2rcs CVS ! screen screen ! sdiff Diffutils ! sed sed ! send-pr GNATS ! shogi Shogi ! size Binutils ! sleep Shellutils ! soelim Groff ! sort Textutils ! split Textutils ! strings Binutils ! strip Binutils ! stty Shellutils ! su Shellutils ! sum Textutils ! superopt Superopt ! ! tac Textutils ! tail Textutils ! taintperl perl ! tangle TeX ! tar tar ! tbl Groff ! tcp Emacs ! tee Shellutils ! tek2plot Graphics ! test Shellutils ! test-g++ DejaGnu ! test-tool DejaGnu ! tex TeX ! tex3patch Texinfo ! texi2dvi Texinfo ! texindex Texinfo ! texspell TeX ! tfmtodit Groff ! tftopl TeX ! tgrind TeX ! time time ! timer Emacs ! touch Fileutils ! tput tput ! tr Textutils ! troff Groff ! true Shellutils ! tty Shellutils ! ! uname Shellutils ! uncompress gzip ! unexpand Textutils ! uniq Textutils ! unprotoize GCC ! uuchk UUCP ! uucico UUCP ! uuconv UUCP ! uucp UUCP ! uudecode uuencode ! uudir UUCP ! uuencode uuencode ! uulog UUCP ! uuname UUCP ! uupick UUCP ! uurate UUCP ! uusched UUCP ! uustat UUCP ! uuto UUCP ! uux UUCP ! uuxqt UUCP ! ! v Fileutils ! vcdiff Emacs ! vdir Fileutils ! vftovp TeX ! vi nvi ! virmf TeX ! virtex TeX ! vptovf TeX ! ! wakeup Emacs ! wc Textutils ! wdiff wdiff ! weave TeX ! who Shellutils ! whoami Shellutils ! ! x2p perl ! xargs find ! xbfe Fontutils ! xboard xboard ! xditview Groff ! xdvi TeX ! xms MandelSpawn ! xplot Graphics ! xshogi xshogi ! ! yes Shellutils ! yow Emacs ! ! zcat gzip ! zcmp gzip ! zdiff gzip ! zforce gzip ! zgrep gzip ! zmore gzip ! znew gzip ! [ Shellutils --- 1515,2471 ---- published by the FSF. ! * `wdiff' (DjgppD, DosCD, SrcCD, UtilT) ! `wdiff' is a front-end to GNU `diff'. It compares two files, finding ! the words deleted or added to the first to make the second. It has many ! output formats and works well with terminals and pagers. `wdiff' is ! very useful when two texts differ only by a few words and paragraphs ! 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 ! * a2x xopt ! * ac bsd44 ! * accton bsd44 ! * acl bsd44 ! * acm acm ! * acms acm ! * addftinfo Groff ! * adventure bsd44 ! * afm2tfm TeX ! * amd bsd44 ! * ansitape bsd44 ! * AnswerGarden xopt ! * apply bsd44 ! * appres xreq ! * apropos bsd44 ! * ar Binutils ! * arithmetic bsd44 ! * arp bsd44 ! * atc bsd44 ! * autoconf Autoconf ! * autoheader Autoconf ! * autoreconf Autoconf ! * autoscan Autoconf ! * autoupdate Autoconf ! * auto_box xopt ! * auto_box xreq ! ! * b2m Emacs ! * backgammon bsd44 ! * bad144 bsd44 ! * badsect bsd44 ! * banner bsd44 ! * basename Shellutils ! * bash BASH ! * battlestar bsd44 ! * bc bc ! * bcd bsd44 ! * bdes bsd44 ! * bdftops Ghostscript ! * beach_ball xopt ! * beach_ball xreq ! * beach_ball2 xopt ! * bibtex TeX ! * biff bsd44 ! * bison Bison ! * bitmap xreq ! * boggle bsd44 ! * bpltobzr Fontutils ! * bugfiler bsd44 ! * build ispell ! * bzrto Fontutils ! ! * c++ GCC ! * c++filt Binutils ! * c2ph perl ! * ca100 xopt ! * caeser bsd44 ! * cal bsd44 ! * calendar bsd44 ! * canfield bsd44 ! * cat Textutils ! * cbars wdiff ! * cc GCC ! * cc1 GCC ! * cc1obj GCC ! * cc1plus GCC ! * cccp GCC ! * charspace Fontutils ! * checknr bsd44 ! * chess bsd44 ! * chflags bsd44 ! * chgrp Fileutils ! * ching bsd44 ! * chmod Fileutils ! * chown Fileutils ! * chpass bsd44 ! * chroot bsd44 ! * ci RCS ! * cksum Textutils ! * clisp CLISP ! * clri bsd44 ! * cmail xboard ! * cmmf TeX ! * cmodext xopt ! * cmp Diffutils ! * co RCS ! * col bsd44 ! * colcrt bsd44 ! * colrm bsd44 ! * column bsd44 ! * comm Textutils ! * compress bsd44 ! * comsat bsd44 ! * connectd bsd44 ! * cp Fileutils ! * cpicker xopt ! * cpio cpio ! * cpp GCC ! * cppstdin perl ! * cribbage bsd44 ! * crock xopt ! * csh bsd44 ! * csplit Textutils ! * ctags Emacs ! * ctwm xopt ! * cu UUCP ! * cut Textutils ! * cvs CVS ! * cvscheck CVS ! * cvtmail Emacs ! * cxterm xopt ! ! * d Fileutils ! * date Shellutils ! * dc bc ! * dd Fileutils ! * delatex TeX ! * demangle Binutils ! * descend CVS ! * detex TeX ! * df Fileutils ! * diff Diffutils ! * diff3 Diffutils ! * digest-doc Emacs ! * dipress bsd44 ! * dir Fileutils ! * dirname Shellutils ! * dish xopt ! * disklabel bsd44 ! * diskpart bsd44 ! * dld dld ! * dm bsd44 ! * dmesg bsd44 ! * doschk doschk ! * dox xopt ! * du Fileutils ! * dump bsd44 ! * dumpfs bsd44 ! * dvi2tty TeX ! * dvicopy TeX ! * dvips TeX ! * dvitype TeX ! ! * ecc ecc ! * echo Shellutils ! * ed ed ! * edit-pr GNATS ! * editres xreq ! * edquota bsd44 ! * eeprom bsd44 ! * egrep grep ! * emacs Emacs ! * emacsclient Emacs ! * emacsserver Emacs ! * emacstool Emacs ! * emu xopt ! * env Shellutils ! * eqn Groff ! * error bsd44 ! * es es ! * esdebug es ! * etags Emacs ! * ex nvi ! * expand Textutils ! * expect DejaGnu ! * expr Shellutils ! * exterm xopt ! ! * f2c f2c ! * factor bsd44 ! * fakemail Emacs ! * false Shellutils ! * fastboot bsd44 ! * fax2ps HylaFAX ! * faxalter HylaFAX ! * faxanswer HylaFAX ! * faxcover HylaFAX ! * faxd HylaFAX ! * faxd.recv HylaFAX ! * faxmail HylaFAX ! * faxquit HylaFAX ! * faxrcvd HylaFAX ! * faxrm HylaFAX ! * faxstat HylaFAX ! * fc f2c ! * fdraw xopt ! * fgrep grep ! * file bsd44 ! * find Findutils ! * find2perl perl ! * finger finger ! * fingerd finger ! * fish bsd44 ! * fixfonts Texinfo ! * fixinc.svr4 GCC ! * fixincludes GCC ! * flex flex ! * fmt bsd44 ! * fold Textutils ! * font2c Ghostscript ! * fontconvert Fontutils ! * forth Tile Forth ! * forthicon Tile Forth ! * forthtool Tile Forth ! * fortune bsd44 ! * fpr bsd44 ! * freq ispell ! * freqtbl ispell ! * from bsd44 ! * fsck bsd44 ! * fsplit bsd44 ! * fstat bsd44 ! * ftp bsd44 ! * ftpd bsd44 ! ! * g++ GCC ! * gas Binutils ! * gawk Gawk ! * gcc GCC ! * gcore bsd44 ! * gdb GDB ! * genclass libg++ ! * getty bsd44 ! * gftodvi TeX ! * gftopk TeX ! * gftype TeX ! * ghostview Ghostview ! * gnats GNATS ! * gnuchess Chess ! * gnuchessc Chess ! * gnuchessn Chess ! * gnuchessr Chess ! * gnuchessx Chess ! * gnupdisp Shogi ! * gnuplot gnuplot ! * gnuplot_x11 gnuplot ! * gnushogi Shogi ! * gnushogir Shogi ! * gnushogix Shogi ! * go GnuGo ! * gpc xopt ! * gpc xreq ! * gperf gperf ! * gperf libg++ ! * gprof Binutils ! * graph Graphics ! * grep grep ! * grodvi Groff ! * groff Groff ! * grops Groff ! * grotty Groff ! * groups Shellutils ! * gs Ghostscript ! * gsbj Ghostscript ! * gsdj Ghostscript ! * gslj Ghostscript ! * gslp Ghostscript ! * gsnd Ghostscript ! * gsrenderfont Fontutils ! * gunzip gzip ! * gwm xopt ! * gzexe gzip ! * gzip gzip ! ! * h2ph perl ! * h2pl perl ! * hack bsd44 ! * hangman bsd44 ! * head Textutils ! * hello hello ! * hexdump bsd44 ! * hexl Emacs ! * hostname Shellutils ! * hp2xx hp2xx ! * hterm xopt ! ! * i18nOlwmV2 xopt ! * i2mif xopt ! * ico xopt ! * ico xreq ! * id Shellutils ! * ident RCS ! * ifconfig bsd44 ! * ifnames Autoconf ! * ImageMagick xopt ! * imageto Fontutils ! * iman xopt ! * imgrotate Fontutils ! * indent indent ! * indxbib Groff ! * inetd bsd44 ! * info Texinfo ! * inimf TeX ! * init bsd44 ! * initex TeX ! * inn bsd44 ! * install Fileutils ! * iostat bsd44 ! * ispell ispell ! * ixterm xopt ! * ixx xopt ! ! * join Textutils ! * jot bsd44 ! * jove bsd44 ! ! * kdestroy bsd44 ! * kdump bsd44 ! * kermit bsd44 ! * kgames xopt ! * kgmon bsd44 ! * kill bsd44 ! * kinit bsd44 ! * kinput2 xopt ! * klist bsd44 ! * kpasswdd bsd44 ! * ksrvtgt bsd44 ! * kterm xopt ! * ktrace bsd44 ! ! * lam bsd44 ! * larn bsd44 ! * lasergnu gnuplot ! * last bsd44 ! * lastcomm bsd44 ! * latex TeX ! * lclock xopt ! * ld Binutils ! * leave bsd44 ! * less less ! * lesskey less ! * libbfd.a Binutils ! * libbfd.a GAS ! * libbfd.a GDB ! * libbzr.a Fontutils ! * libc.a C Library ! * 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 ! * libpbm.a Fontutils ! * libPEXt.a xopt ! * libpk.a Fontutils ! * libresolv.a bsd44 ! * librpc.a bsd44 ! * libtcl.a DejaGnu ! * libtelnet.a bsd44 ! * libterm.a bsd44 ! * libtermcap.a Termcap ! * libtfm.a Fontutils ! * libutil.a bsd44 ! * libWc.a xopt ! * libwidgets.a Fontutils ! * libX.a xreq ! * libXau.a xreq ! * libXaw.a xreq ! * libXcp.a xopt ! * libXcu.a xopt ! * libXdmcp.a xreq ! * libXmp.a xopt ! * libXmu.a xreq ! * libXO.a xopt ! * libXop.a xopt ! * libXp.a xopt ! * libXpex.a xopt ! * libXt.a xopt ! * libXt.a xreq ! * libXwchar.a xopt ! * liby.a bsd44 ! * libYgl.a Ygl ! * limn Fontutils ! * listres xopt ! * listres xreq ! * lkbib Groff ! * ln Fileutils ! * locate Findutils ! * lock bsd44 ! * logger bsd44 ! * login bsd44 ! * logname Shellutils ! * look ispell ! * lookbib Groff ! * lorder bsd44 ! * lpr bsd44 ! * ls Fileutils ! ! * m4 m4 ! * mail bsd44 ! * make Make ! * make-docfile Emacs ! * make-path Emacs ! * makeindex TeX ! * makeinfo Texinfo ! * MakeTeXPK TeX ! * man bsd44 ! * man-macros Groff ! * mattrib mtools ! * maze xopt ! * maze xreq ! * mazewar xopt ! * mcd mtools ! * mcopy mtools ! * mdel mtools ! * mdir mtools ! * me-macros Groff ! * merge RCS ! * mesg bsd44 ! * mf TeX ! * mformat mtools ! * mft TeX ! * mgdiff xopt ! * mh bsd44 ! * mille bsd44 ! * mkdep bsd44 ! * mkdir Fileutils ! * mkfifo Fileutils ! * mklocale bsd44 ! * mkmanifest mtools ! * mkmf bsd44 ! * mkmodules CVS ! * mknod Fileutils ! * mkstr bsd44 ! * mlabel mtools ! * mm-macros Groff ! * mmd mtools ! * monop bsd44 ! * more bsd44 ! * morse bsd44 ! * mount bsd44 ! * mountd bsd44 ! * movemail Emacs ! * mprof bsd44 ! * mrd mtools ! * mread mtools ! * mren mtools ! * ms-macros Groff ! * msgs bsd44 ! * mt cpio ! * mterm xopt ! * mtree bsd44 ! * mtype mtools ! * mule MULE ! * muncher xopt ! * mv Fileutils ! * mvdir Fileutils ! * mwrite mtools ! ! * nethack Nethack ! * netstat bsd44 ! * newfs bsd44 ! * nfsd bsd44 ! * nfsiod bsd44 ! * nfsstat bsd44 ! * nice Shellutils ! * nl Textutils ! * nlmconv Binutils ! * nm Binutils ! * nohup Shellutils ! * notify HylaFAX ! * nroff Groff ! * number bsd44 ! ! * objc GCC ! * objcopy Binutils ! * objdump Binutils ! * objective-c GCC ! * obst-boot OBST ! * obst-CC OBST ! * obst-cct OBST ! * obst-cgc OBST ! * obst-cmp OBST ! * obst-cnt OBST ! * obst-cpcnt OBST ! * obst-csz OBST ! * obst-dir OBST ! * obst-dmp OBST ! * obst-gen OBST ! * obst-gsh OBST ! * obst-init OBST ! * obst-scp OBST ! * obst-sil OBST ! * obst-stf OBST ! * oclock xreq ! * octave Octave ! * od Textutils ! * oleo Oleo ! * ora-examples xopt ! ! * p2c p2c ! * pagesize bsd44 ! * palette xopt ! * pascal bsd44 ! * passwd bsd44 ! * paste Textutils ! * patch patch ! * patgen TeX ! * pathalias bsd44 ! * pathchk Shellutils ! * pax bsd44 ! * pbmplus xopt ! * perl perl ! * pfbtops Groff ! * phantasia bsd44 ! * pic Groff ! * pig bsd44 ! * ping bsd44 ! * pixedit xopt ! * pixmap xopt ! * pktogf TeX ! * pktype TeX ! * plaid xopt ! * plot2fig Graphics ! * plot2plot Graphics ! * plot2ps Graphics ! * plot2tek Graphics ! * pltotf TeX ! * pollrcvd HylaFAX ! * pom bsd44 ! * pooltype TeX ! * portmap bsd44 ! * ppt bsd44 ! * pr Textutils ! * pr-addr GNATS ! * pr-edit GNATS ! * primes bsd44 ! * printenv Shellutils ! * printf Shellutils ! * protoize GCC ! * ps bsd44 ! * ps2ascii Ghostscript ! * ps2epsi Ghostscript ! * ps2fax HylaFAX ! * psbb Groff ! * pstat bsd44 ! * psycho xopt ! * ptx ptx ! * pubdic+ xopt ! * puzzle xopt ! * puzzle xreq ! * pwd Shellutils ! * pyramid xopt ! ! * query-pr GNATS ! * quiz bsd44 ! * quot bsd44 ! * quota bsd44 ! * quotacheck bsd44 ! * quotaon bsd44 ! ! * rain bsd44 ! * random bsd44 ! * ranlib Binutils ! * rbootd bsd44 ! * rc rc ! * rcp bsd44 ! * rcs RCS ! * rcs-to-cvs CVS ! * rcs2log Emacs ! * rcsdiff RCS ! * rcsfreeze RCS ! * rcsmerge RCS ! * rdist bsd44 ! * reboot bsd44 ! * recode recode ! * recvstats HylaFAX ! * refer Groff ! * renice bsd44 ! * repquota bsd44 ! * restore bsd44 ! * rev bsd44 ! * rexecd bsd44 ! * rlog RCS ! * rlogin bsd44 ! * rlogind bsd44 ! * rm Fileutils ! * rmail bsd44 ! * rmdir Fileutils ! * rmt cpio ! * rmt tar ! * robots bsd44 ! * rogue bsd44 ! * route bsd44 ! * routed bsd44 ! * rr xopt ! * rs bsd44 ! * rsh bsd44 ! * rshd bsd44 ! * runtest DejaGnu ! * runtest.exp DejaGnu ! * ruptime bsd44 ! * rwho bsd44 ! * rwhod bsd44 ! ! * s2p perl ! * sail bsd44 ! * savecore bsd44 ! * sc bsd44 ! * sccs bsd44 ! * sccs2rcs CVS ! * scdisp xopt ! * screen screen ! * script bsd44 ! * scsiformat bsd44 ! * sctext xopt ! * sdiff Diffutils ! * sed sed ! * send-pr GNATS ! * sendfax HylaFAX ! * sendmail bsd44 ! * sgi2fax HylaFAX ! * sh bsd44 ! * shar Sharutils ! * shinbun xopt ! * shogi Shogi ! * showfont xopt ! * showmount bsd44 ! * shutdown bsd44 ! * size Binutils ! * sj3 xopt ! * sjxa xopt ! * slattach bsd44 ! * sleep Shellutils ! * sliplogin bsd44 ! * snake bsd44 ! * snftobdf xopt ! * soelim Groff ! * sort Textutils ! * sos2obst OBST ! * spider xopt ! * split Textutils ! * startslip bsd44 ! * stf OBST ! * strings Binutils ! * strip Binutils ! * stty Shellutils ! * su Shellutils ! * sum Textutils ! * superopt Superopt ! * swapon bsd44 ! * sync bsd44 ! * sysctl bsd44 ! * syslogd bsd44 ! * systat bsd44 ! ! * tac Textutils ! * tail Textutils ! * taintperl perl ! * talk bsd44 ! * talkd bsd44 ! * tangle TeX ! * tar tar ! * tbl Groff ! * tcl DejaGnu ! * tclsh DejaGnu ! * tcopy bsd44 ! * tcp Emacs ! * tee Shellutils ! * tek2plot Graphics ! * telnet bsd44 ! * telnetd bsd44 ! * test Shellutils ! * test-g++ DejaGnu ! * test-tool DejaGnu ! * tetris bsd44 ! * tex TeX ! * tex3patch Texinfo ! * texi2dvi Texinfo ! * texindex Texinfo ! * texspell TeX ! * textfmt HylaFAX ! * tfmtodit Groff ! * tftopl TeX ! * tftp bsd44 ! * tftpd bsd44 ! * tgrind TeX ! * time time ! * timed bsd44 ! * timer Emacs ! * timex xopt ! * tip bsd44 ! * tkpostage xopt ! * tn3270 bsd44 ! * touch Fileutils ! * tput tput ! * tr Textutils ! * traceroute bsd44 ! * transcript HylaFAX ! * transfig xopt ! * trek bsd44 ! * trn3 bsd44 ! * troff Groff ! * trpt bsd44 ! * trsp bsd44 ! * true Shellutils ! * tset bsd44 ! * tsort bsd44 ! * tty Shellutils ! * tunefs bsd44 ! * tvtwm xopt ! * twm xreq ! ! * ul bsd44 ! * umount bsd44 ! * uname Shellutils ! * uncompress gzip ! * unexpand Textutils ! * unifdef bsd44 ! * uniq Textutils ! * unprotoize GCC ! * unshar Sharutils ! * unvis bsd44 ! * update bsd44 ! * updatedb Findutils ! * users Shellutils ! * uuchk UUCP ! * uucico UUCP ! * uuconv UUCP ! * uucp UUCP ! * uucpd bsd44 ! * uudecode Sharutils ! * uudir UUCP ! * uuencode Sharutils ! * uulog UUCP ! * uuname UUCP ! * uupick UUCP ! * uurate UUCP ! * uusched UUCP ! * uustat UUCP ! * uuto UUCP ! * uux UUCP ! * uuxqt UUCP ! ! * v Fileutils ! * vacation bsd44 ! * vandal xopt ! * vcdiff Emacs ! * vdir Fileutils ! * vftovp TeX ! * vgrind bsd44 ! * vi nvi ! * viewres xopt ! * viewres xreq ! * vine xopt ! * vipw bsd44 ! * virmf TeX ! * virtex TeX ! * vis bsd44 ! * vmstat bsd44 ! * vptovf TeX ! ! * w bsd44 ! * wakeup Emacs ! * wall bsd44 ! * wargames bsd44 ! * wc Textutils ! * wdiff wdiff ! * weave TeX ! * what bsd44 ! * whatis bsd44 ! * whereis bsd44 ! * who Shellutils ! * whoami Shellutils ! * whois bsd44 ! * window bsd44 ! * winterp xopt ! * wish DejaGnu ! * worm bsd44 ! * worms bsd44 ! * write bsd44 ! * wump bsd44 ! ! * x11perf xreq ! * x2p perl ! * xalarm xopt ! * xancur xopt ! * xargs Findutils ! * xauth xreq ! * xbfe Fontutils ! * xbiff xopt ! * xbiff xreq ! * xboard xboard ! * xboing xopt ! * xbuffy3 xopt ! * xcalc xopt ! * xcalc xreq ! * xcalendar xopt ! * xcdplayer xopt ! * xcell xopt ! * xclipboard xreq ! * xclock xreq ! * xcmdmenu xopt ! * xcms xopt ! * xcmsdb xreq ! * xcmstest xreq ! * xco xopt ! * xcolorize xopt ! * xcolors xopt ! * xconsole xreq ! * xcrtca xopt ! * xdaliclock xopt ! * xdiary xopt ! * xditview Groff ! * xditview xopt ! * xditview xreq ! * xdm xreq ! * xdpyinfo xreq ! * xdu xopt ! * xdvi TeX ! * xdvi xopt ! * xdvorak xopt ! * xearth xopt ! * xed xopt ! * xedit xopt ! * xedit xreq ! * xev xopt ! * xev xreq ! * xexit xopt ! * xeyes xopt ! * xeyes xreq ! * xfd xreq ! * xfed xopt ! * xfedor xopt ! * xfeoak xopt ! * xferstats HylaFAX ! * xfig xopt ! * xfontsel xopt ! * xfontsel xreq ! * xforecast xopt ! * xgas xopt ! * xgas xreq ! * xgc xopt ! * xgc xreq ! * xhearts xopt ! * xhelp xopt ! * xhost xreq ! * xinit xreq ! * xkeycaps xopt ! * xkill xreq ! * xlax xopt ! * xlayout xopt ! * xlbiff xopt ! * xless xopt ! * xload xopt ! * xload xreq ! * xlogin xopt ! * xlogo xreq ! * xlsatoms xreq ! * xlsclients xreq ! * xlsfonts xreq ! * xmag xreq ! * xmail xopt ! * xmailbox xopt ! * xmailwatcher xopt ! * xman xopt ! * xman xreq ! * xmandel xopt ! * xmessage xopt ! * xmeter xopt ! * xmh xreq ! * xmh-icons xopt ! * xmh.editor xopt ! * xmodmap xreq ! * xmon xopt ! * xmove xopt ! * xmphone xopt ! * xpd xopt ! * xphoon xopt ! * xpipeman xopt ! * xplot Graphics ! * xpostit xopt ! * xpr xopt ! * xpr xreq ! * xprompt xopt ! * xproof xopt ! * xprop xreq ! * xpserv xopt ! * xrdb xreq ! * xrefresh xreq ! * xrsh xopt ! * xrubik xopt ! * xrunclient xopt ! * xscope xopt ! * xscreensaver xopt ! * xsession xopt ! * xset xreq ! * xsetroot xreq ! * xshogi xshogi ! * xstdcmap xreq ! * xstr bsd44 ! * xtalk xopt ! * xterm xreq ! * xterm_color xopt ! * xtetris xopt ! * xTeXcad.13 xopt ! * xtiff xopt ! * xtree xopt ! * xtv xopt ! * xwd xreq ! * xwininfo xreq ! * xwud xreq ! ! * yacc bsd44 ! * yes Shellutils ! * youbin xopt ! * yow Emacs ! ! * zcat gzip ! * zcmp gzip ! * zdiff gzip ! * zforce gzip ! * zgrep gzip ! * zmore gzip ! * znew gzip ! * [ Shellutils *************** *** 2076,2082 **** 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 Free ! Software Foundation Order Form in the centerfold. Source code for the ! manuals is included, in Texinfo format. See ``GNU Documentation''. Some of the files on the tapes may be compressed with `gzip' to make them --- 2490,2496 ---- 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 *************** *** 2086,2090 **** ! Languages Tape -------------- --- 2500,2504 ---- ! Languages Tape - (VERSION NUMBERS NOT COMPLETELY UP TO DATE) -------------- *************** *** 2092,2108 **** programs (parsers, conversion programs, debuggers, etc.). ! * Binutils 2.3 * Bison 1.22 ! * C Library 1.08 * DejaGnu 1.2 * dld 3.2.3 * ecc 1.2.1 ! * f2c 1994.04.14 ! * flex 2.4.6 ! * GAS 2.2 ! * Gawk 2.15.4 ! * GCC 2.5.8 (includes G++ & Objective-C) ! * GDB 4.12 ! * gdbm 1.7.1 * gmp 1.3.2 * gperf 2.1a --- 2506,2521 ---- 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 *************** *** 2109,2119 **** * gzip 1.2.4 * indent 1.9.1 ! * libg++ 2.5.3 ! * Make 3.71 ! * NIH Class Library 3.0 * Octave 1.0 * p2c 1.20 * perl 4.036 * regex 0.12 * Smalltalk 1.1.1 * Superopt 2.3 --- 2522,2536 ---- * 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 *************** *** 2123,2127 **** ! Utilities Tape -------------- --- 2540,2565 ---- ! 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) -------------- *************** *** 2128,2150 **** This tape consists mostly of smaller utilities and miscellaneous applications. ! * acm 4.5 ! * Autoconf 1.10 ! * BASH 1.13.5 ! * bc 1.02 ! * Chess 4.0.69 * cpio 2.3 * CVS 1.3 * dc 0.2 ! * Diffutils 2.6 * doschk 1.1 ! * ed 0.1 * es 0.84 ! * Fileutils 3.9 ! * find 3.8 * finger 1.37 * Fontutils 0.6 * Ghostscript 2.6.1 * Ghostview 1.5 - * Ghostview for Windows 1.0 * GNATS 3.2 * GnuGo 1.1 --- 2566,2589 ---- 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 ! * ed 0.2 * es 0.84 ! * 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 *************** *** 2151,2155 **** * gnuplot 3.5 * Graphics 0.17 ! * grep 2.0 (with egrep and fgrep) * Groff 1.09 * gzip 1.2.4 --- 2590,2594 ---- * gnuplot 3.5 * Graphics 0.17 ! * grep 2.0 * Groff 1.09 * gzip 1.2.4 *************** *** 2156,2209 **** * hello 1.3 * hp2xx 3.1.4 ! * Ispell 4.0 ! * m4 1.1 ! * Make 3.71 ! * MandelSpawn 0.07 * mtools 2.0.7 - * NetFax 3.2.1 * Nethack 3.1.3 ! * nvi 1.11 ! * Oleo 1.5 * patch 2.1 ! * ptx 0.3 * rc 1.4 * RCS 5.6.0.1 ! * recode 3.3 * screen 3.5.2 ! * sed 1.18 ! * sed 2.05 ! * Shellutils 1.9.4 ! * Shogi 1.1.02 * tar 1.11.2 * Termcap 1.2 * Texinfo 3.1 ! * Textutils 1.9 * time 1.6 * tput 1.0 * UUCP 1.05 - * uuencode 1.0 * wdiff 0.04 ! * xboard 3.0.9 * xshogi 1.2.02 ! ! ! ! Emacs Tape ! ---------- ! ! 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.01.08 ! * GNU Common Lisp 1.0 ! * elib 0.06 ! * Emacs 18.59 ! * Emacs 19.23 ! * GNU Emacs Lisp Reference Manual 2.3 ! * gzip 1.2.4 ! * Make 3.71 ! * PCL 1993.03.18 ! * Texinfo 3.1 --- 2595,2630 ---- * 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 *************** *** 2216,2223 **** research new parallel programming constructs and compilation techniques. ! This tape contains MIT Scheme 7.1, 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 --- 2637,2644 ---- 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 *************** *** 2234,2238 **** If your system is not on this list and you don't enjoy the bootstrap ! challenge, see the JACAL item in ``GNU Software''. --- 2655,2659 ---- If your system is not on this list and you don't enjoy the bootstrap ! challenge, see the JACAL item in *Note GNU Software::. *************** *** 2241,2246 **** --------- ! The two X11 tapes contain Version 11, Release 6 of the MIT 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" --- 2662,2667 ---- --------- ! 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" *************** *** 2250,2257 **** The X11 Required tape also contains all fixes and patches released to date. We update this tape as new fixes and patches are released for programs on ! both tapes. See ``Tape & CD-ROM Subscription Service''. ! We will distribute X11R5 on tape until X11R6 is stable, and on the ! ``November 1993 Source Code CD-ROM'', while supplies last. --- 2671,2678 ---- The X11 Required tape also contains all fixes and patches released to date. We update this tape as new fixes and patches are released for programs on ! 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. *************** *** 2261,2267 **** The "4.4BSD-Lite" release is the last from the Computer Systems Research ! Group at the University of California at Berkeley. It includes most of the ! BSD software system except for a few proprietary files that still remain in ! the full 4.4BSD distribution. --- 2682,2688 ---- The "4.4BSD-Lite" release is the last from the Computer Systems Research ! Group at the University of California at Berkeley. It has most of the BSD ! software system, except for a few files that remain proprietary. It is much ! more complete than the previous "Net2" release. *************** *** 2271,2281 **** We offer two VMS tapes. One has just GNU Emacs 18.59 (none of the other ! software on the ``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 ``Languages Tape'', is ! included). We are not aware of a GDB port for VMS. Both VMS tapes have ! executables from which you can bootstrap, as the DEC VMS C compiler cannot ! compile GCC. Please do not ask us to devote effort to VMS support, because it ! is peripheral to the GNU Project. --- 2692,2703 ---- 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. ! Both VMS tapes have DEC VAX executables from which you can bootstrap, as the ! DEC VMS C compiler cannot compile GCC. We do not have executables for DEC ! Alpha VMS systems. Please do not ask us to devote effort to VMS support, ! because it is peripheral to the GNU Project. *************** *** 2284,2300 **** ******* ! We currently offer these CD-ROMs: ! * see ``May 1994 Source Code CD-ROM''. ! * see ``November 1993 Source Code CD-ROM''. ! * see ``Compiler Tools Binaries CD-ROM''. ! Our CD-ROMs are 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 ! each 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. You can build most of the software without copying the sources off the CD. --- 2706,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. *************** *** 2307,2606 **** -------------------------- ! If a business or organization is ultimately paying, the May 1994 Source CD ! costs $400. It costs $100 if you, an individual, are paying out of your own ! pocket. The Compiler Tools Binaries CD-ROM costs $240 for a business or ! organization, and $60 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 May 1994 Source CD-ROM, we charge ! $400. When an individual buys the same disk, we charge just $100. ! ! 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 ! buying a disk "in person", then you are probably doing so as an ! individual. But if you expect to be reimbursed by your employer, then ! the disk is really for the company; so please pay the company price and ! get reimbursed for it. We won't try to check up on you--we use the honor ! system--so please cooperate. ! ! Buying CDs at the company price is especially helpful for Project GNU; ! just 80 May 1994 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 $400 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. ! ! However, for individuals, $400 is too high a price; hardly anyone could ! afford that. So we decided to make CDs available to individuals at the ! lower price of $100, but not do the same for companies. ! ! * Is there a maximum price? ! ! Our stated prices are minimums. Feel free to pay a higher price if you ! wish to support GNU development more. The sky's the limit; we will ! accept as high a price as you can offer. Or simply give a donation ! (tax-deductible in the U.S.) to the Free Software Foundation, a ! tax-exempt public charity. ! May 1994 Source Code CD-ROM ! --------------------------- ! The Free Software Foundation has produced the fourth edition of its Source ! Code CD-ROM. It contains the following: ! * 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 ! * 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 ! * GCL 1.0 ! * 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-Required ! * xboard 3.0.9 ! * xshogi 1.2.02 ! The CD-ROM also contains Texinfo source for the `GNU Emacs Lisp Reference ! Manual' Edition 2.3 for version 19, and other manuals listed in ! ``GNU Documentation''; as well as a snapshot of the Emacs Lisp Archive at Ohio ! State University. (You can get the libraries in this archive by anonymous FTP ! from `archive.cis.ohio-state.edu' in `/pub/gnu/emacs/elisp-archive'.) ! ! The contents of the MIT Scheme, X11 Optional and VMS tapes are not included. ! Programs that are only on MS-DOS diskettes and not on the tapes are also not ! included. See ``Tapes'' and ``MS-DOS Diskettes''. ! ! Except for the Ghostview for Windows executable, there are no precompiled ! programs on this CD. You will need a C compiler. (Programs which need some ! other interpreter or compiler normally provide the C source for a ! bootstrapping program.) - November 1993 Source Code CD-ROM - -------------------------------- - The Free Software Foundation is still distributing the third edition of its - Source Code CD-ROM. We are doing so because it contains X11R5, and we feel - that people should have a choice between X11R5 and X11R6 until the latter is - stable. Because the other software on the third edition is older than that - on the fourth edition, we have reduced the price of the third edition. The - third edition contains the following: - - * acm 3.1 - * Autoconf 1.7 - * BASH 1.13.4 - * bc 1.02 - * Binutils 1.9 & Binutils 2.3 - * Bison 1.22 - * C Library 1.06.7 - * Calc 2.02b - * Chess 4.0p62 - * CLISP 1993.11.08 - * cperf 2.1a - * 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 - * NetFax 3.2.1 - * Fileutils 3.9 - * find 3.8 - * finger 1.37 - * flex 2.3.8 - * Fontutils 0.6 - * GAS 1.36.utah, 1.38.1, & 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 - * gnuplot 3.5 - * GnuGo 1.1 - * Graphics 0.17 - * grep 2.0 (with egrep and fgrep) - * 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 - * Nethack 3.1.3 - * NIHCL 3.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.2.4 - * regex 0.12 - * MIT Scheme 7.2 (for MS-DOS) - * screen 3.5.2 - * sed 1.18 & sed 2.03 - * Shellutils 1.9.1 - * GNU Shogi 1.1p02 - * Smalltalk 1.1.1 - * Superopt 2.3 - * tar 1.11.2 - * Termcap library 1.2 - * TeX 3.1 - * Texinfo 3.1 - * Textutils 1.9.1 - * Tile Forth 2.1 - * time 1.6 - * tput 1.0 - * UUCP 1.04 - * uuencode 1.0 - * wdiff 0.04 - * X11R5-Required ! The CD-ROM also contains Texinfo source for the `GNU Emacs Lisp Reference ! Manual' Edition 2.02 for version 19, and other manuals listed in ! ``GNU Documentation''; as well as a snapshot of the Emacs Lisp Archive at Ohio ! State University. (You can get the libraries in this archive by anonymous ! FTP from `archive.cis.ohio-state.edu' in `/pub/gnu/emacs/elisp-archive'.) ! ! The contents of the MIT Scheme, X11 Optional and VMS tapes are not included. ! Programs that are only on MS-DOS diskettes and not on the tapes are also not ! included. See ``Tapes'' and ``MS-DOS Diskettes''. ! Except for the MIT Scheme binaries for MS-DOS and the Ghostview for Windows ! executable, there are no precompiled programs on this CD. You will need a C ! compiler (programs which need some other interpreter or compiler normally ! provide the C source for a bootstrapping program). - Compiler Tools Binaries CD-ROM - ------------------------------ ! We are now offering a CD-ROM that contains executables for GNU compiler tools ! for some systems which lack a compiler. This helps people with 80386 and ! 80486 machines running MS-D0S, not to mention HP-PA machines running HP-UX 9, ! and Sparcs running SunOS 4.1 & Solaris 2. - This enables the people who use these systems to compile GNU and other free - software without having to buy a proprietary compiler. ! We hope to have more systems on each update of this CD-ROM. 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 --- 2735,2836 ---- -------------------------- ! 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 + buying a disk "in person", then you are probably doing so as an individual. + But if you expect to be reimbursed by your employer, then the disk is really + for the company; so please pay the company price and get reimbursed for it. + 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. + However, for individuals, $240 is too high a price; hardly anyone could + afford that. So we decided to make CDs available to individuals at the lower + price of $60. ! Is there a maximum price? ! ! Our stated prices are minimum prices. Feel free to pay a higher price if you ! wish to support GNU development more. The sky's the limit; we will accept as ! high a price as you can offer. Or simply give a donation (tax-deductible in ! the U.S.) to the Free Software Foundation, a tax-exempt public charity. ! ! ! ! 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). ! ! ! ! December 1994 Compiler Tools Binaries CD-ROM ! -------------------------------------------- ! ! 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 *************** *** 2607,2668 **** 1. ! 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' MS-DOS Diskettes **************** ! The FSF distributes, on 3.5inch 1.44MB diskettes, some of the GNU software ! ported to MS-DOS. The disks have both sources and executables. ! DJGPP Diskettes --------------- ! We offer DJGPP on 21 diskettes. For details, see ``GNU Software''. ! Emacs Diskettes --------------- ! Demacs is a version of GNU Emacs. Two versions are included on the six ! diskettes we distribute: one handles 8-bit character sets; the other, based ! on an early version of MULE, handles 16-bit character sets including Kanji. - We will be replacing Demacs with the MS-DOS port of GNU Emacs 19, as soon as - the port is ready. The number of diskettes is not yet known. See ``GNU - Software'', for details about both programs. ! ! Selected Utilities Diskettes ---------------------------- ! The GNUish MS-DOS Project releases GNU software ported to PC compatibles. We ! offer these programs on five diskettes. In general, this software will run ! on 8086 and 80286-based 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. --- 2837,3266 ---- 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' ! ! ! ! Source Code CD-ROMs ! ------------------- ! ! 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 + compiler (programs which need some other interpreter or compiler normally + provide the C source for a bootstrapping program). We ship C compiler + binaries for some systems on the *Note Compiler Tools Binaries CD-ROM::. + + + + 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 + + + + May 1994 Source Code CD-ROM + ........................... + + 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 + + + + November 1993 Source Code CD-ROM + ................................ + + 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 + + + + MS-DOS Diskettes **************** ! 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) --------------- ! We offer DJGPP on 30 diskettes. For further details, see *Note GNU ! 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. *************** *** 2679,2701 **** If you do not have net access, our subscription service enables you to stay ! current with the latest FSF developments. For a one-time cost equivalent to 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 ! currently twice a year, but we may issue it more frequently in the future.) ! Regularly, we will send you a new version of an Emacs, Languages, Utilities, ! or MIT X Window System (X11R6) Required tape or the Source CD-ROM. The MIT ! Scheme and MIT 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 CD-ROM. ! ! Since Emacs 19 is on the Emacs Tape and the Source CD-ROM, a subscription to ! either is an easy way to keep current with Emacs 19 as it evolves. ! ! A subscription is also an easy way to keep up with the regular bug fixes to ! the MIT X Window System. We will update the X11R6 Required tape as fixes and ! patches are issued throughout the year. Each new edition of the ``Source ! Code CD-ROM'', also has updated sources for the MIT X Window System. Please note: In two cases, you must pay 4 times the normal shipping required --- 3277,3300 ---- If you do not have net access, our subscription service enables you to stay ! current with the latest GNU developments. For a one-time cost equivalent to 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 ! subscription to either is an easy way to keep current with Emacs 19 as it ! evolves. ! ! 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 *************** *** 2703,2708 **** 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 $120.00 for shipping subscription. See "Unix and VMS Software" & ! "Shipping Instructions" on the FSF Order Form, in the centerfold. --- 3302,3307 ---- 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::.. *************** *** 2711,2715 **** *********************** ! The Free Software Foundation has been repeatedly asked 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 --- 3310,3314 ---- *********************** ! 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 *************** *** 2719,2761 **** 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 MIT X Window System, and all the GNU utilities. ! You may choose one of these machines and operating systems: HP 9000 series ! 300, 700 or 800 (4.3BSD or HP-UX); RS/6000 (AIX); SONY News 68k (4.3BSD or ! NewsOS 4); Sun-3, Sun-4, or SPARC (SunOS 4 or Solaris). If your machine or ! system is not listed, or if a specific program has not been ported to that ! machine, please call the FSF office at the phone number below or send e-mail ! to `gnu@prep.ai.mit.edu' to see what we can do. ! ! We supply the software on one of these tape formats in Unix `tar' format: ! 1600 or 6250bpi 1/2in reel; Sun DC300XLP 1/4in cartridge, QIC-24; ! Hewlett-Packard 16-track DC600HC 1/4in cartridge; IBM RS/6000 1/4in ! cartridge, QIC-150; Exabyte 8mm cartridge; 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 19 Lisp Reference', ! `Make', `Texinfo', and `Termcap' manuals; six copies of the `GNU Emacs 19' ! manual; and packets of ten reference cards each for GNU Emacs, Calc, GDB, ! Bison, & Flex. In addition, every Deluxe Distribution includes CD-ROMs (in ! ISO 9660 format with Rock Ridge extensions) that contain sources of our ! software & compiler tool binaries for some systems. ! ! The price of the Deluxe Distribution is $5000 (shipping included). It is ! designed for people who want to have everything compiled for them. These ! sales provide enormous financial assistance towards helping the FSF develop ! more free software. To order, please fill out the "Deluxe Distribution" ! section on the Free Software Foundation Order Form in the centerfold and send ! it to: Free Software Foundation, Inc. ! 675 Massachusetts Avenue ! Cambridge, MA 02139--3309 USA ! Telephone: +1-617-876-3296 ! Fax: +1-617-492-9057 ! Fax (in Japan): 0031-13-2473 (KDD) 0066-3382-0158 (IDC) --- 3318,3364 ---- 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) *************** *** 2767,2784 **** *********** ! We have Free Software Foundation T-shirts, with a drawing by Cambridge artist ! Jamal Hannah. They are available in two colors, Natural and Black. Natural ! is an off-white, unbleached, undyed, environment-friendly cotton, printed ! with black ink, and is great for tye-dyeing or displaying as is. Black is ! printed with white ink and is perfect for late night hacking. All shirts are ! thick 100% cotton, and are available in sizes M, L, XL and XXL. ! ! The front of the T-shirt has an image of a GNU hacking at a workstation with ! the text "GNU's Not Unix" above and the text "Free Software Foundation" below. ! We have added a copy of the GNU General Public License to the T-shirt's back, ! which used to be blank. ! ! Use the Free Software Foundation Order Form, in the centerfold, to order your ! shirt, and consider getting one as a present for your favorite hacker! --- 3370,3387 ---- *********** ! 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. *************** *** 2788,2799 **** All items are distributed with permission to copy and to redistribute. ! Texinfo source for each manual and source for each reference card is on the ! appropriate tape, diskette, or CD-ROM; the prices for these magnetic media do ! not include printed documentation. All items are provided on an "as is" ! basis, with no warranty of any kind. Please allow six weeks for delivery ! (though it won't usually take that long). ! PRICE AND CONTENTS MAY CHANGE WITHOUT NOTICE AFTER January 31, 1995. --- 3391,3402 ---- All items are distributed with permission to copy and to redistribute. ! Texinfo source for each manual and source for each reference card is on ! the appropriate tape, diskette, or CD-ROM; the prices for these magnetic ! media do not include printed documentation. All items are provided on ! an ``as is'' basis, with no warranty of any kind. Please allow six ! weeks for delivery (though it won't usually take that long). ! PRICE AND CONTENTS MAY CHANGE WITHOUT NOTICE AFTER January 31, 1996. *************** *** 2802,2806 **** --------------------- ! The following tapes in the formats indicated (see "Tapes" for contents): Please circle the dollar amount for each tape you order. --- 3405,3409 ---- --------------------- ! These tapes in the formats indicated (*note Tapes::., for contents): Please circle the dollar amount for each tape you order. *************** *** 2815,2819 **** (c.t. = cartridge tape) ! Emacs $200 $210 $230 $215 (3) $205 $225 Languages $200 $210 $230 $215 $205 $225 Utilities $200 $210 $230 $215 $205 $225 --- 3418,3422 ---- (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 *************** *** 2820,2827 **** 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. --- 3423,3430 ---- 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. *************** *** 2830,2835 **** ! Subscriptions, 4 updates for one year (see "Tape & CD-ROM Subscription ! Service"): Emacs $600 $630 $690 $645 $615 $675 --- 3433,3437 ---- ! Subscriptions, 4 updates for one year (*note Tape & CD-ROM Subscription Service::.): Emacs $600 $630 $690 $645 $615 $675 *************** *** 2836,2840 **** Languages $600 $630 $690 $645 $615 $675 Utilities $600 $630 $690 $645 $615 $675 ! X11r6-Required $600 $630 $690 $645 $615 $675 Subtotal $ ______ Please put total of the above circled amounts here. --- 3438,3442 ---- Languages $600 $630 $690 $645 $615 $675 Utilities $600 $630 $690 $645 $615 $675 ! X11R6-Required $600 $630 $690 $645 $615 $675 Subtotal $ ______ Please put total of the above circled amounts here. *************** *** 2841,2846 **** ! The following, on 1600 bpi reel-to-reel 9 track 1/2" tapes, in VMS BACKUP ! format (aka interchange format) (see "VMS Emacs and VMS Compiler Tapes"): ____ @ $195 = $ ______ VMS Emacs, GNU Emacs source & executables only. --- 3443,3448 ---- ! These 1600 bpi reel-to-reel 9 track 1/2" tapes, in VMS BACKUP format (aka ! interchange format) (*note VMS Emacs and VMS Compiler Tapes::.): ____ @ $195 = $ ______ VMS Emacs, GNU Emacs source & executables only. *************** *** 2847,2857 **** ____ @ $195 = $ ______ VMS Compiler, GCC, GAS, and Bison source and ! executables only. ! FSF Deluxe Distribution (see "The Deluxe Distribution"): - ____ @ $5000 = $ ______ The Deluxe Distribution, with manuals, etc. Machine: _____________________________________________________________________ --- 3449,3461 ---- ____ @ $195 = $ ______ VMS Compiler, GCC, GAS, and Bison source and ! executables only. ! FSF Deluxe Distribution (*note Deluxe Distribution::.): ! ...................................................... + ____ @ $5000 = $ ______ The Deluxe Distribution, with manuals, etc. + Machine: _____________________________________________________________________ *************** *** 2862,2995 **** ! CD-ROM, in ISO 9660 format (see "Compiler Tools Binaries CD-ROM"): - ____ @ $240 = $ ______ GNU Compiler Tools Binaries CD-ROM for - corporations and other organizations. - ____ @ $60 = $ ______ GNU Compiler Tools Binaries CD-ROM for individuals. ! Source Code CD-ROM, in ISO 9660 format (see "May 1994 Source Code CD-ROM"): ! *** NEW !!! *** - ____ @ $400 = $ ______ GNU Source Code CD-ROM, May 1994 edition with X11r6, - for corporations and other organizations. NEW !!! - ____ @ $100 = $ ______ GNU Source Code CD-ROM, May 1994 edition with X11r6, - for individuals. NEW !!! ! Source Code CD-ROM, in ISO 9660 format (see "November 1993 Source Code ! CD-ROM"): ! *** PRICE REDUCED !!! *** ! ____ @ $260 = $ ______ GNU Source Code CD-ROM, November 1993 edition with ! X11r5, for corporations & other organizations. ! PRICE REDUCED !!! ! ____ @ $65 = $ ______ GNU Source Code CD-ROM, November 1993 edition with ! X11r5, for individuals. PRICE REDUCED !!! Subscriptions, next 4 updates, of the Source Code CD-ROM, in ISO 9660 format ! (see "Tape & CD-ROM Subscription Service"): ! ____ @ $1200 = $ ______ Subscription to the GNU Source Code CD-ROM for ! corporations and other organizations. ! ____ @ $300 = $ ______ Subscription to the GNU Source Code CD-ROM for ! individuals. MS-DOS Software --------------- ! The following source and executables for MS-DOS, on 3.5" 1.44MB diskettes ! (see "MS-DOS Diskettes"): ! *** BEING UPDATED !!! *** ! ____ @ $ 90 = $ ______ Emacs diskettes, GNU Emacs, for 80386 and up. ! BEING UPDATED !!! ! ____ @ $ 80 = $ ______ DJGPP diskettes, GCC version 2, for 80386 and up ! (also on the "Compiler Tools Binaries CD-ROM"). ! ____ @ $ 85 = $ ______ Selected Utilities diskettes, 8086 and up. ! ____ @ $ 40 = $ ______ Windows diskette, GNU Chess and gnuplot for ! Microsoft Windows. - Manuals - ------- ! The following manuals (see "GNU Documentation"): ! ____ @ $ 25 = $ ______ GNU Emacs version 19 manual, unit price for 1 to 5 ! copies, about 418 pages, new 9th edition with a ! reference card. ! ____ @ $ 17 = $ ______ GNU Emacs version 19 manuals, unit price for 6 or ! more. ! *** UPDATED !!! *** ! ____ @ $ 50 = $ ______ GNU Emacs Lisp Reference version 19 manual, about ! 756 pages in 2 volumes. UPDATED for Emacs 19.23!! ! ____ @ $200 = $ ______ A box of 5 GNU Emacs Lisp Reference version 19 ! manuals. UPDATED for Emacs 19.23!! ! *** UPDATED !!! *** ! ____ @ $ 50 = $ ______ Using and Porting GNU CC version 2.5, about 428 ! pages. UPDATED !!! ! ____ @ $ 50 = $ ______ GNU C Library Reference Manual, about 670 pages. ! ____ @ $ 50 = $ ______ GNU Emacs Calc manual, about 596 pages, with a ! reference card. ! ____ @ $ 20 = $ ______ Debugging with GDB, about 182 pages, with a reference ! card. ! *** UPDATED !!! *** ! ____ @ $ 20 = $ ______ Texinfo manual, about 248 pages. UPDATED !!! ! ____ @ $ 20 = $ ______ Gawk manual, about 188 pages. - ____ @ $ 20 = $ ______ Make manual, about 158 pages. ! ____ @ $ 20 = $ ______ Bison manual, about 98 pages, with a reference card. ! ____ @ $ 20 = $ ______ Flex manual, about 124 pages, with a reference card. ! ____ @ $ 15 = $ ______ Termcap manual, 68 pages. ! Older Manuals ! ------------- ! ____ @ $ 25 = $ ______ GNU Emacs version 18 manual, unit price for 1 to 5 ! copies, about 410 pages, with a reference card. ! ____ @ $ 17 = $ ______ GNU Emacs version 18 manuals, unit price for 6 or ! more. ! ____ @ $ 50 = $ ______ GNU Emacs Lisp Reference version 18 manual, about ! 614 pages in 2 volumes. ! ____ @ $200 = $ ______ A box of 5 GNU Emacs Lisp Reference version 18 ! manuals. ! Reference Cards ! --------------- ! The following reference cards, unit price, without the manuals: ! ____ @ $ 2 = $ ______ GNU Emacs version 18 reference card. ! ____ @ $ 2 = $ ______ GNU Emacs version 19 reference card. ! ____ @ $ 2 = $ ______ GNU Emacs Calc reference card. ! ____ @ $ 2 = $ ______ GDB reference card. ! ____ @ $ 2 = $ ______ Bison reference card. ! ____ @ $ 2 = $ ______ Flex reference card. ! The following reference cards, in packets of ten: ! ____ @ $ 10 = $ ______ GNU Emacs version 18 reference cards. ____ @ $ 10 = $ ______ GNU Emacs version 19 reference cards. --- 3466,3571 ---- ! CD-ROMs, in ISO 9660 format (*note CD-ROMs::.): ! .............................................. ! ! ! GNU Source Code CD-ROM, Version 6 with X11R6 (*note June 1995 Source Code CD-ROM::.): ! ! ____ @ $240 = $ ______ for corporations and other organizations. ! ! ____ @ $ 60 = $ ______ for individuals. + 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::.): ! ____ @ $720 = $ ______ for corporations and other organizations. + ____ @ $180 = $ ______ for individuals. + + 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 ! (*note MS-DOS Diskettes::.): ! ____ @ $ 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. ! Manuals ! ------- ! 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. + ____ @ $ 50 = $ ______ GNU Emacs Lisp Reference manual, in two volumes. ! ____ @ $ 50 = $ ______ Using and Porting GNU CC. ! ____ @ $ 50 = $ ______ GNU C Library Reference Manual. + ____ @ $ 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. ! ____ @ $ 20 = $ ______ Bison manual, with a reference card. ! ____ @ $ 20 = $ ______ Flex manual, with a reference card. ! ____ @ $ 20 = $ ______ Texinfo manual. ! ____ @ $ 15 = $ ______ Termcap manual. ! Reference Cards ! --------------- ! The following reference cards, in packets of ten. For single copies please ! call. ____ @ $ 10 = $ ______ GNU Emacs version 19 reference cards. *************** *** 3008,3016 **** -------- ! GNU/FSF T-shirts, thick 100% cotton (see "FSF T-shirt"): - The back of the t-shirt, which used to be blank, now has a copy of the GNU - General Public License on it. - ____ @ $ 15 = $ ______ Size M ____ natural ____ black. --- 3584,3589 ---- -------- ! GNU/FSF T-shirts, thick 100% cotton (*note FSF T-shirt::.): ____ @ $ 15 = $ ______ Size M ____ natural ____ black. *************** *** 3020,3025 **** ____ @ $ 15 = $ ______ Size XXL ____ natural ____ black. ! ------ Subtotal $ ______ --- 3593,3639 ---- ____ @ $ 15 = $ ______ Size XXL ____ natural ____ black. ! + + Older Items + ----------- + + Older items are only available while supplies last. + + ____ @ $ 5 = $ ______ GNU Emacs version 18 reference cards, in packets + of ten. + + Please fill in the number of each older CD-ROM you order: + + for for + corporations individuals: + and other + organizations: + + GNU Compiler Tools Binaries CD-ROM + December 1993 Edition (Version 1) ____________ ____________ + + + GNU Source Code CD-ROM + May 1994 edition with X11R6 ____________ ____________ + + GNU Source Code CD-ROM + November 1993 edition with X11R5 ____________ ____________ + + GNU Source Code CD-ROM + May 1993 edition with X11R5 ____________ ____________ + + GNU Source Code CD-ROM + October 1992 edition with X11R5 ____________ ____________ + + + Please put the total count and cost of the above older CD-ROMs here: + + ____ @ $ 80 = $ ______ for corporations and other organizations. + + ____ @ $ 20 = $ ______ for individuals. + + ====== + Subtotal $ ______ *************** *** 3029,3052 **** ---------------------- ! + $ ______ 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, or $20 per box. For all other items, add $5 base charge, then $1 per item except reference cards; i.e., ! shipping for all other items = $5 + $1 * n. ! Add $20 for each tape or CD-ROM subscription. + $ ______ Outside of U.S., Canada, and Puerto Rico for ! shipping: Add $20 base charge, and then add $10 ! more for *each* item (except reference cards) in the ! order; i.e., ! shipping for all other items = $20 + $10 * n. ! Add $120 for each tape or CD-ROM subscription. + $ ______ Optional (tax-deductible in the U.S.) donation. ! ------ TOTAL $ ______ We pay for shipping via UPS ground transportation in ! the contiguous 48 states and Canada. --- 3643,3668 ---- ---------------------- ! + $ ______ 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. TOTAL $ ______ We pay for shipping via UPS ground transportation in ! the contiguous 48 states and Canada. For very ! large orders, ask about actual shipping costs for ! that order. *************** *** 3071,3097 **** ! 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 help keep our lives ! simple by including your payment with your order. For orders from outside the U.S.: ! Orders must be paid in U.S. dollars. You are responsible for paying all ! duties, tariffs, and taxes. If you refuse to pay the charges, the shipper ! will return or abandon the order. ! Please make checks payable to the "Free Software Foundation". For Credit Card Orders: - The Free Software Foundation takes these credit cards: Visa, Mastercard, JCB, - Diner's Club, and Carte Blanche. 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: Card type: ___________________________________________________________________ --- 3687,3724 ---- ! ------------------------------------------------------------------------------ ! | | ! | 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 | ! | help keep our lives simple by including your payment with your order. | ! | | ! ------------------------------------------------------------------------------ For orders from outside the U.S.: + --------------------------------- ! You are responsible for paying all duties, tariffs, and taxes. If you ! refuse to pay the charges, the shipper will return or abandon the order. ! --------------------------------------------------------------------------- ! | | ! | Please make checks payable to the ``Free Software Foundation''. | ! | | ! --------------------------------------------------------------------------- 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: Card type: ___________________________________________________________________ *************** *** 3101,3118 **** Expiration Date: _____________________________________________________________ ! Your Signature: ______________________________________________________________ - For wire transfers orders: Call or write us for details. ! Please mail orders to: Free Software Foundation ! 675 Massachusetts Avenue ! Version: June 1994 ASCII etc/ORDERS Cambridge, MA 02139 USA ! +1-617-876-3296 ! FAX: +1-617-492-9057 ! FAX numbers in Japan: PRICES AND CONTENTS MAY CHANGE 0031-13-2473 (KDD) ! WITHOUT NOTICE AFTER January 31, 1995. 0066-3382-0158 (IDC) --------------------------------------------------------------------- --- 3728,3753 ---- Expiration Date: _____________________________________________________________ ! Cardholder's Signature: ______________________________________________________ + ------------------------------------------------------------------------------ + | | + | If you wish to pay by wire transfer, or you are a reseller, please | + | call or write us for details. | + | | + ------------------------------------------------------------------------------ ! ! Please mail orders to: Free Software Foundation ! 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 --------------------------------------------------------------------- diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/ORDERS.JAPAN emacs-19.29/etc/ORDERS.JAPAN *** emacs-19.28/etc/ORDERS.JAPAN Sun May 22 19:32:41 1994 --- emacs-19.29/etc/ORDERS.JAPAN Wed Jun 14 18:33:18 1995 *************** *** 132,137 **** Free Software Foundation ! 675 Massachusetts Avenue ! Cambridge, MA 02139 U.S.A. --- 132,137 ---- Free Software Foundation ! 59 Temple Place - Suite 330 ! Boston, MA 02111-1307 U.S.A. *************** *** 142,146 **** 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-492-9057. 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: --- 142,146 ---- 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: *************** *** 147,152 **** Free Software Foundation ! 675 Massachusetts Avenue ! Cambridge, MA 02139 U.S.A. --- 147,152 ---- Free Software Foundation ! 59 Temple Place - Suite 330 ! Boston, MA 02111-1307 U.S.A. *************** *** 167,171 **** 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-876-3296 or by fax at 001-1-617-492-9057 prior to placing any orders for greater than Y500,000. --- 167,171 ---- 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-876-3296 or by fax at 001-1-617-542-2652 prior to placing any orders for greater than Y500,000. *************** *** 231,235 **** Free Software Foundation ! 675 Massachusetts Avenue ! Cambridge, MA 02139 U.S.A. --- 231,235 ---- Free Software Foundation ! 59 Temple Place - Suite 330 ! Boston, MA 02111-1307 U.S.A. diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/SERVICE emacs-19.29/etc/SERVICE *** emacs-19.28/etc/SERVICE Tue Jun 14 19:29:48 1994 --- emacs-19.29/etc/SERVICE Tue Jun 13 19:13:45 1995 *************** *** 73,77 **** - 14 years experience with CS, Systemadministration - 7 years with UNIX/Networking/FreeWare/GNU/X11 ! - 5 years organizer of practical OS courses - Platforms: SunOS, HP-UX, Ultrix, OSF1, Linux, AIX, Solaris - Experience with parallel environments (Transputers: Meiko, Parix) --- 73,77 ---- - 14 years experience with CS, Systemadministration - 7 years with UNIX/Networking/FreeWare/GNU/X11 ! - 5 years organizer of practical OS courses - Platforms: SunOS, HP-UX, Ultrix, OSF1, Linux, AIX, Solaris - Experience with parallel environments (Transputers: Meiko, Parix) *************** *** 158,162 **** Entered: 5May94 ! ^_ Contributed Software Graefestr. 76 --- 158,162 ---- Entered: 5May94 !  Contributed Software Graefestr. 76 *************** *** 206,232 **** Cygnus Support ! 1 Kendall Square ! Cambridge, MA 02139 ! +1 617 494 1040 voice ! +1 617 494 1325 fax ! ! Cygnus Support offers warranty protection (service contracts) for a ! number of free software tools. For a fixed annual fee our customers ! receive binary and source distributions, mail and phone support, ! documentation and customization assistance for the GNU tools and the ! Kerberos Network Security package. This toolkit consists of gcc, g++, ! gdb, and gas. Cygnus maintains and supports the GNU tools on over 50 ! host/target configurations. ! ! This set of supported tools and platforms is updated and added to ! every 90 days. Please contact Cygnus for the most up to date software ! available. ! ! For those who need on-site assistance, support is also available from ! our Cambridge office. ! Annual Support starts at $1,400. ! ! Updated: 11Apr94  Jose A. Fernandez --- 206,224 ---- Cygnus Support ! 48 Grove Street ! Somerville, MA 02144 ! +1 617 629 3000 voice ! +1 617 629 3010 fax ! ! Cygnus Support continues to provide supported, maintained versions of ! the GNU toolset including GCC, G++, the GNU debugger with graphical ! user interface, GNU linker, GNU macro-assembler and Emacs 19. In ! keeping with the rapidly advancing needs of software developers, ! Cygnus maintains a 90 day release cycle of the GNU toolset. Each ! release is regression tested and includes substantial improvements and ! additions to the existing matrix of over 65 supported platform ! configurations. ! Updated: 2Feb95  Jose A. Fernandez *************** *** 290,294 **** Updated: 5Apr94  ! Ron Guilmette 396 Ano Nuevo Ave. #216 Sunnyvale, CA 94086 --- 282,286 ---- Updated: 5Apr94  ! Ron Guilmette 396 Ano Nuevo Ave. #216 Sunnyvale, CA 94086 *************** *** 332,340 **** Updated: 13Apr94  ! Hundred Acre Software Consultants ! 5301 Longley Lane, Suite D-144 ! Reno NV 89511-1805 ! (702)-829-9700 ! (800) 245-2885 Hundred Acre is a consulting group providing support and development services to organizations of all sizes. We support GNU C++ and C in --- 324,332 ---- Updated: 13Apr94  ! Hundred Acre Consulting ! 1155 W Fourth St Ste 225 ! PO Box 6209 ! Reno NV 89513-6209 ! (702)-348-7299 Hundred Acre is a consulting group providing support and development services to organizations of all sizes. We support GNU C++ and C in *************** *** 349,353 **** Support contracts: Several levels, from $495 to $90000 per year. ! Updated: 7Apr94  Scott D. Kalter + : Dennis Fitzgerald + + Kaman Sciences has performed a GNU port for a custom RISC processor. + We have experience in the definition and description of the machine + register transfer language to the GNU tool-set. This includes rewriting + and modification of the necessary description and source files of gcc, gas, + and gld and other binutils. Kaman also has services for installation and + setup of GNU tools, (GAWK, GCC, EMACS, etc.) on Sun workstations. + + Work is on a "service contract" basis and development is charged either + hourly or as a fixed price contract. + + Consulting rates: $70 to $200 per hour. + + Entered: 13Jan95 +  Scott J. Kramer P.O. Box 620207 *************** *** 416,421 **** Germany ! Phone: +49-6637-1488 ! Fax: +49-6637-1489 Mail --- 430,435 ---- Germany ! Phone: +49-6637-919123 ! Fax: +49-6637-919122 Mail *************** *** 424,428 **** Experience: 20 years OS and compiler experience, portations of most ! GNU products. Author of ported software CD-ROM for Unix 4.2. Rates: Choice of DM 150 per hour or hotline rates 3 DM per minute + 10 --- 438,442 ---- Experience: 20 years OS and compiler experience, portations of most ! GNU products. Author of ported software CD-ROM for Unix 4.2. Rates: Choice of DM 150 per hour or hotline rates 3 DM per minute + 10 *************** *** 430,434 **** available for purchasers of LEMIS CD-ROMs. ! Updated: 13Apr94  Marty Leisner --- 444,448 ---- available for purchasers of LEMIS CD-ROMs. ! Updated: 21Feb95  Marty Leisner *************** *** 449,455 **** Updated: 15Apr94 ! ^_ Roland McGrath ! 545 Tech Sq rm 426 Cambridge, MA 02139 Work: (617) 253-8568 --- 463,519 ---- Updated: 15Apr94 !  ! Richard Levitte (in TeX: Richard Levitte ! Södra Långgatan 39, II S\"odra L{\aa}nggatan 39, II ! S-171 49 Solna S-171 49 Solna ! Sweden Sweden) ! Tel.nr.: +46 (8) 18 30 99 (there is an answering machine) ! e-mail: (preferred) ! ! ! What I do: ! Primarly I work on GNU software for VMS, both VAX and AXP. I ! also work on GNU stuff for Unix on occasion. I'm familiar with ! SunOS (version 4.x.x), BSD (version 4.2 and up), ! Ultrix (version 4.2 and up). ! I've been porting GNU Emacs to VMS since spring 1991. This ! includes versions 18.57 to 18.59 and version 19.22. ! I maintain GNU vmslib. ! ! Programs supported: ! GNU vmslib: extending, installation, upgrading aid, ! simple and complex questions, you name it. ! GNU Emacs: porting, extending, installation, upgrading aid, ! customization, simple or complex questions, ! training, you name it. ! GNU autoconf: porting, extending, installation, upgrading aid. ! GNU zip, diffutils, m4, patch, texinfo: ! porting, installation, upgrading aid. ! GNU C/C++: installation, upgrading aid. I might start to ! hack at it some day. ! ! The list of programs I currently support represents both my interests and ! current priorities. Your interest and funding can influence my priorities. ! ! Experience: ! Fluent in C, C++, Emacs Lisp, Pascal as well as assembler ! on VAX, Motorola 680x0, Intel 8086 and 80x86. Modified key ! elements in Emacs (e.g., memory and process management) to work ! transparently on VMS. I have very good knowledge in the VMS ! operating system, as well as MS-DOS and IBM PC compatibles. ! I have worked for four and a half years as a VMS system manager. ! I've also provided consulting services on IBM PC compatibles, ! as well as held classes for IBM PC users. ! A reference list is available on request. ! ! Your Rate: ! $50-$80/hour (400-700 SEK in sweden), plus expenses. My rates ! are negotiable, depending on how interesting the project is to me. ! ! ! Entered: 18Aug94 !  Roland McGrath ! 545 Tech Sq, Rm 426 Cambridge, MA 02139 Work: (617) 253-8568 *************** *** 456,469 **** Co-author of GNU Make (with Richard Stallman); maintainer of GNU Make. ! Author and maintainer of the GNU C Library and parts of the GNU Hurd. ! Author of several Emacs Lisp packages and parts of Emacs 19. FSF employee summer 1989, fall 1990 to the present. ! Installation, maintenance, porting, enhancement of all GNU software. ! Fees negotiable. I can work anywhere in the Boston or SF Bay Area, or ! anywhere on the Internet. ! Updated: 14Apr94  Wolfgang S. Rupprecht --- 520,537 ---- Co-author of GNU Make (with Richard Stallman); maintainer of GNU Make. ! Author and maintainer of the GNU C Library and co-author of the GNU Hurd. ! Author of several GNU Emacs Lisp packages and parts of GNU Emacs 19. FSF employee summer 1989, fall 1990 to the present. ! Installation, maintenance, porting, enhancement of all GNU software. I can ! install GNU software and maintain its installation on call via the Internet. ! Fees negotiable; $75-$100/hour, higher for very short term projects. I can ! work anywhere in the Boston or SF Bay Area, or anywhere on the Internet. I ! am working full-time for the FSF on the GNU Hurd, so I am likely to take on ! only jobs that either can be done entirely via the Internet and are ! short-term, or that are very interesting. ! Updated: 21Jan95  Wolfgang S. Rupprecht *************** *** 642,647 **** Database documents, directories, standard forms. ! UrbanSoft uses a portion of its revenues to contribute ! diskette distributions of GNU software to Russian universities (most of which lack FTP access). --- 710,715 ---- Database documents, directories, standard forms. ! UrbanSoft uses a portion of its revenues to contribute ! diskette distributions of GNU software to Russian universities (most of which lack FTP access). *************** *** 652,655 **** --- 720,758 ---- Updated: 20Apr94  + noris network + Matthias Urlichs + Schleiermacherstrasse 12 + 90491 Nuernberg + Germany + Phone: +49 911 9959621 + Fax: +49 911 5980150 + + http://info.noris.de/ (German) + + Expertise: + OS internals, esp. Linux and BSD, esp. device drivers + Network protocol / program design and coding + Utilities coding and maintainance + Program debugging, testing + User interface design and testing + Several programming and tool languages + + Services: + Installation, debugging, enhancement, distribution, + for all kinds of free software. + System administration for most Unix-like systems. + Email, Fax, phone, and in-person consulting (and/or "question answering"). + Remote support and system monitoring (over the Internet), + Update service (new tools tested and installed automagically) + Internet access + + Rates: + DM 110 (~$70) per hour + Support contracts start at DM 170/month + DM 30/supported system. + Willing to travel for sufficiently large jobs. + Rates don't include taxes. + + Entered: 16Aug94 +  Joe Wells Postal Address: *************** *** 657,662 **** 111 Cummington Street, Room 138 Boston, Massachusetts 02215 ! Work Telephone: (617) 353-3381 ! Home Telephone: (617) 352-7508 (until August 1994) Finger "jbw@cs.bu.edu" for up-to-date contact information. --- 760,765 ---- 111 Cummington Street, Room 138 Boston, Massachusetts 02215 ! Work Telephone: (617) 353-3381 (sorry, but no answering machine or voice mail) ! Home Telephone: (617) 739-7456 (until August 1995) Finger "jbw@cs.bu.edu" for up-to-date contact information. *************** *** 663,674 **** Experience: I have B.A. and M.A. degrees in Computer Science and have completed ! all but the dissertation for a Ph.D. in C.S. My primary programming ! languages are Emacs Lisp, Perl, and Bourne shell, but of course I can ! program in any language. I have written numerous Emacs Lisp ! packages. I started the USENET "List of Frequently Asked Questions ! about GNU Emacs with Answers" and maintained it for more than two ! years. Most of my work has been related to the telephone system, but ! I am not limited to that. Send e-mail for my complete resume or ! curriculum vita. Programs supported: --- 766,779 ---- Experience: I have B.A. and M.A. degrees in Computer Science and have completed ! all but the dissertation for a Ph.D. in C.S. My research for my ! Ph.D. is in the areas of logic, type systems, and programming ! language theory. My primary programming languages are Emacs Lisp, ! Perl, and Bourne shell, but of course I can program in any language. ! I have written numerous Emacs Lisp packages. I started the USENET ! "List of Frequently Asked Questions about GNU Emacs with Answers" and ! maintained it for more than two years. Most of my work has been ! related to the telephone system (modems, voice mail, etc.), but I am ! not limited to that. Send e-mail for my complete resume or curriculum ! vita. Programs supported: *************** *** 682,690 **** Working conditions: I am usually available for part-time work (less than 20 hours per week ! including any travel time). I can sometimes make time for full-time work for a month or two; please inquire. I can either work in or near ! Boston or via the Internet or via telephone. My schedule is fairly ! flexible. Any programs I write will normally have the copying ! conditions of the GNU General Public License. Rates: $65/hour as an independent contractor. --- 787,796 ---- Working conditions: I am usually available for part-time work (less than 20 hours per week ! including any travel time). I can sometimes make time for full-time work for a month or two; please inquire. I can either work in or near ! Boston or via the Internet or via telephone; travel outside the Boston ! metropolitan area can be negotiated. My schedule is very flexible. ! Any programs I write will normally have the copying conditions of the ! GNU General Public License; this is negotiable. Rates: $65/hour as an independent contractor. *************** *** 692,697 **** higher rates if extensive travel is required. ! Updated: 1May94 ! ^_ Yggdrasil Computing, Inc./ Freesoft, Inc. 4880 Stevens Creek Blvd. Ste. 205 --- 798,803 ---- higher rates if extensive travel is required. ! Updated: 27Sep94. !  Yggdrasil Computing, Inc./ Freesoft, Inc. 4880 Stevens Creek Blvd. Ste. 205 *************** *** 701,705 **** Updated: 14Apr94 ! ^_ For a current copy of this directory, or to have yourself listed, ask: --- 807,811 ---- Updated: 14Apr94 !  For a current copy of this directory, or to have yourself listed, ask: diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/TUTORIAL emacs-19.29/etc/TUTORIAL *** emacs-19.28/etc/TUTORIAL Sun Jul 3 15:32:02 1994 --- emacs-19.29/etc/TUTORIAL Wed May 24 16:11:36 1995 *************** *** 13,17 **** If there is no META or EDIT key, type , release it, then type the character . "" stands for the ! key labelled "ALT" or "ESC". Important note: to end the Emacs session, type C-x C-c. (Two characters.) --- 13,17 ---- If there is no META or EDIT key, 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.) *************** *** 250,260 **** Newline character. ! You can delete the last character you typed by typing . ! is a key on the keyboard, which might be labelled "Delete" ! instead of "Rubout" on some terminals. More generally, ! deletes the character immediately before the current cursor position. >> Do this now, type a few characters and then delete them ! by typing a few times. Don't worry about this file being changed; you won't affect the master tutorial. This is just a copy of it. --- 250,262 ---- Newline character. ! You can delete the last character you typed by typing . ! is a key on the keyboard, which may be labeled "Del". In ! some cases, the "Backspace" key serves as , but not always! + More generally, deletes the character immediately before the + current cursor position. + >> Do this now, type a few characters and then delete them ! by typing a few times. Don't worry about this file being changed; you won't affect the master tutorial. This is just a copy of it. *************** *** 265,272 **** The backslash at the right margin indicates a line which has been continued. ! >> Use s to delete the text until the line fits on one screen line again. The continuation line goes away. ! >> Move the cursor to the beginning of a line and type . This deletes the newline before the line and merges the line onto the previous line. The resulting line may be too long to fit, in --- 267,274 ---- The backslash at the right margin indicates a line which has been continued. ! >> Use s to delete the text until the line fits on one screen line again. The continuation line goes away. ! >> Move the cursor to the beginning of a line and type . This deletes the newline before the line and merges the line onto the previous line. The resulting line may be too long to fit, in *************** *** 283,290 **** as well. Here is a summary of the delete operations: ! delete the character just before the cursor C-d delete the next character after the cursor ! M- kill the word immediately before the cursor M-d kill the next word after the cursor --- 285,292 ---- as well. Here is a summary of the delete operations: ! delete the character just before the cursor C-d delete the next character after the cursor ! M- kill the word immediately before the cursor M-d kill the next word after the cursor *************** *** 292,297 **** M-k kill to the end of the current sentence ! Notice that and C-d vs M- and M-d extend the parallel ! started by C-f and M-f (well, isn't really a control character, but let's not worry about that). C-k and M-k are like C-e and M-e, sort of, in that lines are opposite sentences. --- 294,299 ---- M-k kill to the end of the current sentence ! Notice that and C-d vs M- and M-d extend the parallel ! started by C-f and M-f (well, isn't really a control character, but let's not worry about that). C-k and M-k are like C-e and M-e, sort of, in that lines are opposite sentences. *************** *** 513,531 **** Emacs.) ! C-z is the usual way to exit Emacs, because it is always better not to ! kill the Emacs if you are going to do any more editing. On systems ! which allow it, C-z exits from Emacs to the shell but does not destroy ! the Emacs; if you use the C shell, you can resume Emacs with the `fg' ! command (or, more generally, with `%emacs', which works even if your ! most recent job was some other). On systems where suspending is not ! possible, C-z creates a subshell running under Emacs to give you the ! chance to run other programs and return to Emacs afterward, but it ! does not truly "exit" from Emacs. In this case, the shell command ! `exit' is the usual way to get back to Emacs from the subshell. ! ! You would use C-x C-c if you were about to log out. You would ! also use it to exit an Emacs invoked under mail handling programs ! and other random utilities, since they may not believe you have ! really finished using the Emacs if it continues to exist. There are many C-x commands. The ones you know are: --- 515,536 ---- Emacs.) ! C-z is the command to exit Emacs *temporarily*--so that you can go ! back to the same Emacs session afterward. ! ! On systems which allow it, C-z exits from Emacs to the shell but does ! not destroy the Emacs; if you use the C shell, you can resume Emacs ! with the `fg' command (or, more generally, with `%emacs', which works ! even if your most recent job was some other). On systems which don't ! implement suspending, C-z creates a subshell running under Emacs to ! give you the chance to run other programs and return to Emacs ! afterward; it does not truly "exit" from Emacs. In this case, the ! shell command `exit' is the usual way to get back to Emacs from the ! subshell. ! ! The time to use C-x C-c is when you are about to log out. It's also ! the right thing to use to exit an Emacs invoked under mail handling ! programs and other random utilities, since they may not know how to ! cope with suspension of Emacs. On other occasions, use C-z, and ! resume the Emacs when you have more editing to do. There are many C-x commands. The ones you know are: *************** *** 556,559 **** --- 561,582 ---- + * AUTO SAVE + ----------- + + When you have made changes in a file, but you have not saved them yet, + they could be lost if your computer crashes. To protect you from + this, Emacs writes "auto save" files periodically. The auto save file + name has a # at the beginning and the end; for example, if your file + is named "hello.c", its auto save file's name is "#hello.c#". When + you save the file in the normal way, its auto save file is no longer + necessary so Emacs deletes it. + + If the computer crashes, you can recover your auto-saved editing by + finding the file normally (the file you were editing, not the auto + save file) and then typing M-x recover file. When it asks for + confirmation, type yes to go ahead and recover the auto-save + data. + + * MODE LINE ----------- *************** *** 664,668 **** character to notice what happens to the cursor. >> Type C-s to find the next occurrence of "cursor". ! >> Now type four times and see how the cursor moves. >> Type to terminate the search. --- 687,691 ---- character to notice what happens to the cursor. >> Type C-s to find the next occurrence of "cursor". ! >> Now type four times and see how the cursor moves. >> Type to terminate the search. *************** *** 680,688 **** Emacs manual for advice on dealing with this "feature". ! If you are in the middle of an incremental search and type , you'll notice that the last character in the search string is erased and the search backs up to the last place of the search. For instance, suppose you currently have typed 'cu' and you see that your ! cursor is at the first occurrence of 'cu'. If you now type , the 'u' on the search line is erased and you'll be repositioned in the text to the occurrence of 'c' where the search took you before you --- 703,711 ---- Emacs manual for advice on dealing with this "feature". ! If you are in the middle of an incremental search and type , you'll notice that the last character in the search string is erased and the search backs up to the last place of the search. For instance, suppose you currently have typed 'cu' and you see that your ! cursor is at the first occurrence of 'cu'. If you now type , the 'u' on the search line is erased and you'll be repositioned in the text to the occurrence of 'c' where the search took you before you Binary files emacs-19.28/etc/e/eterm and emacs-19.29/etc/e/eterm differ diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/e/eterm.ti emacs-19.29/etc/e/eterm.ti *** emacs-19.28/etc/e/eterm.ti --- emacs-19.29/etc/e/eterm.ti Sun Nov 20 16:09:02 1994 *************** *** 0 **** --- 1,18 ---- + # These are ordered as in the O'Reilly "termcap and terminfo" book. + eterm, + lines#24,cols#80, + cuu1=\E[A,cud1=\n,cub1=\b,cuf1=\E[C,home=\E[H,cr=\r, + cuu=\E[%p1%dA,cud=\E[%p1%dB,cub=\E[%p1%dD,cuf=\E[%p1%dC, + cup=\E[%i%p1%d;%p2%dH, + ind=\n,csr=\E[%i%p1%d;%p2%dr, + il1=\E[L,il=\E[%p1%dL, + clear=\E[H\E[J,ed=\\E[J,el=\E[K,el1=\E[1K, + dl1=\E[M,dl=\E[%p1%dM,dch1=\E[P,dch=\E[%p1%dP, + smir=\E[4h,rmir=\E[4l,ich=\E[%p1%d@,mir, + smcup=\E7\E[?47h,rmcup=\E[2J\E[?47l\E8, + ht=\t, + smso=\E[7m,rmso=\E[m, + smul=\E[4m,rmul=\E[m, + rev=\E[7m,bold=\E[1m,sgr0=\E[m, + bel=^G,xenl,am, + diff -rc2 --unidirectional-new --exclude-from=exceptions emacs-19.28/etc/edt-user.doc emacs-19.29/etc/edt-user.doc *** emacs-19.28/etc/edt-user.doc --- emacs-19.29/etc/edt-user.doc Fri Apr 14 13:00:44 1995 *************** *** 0 **** --- 1,780 ---- + File: edt-user.doc --- EDT Emulation User Instructions + + For GNU Emacs 19 + + Copyright (C) 1986, 1992, 1994, 1995 Free Software Foundation, Inc. + + Author: Kevin Gallagher + Maintainer: Kevin Gallagher + Keywords: emulations + + 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. + + ============================================================================ + + I. OVERVIEW: + + This version of the EDT emulation package for GNU Emacs is a substantially + enhanced version of the original. A large part of the original can still be + found here, of course, but much of it has been modified and quite a bit is + new. Many of the ideas found here are borrowed from others. In particular, + some of the code found here was drawn from an earlier re-write of the EDT + package done at DSC in 1989 by Matthew Frohman. + + Send bug fixes, suggestions for enhancements, and corrections to this + documentation to Kevin Gallagher (kgallagh@spd.dsccc.com). + + The EDT emulation consists of the following files: + + edt-user.doc - User instructions (which you are reading now) + edt.el - EDT Emulation Functions and Default Configuration + edt-lk201.el - Support for DEC LK-201 Keyboards + edt-vt100.el - Support for DEC VT-100 (and above) terminals + edt-mapper.el - Support for Keyboards used under X Windows + edt-pc.el - Support for the PC AT Keyboard under MS-DOS + + Several goals were kept in mind when making this version: + + 1. Emulate EDT Keypad Mode commands closely so that current + EDT users will find that it easy and comfortable to use + GNU Emacs with a small learning curve; + + 2. Make it easy for a user to customize EDT emulation key + bindings without knowing much about Emacs Lisp; + + 3. Make it easy to switch between the original EDT default bindings + and the user's customized bindings, without having to exit Emacs. + + 4. Provide support for some TPU/EVE functions not supported in + EDT. + + 5. Provide an easy way to restore ALL original Emacs key bindings, + just as they existed before the EDT emulation was first invoked. + + 6. Support GNU Emacs 19. (Support for GNU Emacs 18 has been dropped. + Also, although there is some code designed to support Xemacs 19 + (formerly Lucid Emacs), this is not fully implemented at this + time. + + 7. When running under X, support highlighting of marked text. + + 8. Handle terminal configuration under X interactively when the + emulation is invoked for the first time. + + 9. Support a PC AT keyboard under MS-DOS. + + II. TERMINALS/KEYBOARDS SUPPORTED: + + Keyboards used under X Windows are supported via the edt-mapper function. The + first time you invoke the emulation under X, the edt-mapper function is run + automatically and the user is prompted to identify which keys the emulation is + to use for the standard keypad and function keys EDT expects (e.g., PF1, PF2, + etc.). This configuration is saved to disk read each time the emulation is + invoked. + + In character oriented connections not running a window manager, the following + terminals/keyboards are supported. (1) DEC VT-100 series and higher. This + includes well behaved VT clones and emulators. If you are using a VT series + terminal, be sure that the term environment variable is set properly before + invoking emacs. (2) PC AT keyboard under MS-DOS. + + Be sure to read the SPECIAL NOTES FOR SOME PLATFORMS sections to see if those + notes apply to you. + + + III. STARTING THE EDT EMULATION: + + Start up GNU Emacs and enter "M-x edt-emulation-on" to begin the emulation. + After initialization is complete, the following message will appear below the + status line informing you that the emulation has been enabled: + + Default EDT keymap active + + You can have the EDT Emulation start up automatically, each time you initiate + a GNU Emacs session, by adding the following line to your .emacs file: + + (setq term-setup-hook 'edt-emulation-on) + + A reference sheet is included (later on) listing the default EDT Emulation key + bindings. This sheet is also accessible on line from within Emacs by pressing + PF2, GOLD H, or HELP (when in the EDT Default Mode). + + It is easy to customize key bindings in the EDT Emulation. (See CUSTOMIZING + section, below.) Customizations are placed in a file called edt-user.el. (A + sample edt-user.el file can be found in the CUSTOMIZING section.) If + edt-user.el is found in your GNU Emacs load path during EDT Emulation + initialization, then the following message will appear below the status line + indicating that the emulation has been enabled, enhanced by your own + customizations: + + User EDT custom keymap active + + Once enabled, it is easy to switch back and forth between your customized EDT + Emulation key bindings and the default EDT Emulation key bindings. It is also + easy to turn off the emulation. Doing so completely restores the original key + bindings in effect just prior to invoking the emulation. + + Where EDT key bindings and GNU Emacs key bindings conflict, the default GNU + Emacs key bindings are retained by the EDT emulation by default. If you are a + diehard EDT user you may not like this. The CUSTOMIZING section explains how + to change this default. + + + IV. SPECIAL NOTES FOR SOME PLATFORMS: + + Sun Workstations running X: + + Some earlier Sun keyboards do not have arrow keys separate from the + keypad keys. It is difficult to emulate the full EDT keypad and still + retain use of the arrow keys on such keyboards. + + The Sun Type 5 keyboard, however, does have separate arrow keys. This + makes it a candidate for setting up a reasonable EDT keypad emulation. + Unfortunately, Sun's default X keynames for the keypad keys don't permit + GNU Emacs to interpret the keypad 2, 4, 6, and 8 keys as something other + than arrow keys, nor use all the top row of keys for PF1 thru PF4 keys. + Here's the contents of an .xmodmaprc file which corrects this problem for + Sun Type 5 keyboards: + + ! File: .xmodmaprc + ! + ! Set up Sun Type 5 keypad for use with the GNU Emacs EDT Emulation + ! + keycode 53 = KP_Divide + keycode 54 = KP_Multiply