XEmacs 21.2.44 "Thalia".
authortomo <tomo>
Mon, 31 Dec 2001 19:55:45 +0000 (19:55 +0000)
committertomo <tomo>
Mon, 31 Dec 2001 19:55:45 +0000 (19:55 +0000)
info/xemacs.info-12
info/xemacs.info-13
info/xemacs.info-14
info/xemacs.info-15
info/xemacs.info-16
info/xemacs.info-17
info/xemacs.info-18
info/xemacs.info-19
info/xemacs.info-20
info/xemacs.info-21
info/xemacs.info-22

index 0233211..74ce2c4 100644 (file)
@@ -111,6 +111,9 @@ normally include all functions and subroutines, and may also include
 global variables, data types, and anything else convenient.  Each name
 recorded is called a "tag".
 
+   The Ebrowse is a separate facility tailored for C++, with tags and a
+class browser.  *Note : (ebrowse).
+
 * Menu:
 
 * Tag Syntax::         Tag syntax for various types of code and text files.
@@ -122,7 +125,7 @@ recorded is called a "tag".
 * List Tags::          Listing and finding tags defined in a file.
 
 \1f
-File: xemacs.info,  Node: Tag Syntax,  Next: Create Tags Table,  Prev: Tags,  Up: Tags
+File: xemacs.info,  Node: Tag Syntax,  Next: Create Tags Table,  Up: Tags
 
 Source File Tag Syntax
 ----------------------
@@ -179,8 +182,37 @@ Source File Tag Syntax
    Several other languages are also supported:
 
    * In Ada code, functions, procedures, packages, tasks, and types are
-     tags.  Use the `--packages-only' option to create tags for packages
-     only.
+     tags.  Use the `--packages-only' option to create tags for
+     packages only.
+
+     With Ada, it is possible to have the same name used for different
+     entity kinds (e.g. the same name for a procedure and a function).
+     Also, for things like packages, procedures and functions, there is
+     the spec (i.e. the interface) and the body (i.e. the
+     implementation).  To facilitate the choice to the user, a tag
+     value is appended with a qualifier:
+
+    function
+          `/f'
+
+    procedure
+          `/p'
+
+    package spec
+          `/s'
+
+    package body
+          `/b'
+
+    type
+          `/t'
+
+    task
+          `/k'
+
+     So, as an example, `M-x find-tag bidule/b' will go directly to the
+     body of the package BIDULE while `M-x find-tag bidule' will just
+     search for any tag BIDULE.
 
    * In assembler code, labels appearing at the beginning of a line,
      followed by a colon, are tags.
@@ -197,6 +229,8 @@ Source File Tag Syntax
 
    * In Fortran code, functions, subroutines and blockdata are tags.
 
+   * In makefiles, targets are tags.
+
    * In Objective C code, tags include Objective C definitions for
      classes, class categories, methods, and protocols.
 
@@ -207,7 +241,7 @@ Source File Tag Syntax
      `my' and `local' keywords.  Use `--globals' if you want to tag
      global variables.
 
-   * In Postscript code, the tags are the functions.
+   * In PostScript code, the tags are the functions.
 
    * In Prolog code, a tag name appears at the left margin.
 
@@ -1185,19 +1219,3 @@ Inferior Scheme mode
      The mode for an interactive session with an inferior Scheme
      process.
 
-\1f
-File: xemacs.info,  Node: Lisp Libraries,  Next: Lisp Eval,  Prev: Lisp Modes,  Up: Running
-
-Libraries of Lisp Code for Emacs
-================================
-
-   Lisp code for Emacs editing commands is stored in files whose names
-conventionally end in `.el'.  This ending tells Emacs to edit them in
-Emacs-Lisp mode (*note Lisp Modes::).
-
-* Menu:
-
-* Loading::            Loading libraries of Lisp code into Emacs for use.
-* Compiling Libraries:: Compiling a library makes it load and run faster.
-* Mocklisp::           Converting Mocklisp to Lisp so XEmacs can run it.
-
index 739ba70..01dace5 100644 (file)
@@ -30,6 +30,22 @@ versions, except that the sections entitled "The GNU Manifesto",
 translation approved by the author instead of in the original English.
 
 \1f
+File: xemacs.info,  Node: Lisp Libraries,  Next: Lisp Eval,  Prev: Lisp Modes,  Up: Running
+
+Libraries of Lisp Code for Emacs
+================================
+
+   Lisp code for Emacs editing commands is stored in files whose names
+conventionally end in `.el'.  This ending tells Emacs to edit them in
+Emacs-Lisp mode (*note Lisp Modes::).
+
+* Menu:
+
+* Loading::            Loading libraries of Lisp code into Emacs for use.
+* Compiling Libraries:: Compiling a library makes it load and run faster.
+* Mocklisp::           Converting Mocklisp to Lisp so XEmacs can run it.
+
+\1f
 File: xemacs.info,  Node: Loading,  Next: Compiling Libraries,  Prev: Lisp Libraries,  Up: Lisp Libraries
 
 Loading Libraries
@@ -480,13 +496,17 @@ local needs with safe removal of unnecessary code.
 * Menu:
 
 * Package Terminology:: Understanding different kinds of packages.
-* Using Packages::      How to install and use packages.
-* Building Packages::   Building packages from sources.
+* Installing Packages:: How to install packages.
+* Building Packages::   Building packages from CVS sources.
+* Local.rules File::    This is an important file don't forget to create/edit it.
 * Creating Packages::   The basics.
-* Available Packages::  A brief, out-of-date, directory of packaged LISP.
+* Available Packages::  A brief directory of packaged LISP.
 
 \1f
-File: xemacs.info,  Node: Package Terminology,  Next: Using Packages,  Up: Packages
+File: xemacs.info,  Node: Package Terminology,  Next: Installing Packages,  Up: Packages
+
+Package Terminology:
+====================
 
 Package Flavors
 ---------------
@@ -500,13 +520,14 @@ Package Flavors
      collection of thematically related but otherwise independent lisp
      files.  These files are bundled together for download convenience
      and individual files may be deleted at will without any loss of
-     functionality.
+     functionality.  However, we would recommend that you follow this
+     rule of thumb: "When in doubt, don't delete".
 
 Package Distributions
 ---------------------
 
    XEmacs Lisp packages are distributed in two ways, depending on the
-intended use.  Binary Packages are for installers and end-users and may
+intended use.  Binary Packages are for installers and end-users that can
 be installed directly into an XEmacs package directory.  Source Packages
 are for developers and include all files necessary for rebuilding
 bytecompiled lisp and creating tarballs for distribution.
@@ -525,15 +546,21 @@ appropriate in regular packages) source code plus all of the files
 necessary to build distribution tarballs (Unix Tar format files,
 gzipped for space savings).
 
+   Currently, source packages are only available via CVS.  See
+<http://cvs.xemacs.org/> for details.
+
 \1f
-File: xemacs.info,  Node: Using Packages,  Next: Building Packages,  Prev: Package Terminology,  Up: Packages
+File: xemacs.info,  Node: Installing Packages,  Next: Building Packages,  Prev: Package Terminology,  Up: Packages
+
+Installing Packages:
+====================
 
 Getting Started
 ---------------
 
    When you first download XEmacs 21, you will usually first grab the
-"core distribution", a file called `xemacs-21.0.tar.gz'. (Replace the
-21.0 by the current version number.)  The core distribution contains
+"core distribution", a file called `xemacs-21.x.x.tar.gz'. (Replace the
+21.x.x by the current version number.)  The core distribution contains
 the sources of XEmacs and a minimal set of Emacs Lisp files, which are
 in the subdirectory named `lisp'.  This subdirectory used to contain
 all Emacs Lisp files distributed with XEmacs.  Now, to conserve disk
@@ -542,20 +569,20 @@ space, most non-essential packages were made optional.
 Choosing the Packages You Need
 ------------------------------
 
-   The available packages can currently be found in the same ftp
-directory where you grabbed the core distribution from, and are located
-in the subdirectory `packages/binary-packages'.  Package file names
-follow the naming convention `<package-name>-<version>-pkg.tar.gz'.
+   The *Note Available Packages:: can currently be found in the same
+ftp directory where you grabbed the core distribution from, and are
+located in the subdirectory `packages'.  Package file names follow the
+naming convention `<package-name>-<version>-pkg.tar.gz'.
 
    If you have EFS *Note (EFS)::, packages can be installed over the
 network.  Alternatively, if you have copies of the packages locally,
 you can install packages from a local disk or CDROM.
 
    The file `etc/PACKAGES' in the core distribution contains a list of
-the packages available at the time of the XEmacs release.  Packages are
-also listed on the `Options' menu under:
+the *Note Available Packages:: at the time of the XEmacs release.
+Packages are also listed on the `Options' menu under:
 
-             Options->Customize->Emacs->Packages
+             Options -> Customize -> Emacs -> Packages
 
    However, don't select any of these menu picks unless you actually
 want to install the given package (and have properly configured your
@@ -565,7 +592,7 @@ system to do so).
 they are installed, using the visual package browser and installer.
 You can access it via the menus:
 
-             Options->Manage Packages->List & Install
+             Options -> Manage Packages -> List & Install
 
    Or, you can get to it via the keyboard:
 
@@ -581,234 +608,316 @@ that you need `thingatpt', type:
 
      M-x package-get-package-provider RET thingatpt
 
-   which will return something like (fsf-compat "1.06"). You can the use
+   which will return something like (fsf-compat "1.08"). You can the use
 one of the methods above for installing the package you want.
 
 XEmacs and Installing Packages
 ------------------------------
 
-   Normally, packages are installed over the network, using EFS *Note
-(EFS)::.  However, you may not have network access, or you may already
-have some or all of the packages on a local disk, such as a CDROM.  If
-you want to install from a local disk, you must first tell XEmacs where
-to find the package binaries.  This is done by adding a line like the
-following to your init file:
+   There are three main ways to install packages:
 
-     (setq package-get-remote (cons (list nil "/my/path/to/package/binaries")
-                                    package-get-remote))
+* Menu:
 
-   *Note Init File::.
+* Sumo::              All at once, using the 'Sumo Tarball'.
+* Manually::          Using individual package tarballs.
+* Automatically::     Using the package tools from XEmacs.
+* Which Packages::    Which packages to install.
+* Removing Packages:: Removing packages.
 
-   Here, you'd change `/my/path/to/package/binaries' to be the path to
-your local package binaries.  Next, restart XEmacs, and you're ready to
-go (advanced users can just re-evaluate the sexp).
+   But regardless of the method you use to install packages, they can
+only be used by XEmacs after a restart.
 
-   If you are installing from a temporary, one-time directory, you can
-also add these directory names to `package-get-remote' using:
+\1f
+File: xemacs.info,  Node: Sumo,  Next: Manually,  Up: Installing Packages
 
-             M-x pui-add-install-directory
+Installing the Sumo Packages:
+=============================
 
-   Note, however, that any directories added using this function are not
-saved; this information will be lost when you quit XEmacs.
+   Those with little time, cheap connections and plenty of disk space
+can install all the packages at once using the sumo tarballs.  Download
+the file: `xemacs-sumo.tar.gz'
 
-   If you're going to install over the network, you only have to insure
-that EFS *Note (EFS):: works, and that it can get outside a firewall, if
-you happen to be behind one.  You shouldn't have to do anything else;
-XEmacs already knows where to go. However you can add your own mirrors
-to this list. See `package-get-remote'.
+   For an XEmacs compiled with Mule you also need:
+`xemacs-mule-sumo.tar.gz'
 
-   The easiest way to install a package is to use the visual package
-browser and installer, using the menu pick:
+   N.B. They are called 'Sumo Tarballs' for good reason. They are
+currently about 19MB and 4.5MB (gzipped) respectively.
 
-             Options->Manage Packages->List & Install
-   or
-             Options->Manage Packages->Using Custom->Select-> ...
+   Install them by:
 
-   You can also access it using the keyboard:
+   `cd $prefix/lib/xemacs ; gunzip -c <tarballname> | tar xvf - RET'
 
-     M-x pui-list-packages
+   Or, if you have GNU tar:
 
-   The visual package browser will then display a list of all packages.
-Help information will be displayed at the very bottom of the buffer; you
-may have to scroll down to see it.  You can also press `?' to get the
-same help.  From this buffer, you can tell the package status by the
-character in the first column:
+   `cd $prefix/lib/xemacs ; tar zxvf /path/to/<tarballname> RET'
 
-`-'
-     The package has not been installed.
+   As the Sumo tarballs are not regenerated as often as the individual
+packages, it is recommended that you use the automatic package tools
+afterwards to pick up any recent updates.
 
-`*'
-     The package has been installed, but a newer version is available.
-     The current version is out-of-date.
+\1f
+File: xemacs.info,  Node: Manually,  Next: Automatically,  Prev: Sumo,  Up: Installing Packages
 
-`+'
-     The package has been marked for installation/update.
+Manual Package Installation:
+============================
 
-   If there is no character in the first column, the package has been
-installed and is up-to-date.
+   Fetch the packages from the FTP site, CD-ROM whatever. The filenames
+have the form `name-<version>-pkg.tar.gz' and are gzipped tar files. For
+a fresh install it is sufficient to untar the file at the top of the
+package hierarchy.
 
-   From here, you can select or unselect packages for installation using
-the <RET> key, the `Mouse-2' button or selecting "Select" from the
-(Popup) Menu.  Once you've finished selecting the packages, you can
-press the `x' key (or use the menu) to actually install the packages.
-Note that you will have to restart XEmacs for XEmacs to recognize any
-new packages.
+   Note: If you are upgrading packages already installed, it's best to
+remove the old package first *Note Removing Packages::.
 
-   Key summary:
+   For example if we are installing the `xemacs-base' package (version
+1.48):
 
-`?'
-     Display simple help.
+        mkdir $prefix/lib/xemacs/xemacs-packages RET # if it does not exist yet
+        cd $prefix/lib/xemacs/xemacs-packages RET
+        gunzip -c /path/to/xemacs-base-1.48-pkg.tar.gz | tar xvf - RET
+     
+     Or if you have GNU tar, the last step can be:
+     
+        tar zxvf /path/to/xemacs-base-1.48-pkg.tar.gz RET
 
-`<RET>'
-`<Mouse-2>'
-     Toggle between selecting and unselecting a package for
-     installation.
+   For MULE related packages, it is best to untar into the mule-packages
+hierarchy, i.e. for the `mule-base' package, version 1.37:
 
-`x'
-     Install selected packages.
+        mkdir $prefix/lib/xemacs/mule-packages RET # if it does not exist yet
+        cd $prefix/lib/xemacs/mule-packages RET
+        gunzip -c /path/to/mule-base-1.37-pkg.tar.gz | tar xvf - RET
+     
+     Or if you have GNU tar, the last step can be:
+     
+        tar zxvf /path/to/mule-base-1.37-pkg.tar.gz RET
 
-`<SPC>'
-     View, in the minibuffer, additional information about the package,
-     such as the package date (not the build date) and the package
-     author.  Moving the mouse over a package name will also do the
-     same thing.
+\1f
+File: xemacs.info,  Node: Automatically,  Next: Which Packages,  Prev: Manually,  Up: Installing Packages
 
-`v'
-     Toggle between verbose and non-verbose package display.
+Automatic Package Installation:
+===============================
 
-`g'
-     Refresh the package display.
+   XEmacs comes with some tools to make the periodic updating and
+installing easier. It will notice if new packages or versions are
+available and will fetch them from the FTP site.
 
-`q'
-     Kill the package buffer.
+   Unfortunately this requires that a few packages are already in place.
+You will have to install them by hand as above or use a SUMO tarball.
+This requirement will hopefully go away in the future. The packages you
+need are:
+
+        efs          - To fetch the files from the FTP site or mirrors.
+        xemacs-base  - Needed by efs.
+     
+     and optionally:
+     
+        mule-base    - Needed if you want to use XEmacs with MULE.
 
-   Moving the mouse over a package will also cause additional
-information about the package to be displayed in the minibuffer.
+   After installing these by hand, fire up XEmacs and follow these
+steps.
 
-Other package installation interfaces
--------------------------------------
+   Note: The menus in XEmacs 21.2.x and up have changed slightly, so
+where I mention "Options -> Manage Packages", substitute "Tools ->
+Packages".
 
-   For an alternative package interface, you can select packages from
-the customize menus, under:
+  1. Choose a download site.  via menu: Options -> Manages Packages ->
+     Add Download Site via keyb: `M-x customize-variable RET
+     package-get-remote RET' (put in the details of remote host and
+     directory)
 
-             Options->Customize->Emacs->Packages-> ...
-   or
-             Options->Manage Packages->Using Custom->Select-> ...
+     If the package tarballs _AND_ the package-index file are in a
+     local directory, you can: `M-x pui-add-install-directory RET'
 
-   Set their state to on, and then do:
+  2. Obtain a list of packages and display the list in a buffer named
+     `*Packages*'.  menu: Options -> Manage Packages -> List & Install
+     keyb: `M-x pui-list-packages RET'
 
-             Options->Manage Packages->Using Custom->Update Packages
+     XEmacs will now connect to the remote site and download the latest
+     package-index file.  If you see an error about the package-index
+     entries not being PGP signed, you can safely ignore this because
+     PGP has not been integrated into the XEmacs package tools yet.
 
-   This will automatically retrieve the packages you have selected from
-the XEmacs ftp site or your local disk, and install them into XEmacs.
-Additionally it will update any packages you already have installed to
-the newest version.  Note that if a package is newly installed you will
-have to restart XEmacs for the change to take effect.
+     The visual package browser will then display a list of all
+     packages.  Help information will be displayed at the very bottom
+     of the buffer; you may have to scroll down to see it.  You can
+     also press `?' to get the same help.  From this buffer, you can
+     tell the package status by the character in the first column:
+
+    `-'
+          The package has not been installed.
+
+    `*'
+          The package has been installed, but a newer version is
+          available.  The current version is out-of-date.
+
+    `+'
+          The package has been marked for installation/update.
+
+     If there is no character in the first column, the package has been
+     installed and is up-to-date.
+
+     From here, you can select or unselect packages for installation
+     using the <RET> key, the `Mouse-2' button or selecting "Select"
+     from the (Popup) Menu.  Once you've finished selecting the
+     packages, you can press the `x' key (or use the menu) to actually
+     install the packages. Note that you will have to restart XEmacs
+     for XEmacs to recognize any new packages.
+
+     Key summary:
+
+    `?'
+          Display simple help.
+
+    `<RET>'
+    `<Mouse-2>'
+          Toggle between selecting and unselecting a package for
+          installation.
+
+    `x'
+          Install selected packages.
+
+    `<SPC>'
+          View, in the minibuffer, additional information about the
+          package, such as the package date (not the build date) and
+          the package author.  Moving the mouse over a package name
+          will also do the same thing.
+
+    `v'
+          Toggle between verbose and non-verbose package display.
+
+    `g'
+          Refresh the package display.
+
+    `q'
+          Kill the package buffer.
+
+     Moving the mouse over a package will also cause additional
+     information about the package to be displayed in the minibuffer.
+
+  3. Choose the packages you wish to install.  mouse: Click button 2 on
+     the package name.   keyb: `RET' on the package name
+
+  4. Make sure you have everything you need.  menu: Packages -> Add
+     Required keyb: `r'
+
+     XEmacs will now search for packages that are required by the ones
+     that you have chosen to install and offer to select those packages
+     also.
+
+     For novices and gurus alike, this step can save your bacon.  It's
+     easy to forget to install a critical package.
+
+  5. Download and install the packages.  menu: Packages ->
+     Install/Remove Selected keyb: `x'
 
    You can also install packages using a semi-manual interface:
 
      M-x package-get-all <return>
 
    Enter the name of the package (e.g., `prog-modes'), and XEmacs will
-search for the latest version (as listed in the lisp file
-`lisp/package-get-base.el'), and install it and any packages that it
+search for the latest version and install it and any packages that it
 depends upon.
 
-Manual Binary Package Installation
-----------------------------------
-
-   Pre-compiled, binary packages can be installed in either a system
-package directory (this is determined when XEmacs is compiled), or in
-one of the following subdirectories of your `$HOME' directory:
-
-     ~/.xemacs/mule-packages
-     ~/.xemacs/xemacs-packages
-
-   Packages in the former directory will only be found by a Mule-enabled
-XEmacs.
+\1f
+File: xemacs.info,  Node: Which Packages,  Next: Removing Packages,  Prev: Automatically,  Up: Installing Packages
 
-   XEmacs does not have to be running to install binary packages,
-although XEmacs will not know about any newly-installed packages until
-you restart XEmacs.  Note, however, that installing a newer version of a
-package while XEmacs is running could cause strange errors in XEmacs;
-it's best to exit XEmacs before upgrading an existing package.
+Which Packages to Install:
+==========================
 
-   To install binary packages manually:
+   This is difficult to say. When in doubt install a package. If you
+administrate a big site it might be a good idea to just install
+everything. A good minimal set of packages for XEmacs-latin1 would be
 
-  1. Download the package(s) that you want to install.  Each binary
-     package will typically be a gzip'd tarball.
+   xemacs-base, xemacs-devel, c-support, cc-mode, debug, dired, efs,
+edit-utils, fsf-compat, mail-lib, net-utils, os-utils, prog-modes,
+text-modes, time
 
-  2. Decide where to install the packages: in the system package
-     directory, or in `~/.xemacs/mule-packages' or
-     `~/.xemacs/xemacs-packages', respectively.  If you want to install
-     the packages in the system package directory, make sure you can
-     write into that directory.  If you want to install in your `$HOME'
-     directory, create the directory, `~/.xemacs/mule-packages' or
-     `~/.xemacs/xemacs-packages', respectively.
+   If you are using the XEmacs package tools, don't forget to do:
 
-  3. Next, `cd' to the directory under which you want to install the
-     package(s).
+       Packages -> Add Required
 
-  4. From this directory, uncompress and extract each of the gzip'd
-     tarballs that you downloaded in step 1.  Unix and Cygnus cygwin
-     users will typically do this using the commands:
+   To make sure you have everything that the packages you have chosen to
+install need.
 
-                  gunzip < package.tar.gz | tar xvf -
+   See also *Note Available Packages:: for further descriptions of the
+individual packages.
 
-     Above, replace `package.tar.gz' with the filename of the package
-     that you downloaded in step 1.
+\1f
+File: xemacs.info,  Node: Removing Packages,  Prev: Which Packages,  Up: Installing Packages
 
-     Of course, if you use GNU `tar', you could also use:
+Removing Packages:
+==================
 
-                  tar xvzf package.tar.gz
+   Because the exact files and their locations contained in a package
+may change it is recommended to remove a package first before
+installing a new version. In order to facilitate removal each package
+contains an `pgkinfo/MANIFEST.pkgname' file which list all the files
+belonging to the package.
 
-  5. That's it.  Quit and restart XEmacs to get it to recognize any new
-     or changed packages.
+   No need to panic, you don't have to go through the
+`pkinfo/MANIFEST.pkgname' and manually delete the files.  Instead, use
+`M-x package-admin-delete-binary-package RET'.
 
+   Note that the interactive package tools included with XEmacs already
+do this for you.
 
 \1f
-File: xemacs.info,  Node: Building Packages,  Next: Creating Packages,  Prev: Using Packages,  Up: Packages
+File: xemacs.info,  Node: Building Packages,  Next: Local.rules File,  Prev: Installing Packages,  Up: Packages
+
+Building Packages:
+==================
 
-   Source packages are available from the `packages/source-packages'
-subdirectory of your favorite XEmacs distribution site.  Alternatively,
-they are available via CVS from `cvs.xemacs.org'.  Look at
-`http://cvs.xemacs.org' for instructions.
+   Currently, source packages are only available via anonymous CVS.  See
+<http://cvs.xemacs.org/> for details of checking out the
+`xemacs-packages' module.
 
 Prerequisites for Building Source Packages
 ------------------------------------------
 
-   You must have GNU `cp', GNU `install' (or a BSD compatible `install'
-program) GNU `make' (3.75 or later preferred), `makeinfo' (1.68 from
-`texinfo-3.11' or later required), GNU `tar' and XEmacs 21.0.  The
-source packages will untar into a correct directory structure.  At the
-top level you must have `XEmacs.rules' and `package-compile.el'.  These
-files are available from the XEmacs FTP site from the same place you
-obtained your source package distributions.
+`GNU cp'
 
-What You Can Do With Source Packages
-------------------------------------
+`GNU ginstall'
+     (or a BSD compatible install program).
 
-   NB:  A global build operation doesn't exist yet as of 13 January
-1998.
+`GNU make'
+     (3.75 or later preferred).
 
-   Source packages are most useful for creating XEmacs package tarballs
-for installation into your own XEmacs installations or for distributing
-to others.
+`makeinfo'
+     (1.68 from texinfo-3.11 or later required).
 
-   Supported operations from `make' are:
+`GNU tar'
+     (or equivalent).
 
-`clean'
-     Remove all built files except `auto-autoloads.el' and
-     `custom-load.el'.
+`GNU gzip'
+     (or equivalent).
 
-`distclean'
-     Remove XEmacs backups as well as the files deleted by `make clean'.
+`A properly configured `Local.rules' file.'
+     *Note Local.rules File::.  And of course, XEmacs 21.0 or higher.
+
+What You Can Do With Source Packages
+------------------------------------
+
+   The packages CVS sources are most useful for creating XEmacs package
+tarballs for installation into your own XEmacs installations or for
+distributing to others.
+
+   Supported operations from `make' are:
 
 `all'
      Bytecompile all files, build and bytecompile byproduct files like
      `auto-autoloads.el' and `custom-load.el'.  Create info version of
      TeXinfo documentation if present.
 
+`bindist'
+     Does a `make all' as well as create a binary package tarball in the
+     staging directory.
+
+`install'
+     Bytecompile all files, build and bytecompile byproduct files like
+     `auto-autoloads.el' and `custom-load.el'.  Create info version of
+     TeXinfo documentation if present.  And install everything into the
+     staging directory.
+
 `srckit'
      Usually aliased to `srckit-std'.  This does a `make distclean' and
      creates a package source tarball in the staging directory.  This
@@ -829,8 +938,79 @@ to others.
      Runs the rules `srckit' followed by `binkit'.  This is primarily
      of use by XEmacs maintainers producing files for distribution.
 
+`clean'
+     Remove all built files except `auto-autoloads.el' and
+     `custom-load.el'.
+
+`distclean'
+     Remove all created files.
+
 \1f
-File: xemacs.info,  Node: Creating Packages,  Next: Available Packages,  Prev: Building Packages,  Up: Packages
+File: xemacs.info,  Node: Local.rules File,  Next: Creating Packages,  Prev: Building Packages,  Up: Packages
+
+The Local.rules File:
+=====================
+
+   This file is used when building and installing packages from source.
+In the top level of the CVS module, `xemacs-packages', contains the
+file, `Local.rules.template'.  Simply copy that to `Local.rules' and
+edit it to suit your needs.
+
+   These are the variables in 'Local.rules' that you will need to
+address.
+
+SYMLINK =
+     Set this to 't' if you want to do a "run in place".  Setting this
+     doesn't work well with 'make bindist'
+
+XEMACS_PACKAGES =
+     This is where you set the normal packages that you want to
+     install. eg:
+                XEMACS_PACKAGES = libs/xemacs-base comm/bbdb
+
+XEMACS_STAGING = ${XEMACS_PACKAGES_BASE}/../PACKAGES
+     Set this to where you want normal packages to be installed to.
+
+PACKAGE_INDEX = PACKAGE-INDEX
+     If you want the package-index file to have a different name,
+     change this.
+
+BUILD_WITHOUT_MULE =
+     Building from CVS defaults to building the Mule packages.  Set
+     this to 't' if you don't want/have Mule
+
+MULE_PACKAGES =
+     Same as for 'XEMACS_PACKAGES' except you list the Mule packages
+     you want to install here. eg:
+                MULE_PACKAGES = mule/mule-base mule/skk
+
+MULE_STAGING = ${XEMACS_PACKAGES_BASE}/../MULE-PACKAGES
+     Set this to where you want Mule packages installed to.  Note:
+     'make bindist' does not use this variable.
+
+XEMACS = XEMACS
+     If your XEmacs isn't in your path, change this.
+
+XEMACS_NATIVE_NT =
+     Set this to 't' if you are building on WinNT.
+
+INSTALL = INSTALL -C
+     The path to your BSD compatible install program.
+
+TAR = TAR
+     The path to your tar program
+
+BZIP2 =
+     If you want bzip2 tarballs, set this.
+
+MAKEINFO = MAKEINFO
+     The path to your makeinfo program
+
+\1f
+File: xemacs.info,  Node: Creating Packages,  Next: Available Packages,  Prev: Local.rules File,  Up: Packages
+
+Creating Packages:
+==================
 
    Creating a package from an existing Lisp library is not very
 difficult.
@@ -942,370 +1122,3 @@ toolbar, and are normally installed in `etc/PACKAGE_NAME'.  A few
 packages have needs beyond the basic templates.  See `XEmacs.rules' or
 a future revision of this manual for details.
 
-\1f
-File: xemacs.info,  Node: Available Packages,  Prev: Creating Packages,  Up: Packages
-
-   This section is surely out-of-date.  If you're sure that XEmacs is
-able to do something, but your installed XEmacs won't do it for you,
-it's probably in a package.  If you can't find it in this section,
-that's a bug--please report it.  It is very hard to keep this section
-up-to-date; your reports, comments, and questions will help a lot.
-
-   This data is up-to-date as of 10 February 1999.  (Ouch!  I told you!)
-
-Library Packages (libs)
------------------------
-
-   These packages are required to build and support most of the rest of
-XEmacs.  By design, xemacs-base is a `regular' package.  Use restraint
-when adding new files there as it is required by almost everything.
-
-`Sun'
-     Support for Sparcworks.
-
-`apel'
-     A Portable Emacs Library.  Used by XEmacs MIME support.
-
-`edebug'
-     A Lisp debugger.
-
-`dired'
-     The DIRectory EDitor is for manipulating, and running commands on
-     files in a directory.
-
-`efs'
-     Treat files on remote systems the same as local files.
-
-`mail-lib'
-     Fundamental lisp files for providing email support.
-
-`tooltalk'
-     Support for building with Tooltalk.
-
-`xemacs-base'
-     Fundamental XEmacs support.  Install this unless you wish a totally
-     naked XEmacs.
-
-`xemacs-devel'
-     XEmacs Lisp developer support.  This package contains utilities for
-     supporting Lisp development.  It is a single-file package so it
-     may be tailored.
-
-Communications Packages (comm)
-------------------------------
-
-   These packages provide support for various communications, primarily
-email and usenet.
-
-`footnote'
-     Footnoting in mail message editing modes.
-
-`gnats'
-     XEmacs bug reports.
-
-`gnus'
-     The Gnus Newsreader and Mailreader.
-
-`mailcrypt'
-     Support for messaging encryption with PGP.
-
-`mh-e'
-     Front end support for MH.
-
-`net-utils'
-     Miscellaneous Networking Utilities.  This is a single-file package
-     and files may be deleted at will.
-
-`ph'
-     Emacs implementation of the ph client to CCSO/qi directory servers.
-
-`rmail'
-     An obsolete Emacs mailer.  If you do not already use it don't
-     start.
-
-`supercite'
-     An Emacs citation tool.  Useful with all Emacs Mailers and
-     Newsreaders.
-
-`tm'
-     Emacs MIME support.
-
-`vm'
-     An Emacs mailer.
-
-`w3'
-     A Web browser.
-
-Games and Amusements (games)
-----------------------------
-
-`cookie'
-     Spook and Yow (Zippy quotes).
-
-`games'
-     Tetris, Sokoban, and Snake.
-
-`mine'
-     Minehunt.
-
-`misc-games'
-     Other amusements and diversions.
-
-Mule Support (mule)
--------------------
-
-`egg-its'
-     Wnn (4.2 and 6) support.  SJ3 support.  Must be installed prior to
-     XEmacs build.
-
-`leim'
-     Quail.  Used for everything other than English and Japanese.
-
-`locale'
-     Used for localized menubars (French and Japanese) and localized
-     splash screens (Japanese).
-
-`mule-base'
-     Basic Mule support.  Must be installed prior to building with Mule.
-
-`skk'
-     Another Japanese Language Input Method.  Can be used without a
-     separate process running as a dictionary server.
-
-Productivity Packages (oa)
---------------------------
-
-`calendar'
-     Calendar and diary support.
-
-`edit-utils'
-     Single file lisp packages for various XEmacs goodies.  Load this
-     and weed out the junk you don't want.
-
-`forms'
-     Forms editing support (obsolete, use the builtin Widget instead).
-
-`frame-icon'
-     Provide a WM icon based on major mode.
-
-`hm--html-menus'
-     HTML editing.
-
-`ispell'
-     Spell-checking with ispell.
-
-`pc'
-     PC style interface emulation.
-
-`psgml'
-     Validated HTML/SGML editing.
-
-`sgml'
-     SGML/Linuxdoc-SGML editing.
-
-`slider'
-     User interface tool.
-
-`speedbar'
-     ??? Document me.
-
-`strokes'
-     Mouse enhancement utility.
-
-`text-modes'
-     Various single file lisp packages for editing text files.
-
-`time'
-     Display time & date on the modeline.
-
-Operating System Utilities (os)
--------------------------------
-
-`eterm'
-     Terminal emulator.
-
-`igrep'
-     Enhanced front-end for Grep.
-
-`ilisp'
-     Front-end for Inferior Lisp.
-
-`os-utils'
-     Miscellaneous single-file O/S utilities, for printing, archiving,
-     compression, remote shells, etc.
-
-`view-process'
-     A Unix process browsing tool.
-
-Program Editing Support (prog)
-------------------------------
-
-`ada'
-     Ada language support.
-
-`c-support'
-     Basic single-file add-ons for editing C code.
-
-`cc-mode'
-     C, C++ and Java language support.
-
-`debug'
-     GUD, gdb, dbx debugging support.
-
-`ediff'
-     Interface over patch.
-
-`emerge'
-     Another interface over patch.
-
-`pcl-cvs'
-     CVS frontend.
-
-`prog-modes'
-     Miscellaneous Lisp libraries for various programming languages.
-
-`scheme'
-     Front-end support for Inferior Scheme.
-
-`sh-script'
-     Support for editing shell scripts.
-
-`vc'
-     Version control for free systems.
-
-`vc-cc'
-     Version control for ClearCase.
-
-`vhdl'
-     Support for VHDL.
-
-Word Processing (wp)
---------------------
-
-`auctex'
-     Basic TeX/LaTeX support.
-
-`crisp'
-     Crisp/Brief emulation.
-
-`edt'
-     DEC EDIT/EDT emulation.
-
-`texinfo'
-     XEmacs TeXinfo support.
-
-`textools'
-     Single-file TeX support.
-
-`tpu'
-     DEC EDIT/TPU support.
-
-`viper'
-     VI emulation support.
-
-\1f
-File: xemacs.info,  Node: Abbrevs,  Next: Picture,  Prev: Running,  Up: Top
-
-Abbrevs
-*******
-
-   An "abbrev" is a word which "expands" into some different text.
-Abbrevs are defined by the user to expand in specific ways.  For
-example, you might define `foo' as an abbrev expanding to `find outer
-otter'.  With this abbrev defined, you would be able to get `find outer
-otter ' into the buffer by typing `f o o <SPC>'.
-
-   Abbrevs expand only when Abbrev mode (a minor mode) is enabled.
-Disabling Abbrev mode does not cause abbrev definitions to be discarded,
-but they do not expand until Abbrev mode is enabled again.  The command
-`M-x abbrev-mode' toggles Abbrev mode; with a numeric argument, it
-turns Abbrev mode on if the argument is positive, off otherwise.  *Note
-Minor Modes::.  `abbrev-mode' is also a variable; Abbrev mode is on
-when the variable is non-`nil'.  The variable `abbrev-mode'
-automatically becomes local to the current buffer when it is set.
-
-   Abbrev definitions can be "mode-specific"--active only in one major
-mode.  Abbrevs can also have "global" definitions that are active in
-all major modes.  The same abbrev can have a global definition and
-various mode-specific definitions for different major modes.  A
-mode-specific definition for the current major mode overrides a global
-definition.
-
-   You can define Abbrevs interactively during an editing session.  You
-can also save lists of abbrev definitions in files and reload them in
-later sessions.  Some users keep extensive lists of abbrevs that they
-load in every session.
-
-   A second kind of abbreviation facility is called the "dynamic
-expansion".  Dynamic abbrev expansion happens only when you give an
-explicit command and the result of the expansion depends only on the
-current contents of the buffer.  *Note Dynamic Abbrevs::.
-
-* Menu:
-
-* Defining Abbrevs::  Defining an abbrev, so it will expand when typed.
-* Expanding Abbrevs:: Controlling expansion: prefixes, canceling expansion.
-* Editing Abbrevs::   Viewing or editing the entire list of defined abbrevs.
-* Saving Abbrevs::    Saving the entire list of abbrevs for another session.
-* Dynamic Abbrevs::   Abbreviations for words already in the buffer.
-
-\1f
-File: xemacs.info,  Node: Defining Abbrevs,  Next: Expanding Abbrevs,  Prev: Abbrevs,  Up: Abbrevs
-
-Defining Abbrevs
-================
-
-`C-x a g'
-     Define an abbrev to expand into some text before point
-     (`add-global-abbrev').
-
-`C-x a l'
-     Similar, but define an abbrev available only in the current major
-     mode (`add-mode-abbrev').
-
-`C-x a i g'
-     Define a word in the buffer as an abbrev
-     (`inverse-add-global-abbrev').
-
-`C-x a i l'
-     Define a word in the buffer as a mode-specific abbrev
-     (`inverse-add-mode-abbrev').
-
-`M-x kill-all-abbrevs'
-     After this command, no abbrev definitions remain in effect.
-
-   The usual way to define an abbrev is to enter the text you want the
-abbrev to expand to, position point after it, and type `C-x a g'
-(`add-global-abbrev').  This reads the abbrev itself using the
-minibuffer, and then defines it as an abbrev for one or more words
-before point.  Use a numeric argument to say how many words before point
-should be taken as the expansion.  For example, to define the abbrev
-`foo' as in the example above, insert the text `find outer otter', then
-type
-`C-u 3 C-x a g f o o <RET>'.
-
-   An argument of zero to `C-x a g' means to use the contents of the
-region as the expansion of the abbrev being defined.
-
-   The command `C-x a l' (`add-mode-abbrev') is similar, but defines a
-mode-specific abbrev.  Mode-specific abbrevs are active only in a
-particular major mode.  `C-x a l' defines an abbrev for the major mode
-in effect at the time `C-x a l' is typed.  The arguments work the same
-way they do for `C-x a g'.
-
-   If the text of an abbrev you want is already in the buffer instead of
-the expansion, use command `C-x a i g' (`inverse-add-global-abbrev')
-instead of `C-x a g', or use `C-x a i l' (`inverse-add-mode-abbrev')
-instead of `C-x a l'.  These commands are called "inverse" because they
-invert the meaning of the argument found in the buffer and the argument
-read using the minibuffer.
-
-   To change the definition of an abbrev, just add the new definition.
-You will be asked to confirm if the abbrev has a prior definition.  To
-remove an abbrev definition, give a negative argument to `C-x a g' or
-`C-x a l'.  You must choose the command to specify whether to kill a
-global definition or a mode-specific definition for the current mode,
-since those two definitions are independent for one abbrev.
-
-   `M-x kill-all-abbrevs' removes all existing abbrev definitions.
-
index 5147bce..5ec9149 100644 (file)
@@ -30,6 +30,447 @@ versions, except that the sections entitled "The GNU Manifesto",
 translation approved by the author instead of in the original English.
 
 \1f
+File: xemacs.info,  Node: Available Packages,  Prev: Creating Packages,  Up: Packages
+
+Available Packages:
+===================
+
+   This section lists the Lisp packages that are currently available
+from xemacs.org and it's mirrors.  If a particular package that you are
+looking for isn't here, please send a message to the XEmacs Beta list
+<xemacs-beta@xemacs.org>.
+
+   This data is up-to-date as of January 17, 2001.
+
+Library Packages (libs)
+-----------------------
+
+   These packages are required to build and support most of the rest of
+XEmacs.  By design, xemacs-base is a `regular' package.  Use restraint
+when adding new files there as it is required by almost everything.
+
+`Sun'
+     Support for Sparcworks.
+
+`apel'
+     A Portable Emacs Library.  Used by XEmacs MIME support.
+
+`dired'
+     The DIRectory EDitor is for manipulating, and running commands on
+     files in a directory.
+
+`edebug'
+     A Lisp debugger.
+
+`efs'
+     Treat files on remote systems the same as local files.
+
+`elib'
+     Portable Emacs Lisp utilities library.
+
+`fsf-compat'
+     FSF Emacs compatibility files.
+
+`mail-lib'
+     Fundamental lisp files for providing email support.
+
+`sounds-au'
+     XEmacs Sun sound files.
+
+`sounds-wav'
+     XEmacs Microsoft sound files.
+
+`tooltalk'
+     Support for building with Tooltalk.
+
+`xemacs-base'
+     Fundamental XEmacs support.  Install this unless you wish a totally
+     naked XEmacs.
+
+`xemacs-devel'
+     XEmacs Lisp developer support.  This package contains utilities for
+     supporting Lisp development.  It is a single-file package so it
+     may be tailored.
+
+Communications Packages (comm)
+------------------------------
+
+   These packages provide support for various communications, primarily
+email and usenet.
+
+`bbdb'
+     The Big Brother Data Base
+
+`eicq'
+     ICQ Client developed and tested on Linux x86; only supported on
+     that platform
+
+`eudc'
+     Emacs Unified Directory Client (LDAP, PH).
+
+`footnote'
+     Footnoting in mail message editing modes.
+
+`gnats'
+     XEmacs bug reports.
+
+`gnus'
+     The Gnus Newsreader and Mailreader.
+
+`mailcrypt'
+     Support for messaging encryption with PGP.
+
+`mew'
+     Messaging in an Emacs World.
+
+`mh-e'
+     Front end support for MH.
+
+`net-utils'
+     Miscellaneous Networking Utilities.  This is a single-file package
+     and files may be deleted at will.
+
+`rmail'
+     An obsolete Emacs mailer.  If you do not already use it don't
+     start.
+
+`supercite'
+     An Emacs citation tool.  Useful with all Emacs Mailers and
+     Newsreaders.
+
+`tm'
+     Emacs MIME support. Not needed for Gnus >= 5.8.0
+
+`vm'
+     An Emacs mailer.
+
+`w3'
+     A Web browser.
+
+`zenirc'
+     ZENIRC IRC Client.
+
+Games and Amusements (games)
+----------------------------
+
+   All work and no play...
+
+`cookie'
+     Spook and Yow (Zippy quotes).
+
+`games'
+     Tetris, Sokoban, and Snake.
+
+`mine'
+     Minehunt.
+
+`misc-games'
+     Other amusements and diversions.
+
+Mule Support (mule)
+-------------------
+
+   MULti-lingual Enhancement.  Support for world scripts such as Latin,
+Arabic, Cyrillic, Chinese, Japanese, Greek, Hebrew etc.  To use these
+packages your XEmacs must be compiled with Mule support.
+
+`edict'
+     Lisp Interface to EDICT, Kanji Dictionary.
+
+`egg-its'
+     Wnn (4.2 and 6) support.  SJ3 support.  Must be installed prior to
+     XEmacs build.
+
+`leim'
+     Quail.  Used for everything other than English and Japanese.
+
+`locale'
+     Used for localized menubars (French and Japanese) and localized
+     splash screens (Japanese).
+
+`lookup'
+     Dictionary support. (This isn't an English dictionary program)
+
+`mule-base'
+     Basic Mule support.  Must be installed prior to building with Mule.
+
+`skk'
+     Another Japanese Language Input Method.  Can be used without a
+     separate process running as a dictionary server.
+
+Productivity Packages (oa)
+--------------------------
+
+   Things to make life a little easier.
+
+`calc'
+     Emacs calculator.
+
+`calendar'
+     Calendar and diary support.
+
+`edit-utils'
+     Single file lisp packages for various XEmacs goodies.  Load this
+     and weed out the junk you don't want.
+
+`forms'
+     Forms editing support (obsolete, use the built-in Widget instead).
+
+`frame-icon'
+     Provide a WM icon based on major mode.
+
+`hm--html-menus'
+     HTML editing.
+
+`ispell'
+     Spell-checking with ispell.
+
+`pc'
+     PC style interface emulation.
+
+`psgml'
+     Validated HTML/SGML editing.
+
+`sgml'
+     SGML/Linuxdoc-SGML editing.
+
+`slider'
+     User interface tool.
+
+`speedbar'
+     Provides a separate frame with convenient references.
+
+`strokes'
+     Mouse enhancement utility.
+
+`text-modes'
+     Various single file lisp packages for editing text files.
+
+`time'
+     Display time & date on the modeline.
+
+Operating System Utilities (os)
+-------------------------------
+
+   Tools for working with the operating system.
+
+`eshell'
+     Command shell implemented entirely in Emacs Lisp.
+
+`eterm'
+     Terminal emulator.
+
+`igrep'
+     Enhanced front-end for Grep.
+
+`ilisp'
+     Front-end for Inferior Lisp.
+
+`os-utils'
+     Miscellaneous single-file O/S utilities, for printing, archiving,
+     compression, remote shells, etc.
+
+`pcomplete'
+     Provides programmatic completion.
+
+`ps-print-nomule'
+     Old, but no-Mule safe ps-print.
+
+`view-process'
+     A Unix process browsing tool.
+
+Program Editing Support (prog)
+------------------------------
+
+   XEmacs supports a multitude of programming languages.  These
+packages will help your coding.
+
+`ada'
+     Ada language support.
+
+`c-support'
+     Basic single-file add-ons for editing C code.
+
+`cc-mode'
+     C, C++ and Java language support.
+
+`debug'
+     GUD, gdb, dbx debugging support.
+
+`ediff'
+     Interface over patch.
+
+`emerge'
+     Another interface over patch.
+
+`idlwave'
+     Editing and Shell mode for the Interactive Data Language.
+
+`jde'
+     Java language and development support.
+
+`pcl-cvs'
+     CVS frontend.
+
+`prog-modes'
+     Miscellaneous single-file lisp files for various programming
+     languages.
+
+`scheme'
+     Front-end support for Inferior Scheme.
+
+`semantic'
+     Semantic bovinator.
+
+`sh-script'
+     Support for editing shell scripts.
+
+`vc'
+     Version Control for Free systems.
+
+`vc-cc'
+     Version Control for ClearCase.  This package will shortly be
+     replaced with clearcase.el
+
+`vhdl'
+     Support for VHDL.
+
+Word Processing (wp)
+--------------------
+
+   Working with text.
+
+`auctex'
+     Basic TeX/LaTeX support.
+
+`crisp'
+     Crisp/Brief emulation.
+
+`edt'
+     DEC EDIT/EDT emulation.
+
+`reftex'
+     Emacs support for LaTeX cross-references, citations.
+
+`texinfo'
+     XEmacs TeXinfo support.
+
+`textools'
+     Single-file TeX support.
+
+`tpu'
+     DEC EDIT/TPU support.
+
+`viper'
+     VI emulation support.
+
+\1f
+File: xemacs.info,  Node: Abbrevs,  Next: Picture,  Prev: Running,  Up: Top
+
+Abbrevs
+*******
+
+   An "abbrev" is a word which "expands" into some different text.
+Abbrevs are defined by the user to expand in specific ways.  For
+example, you might define `foo' as an abbrev expanding to `find outer
+otter'.  With this abbrev defined, you would be able to get `find outer
+otter ' into the buffer by typing `f o o <SPC>'.
+
+   Abbrevs expand only when Abbrev mode (a minor mode) is enabled.
+Disabling Abbrev mode does not cause abbrev definitions to be discarded,
+but they do not expand until Abbrev mode is enabled again.  The command
+`M-x abbrev-mode' toggles Abbrev mode; with a numeric argument, it
+turns Abbrev mode on if the argument is positive, off otherwise.  *Note
+Minor Modes::.  `abbrev-mode' is also a variable; Abbrev mode is on
+when the variable is non-`nil'.  The variable `abbrev-mode'
+automatically becomes local to the current buffer when it is set.
+
+   Abbrev definitions can be "mode-specific"--active only in one major
+mode.  Abbrevs can also have "global" definitions that are active in
+all major modes.  The same abbrev can have a global definition and
+various mode-specific definitions for different major modes.  A
+mode-specific definition for the current major mode overrides a global
+definition.
+
+   You can define Abbrevs interactively during an editing session.  You
+can also save lists of abbrev definitions in files and reload them in
+later sessions.  Some users keep extensive lists of abbrevs that they
+load in every session.
+
+   A second kind of abbreviation facility is called the "dynamic
+expansion".  Dynamic abbrev expansion happens only when you give an
+explicit command and the result of the expansion depends only on the
+current contents of the buffer.  *Note Dynamic Abbrevs::.
+
+* Menu:
+
+* Defining Abbrevs::  Defining an abbrev, so it will expand when typed.
+* Expanding Abbrevs:: Controlling expansion: prefixes, canceling expansion.
+* Editing Abbrevs::   Viewing or editing the entire list of defined abbrevs.
+* Saving Abbrevs::    Saving the entire list of abbrevs for another session.
+* Dynamic Abbrevs::   Abbreviations for words already in the buffer.
+
+\1f
+File: xemacs.info,  Node: Defining Abbrevs,  Next: Expanding Abbrevs,  Prev: Abbrevs,  Up: Abbrevs
+
+Defining Abbrevs
+================
+
+`C-x a g'
+     Define an abbrev to expand into some text before point
+     (`add-global-abbrev').
+
+`C-x a l'
+     Similar, but define an abbrev available only in the current major
+     mode (`add-mode-abbrev').
+
+`C-x a i g'
+     Define a word in the buffer as an abbrev
+     (`inverse-add-global-abbrev').
+
+`C-x a i l'
+     Define a word in the buffer as a mode-specific abbrev
+     (`inverse-add-mode-abbrev').
+
+`M-x kill-all-abbrevs'
+     After this command, no abbrev definitions remain in effect.
+
+   The usual way to define an abbrev is to enter the text you want the
+abbrev to expand to, position point after it, and type `C-x a g'
+(`add-global-abbrev').  This reads the abbrev itself using the
+minibuffer, and then defines it as an abbrev for one or more words
+before point.  Use a numeric argument to say how many words before point
+should be taken as the expansion.  For example, to define the abbrev
+`foo' as in the example above, insert the text `find outer otter', then
+type
+`C-u 3 C-x a g f o o <RET>'.
+
+   An argument of zero to `C-x a g' means to use the contents of the
+region as the expansion of the abbrev being defined.
+
+   The command `C-x a l' (`add-mode-abbrev') is similar, but defines a
+mode-specific abbrev.  Mode-specific abbrevs are active only in a
+particular major mode.  `C-x a l' defines an abbrev for the major mode
+in effect at the time `C-x a l' is typed.  The arguments work the same
+way they do for `C-x a g'.
+
+   If the text of an abbrev you want is already in the buffer instead of
+the expansion, use command `C-x a i g' (`inverse-add-global-abbrev')
+instead of `C-x a g', or use `C-x a i l' (`inverse-add-mode-abbrev')
+instead of `C-x a l'.  These commands are called "inverse" because they
+invert the meaning of the argument found in the buffer and the argument
+read using the minibuffer.
+
+   To change the definition of an abbrev, just add the new definition.
+You will be asked to confirm if the abbrev has a prior definition.  To
+remove an abbrev definition, give a negative argument to `C-x a g' or
+`C-x a l'.  You must choose the command to specify whether to kill a
+global definition or a mode-specific definition for the current mode,
+since those two definitions are independent for one abbrev.
+
+   `M-x kill-all-abbrevs' removes all existing abbrev definitions.
+
+\1f
 File: xemacs.info,  Node: Expanding Abbrevs,  Next: Editing Abbrevs,  Prev: Defining Abbrevs,  Up: Abbrevs
 
 Controlling Abbrev Expansion
@@ -938,310 +1379,3 @@ backward or forward.
    By default, weeks begin on Sunday.  To make them begin on Monday
 instead, set the variable `calendar-week-start-day' to 1.
 
-\1f
-File: xemacs.info,  Node: Specified Dates,  Prev: Move to Beginning or End,  Up: Calendar Motion
-
-Particular Dates
-................
-
-   Calendar mode provides commands for moving to a particular date
-specified in various ways.
-
-`g d'
-     Move point to specified date (`calendar-goto-date').
-
-`o'
-     Center calendar around specified month (`calendar-other-month').
-
-`.'
-     Move point to today's date (`calendar-goto-today').
-
-   `g d' (`calendar-goto-date') prompts for a year, a month, and a day
-of the month, and then moves to that date.  Because the calendar
-includes all dates from the beginning of the current era, you must type
-the year in its entirety; that is, type `1990', not `90'.
-
-   `o' (`calendar-other-month') prompts for a month and year, then
-centers the three-month calendar around that month.
-
-   You can return to today's date with `.' (`calendar-goto-today').
-
-\1f
-File: xemacs.info,  Node: Scroll Calendar,  Next: Mark and Region,  Prev: Calendar Motion,  Up: Calendar/Diary
-
-Scrolling the Calendar through Time
------------------------------------
-
-   The calendar display scrolls automatically through time when you
-move out of the visible portion.  You can also scroll it manually.
-Imagine that the calendar window contains a long strip of paper with
-the months on it.  Scrolling it means moving the strip so that new
-months become visible in the window.
-
-`C-x <'
-     Scroll calendar one month forward (`scroll-calendar-left').
-
-`C-x >'
-     Scroll calendar one month backward (`scroll-calendar-right').
-
-`C-v'
-`<NEXT>'
-     Scroll calendar three months forward
-     (`scroll-calendar-left-three-months').
-
-`M-v'
-`<PRIOR>'
-     Scroll calendar three months backward
-     (`scroll-calendar-right-three-months').
-
-   The most basic calendar scroll commands scroll by one month at a
-time.  This means that there are two months of overlap between the
-display before the command and the display after.  `C-x <' scrolls the
-calendar contents one month to the left; that is, it moves the display
-forward in time.  `C-x >' scrolls the contents to the right, which
-moves backwards in time.
-
-   The commands `C-v' and `M-v' scroll the calendar by an entire
-"screenful"--three months--in analogy with the usual meaning of these
-commands.  `C-v' makes later dates visible and `M-v' makes earlier
-dates visible.  These commands take a numeric argument as a repeat
-count; in particular, since `C-u' multiplies the next command by four,
-typing `C-u C-v' scrolls the calendar forward by a year and typing `C-u
-M-v' scrolls the calendar backward by a year.
-
-   The function keys <NEXT> and <PRIOR> are equivalent to `C-v' and
-`M-v', just as they are in other modes.
-
-\1f
-File: xemacs.info,  Node: Mark and Region,  Next: General Calendar,  Prev: Scroll Calendar,  Up: Calendar/Diary
-
-The Mark and the Region
------------------------
-
-   The concept of the mark applies to the calendar just as to any other
-buffer, but it marks a _date_, not a _position_ in the buffer.  The
-region consists of the days between the mark and point (including the
-starting and stopping dates).
-
-`C-SPC'
-     Set the mark to today's date (`calendar-set-mark').
-
-`C-@'
-     The same.
-
-`C-x C-x'
-     Interchange mark and point (`calendar-exchange-point-and-mark').
-
-`M-='
-     Display the number of days in the current region
-     (`calendar-count-days-region').
-
-   You set the mark in the calendar, as in any other buffer, by using
-`C-@' or `C-SPC' (`calendar-set-mark').  You return to the marked date
-with the command `C-x C-x' (`calendar-exchange-point-and-mark') which
-puts the mark where point was and point where mark was.  The calendar
-is scrolled as necessary, if the marked date was not visible on the
-screen.  This does not change the extent of the region.
-
-   To determine the number of days in the region, type `M-='
-(`calendar-count-days-region').  The numbers of days printed is
-_inclusive_; that is, it includes the days specified by mark and point.
-
-   The main use of the mark in the calendar is to remember dates that
-you may want to go back to.  To make this feature more useful, the mark
-ring (*note Mark Ring::) operates exactly as in other buffers:  Emacs
-remembers 16 previous locations of the mark.  To return to a marked
-date, type `C-u C-SPC' (or `C-u C-@'); this is the command
-`calendar-set-mark' given a numeric argument.  It moves point to where
-the mark was, restores the mark from the ring of former marks, and
-stores the previous point at the end of the mark ring.  So, repeated
-use of this command moves point through all the old marks on the ring,
-one by one.
-
-\1f
-File: xemacs.info,  Node: General Calendar,  Next: LaTeX Calendar,  Prev: Mark and Region,  Up: Calendar/Diary
-
-Miscellaneous Calendar Commands
--------------------------------
-
-`p d'
-     Display day-in-year (`calendar-print-day-of-year').
-
-`?'
-     Briefly describe calendar commands (`describe-calendar-mode').
-
-`C-c C-l'
-     Regenerate the calendar window (`redraw-calendar').
-
-`SPC'
-     Scroll the next window (`scroll-other-window').
-
-`q'
-     Exit from calendar (`exit-calendar').
-
-   If you want to know how many days have elapsed since the start of
-the year, or the number of days remaining in the year, type the `p d'
-command (`calendar-print-day-of-year').  This displays both of those
-numbers in the echo area.
-
-   To display a brief description of the calendar commands, type `?'
-(`describe-calendar-mode').  For a fuller description, type `C-h m'.
-
-   You can use `SPC' (`scroll-other-window') to scroll the other
-window.  This is handy when you display a list of holidays or diary
-entries in another window.
-
-   If the calendar window text gets corrupted, type `C-c C-l'
-(`redraw-calendar') to redraw it.  (This can only happen if you use
-non-Calendar-mode editing commands.)
-
-   In Calendar mode, you can use `SPC' (`scroll-other-window') to
-scroll the other window.  This is handy when you display a list of
-holidays or diary entries in another window.
-
-   To exit from the calendar, type `q' (`exit-calendar').  This buries
-all buffers related to the calendar, selecting other buffers.  (If a
-frame contains a dedicated calendar window, exiting from the calendar
-iconifies that frame.)
-
-\1f
-File: xemacs.info,  Node: LaTeX Calendar,  Next: Holidays,  Prev: General Calendar,  Up: Calendar/Diary
-
-LaTeX Calendar
-==============
-
-   The Calendar LaTeX commands produce a buffer of LaTeX code that
-prints as a calendar.  Depending on the command you use, the printed
-calendar covers the day, week, month or year that point is in.
-
-`t m'
-     Generate a one-month calendar (`cal-tex-cursor-month').
-
-`t M'
-     Generate a sideways-printing one-month calendar
-     (`cal-tex-cursor-month-landscape').
-
-`t d'
-     Generate a one-day calendar (`cal-tex-cursor-day').
-
-`t w 1'
-     Generate a one-page calendar for one week (`cal-tex-cursor-week').
-
-`t w 2'
-     Generate a two-page calendar for one week (`cal-tex-cursor-week2').
-
-`t w 3'
-     Generate an ISO-style calendar for one week
-     (`cal-tex-cursor-week-iso').
-
-`t w 4'
-     Generate a calendar for one Monday-starting week
-     (`cal-tex-cursor-week-monday').
-
-`t f w'
-     Generate a Filofax-style two-weeks-at-a-glance calendar
-     (`cal-tex-cursor-filofax-2week').
-
-`t f W'
-     Generate a Filofax-style one-week-at-a-glance calendar
-     (`cal-tex-cursor-filofax-week').
-
-`t y'
-     Generate a calendar for one year (`cal-tex-cursor-year').
-
-`t Y'
-     Generate a sideways-printing calendar for one year
-     (`cal-tex-cursor-year-landscape').
-
-`t f y'
-     Generate a Filofax-style calendar for one year
-     (`cal-tex-cursor-filofax-year').
-
-   Some of these commands print the calendar sideways (in "landscape
-mode"), so it can be wider than it is long.  Some of them use Filofax
-paper size (3.75in x 6.75in).  All of these commands accept a prefix
-argument which specifies how many days, weeks, months or years to print
-(starting always with the selected one).
-
-   If the variable `cal-tex-holidays' is non-`nil' (the default), then
-the printed calendars show the holidays in `calendar-holidays'.  If the
-variable `cal-tex-diary' is non-`nil' (the default is `nil'), diary
-entries are included also (in weekly and monthly calendars only).
-
-\1f
-File: xemacs.info,  Node: Holidays,  Next: Sunrise/Sunset,  Prev: LaTeX Calendar,  Up: Calendar/Diary
-
-Holidays
---------
-
-   The Emacs calendar knows about all major and many minor holidays,
-and can display them.
-
-`h'
-     Display holidays for the selected date
-     (`calendar-cursor-holidays').
-
-`Button2 Holidays'
-     Display any holidays for the date you click on.
-
-`x'
-     Mark holidays in the calendar window (`mark-calendar-holidays').
-
-`u'
-     Unmark calendar window (`calendar-unmark').
-
-`a'
-     List all holidays for the displayed three months in another window
-     (`list-calendar-holidays').
-
-`M-x holidays'
-     List all holidays for three months around today's date in another
-     window.
-
-`M-x list-holidays'
-     List holidays in another window for a specified range of years.
-
-   To see if any holidays fall on a given date, position point on that
-date in the calendar window and use the `h' command.  Alternatively,
-click on that date with `Button2' and then choose `Holidays' from the
-menu that appears.  Either way, this displays the holidays for that
-date, in the echo area if they fit there, otherwise in a separate
-window.
-
-   To view the distribution of holidays for all the dates shown in the
-calendar, use the `x' command.  This displays the dates that are
-holidays in a different face (or places a `*' after these dates, if
-display with multiple faces is not available). The command applies both
-to the currently visible months and to other months that subsequently
-become visible by scrolling.  To turn marking off and erase the current
-marks, type `u', which also erases any diary marks (*note Diary::).
-
-   To get even more detailed information, use the `a' command, which
-displays a separate buffer containing a list of all holidays in the
-current three-month range.  You can use <SPC> in the calendar window to
-scroll that list.
-
-   The command `M-x holidays' displays the list of holidays for the
-current month and the preceding and succeeding months; this works even
-if you don't have a calendar window.  If you want the list of holidays
-centered around a different month, use `C-u M-x holidays', which
-prompts for the month and year.
-
-   The holidays known to Emacs include United States holidays and the
-major Christian, Jewish, and Islamic holidays; also the solstices and
-equinoxes.
-
-   The command `M-x list-holidays' displays the list of holidays for a
-range of years.  This function asks you for the starting and stopping
-years, and allows you to choose all the holidays or one of several
-categories of holidays.  You can use this command even if you don't have
-a calendar window.
-
-   The dates used by Emacs for holidays are based on _current
-practice_, not historical fact.  Historically, for instance, the start
-of daylight savings time and even its existence have varied from year to
-year, but present United States law mandates that daylight savings time
-begins on the first Sunday in April.  When the daylight savings rules
-are set up for the United States, Emacs always uses the present
-definition, even though it is wrong for some prior years.
-
index 57f9bb7..dc3e1ed 100644 (file)
@@ -30,6 +30,313 @@ versions, except that the sections entitled "The GNU Manifesto",
 translation approved by the author instead of in the original English.
 
 \1f
+File: xemacs.info,  Node: Specified Dates,  Prev: Move to Beginning or End,  Up: Calendar Motion
+
+Particular Dates
+................
+
+   Calendar mode provides commands for moving to a particular date
+specified in various ways.
+
+`g d'
+     Move point to specified date (`calendar-goto-date').
+
+`o'
+     Center calendar around specified month (`calendar-other-month').
+
+`.'
+     Move point to today's date (`calendar-goto-today').
+
+   `g d' (`calendar-goto-date') prompts for a year, a month, and a day
+of the month, and then moves to that date.  Because the calendar
+includes all dates from the beginning of the current era, you must type
+the year in its entirety; that is, type `1990', not `90'.
+
+   `o' (`calendar-other-month') prompts for a month and year, then
+centers the three-month calendar around that month.
+
+   You can return to today's date with `.' (`calendar-goto-today').
+
+\1f
+File: xemacs.info,  Node: Scroll Calendar,  Next: Mark and Region,  Prev: Calendar Motion,  Up: Calendar/Diary
+
+Scrolling the Calendar through Time
+-----------------------------------
+
+   The calendar display scrolls automatically through time when you
+move out of the visible portion.  You can also scroll it manually.
+Imagine that the calendar window contains a long strip of paper with
+the months on it.  Scrolling it means moving the strip so that new
+months become visible in the window.
+
+`C-x <'
+     Scroll calendar one month forward (`scroll-calendar-left').
+
+`C-x >'
+     Scroll calendar one month backward (`scroll-calendar-right').
+
+`C-v'
+`<NEXT>'
+     Scroll calendar three months forward
+     (`scroll-calendar-left-three-months').
+
+`M-v'
+`<PRIOR>'
+     Scroll calendar three months backward
+     (`scroll-calendar-right-three-months').
+
+   The most basic calendar scroll commands scroll by one month at a
+time.  This means that there are two months of overlap between the
+display before the command and the display after.  `C-x <' scrolls the
+calendar contents one month to the left; that is, it moves the display
+forward in time.  `C-x >' scrolls the contents to the right, which
+moves backwards in time.
+
+   The commands `C-v' and `M-v' scroll the calendar by an entire
+"screenful"--three months--in analogy with the usual meaning of these
+commands.  `C-v' makes later dates visible and `M-v' makes earlier
+dates visible.  These commands take a numeric argument as a repeat
+count; in particular, since `C-u' multiplies the next command by four,
+typing `C-u C-v' scrolls the calendar forward by a year and typing `C-u
+M-v' scrolls the calendar backward by a year.
+
+   The function keys <NEXT> and <PRIOR> are equivalent to `C-v' and
+`M-v', just as they are in other modes.
+
+\1f
+File: xemacs.info,  Node: Mark and Region,  Next: General Calendar,  Prev: Scroll Calendar,  Up: Calendar/Diary
+
+The Mark and the Region
+-----------------------
+
+   The concept of the mark applies to the calendar just as to any other
+buffer, but it marks a _date_, not a _position_ in the buffer.  The
+region consists of the days between the mark and point (including the
+starting and stopping dates).
+
+`C-SPC'
+     Set the mark to today's date (`calendar-set-mark').
+
+`C-@'
+     The same.
+
+`C-x C-x'
+     Interchange mark and point (`calendar-exchange-point-and-mark').
+
+`M-='
+     Display the number of days in the current region
+     (`calendar-count-days-region').
+
+   You set the mark in the calendar, as in any other buffer, by using
+`C-@' or `C-SPC' (`calendar-set-mark').  You return to the marked date
+with the command `C-x C-x' (`calendar-exchange-point-and-mark') which
+puts the mark where point was and point where mark was.  The calendar
+is scrolled as necessary, if the marked date was not visible on the
+screen.  This does not change the extent of the region.
+
+   To determine the number of days in the region, type `M-='
+(`calendar-count-days-region').  The numbers of days printed is
+_inclusive_; that is, it includes the days specified by mark and point.
+
+   The main use of the mark in the calendar is to remember dates that
+you may want to go back to.  To make this feature more useful, the mark
+ring (*note Mark Ring::) operates exactly as in other buffers:  Emacs
+remembers 16 previous locations of the mark.  To return to a marked
+date, type `C-u C-SPC' (or `C-u C-@'); this is the command
+`calendar-set-mark' given a numeric argument.  It moves point to where
+the mark was, restores the mark from the ring of former marks, and
+stores the previous point at the end of the mark ring.  So, repeated
+use of this command moves point through all the old marks on the ring,
+one by one.
+
+\1f
+File: xemacs.info,  Node: General Calendar,  Next: LaTeX Calendar,  Prev: Mark and Region,  Up: Calendar/Diary
+
+Miscellaneous Calendar Commands
+-------------------------------
+
+`p d'
+     Display day-in-year (`calendar-print-day-of-year').
+
+`?'
+     Briefly describe calendar commands (`describe-calendar-mode').
+
+`C-c C-l'
+     Regenerate the calendar window (`redraw-calendar').
+
+`SPC'
+     Scroll the next window (`scroll-other-window').
+
+`q'
+     Exit from calendar (`exit-calendar').
+
+   If you want to know how many days have elapsed since the start of
+the year, or the number of days remaining in the year, type the `p d'
+command (`calendar-print-day-of-year').  This displays both of those
+numbers in the echo area.
+
+   To display a brief description of the calendar commands, type `?'
+(`describe-calendar-mode').  For a fuller description, type `C-h m'.
+
+   You can use `SPC' (`scroll-other-window') to scroll the other
+window.  This is handy when you display a list of holidays or diary
+entries in another window.
+
+   If the calendar window text gets corrupted, type `C-c C-l'
+(`redraw-calendar') to redraw it.  (This can only happen if you use
+non-Calendar-mode editing commands.)
+
+   In Calendar mode, you can use `SPC' (`scroll-other-window') to
+scroll the other window.  This is handy when you display a list of
+holidays or diary entries in another window.
+
+   To exit from the calendar, type `q' (`exit-calendar').  This buries
+all buffers related to the calendar, selecting other buffers.  (If a
+frame contains a dedicated calendar window, exiting from the calendar
+iconifies that frame.)
+
+\1f
+File: xemacs.info,  Node: LaTeX Calendar,  Next: Holidays,  Prev: General Calendar,  Up: Calendar/Diary
+
+LaTeX Calendar
+==============
+
+   The Calendar LaTeX commands produce a buffer of LaTeX code that
+prints as a calendar.  Depending on the command you use, the printed
+calendar covers the day, week, month or year that point is in.
+
+`t m'
+     Generate a one-month calendar (`cal-tex-cursor-month').
+
+`t M'
+     Generate a sideways-printing one-month calendar
+     (`cal-tex-cursor-month-landscape').
+
+`t d'
+     Generate a one-day calendar (`cal-tex-cursor-day').
+
+`t w 1'
+     Generate a one-page calendar for one week (`cal-tex-cursor-week').
+
+`t w 2'
+     Generate a two-page calendar for one week (`cal-tex-cursor-week2').
+
+`t w 3'
+     Generate an ISO-style calendar for one week
+     (`cal-tex-cursor-week-iso').
+
+`t w 4'
+     Generate a calendar for one Monday-starting week
+     (`cal-tex-cursor-week-monday').
+
+`t f w'
+     Generate a Filofax-style two-weeks-at-a-glance calendar
+     (`cal-tex-cursor-filofax-2week').
+
+`t f W'
+     Generate a Filofax-style one-week-at-a-glance calendar
+     (`cal-tex-cursor-filofax-week').
+
+`t y'
+     Generate a calendar for one year (`cal-tex-cursor-year').
+
+`t Y'
+     Generate a sideways-printing calendar for one year
+     (`cal-tex-cursor-year-landscape').
+
+`t f y'
+     Generate a Filofax-style calendar for one year
+     (`cal-tex-cursor-filofax-year').
+
+   Some of these commands print the calendar sideways (in "landscape
+mode"), so it can be wider than it is long.  Some of them use Filofax
+paper size (3.75in x 6.75in).  All of these commands accept a prefix
+argument which specifies how many days, weeks, months or years to print
+(starting always with the selected one).
+
+   If the variable `cal-tex-holidays' is non-`nil' (the default), then
+the printed calendars show the holidays in `calendar-holidays'.  If the
+variable `cal-tex-diary' is non-`nil' (the default is `nil'), diary
+entries are included also (in weekly and monthly calendars only).
+
+\1f
+File: xemacs.info,  Node: Holidays,  Next: Sunrise/Sunset,  Prev: LaTeX Calendar,  Up: Calendar/Diary
+
+Holidays
+--------
+
+   The Emacs calendar knows about all major and many minor holidays,
+and can display them.
+
+`h'
+     Display holidays for the selected date
+     (`calendar-cursor-holidays').
+
+`Button2 Holidays'
+     Display any holidays for the date you click on.
+
+`x'
+     Mark holidays in the calendar window (`mark-calendar-holidays').
+
+`u'
+     Unmark calendar window (`calendar-unmark').
+
+`a'
+     List all holidays for the displayed three months in another window
+     (`list-calendar-holidays').
+
+`M-x holidays'
+     List all holidays for three months around today's date in another
+     window.
+
+`M-x list-holidays'
+     List holidays in another window for a specified range of years.
+
+   To see if any holidays fall on a given date, position point on that
+date in the calendar window and use the `h' command.  Alternatively,
+click on that date with `Button2' and then choose `Holidays' from the
+menu that appears.  Either way, this displays the holidays for that
+date, in the echo area if they fit there, otherwise in a separate
+window.
+
+   To view the distribution of holidays for all the dates shown in the
+calendar, use the `x' command.  This displays the dates that are
+holidays in a different face (or places a `*' after these dates, if
+display with multiple faces is not available). The command applies both
+to the currently visible months and to other months that subsequently
+become visible by scrolling.  To turn marking off and erase the current
+marks, type `u', which also erases any diary marks (*note Diary::).
+
+   To get even more detailed information, use the `a' command, which
+displays a separate buffer containing a list of all holidays in the
+current three-month range.  You can use <SPC> in the calendar window to
+scroll that list.
+
+   The command `M-x holidays' displays the list of holidays for the
+current month and the preceding and succeeding months; this works even
+if you don't have a calendar window.  If you want the list of holidays
+centered around a different month, use `C-u M-x holidays', which
+prompts for the month and year.
+
+   The holidays known to Emacs include United States holidays and the
+major Christian, Jewish, and Islamic holidays; also the solstices and
+equinoxes.
+
+   The command `M-x list-holidays' displays the list of holidays for a
+range of years.  This function asks you for the starting and stopping
+years, and allows you to choose all the holidays or one of several
+categories of holidays.  You can use this command even if you don't have
+a calendar window.
+
+   The dates used by Emacs for holidays are based on _current
+practice_, not historical fact.  Historically, for instance, the start
+of daylight savings time and even its existence have varied from year to
+year, but present United States law mandates that daylight savings time
+begins on the first Sunday in April.  When the daylight savings rules
+are set up for the United States, Emacs always uses the present
+definition, even though it is wrong for some prior years.
+
+\1f
 File: xemacs.info,  Node: Sunrise/Sunset,  Next: Lunar Phases,  Prev: Holidays,  Up: Calendar/Diary
 
 Times of Sunrise and Sunset
@@ -937,276 +1244,3 @@ terminal.
 A similar normal hook, `today-invisible-calendar-hook' is run if the
 current date is _not_ visible in the window.
 
-\1f
-File: xemacs.info,  Node: Holiday Customizing,  Next: Date Display Format,  Prev: Calendar Customizing,  Up: Calendar Customization
-
-Customizing the Holidays
-........................
-
-   Emacs knows about holidays defined by entries on one of several
-lists.  You can customize these lists of holidays to your own needs,
-adding or deleting holidays.  The lists of holidays that Emacs uses are
-for general holidays (`general-holidays'), local holidays
-(`local-holidays'), Christian holidays (`christian-holidays'), Hebrew
-(Jewish) holidays (`hebrew-holidays'), Islamic (Moslem) holidays
-(`islamic-holidays'), and other holidays (`other-holidays').
-
-   The general holidays are, by default, holidays common throughout the
-United States.  To eliminate these holidays, set `general-holidays' to
-`nil'.
-
-   There are no default local holidays (but sites may supply some).  You
-can set the variable `local-holidays' to any list of holidays, as
-described below.
-
-   By default, Emacs does not include all the holidays of the religions
-that it knows, only those commonly found in secular calendars.  For a
-more extensive collection of religious holidays, you can set any (or
-all) of the variables `all-christian-calendar-holidays',
-`all-hebrew-calendar-holidays', or `all-islamic-calendar-holidays' to
-`t'.  If you want to eliminate the religious holidays, set any or all
-of the corresponding variables `christian-holidays', `hebrew-holidays',
-and `islamic-holidays' to `nil'.
-
-   You can set the variable `other-holidays' to any list of holidays.
-This list, normally empty, is intended for individual use.
-
-   Each of the lists (`general-holidays', `local-holidays',
-`christian-holidays', `hebrew-holidays', `islamic-holidays', and
-`other-holidays') is a list of "holiday forms", each holiday form
-describing a holiday (or sometimes a list of holidays).
-
-   Here is a table of the possible kinds of holiday form.  Day numbers
-and month numbers count starting from 1, but "dayname" numbers count
-Sunday as 0.  The element STRING is always the name of the holiday, as
-a string.
-
-`(holiday-fixed MONTH DAY STRING)'
-     A fixed date on the Gregorian calendar.  MONTH and DAY are
-     numbers, STRING is the name of the holiday.
-
-`(holiday-float MONTH DAYNAME K STRING)'
-     The Kth DAYNAME in MONTH on the Gregorian calendar (DAYNAME=0 for
-     Sunday, and so on); negative K means count back from the end of
-     the month.  STRING is the name of the holiday.
-
-`(holiday-hebrew MONTH DAY STRING)'
-     A fixed date on the Hebrew calendar.  MONTH and DAY are numbers,
-     STRING is the name of the holiday.
-
-`(holiday-islamic MONTH DAY STRING)'
-     A fixed date on the Islamic calendar.  MONTH and DAY are numbers,
-     STRING is the name of the holiday.
-
-`(holiday-julian MONTH DAY STRING)'
-     A fixed date on the Julian calendar.  MONTH and DAY are numbers,
-     STRING is the name of the holiday.
-
-`(holiday-sexp SEXP STRING)'
-     A date calculated by the Lisp expression SEXP.  The expression
-     should use the variable `year' to compute and return the date of a
-     holiday, or `nil' if the holiday doesn't happen this year.  The
-     value of SEXP must represent the date as a list of the form
-     `(MONTH DAY YEAR)'.  STRING is the name of the holiday.
-
-`(if CONDITION HOLIDAY-FORM &optional HOLIDAY-FORM)'
-     A holiday that happens only if CONDITION is true.
-
-`(FUNCTION [ARGS])'
-     A list of dates calculated by the function FUNCTION, called with
-     arguments ARGS.
-
-   For example, suppose you want to add Bastille Day, celebrated in
-France on July 14.  You can do this by adding the following line to
-your init file:
-
-     (setq other-holidays '((holiday-fixed 7 14 "Bastille Day")))
-
-   *Note Init File::.
-
-The holiday form `(holiday-fixed 7 14 "Bastille Day")' specifies the
-fourteenth day of the seventh month (July).
-
-   Many holidays occur on a specific day of the week, at a specific time
-of month.  Here is a holiday form describing Hurricane Supplication Day,
-celebrated in the Virgin Islands on the fourth Monday in August:
-
-     (holiday-float 8 1 4 "Hurricane Supplication Day")
-
-Here the 8 specifies August, the 1 specifies Monday (Sunday is 0,
-Tuesday is 2, and so on), and the 4 specifies the fourth occurrence in
-the month (1 specifies the first occurrence, 2 the second occurrence,
--1 the last occurrence, -2 the second-to-last occurrence, and so on).
-
-   You can specify holidays that occur on fixed days of the Hebrew,
-Islamic, and Julian calendars too.  For example,
-
-     (setq other-holidays
-           '((holiday-hebrew 10 2 "Last day of Hanukkah")
-             (holiday-islamic 3 12 "Mohammed's Birthday")
-             (holiday-julian 4 2 "Jefferson's Birthday")))
-
-adds the last day of Hanukkah (since the Hebrew months are numbered with
-1 starting from Nisan), the Islamic feast celebrating Mohammed's
-birthday (since the Islamic months are numbered from 1 starting with
-Muharram), and Thomas Jefferson's birthday, which is 2 April 1743 on the
-Julian calendar.
-
-   To include a holiday conditionally, use either Emacs Lisp's `if' or
-the `holiday-sexp' form.  For example, American presidential elections
-occur on the first Tuesday after the first Monday in November of years
-divisible by 4:
-
-     (holiday-sexp (if (= 0 (% year 4))
-                        (calendar-gregorian-from-absolute
-                      (1+ (calendar-dayname-on-or-before
-                            1 (+ 6 (calendar-absolute-from-gregorian
-                                     (list 11 1 year))))))
-                   "US Presidential Election"))
-
-or
-
-     (if (= 0 (% displayed-year 4))
-         (fixed 11
-                (extract-calendar-day
-                  (calendar-gregorian-from-absolute
-                    (1+ (calendar-dayname-on-or-before
-                          1 (+ 6 (calendar-absolute-from-gregorian
-                                   (list 11 1 displayed-year)))))))
-                "US Presidential Election"))
-
-   Some holidays just don't fit into any of these forms because special
-calculations are involved in their determination.  In such cases you
-must write a Lisp function to do the calculation.  To include eclipses,
-for example, add `(eclipses)' to `other-holidays' and write an Emacs
-Lisp function `eclipses' that returns a (possibly empty) list of the
-relevant Gregorian dates among the range visible in the calendar
-window, with descriptive strings, like this:
-
-     (((6 27 1991) "Lunar Eclipse") ((7 11 1991) "Solar Eclipse") ... )
-
-\1f
-File: xemacs.info,  Node: Date Display Format,  Next: Time Display Format,  Prev: Holiday Customizing,  Up: Calendar Customization
-
-Date Display Format
-...................
-
-   You can customize the manner of displaying dates in the diary, in
-mode lines, and in messages by setting `calendar-date-display-form'.
-This variable holds a list of expressions that can involve the variables
-`month', `day', and `year', which are all numbers in string form, and
-`monthname' and `dayname', which are both alphabetic strings.  In the
-American style, the default value of this list is as follows:
-
-     ((if dayname (concat dayname ", ")) monthname " " day ", " year)
-
-while in the European style this value is the default:
-
-     ((if dayname (concat dayname ", ")) day " " monthname " " year)
-
-   + The ISO standard date representation is this:
-
-     (year "-" month "-" day)
-
-This specifies a typical American format:
-
-     (month "/" day "/" (substring year -2))
-
-\1f
-File: xemacs.info,  Node: Time Display Format,  Next: Daylight Savings,  Prev: Date Display Format,  Up: Calendar Customization
-
-Time Display Format
-...................
-
-   The calendar and diary by default display times of day in the
-conventional American style with the hours from 1 through 12, minutes,
-and either `am' or `pm'.  If you prefer the European style, also known
-in the US as military, in which the hours go from 00 to 23, you can
-alter the variable `calendar-time-display-form'.  This variable is a
-list of expressions that can involve the variables `12-hours',
-`24-hours', and `minutes', which are all numbers in string form, and
-`am-pm' and `time-zone', which are both alphabetic strings.  The
-default value of `calendar-time-display-form' is as follows:
-
-     (12-hours ":" minutes am-pm
-               (if time-zone " (") time-zone (if time-zone ")"))
-
-Here is a value that provides European style times:
-
-     (24-hours ":" minutes
-               (if time-zone " (") time-zone (if time-zone ")"))
-
-gives military-style times like `21:07 (UT)' if time zone names are
-defined, and times like `21:07' if they are not.
-
-\1f
-File: xemacs.info,  Node: Daylight Savings,  Next: Diary Customizing,  Prev: Time Display Format,  Up: Calendar Customization
-
-Daylight Savings Time
-.....................
-
-   Emacs understands the difference between standard time and daylight
-savings time--the times given for sunrise, sunset, solstices,
-equinoxes, and the phases of the moon take that into account.  The rules
-for daylight savings time vary from place to place and have also varied
-historically from year to year.  To do the job properly, Emacs needs to
-know which rules to use.
-
-   Some operating systems keep track of the rules that apply to the
-place where you are; on these systems, Emacs gets the information it
-needs from the system automatically.  If some or all of this
-information is missing, Emacs fills in the gaps with the rules
-currently used in Cambridge, Massachusetts.  If the resulting rules are
-not what you want, you can tell Emacs the rules to use by setting
-certain variables.
-
-   If the default choice of rules is not appropriate for your location,
-you can tell Emacs the rules to use by setting the variables
-`calendar-daylight-savings-starts' and
-`calendar-daylight-savings-ends'.  Their values should be Lisp
-expressions that refer to the variable `year', and evaluate to the
-Gregorian date on which daylight savings time starts or (respectively)
-ends, in the form of a list `(MONTH DAY YEAR)'.  The values should be
-`nil' if your area does not use daylight savings time.
-
-   Emacs uses these expressions to determine the starting date of
-daylight savings time for the holiday list  and for correcting times of
-day in the solar and lunar calculations.
-
-   The values for Cambridge, Massachusetts are as follows:
-
-     (calendar-nth-named-day 1 0 4 year)
-     (calendar-nth-named-day -1 0 10 year)
-
-That is, the first 0th day (Sunday) of the fourth month (April) in the
-year specified by `year', and the last Sunday of the tenth month
-(October) of that year.  If daylight savings time were changed to start
-on October 1, you would set `calendar-daylight-savings-starts' to this:
-
-     (list 10 1 year)
-
-   For a more complex example, suppose daylight savings time begins on
-the first of Nisan on the Hebrew calendar.  You should set
-`calendar-daylight-savings-starts' to this value:
-
-     (calendar-gregorian-from-absolute
-       (calendar-absolute-from-hebrew
-         (list 1 1 (+ year 3760))))
-
-because Nisan is the first month in the Hebrew calendar and the Hebrew
-year differs from the Gregorian year by 3760 at Nisan.
-
-   If there is no daylight savings time at your location, or if you want
-all times in standard time, set `calendar-daylight-savings-starts' and
-`calendar-daylight-savings-ends' to `nil'.
-
-   The variable `calendar-daylight-time-offset' specifies the
-difference between daylight savings time and standard time, measured in
-minutes.  The value for Cambridge, Massachusetts is 60.
-
-   The two variables `calendar-daylight-savings-starts-time' and
-`calendar-daylight-savings-ends-time' specify the number of minutes
-after midnight local time when the transition to and from daylight
-savings time should occur.  For Cambridge, Massachusetts both variables'
-values are 120.
-
index 4b02aad..d154ec6 100644 (file)
@@ -30,6 +30,279 @@ versions, except that the sections entitled "The GNU Manifesto",
 translation approved by the author instead of in the original English.
 
 \1f
+File: xemacs.info,  Node: Holiday Customizing,  Next: Date Display Format,  Prev: Calendar Customizing,  Up: Calendar Customization
+
+Customizing the Holidays
+........................
+
+   Emacs knows about holidays defined by entries on one of several
+lists.  You can customize these lists of holidays to your own needs,
+adding or deleting holidays.  The lists of holidays that Emacs uses are
+for general holidays (`general-holidays'), local holidays
+(`local-holidays'), Christian holidays (`christian-holidays'), Hebrew
+(Jewish) holidays (`hebrew-holidays'), Islamic (Moslem) holidays
+(`islamic-holidays'), and other holidays (`other-holidays').
+
+   The general holidays are, by default, holidays common throughout the
+United States.  To eliminate these holidays, set `general-holidays' to
+`nil'.
+
+   There are no default local holidays (but sites may supply some).  You
+can set the variable `local-holidays' to any list of holidays, as
+described below.
+
+   By default, Emacs does not include all the holidays of the religions
+that it knows, only those commonly found in secular calendars.  For a
+more extensive collection of religious holidays, you can set any (or
+all) of the variables `all-christian-calendar-holidays',
+`all-hebrew-calendar-holidays', or `all-islamic-calendar-holidays' to
+`t'.  If you want to eliminate the religious holidays, set any or all
+of the corresponding variables `christian-holidays', `hebrew-holidays',
+and `islamic-holidays' to `nil'.
+
+   You can set the variable `other-holidays' to any list of holidays.
+This list, normally empty, is intended for individual use.
+
+   Each of the lists (`general-holidays', `local-holidays',
+`christian-holidays', `hebrew-holidays', `islamic-holidays', and
+`other-holidays') is a list of "holiday forms", each holiday form
+describing a holiday (or sometimes a list of holidays).
+
+   Here is a table of the possible kinds of holiday form.  Day numbers
+and month numbers count starting from 1, but "dayname" numbers count
+Sunday as 0.  The element STRING is always the name of the holiday, as
+a string.
+
+`(holiday-fixed MONTH DAY STRING)'
+     A fixed date on the Gregorian calendar.  MONTH and DAY are
+     numbers, STRING is the name of the holiday.
+
+`(holiday-float MONTH DAYNAME K STRING)'
+     The Kth DAYNAME in MONTH on the Gregorian calendar (DAYNAME=0 for
+     Sunday, and so on); negative K means count back from the end of
+     the month.  STRING is the name of the holiday.
+
+`(holiday-hebrew MONTH DAY STRING)'
+     A fixed date on the Hebrew calendar.  MONTH and DAY are numbers,
+     STRING is the name of the holiday.
+
+`(holiday-islamic MONTH DAY STRING)'
+     A fixed date on the Islamic calendar.  MONTH and DAY are numbers,
+     STRING is the name of the holiday.
+
+`(holiday-julian MONTH DAY STRING)'
+     A fixed date on the Julian calendar.  MONTH and DAY are numbers,
+     STRING is the name of the holiday.
+
+`(holiday-sexp SEXP STRING)'
+     A date calculated by the Lisp expression SEXP.  The expression
+     should use the variable `year' to compute and return the date of a
+     holiday, or `nil' if the holiday doesn't happen this year.  The
+     value of SEXP must represent the date as a list of the form
+     `(MONTH DAY YEAR)'.  STRING is the name of the holiday.
+
+`(if CONDITION HOLIDAY-FORM &optional HOLIDAY-FORM)'
+     A holiday that happens only if CONDITION is true.
+
+`(FUNCTION [ARGS])'
+     A list of dates calculated by the function FUNCTION, called with
+     arguments ARGS.
+
+   For example, suppose you want to add Bastille Day, celebrated in
+France on July 14.  You can do this by adding the following line to
+your init file:
+
+     (setq other-holidays '((holiday-fixed 7 14 "Bastille Day")))
+
+   *Note Init File::.
+
+The holiday form `(holiday-fixed 7 14 "Bastille Day")' specifies the
+fourteenth day of the seventh month (July).
+
+   Many holidays occur on a specific day of the week, at a specific time
+of month.  Here is a holiday form describing Hurricane Supplication Day,
+celebrated in the Virgin Islands on the fourth Monday in August:
+
+     (holiday-float 8 1 4 "Hurricane Supplication Day")
+
+Here the 8 specifies August, the 1 specifies Monday (Sunday is 0,
+Tuesday is 2, and so on), and the 4 specifies the fourth occurrence in
+the month (1 specifies the first occurrence, 2 the second occurrence,
+-1 the last occurrence, -2 the second-to-last occurrence, and so on).
+
+   You can specify holidays that occur on fixed days of the Hebrew,
+Islamic, and Julian calendars too.  For example,
+
+     (setq other-holidays
+           '((holiday-hebrew 10 2 "Last day of Hanukkah")
+             (holiday-islamic 3 12 "Mohammed's Birthday")
+             (holiday-julian 4 2 "Jefferson's Birthday")))
+
+adds the last day of Hanukkah (since the Hebrew months are numbered with
+1 starting from Nisan), the Islamic feast celebrating Mohammed's
+birthday (since the Islamic months are numbered from 1 starting with
+Muharram), and Thomas Jefferson's birthday, which is 2 April 1743 on the
+Julian calendar.
+
+   To include a holiday conditionally, use either Emacs Lisp's `if' or
+the `holiday-sexp' form.  For example, American presidential elections
+occur on the first Tuesday after the first Monday in November of years
+divisible by 4:
+
+     (holiday-sexp (if (= 0 (% year 4))
+                        (calendar-gregorian-from-absolute
+                      (1+ (calendar-dayname-on-or-before
+                            1 (+ 6 (calendar-absolute-from-gregorian
+                                     (list 11 1 year))))))
+                   "US Presidential Election"))
+
+or
+
+     (if (= 0 (% displayed-year 4))
+         (fixed 11
+                (extract-calendar-day
+                  (calendar-gregorian-from-absolute
+                    (1+ (calendar-dayname-on-or-before
+                          1 (+ 6 (calendar-absolute-from-gregorian
+                                   (list 11 1 displayed-year)))))))
+                "US Presidential Election"))
+
+   Some holidays just don't fit into any of these forms because special
+calculations are involved in their determination.  In such cases you
+must write a Lisp function to do the calculation.  To include eclipses,
+for example, add `(eclipses)' to `other-holidays' and write an Emacs
+Lisp function `eclipses' that returns a (possibly empty) list of the
+relevant Gregorian dates among the range visible in the calendar
+window, with descriptive strings, like this:
+
+     (((6 27 1991) "Lunar Eclipse") ((7 11 1991) "Solar Eclipse") ... )
+
+\1f
+File: xemacs.info,  Node: Date Display Format,  Next: Time Display Format,  Prev: Holiday Customizing,  Up: Calendar Customization
+
+Date Display Format
+...................
+
+   You can customize the manner of displaying dates in the diary, in
+mode lines, and in messages by setting `calendar-date-display-form'.
+This variable holds a list of expressions that can involve the variables
+`month', `day', and `year', which are all numbers in string form, and
+`monthname' and `dayname', which are both alphabetic strings.  In the
+American style, the default value of this list is as follows:
+
+     ((if dayname (concat dayname ", ")) monthname " " day ", " year)
+
+while in the European style this value is the default:
+
+     ((if dayname (concat dayname ", ")) day " " monthname " " year)
+
+   + The ISO standard date representation is this:
+
+     (year "-" month "-" day)
+
+This specifies a typical American format:
+
+     (month "/" day "/" (substring year -2))
+
+\1f
+File: xemacs.info,  Node: Time Display Format,  Next: Daylight Savings,  Prev: Date Display Format,  Up: Calendar Customization
+
+Time Display Format
+...................
+
+   The calendar and diary by default display times of day in the
+conventional American style with the hours from 1 through 12, minutes,
+and either `am' or `pm'.  If you prefer the European style, also known
+in the US as military, in which the hours go from 00 to 23, you can
+alter the variable `calendar-time-display-form'.  This variable is a
+list of expressions that can involve the variables `12-hours',
+`24-hours', and `minutes', which are all numbers in string form, and
+`am-pm' and `time-zone', which are both alphabetic strings.  The
+default value of `calendar-time-display-form' is as follows:
+
+     (12-hours ":" minutes am-pm
+               (if time-zone " (") time-zone (if time-zone ")"))
+
+Here is a value that provides European style times:
+
+     (24-hours ":" minutes
+               (if time-zone " (") time-zone (if time-zone ")"))
+
+gives military-style times like `21:07 (UT)' if time zone names are
+defined, and times like `21:07' if they are not.
+
+\1f
+File: xemacs.info,  Node: Daylight Savings,  Next: Diary Customizing,  Prev: Time Display Format,  Up: Calendar Customization
+
+Daylight Savings Time
+.....................
+
+   Emacs understands the difference between standard time and daylight
+savings time--the times given for sunrise, sunset, solstices,
+equinoxes, and the phases of the moon take that into account.  The rules
+for daylight savings time vary from place to place and have also varied
+historically from year to year.  To do the job properly, Emacs needs to
+know which rules to use.
+
+   Some operating systems keep track of the rules that apply to the
+place where you are; on these systems, Emacs gets the information it
+needs from the system automatically.  If some or all of this
+information is missing, Emacs fills in the gaps with the rules
+currently used in Cambridge, Massachusetts.  If the resulting rules are
+not what you want, you can tell Emacs the rules to use by setting
+certain variables.
+
+   If the default choice of rules is not appropriate for your location,
+you can tell Emacs the rules to use by setting the variables
+`calendar-daylight-savings-starts' and
+`calendar-daylight-savings-ends'.  Their values should be Lisp
+expressions that refer to the variable `year', and evaluate to the
+Gregorian date on which daylight savings time starts or (respectively)
+ends, in the form of a list `(MONTH DAY YEAR)'.  The values should be
+`nil' if your area does not use daylight savings time.
+
+   Emacs uses these expressions to determine the starting date of
+daylight savings time for the holiday list  and for correcting times of
+day in the solar and lunar calculations.
+
+   The values for Cambridge, Massachusetts are as follows:
+
+     (calendar-nth-named-day 1 0 4 year)
+     (calendar-nth-named-day -1 0 10 year)
+
+That is, the first 0th day (Sunday) of the fourth month (April) in the
+year specified by `year', and the last Sunday of the tenth month
+(October) of that year.  If daylight savings time were changed to start
+on October 1, you would set `calendar-daylight-savings-starts' to this:
+
+     (list 10 1 year)
+
+   For a more complex example, suppose daylight savings time begins on
+the first of Nisan on the Hebrew calendar.  You should set
+`calendar-daylight-savings-starts' to this value:
+
+     (calendar-gregorian-from-absolute
+       (calendar-absolute-from-hebrew
+         (list 1 1 (+ year 3760))))
+
+because Nisan is the first month in the Hebrew calendar and the Hebrew
+year differs from the Gregorian year by 3760 at Nisan.
+
+   If there is no daylight savings time at your location, or if you want
+all times in standard time, set `calendar-daylight-savings-starts' and
+`calendar-daylight-savings-ends' to `nil'.
+
+   The variable `calendar-daylight-time-offset' specifies the
+difference between daylight savings time and standard time, measured in
+minutes.  The value for Cambridge, Massachusetts is 60.
+
+   The two variables `calendar-daylight-savings-starts-time' and
+`calendar-daylight-savings-ends-time' specify the number of minutes
+after midnight local time when the transition to and from daylight
+savings time should occur.  For Cambridge, Massachusetts both variables'
+values are 120.
+
+\1f
 File: xemacs.info,  Node: Diary Customizing,  Next: Hebrew/Islamic Entries,  Prev: Daylight Savings,  Up: Calendar Customization
 
 Customizing the Diary
@@ -932,246 +1205,3 @@ based on the value of the variable `lpr-switches'.  Its value should be
 a list of strings, each string a switch starting with `-'.  For
 example, the value could be `("-Pfoo")' to print on printer `foo'.
 
-\1f
-File: xemacs.info,  Node: Recursive Edit,  Next: Dissociated Press,  Prev: Hardcopy,  Up: Top
-
-Recursive Editing Levels
-========================
-
-   A "recursive edit" is a situation in which you are using XEmacs
-commands to perform arbitrary editing while in the middle of another
-XEmacs command.  For example, when you type `C-r' inside a
-`query-replace', you enter a recursive edit in which you can change the
-current buffer.  When you exit from the recursive edit, you go back to
-the `query-replace'.
-
-   "Exiting" a recursive edit means returning to the unfinished
-command, which continues execution.  For example, exiting the recursive
-edit requested by `C-r' in `query-replace' causes query replacing to
-resume.  Exiting is done with `C-M-c' (`exit-recursive-edit').
-
-   You can also "abort" a recursive edit.  This is like exiting, but
-also quits the unfinished command immediately.  Use the command `C-]'
-(`abort-recursive-edit') for this.  *Note Quitting::.
-
-   The mode line shows you when you are in a recursive edit by
-displaying square brackets around the parentheses that always surround
-the major and minor mode names.  Every window's mode line shows the
-square brackets, since XEmacs as a whole, rather than any particular
-buffer, is in a recursive edit.
-
-   It is possible to be in recursive edits within recursive edits.  For
-example, after typing `C-r' in a `query-replace', you might type a
-command that entered the debugger.  In such a case, two or more sets of
-square brackets appear in the mode line(s).  Exiting the inner
-recursive edit (here with the debugger `c' command) resumes the
-query-replace command where it called the debugger.  After the end of
-the query-replace command, you would be able to exit the first
-recursive edit.  Aborting exits only one level of recursive edit; it
-returns to the command level of the previous recursive edit.  You can
-then abort that one as well.
-
-   The command `M-x top-level' aborts all levels of recursive edits,
-returning immediately to the top level command reader.
-
-   The text you edit inside the recursive edit need not be the same text
-that you were editing at top level.  If the command that invokes the
-recursive edit selects a different buffer first, that is the buffer you
-will edit recursively.  You can switch buffers within the recursive edit
-in the normal manner (as long as the buffer-switching keys have not been
-rebound).  While you could theoretically do the rest of your editing
-inside the recursive edit, including visiting files, this could have
-surprising effects (such as stack overflow) from time to time.  It is
-best if you always exit or abort a recursive edit when you no longer
-need it.
-
-   In general, XEmacs tries to avoid using recursive edits.  It is
-usually preferable to allow users to switch among the possible editing
-modes in any order they like.  With recursive edits, the only way to get
-to another state is to go "back" to the state that the recursive edit
-was invoked from.
-
-\1f
-File: xemacs.info,  Node: Dissociated Press,  Next: CONX,  Prev: Recursive Edit,  Up: Top
-
-Dissociated Press
-=================
-
-   `M-x dissociated-press' is a command for scrambling a file of text
-either word by word or character by character.  Starting from a buffer
-of straight English, it produces extremely amusing output.  The input
-comes from the current XEmacs buffer.  Dissociated Press writes its
-output in a buffer named `*Dissociation*', and redisplays that buffer
-after every couple of lines (approximately) to facilitate reading it.
-
-   `dissociated-press' asks every so often whether to continue
-operating.  Answer `n' to stop it.  You can also stop at any time by
-typing `C-g'.  The dissociation output remains in the `*Dissociation*'
-buffer for you to copy elsewhere if you wish.
-
-   Dissociated Press operates by jumping at random from one point in the
-buffer to another.  In order to produce plausible output rather than
-gibberish, it insists on a certain amount of overlap between the end of
-one run of consecutive words or characters and the start of the next.
-That is, if it has just printed out `president' and then decides to
-jump to a different point in the file, it might spot the `ent' in
-`pentagon' and continue from there, producing `presidentagon'.  Long
-sample texts produce the best results.
-
-   A positive argument to `M-x dissociated-press' tells it to operate
-character by character, and specifies the number of overlap characters.
-A negative argument tells it to operate word by word and specifies the
-number of overlap words.  In this mode, whole words are treated as the
-elements to be permuted, rather than characters.  No argument is
-equivalent to an argument of two.  For your againformation, the output
-goes only into the buffer `*Dissociation*'.  The buffer you start with
-is not changed.
-
-   Dissociated Press produces nearly the same results as a Markov chain
-based on a frequency table constructed from the sample text.  It is,
-however, an independent, ignoriginal invention.  Dissociated Press
-techniquitously copies several consecutive characters from the sample
-between random choices, whereas a Markov chain would choose randomly for
-each word or character.  This makes for more plausible sounding results
-and runs faster.
-
-   It is a mustatement that too much use of Dissociated Press can be a
-developediment to your real work.  Sometimes to the point of outragedy.
-And keep dissociwords out of your documentation, if you want it to be
-well userenced and properbose.  Have fun.  Your buggestions are welcome.
-
-\1f
-File: xemacs.info,  Node: CONX,  Next: Amusements,  Prev: Dissociated Press,  Up: Top
-
-CONX
-====
-
-   Besides producing a file of scrambled text with Dissociated Press,
-you can generate random sentences by using CONX.
-
-`M-x conx'
-     Generate random sentences in the `*conx*' buffer.
-
-`M-x conx-buffer'
-     Absorb the text in the current buffer into the `conx' database.
-
-`M-x conx-init'
-     Forget the current word-frequency tree.
-
-`M-x conx-load'
-     Load a `conx' database that has been previously saved with `M-x
-     conx-save'.
-
-`M-x conx-region'
-     Absorb the text in the current buffer into the `conx' database.
-
-`M-x conx-save'
-     Save the current `conx' database to a file for future retrieval.
-
-   Copy text from a buffer using `M-x conx-buffer' or `M-x conx-region'
-and then type `M-x conx'.  Output is continuously generated until you
-type <^G>. You can save the `conx' database to a file with `M-x
-conx-save', which you can retrieve with `M-x conx-load'.  To clear the
-database, use `M-x conx-init'.
-
-\1f
-File: xemacs.info,  Node: Amusements,  Next: Emulation,  Prev: CONX,  Up: Top
-
-Other Amusements
-================
-
-   If you are a little bit bored, you can try `M-x hanoi'.  If you are
-considerably bored, give it a numeric argument.  If you are very, very
-bored, try an argument of 9.  Sit back and watch.
-
-   When you are frustrated, try the famous Eliza program.  Just do `M-x
-doctor'.  End each input by typing `RET' twice.
-
-   When you are feeling strange, type `M-x yow'.
-
-\1f
-File: xemacs.info,  Node: Emulation,  Next: Customization,  Prev: Amusements,  Up: Top
-
-Emulation
-=========
-
-   XEmacs can be programmed to emulate (more or less) most other
-editors.  Standard facilities can emulate these:
-
-Viper (a vi emulator)
-     In XEmacs, Viper is the preferred emulation of vi within XEmacs.
-     Viper is designed to allow you to take advantage of the best
-     features of XEmacs while still doing your basic editing in a
-     familiar, vi-like fashion.  Viper provides various different
-     levels of vi emulation, from a quite complete emulation that
-     allows almost no access to native XEmacs commands, to an "expert"
-     mode that combines the most useful vi commands with the most
-     useful XEmacs commands.
-
-     To start Viper, put the command
-
-          (viper-mode)
-
-     in your init file.  *Note Init File::.
-
-     Viper comes with a separate manual that is provided standard with
-     the XEmacs distribution.
-
-EDT (DEC VMS editor)
-     Turn on EDT emulation with `M-x edt-emulation-on'.  `M-x
-     edt-emulation-off' restores normal Emacs command bindings.
-
-     Most of the EDT emulation commands are keypad keys, and most
-     standard Emacs key bindings are still available.  The EDT
-     emulation rebindings are done in the global keymap, so there is no
-     problem switching buffers or major modes while in EDT emulation.
-
-Gosling Emacs
-     Turn on emulation of Gosling Emacs (aka Unipress Emacs) with `M-x
-     set-gosmacs-bindings'.  This redefines many keys, mostly on the
-     `C-x' and `ESC' prefixes, to work as they do in Gosmacs.  `M-x
-     set-gnu-bindings' returns to normal XEmacs by rebinding the same
-     keys to the definitions they had at the time `M-x
-     set-gosmacs-bindings' was done.
-
-     It is also possible to run Mocklisp code written for Gosling Emacs.
-     *Note Mocklisp::.
-
-\1f
-File: xemacs.info,  Node: Customization,  Next: Quitting,  Prev: Emulation,  Up: Top
-
-Customization
-*************
-
-   This chapter talks about various topics relevant to adapting the
-behavior of Emacs in minor ways.
-
-   All kinds of customization affect only the particular Emacs job that
-you do them in.  They are completely lost when you kill the Emacs job,
-and have no effect on other Emacs jobs you may run at the same time or
-later.  The only way an Emacs job can affect anything outside of it is
-by writing a file; in particular, the only way to make a customization
-`permanent' is to put something in your init file or other appropriate
-file to do the customization in each session.  *Note Init File::.
-
-* Menu:
-
-* Minor Modes::     Each minor mode is one feature you can turn on
-                     independently of any others.
-* Variables::       Many Emacs commands examine Emacs variables
-                     to decide what to do; by setting variables,
-                     you can control their functioning.
-* Keyboard Macros:: A keyboard macro records a sequence of keystrokes
-                     to be replayed with a single command.
-* Key Bindings::    The keymaps say what command each key runs.
-                     By changing them, you can "redefine keys".
-* Syntax::          The syntax table controls how words and expressions
-                     are parsed.
-* Init File::       How to write common customizations in the init file.
-* Audible Bell::    Changing how Emacs sounds the bell.
-* Faces::           Changing the fonts and colors of a region of text.
-* Frame Components::  Controlling the presence and positions of the
-                     menubar, toolbars, and gutters.
-* X Resources::     X resources controlling various aspects of the
-                     behavior of XEmacs.
-
index a03c890..841e102 100644 (file)
@@ -30,6 +30,249 @@ versions, except that the sections entitled "The GNU Manifesto",
 translation approved by the author instead of in the original English.
 
 \1f
+File: xemacs.info,  Node: Recursive Edit,  Next: Dissociated Press,  Prev: Hardcopy,  Up: Top
+
+Recursive Editing Levels
+========================
+
+   A "recursive edit" is a situation in which you are using XEmacs
+commands to perform arbitrary editing while in the middle of another
+XEmacs command.  For example, when you type `C-r' inside a
+`query-replace', you enter a recursive edit in which you can change the
+current buffer.  When you exit from the recursive edit, you go back to
+the `query-replace'.
+
+   "Exiting" a recursive edit means returning to the unfinished
+command, which continues execution.  For example, exiting the recursive
+edit requested by `C-r' in `query-replace' causes query replacing to
+resume.  Exiting is done with `C-M-c' (`exit-recursive-edit').
+
+   You can also "abort" a recursive edit.  This is like exiting, but
+also quits the unfinished command immediately.  Use the command `C-]'
+(`abort-recursive-edit') for this.  *Note Quitting::.
+
+   The mode line shows you when you are in a recursive edit by
+displaying square brackets around the parentheses that always surround
+the major and minor mode names.  Every window's mode line shows the
+square brackets, since XEmacs as a whole, rather than any particular
+buffer, is in a recursive edit.
+
+   It is possible to be in recursive edits within recursive edits.  For
+example, after typing `C-r' in a `query-replace', you might type a
+command that entered the debugger.  In such a case, two or more sets of
+square brackets appear in the mode line(s).  Exiting the inner
+recursive edit (here with the debugger `c' command) resumes the
+query-replace command where it called the debugger.  After the end of
+the query-replace command, you would be able to exit the first
+recursive edit.  Aborting exits only one level of recursive edit; it
+returns to the command level of the previous recursive edit.  You can
+then abort that one as well.
+
+   The command `M-x top-level' aborts all levels of recursive edits,
+returning immediately to the top level command reader.
+
+   The text you edit inside the recursive edit need not be the same text
+that you were editing at top level.  If the command that invokes the
+recursive edit selects a different buffer first, that is the buffer you
+will edit recursively.  You can switch buffers within the recursive edit
+in the normal manner (as long as the buffer-switching keys have not been
+rebound).  While you could theoretically do the rest of your editing
+inside the recursive edit, including visiting files, this could have
+surprising effects (such as stack overflow) from time to time.  It is
+best if you always exit or abort a recursive edit when you no longer
+need it.
+
+   In general, XEmacs tries to avoid using recursive edits.  It is
+usually preferable to allow users to switch among the possible editing
+modes in any order they like.  With recursive edits, the only way to get
+to another state is to go "back" to the state that the recursive edit
+was invoked from.
+
+\1f
+File: xemacs.info,  Node: Dissociated Press,  Next: CONX,  Prev: Recursive Edit,  Up: Top
+
+Dissociated Press
+=================
+
+   `M-x dissociated-press' is a command for scrambling a file of text
+either word by word or character by character.  Starting from a buffer
+of straight English, it produces extremely amusing output.  The input
+comes from the current XEmacs buffer.  Dissociated Press writes its
+output in a buffer named `*Dissociation*', and redisplays that buffer
+after every couple of lines (approximately) to facilitate reading it.
+
+   `dissociated-press' asks every so often whether to continue
+operating.  Answer `n' to stop it.  You can also stop at any time by
+typing `C-g'.  The dissociation output remains in the `*Dissociation*'
+buffer for you to copy elsewhere if you wish.
+
+   Dissociated Press operates by jumping at random from one point in the
+buffer to another.  In order to produce plausible output rather than
+gibberish, it insists on a certain amount of overlap between the end of
+one run of consecutive words or characters and the start of the next.
+That is, if it has just printed out `president' and then decides to
+jump to a different point in the file, it might spot the `ent' in
+`pentagon' and continue from there, producing `presidentagon'.  Long
+sample texts produce the best results.
+
+   A positive argument to `M-x dissociated-press' tells it to operate
+character by character, and specifies the number of overlap characters.
+A negative argument tells it to operate word by word and specifies the
+number of overlap words.  In this mode, whole words are treated as the
+elements to be permuted, rather than characters.  No argument is
+equivalent to an argument of two.  For your againformation, the output
+goes only into the buffer `*Dissociation*'.  The buffer you start with
+is not changed.
+
+   Dissociated Press produces nearly the same results as a Markov chain
+based on a frequency table constructed from the sample text.  It is,
+however, an independent, ignoriginal invention.  Dissociated Press
+techniquitously copies several consecutive characters from the sample
+between random choices, whereas a Markov chain would choose randomly for
+each word or character.  This makes for more plausible sounding results
+and runs faster.
+
+   It is a mustatement that too much use of Dissociated Press can be a
+developediment to your real work.  Sometimes to the point of outragedy.
+And keep dissociwords out of your documentation, if you want it to be
+well userenced and properbose.  Have fun.  Your buggestions are welcome.
+
+\1f
+File: xemacs.info,  Node: CONX,  Next: Amusements,  Prev: Dissociated Press,  Up: Top
+
+CONX
+====
+
+   Besides producing a file of scrambled text with Dissociated Press,
+you can generate random sentences by using CONX.
+
+`M-x conx'
+     Generate random sentences in the `*conx*' buffer.
+
+`M-x conx-buffer'
+     Absorb the text in the current buffer into the `conx' database.
+
+`M-x conx-init'
+     Forget the current word-frequency tree.
+
+`M-x conx-load'
+     Load a `conx' database that has been previously saved with `M-x
+     conx-save'.
+
+`M-x conx-region'
+     Absorb the text in the current buffer into the `conx' database.
+
+`M-x conx-save'
+     Save the current `conx' database to a file for future retrieval.
+
+   Copy text from a buffer using `M-x conx-buffer' or `M-x conx-region'
+and then type `M-x conx'.  Output is continuously generated until you
+type <^G>. You can save the `conx' database to a file with `M-x
+conx-save', which you can retrieve with `M-x conx-load'.  To clear the
+database, use `M-x conx-init'.
+
+\1f
+File: xemacs.info,  Node: Amusements,  Next: Emulation,  Prev: CONX,  Up: Top
+
+Other Amusements
+================
+
+   If you are a little bit bored, you can try `M-x hanoi'.  If you are
+considerably bored, give it a numeric argument.  If you are very, very
+bored, try an argument of 9.  Sit back and watch.
+
+   When you are frustrated, try the famous Eliza program.  Just do `M-x
+doctor'.  End each input by typing `RET' twice.
+
+   When you are feeling strange, type `M-x yow'.
+
+\1f
+File: xemacs.info,  Node: Emulation,  Next: Customization,  Prev: Amusements,  Up: Top
+
+Emulation
+=========
+
+   XEmacs can be programmed to emulate (more or less) most other
+editors.  Standard facilities can emulate these:
+
+Viper (a vi emulator)
+     In XEmacs, Viper is the preferred emulation of vi within XEmacs.
+     Viper is designed to allow you to take advantage of the best
+     features of XEmacs while still doing your basic editing in a
+     familiar, vi-like fashion.  Viper provides various different
+     levels of vi emulation, from a quite complete emulation that
+     allows almost no access to native XEmacs commands, to an "expert"
+     mode that combines the most useful vi commands with the most
+     useful XEmacs commands.
+
+     To start Viper, put the command
+
+          (viper-mode)
+
+     in your init file.  *Note Init File::.
+
+     Viper comes with a separate manual that is provided standard with
+     the XEmacs distribution.
+
+EDT (DEC VMS editor)
+     Turn on EDT emulation with `M-x edt-emulation-on'.  `M-x
+     edt-emulation-off' restores normal Emacs command bindings.
+
+     Most of the EDT emulation commands are keypad keys, and most
+     standard Emacs key bindings are still available.  The EDT
+     emulation rebindings are done in the global keymap, so there is no
+     problem switching buffers or major modes while in EDT emulation.
+
+Gosling Emacs
+     Turn on emulation of Gosling Emacs (aka Unipress Emacs) with `M-x
+     set-gosmacs-bindings'.  This redefines many keys, mostly on the
+     `C-x' and `ESC' prefixes, to work as they do in Gosmacs.  `M-x
+     set-gnu-bindings' returns to normal XEmacs by rebinding the same
+     keys to the definitions they had at the time `M-x
+     set-gosmacs-bindings' was done.
+
+     It is also possible to run Mocklisp code written for Gosling Emacs.
+     *Note Mocklisp::.
+
+\1f
+File: xemacs.info,  Node: Customization,  Next: Quitting,  Prev: Emulation,  Up: Top
+
+Customization
+*************
+
+   This chapter talks about various topics relevant to adapting the
+behavior of Emacs in minor ways.
+
+   All kinds of customization affect only the particular Emacs job that
+you do them in.  They are completely lost when you kill the Emacs job,
+and have no effect on other Emacs jobs you may run at the same time or
+later.  The only way an Emacs job can affect anything outside of it is
+by writing a file; in particular, the only way to make a customization
+`permanent' is to put something in your init file or other appropriate
+file to do the customization in each session.  *Note Init File::.
+
+* Menu:
+
+* Minor Modes::     Each minor mode is one feature you can turn on
+                     independently of any others.
+* Variables::       Many Emacs commands examine Emacs variables
+                     to decide what to do; by setting variables,
+                     you can control their functioning.
+* Keyboard Macros:: A keyboard macro records a sequence of keystrokes
+                     to be replayed with a single command.
+* Key Bindings::    The keymaps say what command each key runs.
+                     By changing them, you can "redefine keys".
+* Syntax::          The syntax table controls how words and expressions
+                     are parsed.
+* Init File::       How to write common customizations in the init file.
+* Audible Bell::    Changing how Emacs sounds the bell.
+* Faces::           Changing the fonts and colors of a region of text.
+* Frame Components::  Controlling the presence and positions of the
+                     menubar, toolbars, and gutters.
+* X Resources::     X resources controlling various aspects of the
+                     behavior of XEmacs.
+
+\1f
 File: xemacs.info,  Node: Minor Modes,  Next: Variables,  Up: Customization
 
 Minor Modes
@@ -898,285 +1141,3 @@ letters and hyphens.
                 before it can be executed.  This is done to protect
                 beginners from surprises.
 
-\1f
-File: xemacs.info,  Node: Keymaps,  Next: Rebinding,  Up: Key Bindings
-
-Keymaps
--------
-
-   The bindings between characters and command functions are recorded in
-data structures called "keymaps".  Emacs has many of these.  One, the
-"global" keymap, defines the meanings of the single-character keys that
-are defined regardless of major mode.  It is the value of the variable
-`global-map'.
-
-   Each major mode has another keymap, its "local keymap", which
-contains overriding definitions for the single-character keys that are
-redefined in that mode.  Each buffer records which local keymap is
-installed for it at any time, and the current buffer's local keymap is
-the only one that directly affects command execution.  The local keymaps
-for Lisp mode, C mode, and many other major modes always exist even when
-not in use.  They are the values of the variables `lisp-mode-map',
-`c-mode-map', and so on.  For less frequently used major modes, the
-local keymap is sometimes constructed only when the mode is used for the
-first time in a session, to save space.
-
-   There are local keymaps for the minibuffer, too; they contain various
-completion and exit commands.
-
-   * `minibuffer-local-map' is used for ordinary input (no completion).
-
-   * `minibuffer-local-ns-map' is similar, except that <SPC> exits just
-     like <RET>.  This is used mainly for Mocklisp compatibility.
-
-   * `minibuffer-local-completion-map' is for permissive completion.
-
-   * `minibuffer-local-must-match-map' is for strict completion and for
-     cautious completion.
-
-   * `repeat-complex-command-map' is for use in `C-x <ESC>'.
-
-   * `isearch-mode-map' contains the bindings of the special keys which
-     are bound in the pseudo-mode entered with `C-s' and `C-r'.
-
-   Finally, each prefix key has a keymap which defines the key sequences
-that start with it.  For example, `ctl-x-map' is the keymap used for
-characters following a `C-x'.
-
-   * `ctl-x-map' is the variable name for the map used for characters
-     that follow `C-x'.
-
-   * `help-map' is used for characters that follow `C-h'.
-
-   * `esc-map' is for characters that follow <ESC>. All Meta characters
-     are actually defined by this map.
-
-   * `ctl-x-4-map' is for characters that follow `C-x 4'.
-
-   * `mode-specific-map' is for characters that follow `C-c'.
-
-   The definition of a prefix key is the keymap to use for looking up
-the following character.  Sometimes the definition is actually a Lisp
-symbol whose function definition is the following character keymap.  The
-effect is the same, but it provides a command name for the prefix key
-that you can use as a description of what the prefix key is for.  Thus
-the binding of `C-x' is the symbol `Ctl-X-Prefix', whose function
-definition is the keymap for `C-x' commands, the value of `ctl-x-map'.
-
-   Prefix key definitions can appear in either the global map or a
-local map.  The definitions of `C-c', `C-x', `C-h', and <ESC> as prefix
-keys appear in the global map, so these prefix keys are always
-available.  Major modes can locally redefine a key as a prefix by
-putting a prefix key definition for it in the local map.
-
-   A mode can also put a prefix definition of a global prefix character
-such as `C-x' into its local map.  This is how major modes override the
-definitions of certain keys that start with `C-x'.  This case is
-special, because the local definition does not entirely replace the
-global one.  When both the global and local definitions of a key are
-other keymaps, the next character is looked up in both keymaps, with
-the local definition overriding the global one.  The character after the
-`C-x' is looked up in both the major mode's own keymap for redefined
-`C-x' commands and in `ctl-x-map'.  If the major mode's own keymap for
-`C-x' commands contains `nil', the definition from the global keymap
-for `C-x' commands is used.
-
-\1f
-File: xemacs.info,  Node: Rebinding,  Next: Disabling,  Prev: Keymaps,  Up: Key Bindings
-
-Changing Key Bindings
----------------------
-
-   You can redefine an Emacs key by changing its entry in a keymap.
-You can change the global keymap, in which case the change is effective
-in all major modes except those that have their own overriding local
-definitions for the same key.  Or you can change the current buffer's
-local map, which affects all buffers using the same major mode.
-
-* Menu:
-
-* Interactive Rebinding::      Changing Key Bindings Interactively
-* Programmatic Rebinding::     Changing Key Bindings Programmatically
-* Key Bindings Using Strings:: Using Strings for Changing Key Bindings
-
-\1f
-File: xemacs.info,  Node: Interactive Rebinding,  Next: Programmatic Rebinding,  Up: Rebinding
-
-Changing Key Bindings Interactively
-...................................
-
-`M-x global-set-key <RET> KEY CMD <RET>'
-     Defines KEY globally to run CMD.
-
-`M-x local-set-key <RET> KEYS CMD <RET>'
-     Defines KEY locally (in the major mode now in effect) to run CMD.
-
-`M-x local-unset-key <RET> KEYS <RET>'
-     Removes the local binding of KEY.
-
-   CMD is a symbol naming an interactively-callable function.
-
-   When called interactively, KEY is the next complete key sequence
-that you type.  When called as a function, KEY is a string, a vector of
-events, or a vector of key-description lists as described in the
-`define-key' function description.  The binding goes in the current
-buffer's local map, which is shared with other buffers in the same
-major mode.
-
-   The following example:
-
-     M-x global-set-key <RET> C-f next-line <RET>
-
-redefines `C-f' to move down a line.  The fact that CMD is read second
-makes it serve as a kind of confirmation for KEY.
-
-   These functions offer no way to specify a particular prefix keymap as
-the one to redefine in, but that is not necessary, as you can include
-prefixes in KEY.  KEY is read by reading characters one by one until
-they amount to a complete key (that is, not a prefix key).  Thus, if
-you type `C-f' for KEY, Emacs enters the minibuffer immediately to read
-CMD.  But if you type `C-x', another character is read; if that
-character is `4', another character is read, and so on.  For example,
-
-     M-x global-set-key <RET> C-x 4 $ spell-other-window <RET>
-
-redefines `C-x 4 $' to run the (fictitious) command
-`spell-other-window'.
-
-   The most general way to modify a keymap is the function
-`define-key', used in Lisp code (such as your init file).  `define-key'
-takes three arguments: the keymap, the key to modify in it, and the new
-definition.  *Note Init File::, for an example.
-`substitute-key-definition' is used similarly; it takes three
-arguments, an old definition, a new definition, and a keymap, and
-redefines in that keymap all keys that were previously defined with the
-old definition to have the new definition instead.
-
-\1f
-File: xemacs.info,  Node: Programmatic Rebinding,  Next: Key Bindings Using Strings,  Prev: Interactive Rebinding,  Up: Rebinding
-
-Changing Key Bindings Programmatically
-......................................
-
-   You can use the functions `global-set-key' and `define-key' to
-rebind keys under program control.
-
-``(global-set-key KEYS CMD)''
-     Defines KEYS globally to run CMD.
-
-``(define-key KEYMAP KEYS DEF)''
-     Defines KEYS to run DEF in the keymap KEYMAP.
-
-   KEYMAP is a keymap object.
-
-   KEYS is the sequence of keystrokes to bind.
-
-   DEF is anything that can be a key's definition:
-
-   * `nil', meaning key is undefined in this keymap
-
-   * A command, that is, a Lisp function suitable for interactive
-     calling
-
-   * A string or key sequence vector, which is treated as a keyboard
-     macro
-
-   * A keymap to define a prefix key
-
-   * A symbol so that when the key is looked up, the symbol stands for
-     its function definition, which should at that time be one of the
-     above, or another symbol whose function definition is used, and so
-     on
-
-   * A cons, `(string . defn)', meaning that DEFN is the definition
-     (DEFN should be a valid definition in its own right)
-
-   * A cons, `(keymap . char)', meaning use the definition of CHAR in
-     map KEYMAP
-
-   For backward compatibility, XEmacs allows you to specify key
-sequences as strings.  However, the preferred method is to use the
-representations of key sequences as vectors of keystrokes.  *Note
-Keystrokes::, for more information about the rules for constructing key
-sequences.
-
-   Emacs allows you to abbreviate representations for key sequences in
-most places where there is no ambiguity.  Here are some rules for
-abbreviation:
-
-   * The keysym by itself is equivalent to a list of just that keysym,
-     i.e., `f1' is equivalent to `(f1)'.
-
-   * A keystroke by itself is equivalent to a vector containing just
-     that keystroke, i.e.,  `(control a)' is equivalent to `[(control
-     a)]'.
-
-   * You can use ASCII codes for keysyms that have them. i.e., `65' is
-     equivalent to `A'. (This is not so much an abbreviation as an
-     alternate representation.)
-
-   Here are some examples of programmatically binding keys:
-
-
-     ;;;  Bind `my-command' to <f1>
-     (global-set-key 'f1 'my-command)
-     
-     ;;;  Bind `my-command' to Shift-f1
-     (global-set-key '(shift f1) 'my-command)
-     
-     ;;; Bind `my-command' to C-c Shift-f1
-     (global-set-key '[(control c) (shift f1)] 'my-command)
-     
-     ;;; Bind `my-command' to the middle mouse button.
-     (global-set-key 'button2 'my-command)
-     
-     ;;; Bind `my-command' to <META> <CTL> <Right Mouse Button>
-     ;;; in the keymap that is in force when you are running `dired'.
-     (define-key dired-mode-map '(meta control button3) 'my-command)
-
-\1f
-File: xemacs.info,  Node: Key Bindings Using Strings,  Prev: Programmatic Rebinding,  Up: Rebinding
-
-Using Strings for Changing Key Bindings
-.......................................
-
-   For backward compatibility, you can still use strings to represent
-key sequences.  Thus you can use commands like the following:
-
-     ;;; Bind `end-of-line' to C-f
-     (global-set-key "\C-f" 'end-of-line)
-
-   Note, however, that in some cases you may be binding more than one
-key sequence by using a single command.  This situation can arise
-because in ASCII, `C-i' and <TAB> have the same representation.
-Therefore, when Emacs sees:
-
-     (global-set-key "\C-i" 'end-of-line)
-
-   it is unclear whether the user intended to bind `C-i' or <TAB>.  The
-solution XEmacs adopts is to bind both of these key sequences.
-
-   After binding a command to two key sequences with a form like:
-
-             (define-key global-map "\^X\^I" 'command-1)
-
-   it is possible to redefine only one of those sequences like so:
-
-             (define-key global-map [(control x) (control i)] 'command-2)
-             (define-key global-map [(control x) tab] 'command-3)
-
-   This applies only when running under a window system.  If you are
-talking to Emacs through an ASCII-only channel, you do not get any of
-these features.
-
-   Here is a table of pairs of key sequences that behave in a similar
-fashion:
-
-             control h      backspace
-             control l      clear
-             control i      tab
-             control m      return
-             control j      linefeed
-             control [      escape
-             control @      control space
-
index ad966c0..761c545 100644 (file)
@@ -30,6 +30,288 @@ versions, except that the sections entitled "The GNU Manifesto",
 translation approved by the author instead of in the original English.
 
 \1f
+File: xemacs.info,  Node: Keymaps,  Next: Rebinding,  Up: Key Bindings
+
+Keymaps
+-------
+
+   The bindings between characters and command functions are recorded in
+data structures called "keymaps".  Emacs has many of these.  One, the
+"global" keymap, defines the meanings of the single-character keys that
+are defined regardless of major mode.  It is the value of the variable
+`global-map'.
+
+   Each major mode has another keymap, its "local keymap", which
+contains overriding definitions for the single-character keys that are
+redefined in that mode.  Each buffer records which local keymap is
+installed for it at any time, and the current buffer's local keymap is
+the only one that directly affects command execution.  The local keymaps
+for Lisp mode, C mode, and many other major modes always exist even when
+not in use.  They are the values of the variables `lisp-mode-map',
+`c-mode-map', and so on.  For less frequently used major modes, the
+local keymap is sometimes constructed only when the mode is used for the
+first time in a session, to save space.
+
+   There are local keymaps for the minibuffer, too; they contain various
+completion and exit commands.
+
+   * `minibuffer-local-map' is used for ordinary input (no completion).
+
+   * `minibuffer-local-ns-map' is similar, except that <SPC> exits just
+     like <RET>.  This is used mainly for Mocklisp compatibility.
+
+   * `minibuffer-local-completion-map' is for permissive completion.
+
+   * `minibuffer-local-must-match-map' is for strict completion and for
+     cautious completion.
+
+   * `repeat-complex-command-map' is for use in `C-x <ESC>'.
+
+   * `isearch-mode-map' contains the bindings of the special keys which
+     are bound in the pseudo-mode entered with `C-s' and `C-r'.
+
+   Finally, each prefix key has a keymap which defines the key sequences
+that start with it.  For example, `ctl-x-map' is the keymap used for
+characters following a `C-x'.
+
+   * `ctl-x-map' is the variable name for the map used for characters
+     that follow `C-x'.
+
+   * `help-map' is used for characters that follow `C-h'.
+
+   * `esc-map' is for characters that follow <ESC>. All Meta characters
+     are actually defined by this map.
+
+   * `ctl-x-4-map' is for characters that follow `C-x 4'.
+
+   * `mode-specific-map' is for characters that follow `C-c'.
+
+   The definition of a prefix key is the keymap to use for looking up
+the following character.  Sometimes the definition is actually a Lisp
+symbol whose function definition is the following character keymap.  The
+effect is the same, but it provides a command name for the prefix key
+that you can use as a description of what the prefix key is for.  Thus
+the binding of `C-x' is the symbol `Ctl-X-Prefix', whose function
+definition is the keymap for `C-x' commands, the value of `ctl-x-map'.
+
+   Prefix key definitions can appear in either the global map or a
+local map.  The definitions of `C-c', `C-x', `C-h', and <ESC> as prefix
+keys appear in the global map, so these prefix keys are always
+available.  Major modes can locally redefine a key as a prefix by
+putting a prefix key definition for it in the local map.
+
+   A mode can also put a prefix definition of a global prefix character
+such as `C-x' into its local map.  This is how major modes override the
+definitions of certain keys that start with `C-x'.  This case is
+special, because the local definition does not entirely replace the
+global one.  When both the global and local definitions of a key are
+other keymaps, the next character is looked up in both keymaps, with
+the local definition overriding the global one.  The character after the
+`C-x' is looked up in both the major mode's own keymap for redefined
+`C-x' commands and in `ctl-x-map'.  If the major mode's own keymap for
+`C-x' commands contains `nil', the definition from the global keymap
+for `C-x' commands is used.
+
+\1f
+File: xemacs.info,  Node: Rebinding,  Next: Disabling,  Prev: Keymaps,  Up: Key Bindings
+
+Changing Key Bindings
+---------------------
+
+   You can redefine an Emacs key by changing its entry in a keymap.
+You can change the global keymap, in which case the change is effective
+in all major modes except those that have their own overriding local
+definitions for the same key.  Or you can change the current buffer's
+local map, which affects all buffers using the same major mode.
+
+* Menu:
+
+* Interactive Rebinding::      Changing Key Bindings Interactively
+* Programmatic Rebinding::     Changing Key Bindings Programmatically
+* Key Bindings Using Strings:: Using Strings for Changing Key Bindings
+
+\1f
+File: xemacs.info,  Node: Interactive Rebinding,  Next: Programmatic Rebinding,  Up: Rebinding
+
+Changing Key Bindings Interactively
+...................................
+
+`M-x global-set-key <RET> KEY CMD <RET>'
+     Defines KEY globally to run CMD.
+
+`M-x local-set-key <RET> KEYS CMD <RET>'
+     Defines KEY locally (in the major mode now in effect) to run CMD.
+
+`M-x local-unset-key <RET> KEYS <RET>'
+     Removes the local binding of KEY.
+
+   CMD is a symbol naming an interactively-callable function.
+
+   When called interactively, KEY is the next complete key sequence
+that you type.  When called as a function, KEY is a string, a vector of
+events, or a vector of key-description lists as described in the
+`define-key' function description.  The binding goes in the current
+buffer's local map, which is shared with other buffers in the same
+major mode.
+
+   The following example:
+
+     M-x global-set-key <RET> C-f next-line <RET>
+
+redefines `C-f' to move down a line.  The fact that CMD is read second
+makes it serve as a kind of confirmation for KEY.
+
+   These functions offer no way to specify a particular prefix keymap as
+the one to redefine in, but that is not necessary, as you can include
+prefixes in KEY.  KEY is read by reading characters one by one until
+they amount to a complete key (that is, not a prefix key).  Thus, if
+you type `C-f' for KEY, Emacs enters the minibuffer immediately to read
+CMD.  But if you type `C-x', another character is read; if that
+character is `4', another character is read, and so on.  For example,
+
+     M-x global-set-key <RET> C-x 4 $ spell-other-window <RET>
+
+redefines `C-x 4 $' to run the (fictitious) command
+`spell-other-window'.
+
+   The most general way to modify a keymap is the function
+`define-key', used in Lisp code (such as your init file).  `define-key'
+takes three arguments: the keymap, the key to modify in it, and the new
+definition.  *Note Init File::, for an example.
+`substitute-key-definition' is used similarly; it takes three
+arguments, an old definition, a new definition, and a keymap, and
+redefines in that keymap all keys that were previously defined with the
+old definition to have the new definition instead.
+
+\1f
+File: xemacs.info,  Node: Programmatic Rebinding,  Next: Key Bindings Using Strings,  Prev: Interactive Rebinding,  Up: Rebinding
+
+Changing Key Bindings Programmatically
+......................................
+
+   You can use the functions `global-set-key' and `define-key' to
+rebind keys under program control.
+
+``(global-set-key KEYS CMD)''
+     Defines KEYS globally to run CMD.
+
+``(define-key KEYMAP KEYS DEF)''
+     Defines KEYS to run DEF in the keymap KEYMAP.
+
+   KEYMAP is a keymap object.
+
+   KEYS is the sequence of keystrokes to bind.
+
+   DEF is anything that can be a key's definition:
+
+   * `nil', meaning key is undefined in this keymap
+
+   * A command, that is, a Lisp function suitable for interactive
+     calling
+
+   * A string or key sequence vector, which is treated as a keyboard
+     macro
+
+   * A keymap to define a prefix key
+
+   * A symbol so that when the key is looked up, the symbol stands for
+     its function definition, which should at that time be one of the
+     above, or another symbol whose function definition is used, and so
+     on
+
+   * A cons, `(string . defn)', meaning that DEFN is the definition
+     (DEFN should be a valid definition in its own right)
+
+   * A cons, `(keymap . char)', meaning use the definition of CHAR in
+     map KEYMAP
+
+   For backward compatibility, XEmacs allows you to specify key
+sequences as strings.  However, the preferred method is to use the
+representations of key sequences as vectors of keystrokes.  *Note
+Keystrokes::, for more information about the rules for constructing key
+sequences.
+
+   Emacs allows you to abbreviate representations for key sequences in
+most places where there is no ambiguity.  Here are some rules for
+abbreviation:
+
+   * The keysym by itself is equivalent to a list of just that keysym,
+     i.e., `f1' is equivalent to `(f1)'.
+
+   * A keystroke by itself is equivalent to a vector containing just
+     that keystroke, i.e.,  `(control a)' is equivalent to `[(control
+     a)]'.
+
+   * You can use ASCII codes for keysyms that have them. i.e., `65' is
+     equivalent to `A'. (This is not so much an abbreviation as an
+     alternate representation.)
+
+   Here are some examples of programmatically binding keys:
+
+
+     ;;;  Bind `my-command' to <f1>
+     (global-set-key 'f1 'my-command)
+     
+     ;;;  Bind `my-command' to Shift-f1
+     (global-set-key '(shift f1) 'my-command)
+     
+     ;;; Bind `my-command' to C-c Shift-f1
+     (global-set-key '[(control c) (shift f1)] 'my-command)
+     
+     ;;; Bind `my-command' to the middle mouse button.
+     (global-set-key 'button2 'my-command)
+     
+     ;;; Bind `my-command' to <META> <CTL> <Right Mouse Button>
+     ;;; in the keymap that is in force when you are running `dired'.
+     (define-key dired-mode-map '(meta control button3) 'my-command)
+
+\1f
+File: xemacs.info,  Node: Key Bindings Using Strings,  Prev: Programmatic Rebinding,  Up: Rebinding
+
+Using Strings for Changing Key Bindings
+.......................................
+
+   For backward compatibility, you can still use strings to represent
+key sequences.  Thus you can use commands like the following:
+
+     ;;; Bind `end-of-line' to C-f
+     (global-set-key "\C-f" 'end-of-line)
+
+   Note, however, that in some cases you may be binding more than one
+key sequence by using a single command.  This situation can arise
+because in ASCII, `C-i' and <TAB> have the same representation.
+Therefore, when Emacs sees:
+
+     (global-set-key "\C-i" 'end-of-line)
+
+   it is unclear whether the user intended to bind `C-i' or <TAB>.  The
+solution XEmacs adopts is to bind both of these key sequences.
+
+   After binding a command to two key sequences with a form like:
+
+             (define-key global-map "\^X\^I" 'command-1)
+
+   it is possible to redefine only one of those sequences like so:
+
+             (define-key global-map [(control x) (control i)] 'command-2)
+             (define-key global-map [(control x) tab] 'command-3)
+
+   This applies only when running under a window system.  If you are
+talking to Emacs through an ASCII-only channel, you do not get any of
+these features.
+
+   Here is a table of pairs of key sequences that behave in a similar
+fashion:
+
+             control h      backspace
+             control l      clear
+             control i      tab
+             control m      return
+             control j      linefeed
+             control [      escape
+             control @      control space
+
+\1f
 File: xemacs.info,  Node: Disabling,  Prev: Rebinding,  Up: Key Bindings
 
 Disabling Commands
@@ -999,274 +1281,3 @@ Resource List
      resources are used to initialize the variables
      `x-pointer-foreground-color' and `x-pointer-background-color'.
 
-\1f
-File: xemacs.info,  Node: Face Resources,  Next: Widgets,  Prev: Resource List,  Up: X Resources
-
-Face Resources
---------------
-
-   The attributes of faces are also per-frame. They can be specified as:
-
-     Emacs.FACE_NAME.parameter: value
-
-or
-
-     Emacs*FRAME_NAME.FACE_NAME.parameter: value
-
-Faces accept the following resources:
-
-`attributeFont' (class `AttributeFont'): font-name
-     The font of this face.
-
-`attributeForeground' (class `AttributeForeground'): color-name
-`attributeBackground' (class `AttributeBackground'): color-name
-     The foreground and background colors of this face.
-
-`attributeBackgroundPixmap' (class `AttributeBackgroundPixmap'): file-name
-     The name of an XBM file (or XPM file, if your version of Emacs
-     supports XPM), to use as a background stipple.
-
-`attributeUnderline' (class `AttributeUnderline'): boolean
-     Whether text in this face should be underlined.
-
-   All text is displayed in some face, defaulting to the face named
-`default'.  To set the font of normal text, use
-`Emacs*default.attributeFont'. To set it in the frame named `fred', use
-`Emacs*fred.default.attributeFont'.
-
-   These are the names of the predefined faces:
-
-`default'
-     Everything inherits from this.
-
-`bold'
-     If this is not specified in the resource database, Emacs tries to
-     find a bold version of the font of the default face.
-
-`italic'
-     If this is not specified in the resource database, Emacs tries to
-     find an italic version of the font of the default face.
-
-`bold-italic'
-     If this is not specified in the resource database, Emacs tries to
-     find a bold-italic version of the font of the default face.
-
-`modeline'
-     This is the face that the modeline is displayed in.  If not
-     specified in the resource database, it is determined from the
-     default face by reversing the foreground and background colors.
-
-`highlight'
-     This is the face that highlighted extents (for example, Info
-     cross-references and possible completions, when the mouse passes
-     over them) are displayed in.
-
-`left-margin'
-`right-margin'
-     These are the faces that the left and right annotation margins are
-     displayed in.
-
-`zmacs-region'
-     This is the face that mouse selections are displayed in.
-
-`isearch'
-     This is the face that the matched text being searched for is
-     displayed in.
-
-`info-node'
-     This is the face of info menu items.  If unspecified, it is copied
-     from `bold-italic'.
-
-`info-xref'
-     This is the face of info cross-references.  If unspecified, it is
-     copied from `bold'. (Note that, when the mouse passes over a
-     cross-reference, the cross-reference's face is determined from a
-     combination of the `info-xref' and `highlight' faces.)
-
-   Other packages might define their own faces; to see a list of all
-faces, use any of the interactive face-manipulation commands such as
-`set-face-font' and type `?' when you are prompted for the name of a
-face.
-
-   If the `bold', `italic', and `bold-italic' faces are not specified
-in the resource database, then XEmacs attempts to derive them from the
-font of the default face.  It can only succeed at this if you have
-specified the default font using the XLFD (X Logical Font Description)
-format, which looks like
-
-     *-courier-medium-r-*-*-*-120-*-*-*-*-*-*
-
-If you use any of the other, less strict font name formats, some of
-which look like
-
-     lucidasanstypewriter-12
-     fixed
-     9x13
-
-   then XEmacs won't be able to guess the names of the bold and italic
-versions.  All X fonts can be referred to via XLFD-style names, so you
-should use those forms.  See the man pages for `X(1)', `xlsfonts(1)',
-and `xfontsel(1)'.
-
-\1f
-File: xemacs.info,  Node: Widgets,  Next: Menubar Resources,  Prev: Face Resources,  Up: X Resources
-
-Widgets
--------
-
-   There are several structural widgets between the terminal EmacsFrame
-widget and the top level ApplicationShell; the exact names and types of
-these widgets change from release to release (for example, they changed
-between 19.8 and 19.9, 19.9 and 19.10, and 19.10 and 19.12) and are
-subject to further change in the future, so you should avoid mentioning
-them in your resource database.  The above-mentioned syntaxes should be
-forward- compatible.  As of 19.13, the exact widget hierarchy is as
-follows:
-
-     INVOCATION-NAME            "shell"       "container"     FRAME-NAME
-     x-emacs-application-class  "EmacsShell"  "EmacsManager"  "EmacsFrame"
-
-   where INVOCATION-NAME is the terminal component of the name of the
-XEmacs executable (usually `xemacs'), and `x-emacs-application-class'
-is generally `Emacs'.
-
-\1f
-File: xemacs.info,  Node: Menubar Resources,  Prev: Widgets,  Up: X Resources
-
-Menubar Resources
------------------
-
-   As the menubar is implemented as a widget which is not a part of
-XEmacs proper, it does not use the face mechanism for specifying fonts
-and colors: It uses whatever resources are appropriate to the type of
-widget which is used to implement it.
-
-   If Emacs was compiled to use only the Lucid Motif-lookalike menu
-widgets, then one way to specify the font of the menubar would be
-
-     Emacs*menubar*font: *-courier-medium-r-*-*-*-120-*-*-*-*-*-*
-
-   If both the Lucid Motif-lookalike menu widgets and X Font Sets are
-configured to allow multilingual menubars, then one uses
-
-     *menubar*FontSet:       -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*, \
-                             -*-*-*-*-*-*-*-120-*-jisx0208.1983-0
-
-   That would specify fonts for a Japanese menubar.  Specifying only one
-XLFD is acceptable; specifying more than one for a given registry
-(language) is also allowed.  When X Font Sets are configured, some .font
-resources (eg, menubars) are ignored in favor of the corresponding
-.fontSet resources.
-
-   If the Motif library is being used, then one would have to use
-
-     Emacs*menubar*fontList: *-courier-medium-r-*-*-*-120-*-*-*-*-*-*
-
-   because the Motif library uses the `fontList' resource name instead
-of `font', which has subtly different semantics.
-
-   The same is true of the scrollbars: They accept whichever resources
-are appropriate for the toolkit in use.
-
-\1f
-File: xemacs.info,  Node: Quitting,  Next: Lossage,  Prev: Customization,  Up: Top
-
-Quitting and Aborting
-=====================
-
-`C-g'
-     Quit.  Cancel running or partially typed command.
-
-`C-]'
-     Abort innermost recursive editing level and cancel the command
-     which invoked it (`abort-recursive-edit').
-
-`M-x top-level'
-     Abort all recursive editing levels that are currently executing.
-
-`C-x u'
-     Cancel an already-executed command, usually (`undo').
-
-   There are two ways of cancelling commands which are not finished
-executing: "quitting" with `C-g', and "aborting" with `C-]' or `M-x
-top-level'.  Quitting is cancelling a partially typed command or one
-which is already running.  Aborting is getting out of a recursive
-editing level and cancelling the command that invoked the recursive
-edit.
-
-   Quitting with `C-g' is used for getting rid of a partially typed
-command or a numeric argument that you don't want.  It also stops a
-running command in the middle in a relatively safe way, so you can use
-it if you accidentally start executing a command that takes a long
-time.  In particular, it is safe to quit out of killing; either your
-text will ALL still be there, or it will ALL be in the kill ring (or
-maybe both).  Quitting an incremental search does special things
-documented under searching; in general, it may take two successive
-`C-g' characters to get out of a search.  `C-g' works by setting the
-variable `quit-flag' to `t' the instant `C-g' is typed; Emacs Lisp
-checks this variable frequently and quits if it is non-`nil'.  `C-g' is
-only actually executed as a command if it is typed while Emacs is
-waiting for input.
-
-   If you quit twice in a row before the first `C-g' is recognized, you
-activate the "emergency escape" feature and return to the shell.  *Note
-Emergency Escape::.
-
-   You can use `C-]' (`abort-recursive-edit') to get out of a recursive
-editing level and cancel the command which invoked it.  Quitting with
-`C-g' does not do this, and could not do this because it is used to
-cancel a partially typed command within the recursive editing level.
-Both operations are useful.  For example, if you are in the Emacs
-debugger (*note Lisp Debug::) and have typed `C-u 8' to enter a numeric
-argument, you can cancel that argument with `C-g' and remain in the
-debugger.
-
-   The command `M-x top-level' is equivalent to "enough" `C-]' commands
-to get you out of all the levels of recursive edits that you are in.
-`C-]' only gets you out one level at a time, but `M-x top-level' goes
-out all levels at once.  Both `C-]' and `M-x top-level' are like all
-other commands and unlike `C-g' in that they are effective only when
-Emacs is ready for a command.  `C-]' is an ordinary key and has its
-meaning only because of its binding in the keymap.  *Note Recursive
-Edit::.
-
-   `C-x u' (`undo') is not strictly speaking a way of cancelling a
-command, but you can think of it as cancelling a command already
-finished executing.  *Note Undo::.
-
-\1f
-File: xemacs.info,  Node: Lossage,  Next: Bugs,  Prev: Quitting,  Up: Top
-
-Dealing With Emacs Trouble
-==========================
-
-   This section describes various conditions in which Emacs fails to
-work, and how to recognize them and correct them.
-
-* Menu:
-
-* Stuck Recursive::    `[...]' in mode line around the parentheses.
-* Screen Garbled::     Garbage on the screen.
-* Text Garbled::       Garbage in the text.
-* Unasked-for Search:: Spontaneous entry to incremental search.
-* Emergency Escape::   Emergency escape---
-                        What to do if Emacs stops responding.
-* Total Frustration::  When you are at your wits' end.
-
-\1f
-File: xemacs.info,  Node: Stuck Recursive,  Next: Screen Garbled,  Prev: Lossage,  Up: Lossage
-
-Recursive Editing Levels
-------------------------
-
-   Recursive editing levels are important and useful features of Emacs,
-but they can seem like malfunctions to the user who does not understand
-them.
-
-   If the mode line has square brackets `[...]' around the parentheses
-that contain the names of the major and minor modes, you have entered a
-recursive editing level.  If you did not do this on purpose, or if you
-don't understand what that means, you should just get out of the
-recursive editing level.  To do so, type `M-x top-level'.  This is
-called getting back to top level.  *Note Recursive Edit::.
-
index 4192a79..8214619 100644 (file)
@@ -30,6 +30,277 @@ versions, except that the sections entitled "The GNU Manifesto",
 translation approved by the author instead of in the original English.
 
 \1f
+File: xemacs.info,  Node: Face Resources,  Next: Widgets,  Prev: Resource List,  Up: X Resources
+
+Face Resources
+--------------
+
+   The attributes of faces are also per-frame. They can be specified as:
+
+     Emacs.FACE_NAME.parameter: value
+
+or
+
+     Emacs*FRAME_NAME.FACE_NAME.parameter: value
+
+Faces accept the following resources:
+
+`attributeFont' (class `AttributeFont'): font-name
+     The font of this face.
+
+`attributeForeground' (class `AttributeForeground'): color-name
+`attributeBackground' (class `AttributeBackground'): color-name
+     The foreground and background colors of this face.
+
+`attributeBackgroundPixmap' (class `AttributeBackgroundPixmap'): file-name
+     The name of an XBM file (or XPM file, if your version of Emacs
+     supports XPM), to use as a background stipple.
+
+`attributeUnderline' (class `AttributeUnderline'): boolean
+     Whether text in this face should be underlined.
+
+   All text is displayed in some face, defaulting to the face named
+`default'.  To set the font of normal text, use
+`Emacs*default.attributeFont'. To set it in the frame named `fred', use
+`Emacs*fred.default.attributeFont'.
+
+   These are the names of the predefined faces:
+
+`default'
+     Everything inherits from this.
+
+`bold'
+     If this is not specified in the resource database, Emacs tries to
+     find a bold version of the font of the default face.
+
+`italic'
+     If this is not specified in the resource database, Emacs tries to
+     find an italic version of the font of the default face.
+
+`bold-italic'
+     If this is not specified in the resource database, Emacs tries to
+     find a bold-italic version of the font of the default face.
+
+`modeline'
+     This is the face that the modeline is displayed in.  If not
+     specified in the resource database, it is determined from the
+     default face by reversing the foreground and background colors.
+
+`highlight'
+     This is the face that highlighted extents (for example, Info
+     cross-references and possible completions, when the mouse passes
+     over them) are displayed in.
+
+`left-margin'
+`right-margin'
+     These are the faces that the left and right annotation margins are
+     displayed in.
+
+`zmacs-region'
+     This is the face that mouse selections are displayed in.
+
+`isearch'
+     This is the face that the matched text being searched for is
+     displayed in.
+
+`info-node'
+     This is the face of info menu items.  If unspecified, it is copied
+     from `bold-italic'.
+
+`info-xref'
+     This is the face of info cross-references.  If unspecified, it is
+     copied from `bold'. (Note that, when the mouse passes over a
+     cross-reference, the cross-reference's face is determined from a
+     combination of the `info-xref' and `highlight' faces.)
+
+   Other packages might define their own faces; to see a list of all
+faces, use any of the interactive face-manipulation commands such as
+`set-face-font' and type `?' when you are prompted for the name of a
+face.
+
+   If the `bold', `italic', and `bold-italic' faces are not specified
+in the resource database, then XEmacs attempts to derive them from the
+font of the default face.  It can only succeed at this if you have
+specified the default font using the XLFD (X Logical Font Description)
+format, which looks like
+
+     *-courier-medium-r-*-*-*-120-*-*-*-*-*-*
+
+If you use any of the other, less strict font name formats, some of
+which look like
+
+     lucidasanstypewriter-12
+     fixed
+     9x13
+
+   then XEmacs won't be able to guess the names of the bold and italic
+versions.  All X fonts can be referred to via XLFD-style names, so you
+should use those forms.  See the man pages for `X(1)', `xlsfonts(1)',
+and `xfontsel(1)'.
+
+\1f
+File: xemacs.info,  Node: Widgets,  Next: Menubar Resources,  Prev: Face Resources,  Up: X Resources
+
+Widgets
+-------
+
+   There are several structural widgets between the terminal EmacsFrame
+widget and the top level ApplicationShell; the exact names and types of
+these widgets change from release to release (for example, they changed
+between 19.8 and 19.9, 19.9 and 19.10, and 19.10 and 19.12) and are
+subject to further change in the future, so you should avoid mentioning
+them in your resource database.  The above-mentioned syntaxes should be
+forward- compatible.  As of 19.13, the exact widget hierarchy is as
+follows:
+
+     INVOCATION-NAME            "shell"       "container"     FRAME-NAME
+     x-emacs-application-class  "EmacsShell"  "EmacsManager"  "EmacsFrame"
+
+   where INVOCATION-NAME is the terminal component of the name of the
+XEmacs executable (usually `xemacs'), and `x-emacs-application-class'
+is generally `Emacs'.
+
+\1f
+File: xemacs.info,  Node: Menubar Resources,  Prev: Widgets,  Up: X Resources
+
+Menubar Resources
+-----------------
+
+   As the menubar is implemented as a widget which is not a part of
+XEmacs proper, it does not use the face mechanism for specifying fonts
+and colors: It uses whatever resources are appropriate to the type of
+widget which is used to implement it.
+
+   If Emacs was compiled to use only the Lucid Motif-lookalike menu
+widgets, then one way to specify the font of the menubar would be
+
+     Emacs*menubar*font: *-courier-medium-r-*-*-*-120-*-*-*-*-*-*
+
+   If both the Lucid Motif-lookalike menu widgets and X Font Sets are
+configured to allow multilingual menubars, then one uses
+
+     *menubar*FontSet:       -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*, \
+                             -*-*-*-*-*-*-*-120-*-jisx0208.1983-0
+
+   That would specify fonts for a Japanese menubar.  Specifying only one
+XLFD is acceptable; specifying more than one for a given registry
+(language) is also allowed.  When X Font Sets are configured, some .font
+resources (eg, menubars) are ignored in favor of the corresponding
+.fontSet resources.
+
+   If the Motif library is being used, then one would have to use
+
+     Emacs*menubar*fontList: *-courier-medium-r-*-*-*-120-*-*-*-*-*-*
+
+   because the Motif library uses the `fontList' resource name instead
+of `font', which has subtly different semantics.
+
+   The same is true of the scrollbars: They accept whichever resources
+are appropriate for the toolkit in use.
+
+\1f
+File: xemacs.info,  Node: Quitting,  Next: Lossage,  Prev: Customization,  Up: Top
+
+Quitting and Aborting
+=====================
+
+`C-g'
+     Quit.  Cancel running or partially typed command.
+
+`C-]'
+     Abort innermost recursive editing level and cancel the command
+     which invoked it (`abort-recursive-edit').
+
+`M-x top-level'
+     Abort all recursive editing levels that are currently executing.
+
+`C-x u'
+     Cancel an already-executed command, usually (`undo').
+
+   There are two ways of cancelling commands which are not finished
+executing: "quitting" with `C-g', and "aborting" with `C-]' or `M-x
+top-level'.  Quitting is cancelling a partially typed command or one
+which is already running.  Aborting is getting out of a recursive
+editing level and cancelling the command that invoked the recursive
+edit.
+
+   Quitting with `C-g' is used for getting rid of a partially typed
+command or a numeric argument that you don't want.  It also stops a
+running command in the middle in a relatively safe way, so you can use
+it if you accidentally start executing a command that takes a long
+time.  In particular, it is safe to quit out of killing; either your
+text will ALL still be there, or it will ALL be in the kill ring (or
+maybe both).  Quitting an incremental search does special things
+documented under searching; in general, it may take two successive
+`C-g' characters to get out of a search.  `C-g' works by setting the
+variable `quit-flag' to `t' the instant `C-g' is typed; Emacs Lisp
+checks this variable frequently and quits if it is non-`nil'.  `C-g' is
+only actually executed as a command if it is typed while Emacs is
+waiting for input.
+
+   If you quit twice in a row before the first `C-g' is recognized, you
+activate the "emergency escape" feature and return to the shell.  *Note
+Emergency Escape::.
+
+   You can use `C-]' (`abort-recursive-edit') to get out of a recursive
+editing level and cancel the command which invoked it.  Quitting with
+`C-g' does not do this, and could not do this because it is used to
+cancel a partially typed command within the recursive editing level.
+Both operations are useful.  For example, if you are in the Emacs
+debugger (*note Lisp Debug::) and have typed `C-u 8' to enter a numeric
+argument, you can cancel that argument with `C-g' and remain in the
+debugger.
+
+   The command `M-x top-level' is equivalent to "enough" `C-]' commands
+to get you out of all the levels of recursive edits that you are in.
+`C-]' only gets you out one level at a time, but `M-x top-level' goes
+out all levels at once.  Both `C-]' and `M-x top-level' are like all
+other commands and unlike `C-g' in that they are effective only when
+Emacs is ready for a command.  `C-]' is an ordinary key and has its
+meaning only because of its binding in the keymap.  *Note Recursive
+Edit::.
+
+   `C-x u' (`undo') is not strictly speaking a way of cancelling a
+command, but you can think of it as cancelling a command already
+finished executing.  *Note Undo::.
+
+\1f
+File: xemacs.info,  Node: Lossage,  Next: Bugs,  Prev: Quitting,  Up: Top
+
+Dealing With Emacs Trouble
+==========================
+
+   This section describes various conditions in which Emacs fails to
+work, and how to recognize them and correct them.
+
+* Menu:
+
+* Stuck Recursive::    `[...]' in mode line around the parentheses.
+* Screen Garbled::     Garbage on the screen.
+* Text Garbled::       Garbage in the text.
+* Unasked-for Search:: Spontaneous entry to incremental search.
+* Emergency Escape::   Emergency escape---
+                        What to do if Emacs stops responding.
+* Total Frustration::  When you are at your wits' end.
+
+\1f
+File: xemacs.info,  Node: Stuck Recursive,  Next: Screen Garbled,  Prev: Lossage,  Up: Lossage
+
+Recursive Editing Levels
+------------------------
+
+   Recursive editing levels are important and useful features of Emacs,
+but they can seem like malfunctions to the user who does not understand
+them.
+
+   If the mode line has square brackets `[...]' around the parentheses
+that contain the names of the major and minor modes, you have entered a
+recursive editing level.  If you did not do this on purpose, or if you
+don't understand what that means, you should just get out of the
+recursive editing level.  To do so, type `M-x top-level'.  This is
+called getting back to top level.  *Note Recursive Edit::.
+
+\1f
 File: xemacs.info,  Node: Screen Garbled,  Next: Text Garbled,  Prev: Stuck Recursive,  Up: Lossage
 
 Garbage on the Screen
@@ -333,785 +604,3 @@ net. You should also check the `FAQ' in `/pub/xemacs' on our anonymous
 FTP server. It provides some introductory information and help for
 initial configuration problems.
 
-\1f
-File: xemacs.info,  Node: Glossary,  Next: Manifesto,  Prev: Intro,  Up: Top
-
-Glossary
-********
-
-Abbrev
-     An abbrev is a text string which expands into a different text
-     string when present in the buffer.  For example, you might define
-     a short word as an abbrev for a long phrase that you want to insert
-     frequently.  *Note Abbrevs::.
-
-Aborting
-     Aborting means getting out of a recursive edit (q.v.).  You can use
-     the commands `C-]' and `M-x top-level' for this.  *Note Quitting::.
-
-Auto Fill mode
-     Auto Fill mode is a minor mode in which text you insert is
-     automatically broken into lines of fixed width.  *Note Filling::.
-
-Auto Saving
-     Auto saving means that Emacs automatically stores the contents of
-     an Emacs buffer in a specially-named file so the information will
-     not be lost if the buffer is lost due to a system error or user
-     error.  *Note Auto Save::.
-
-Backup File
-     A backup file records the contents that a file had before the
-     current editing session.  Emacs creates backup files automatically
-     to help you track down or cancel changes you later regret.  *Note
-     Backup::.
-
-Balance Parentheses
-     Emacs can balance parentheses manually or automatically.  Manual
-     balancing is done by the commands to move over balanced expressions
-     (*note Lists::).  Automatic balancing is done by blinking the
-     parenthesis that matches one just inserted (*note Matching Parens:
-     Matching.).
-
-Bind
-     To bind a key is to change its binding (q.v.).  *Note Rebinding::.
-
-Binding
-     A key gets its meaning in Emacs by having a binding which is a
-     command (q.v.), a Lisp function that is run when the key is typed.
-     *Note Binding: Commands.  Customization often involves rebinding a
-     character to a different command function.  The bindings of all
-     keys are recorded in the keymaps (q.v.).  *Note Keymaps::.
-
-Blank Lines
-     Blank lines are lines that contain only whitespace.  Emacs has
-     several commands for operating on the blank lines in a buffer.
-
-Buffer
-     The buffer is the basic editing unit; one buffer corresponds to one
-     piece of text being edited.  You can have several buffers, but at
-     any time you are editing only one, the `selected' buffer, though
-     several buffers can be visible when you are using multiple
-     windows.  *Note Buffers::.
-
-Buffer Selection History
-     Emacs keeps a buffer selection history which records how recently
-     each Emacs buffer was selected.  Emacs uses this list when
-     choosing a buffer to select.  *Note Buffers::.
-
-C-
-     `C' in the name of a character is an abbreviation for Control.
-     *Note C-: Keystrokes.
-
-C-M-
-     `C-M-' in the name of a character is an abbreviation for
-     Control-Meta.  *Note C-M-: Keystrokes.
-
-Case Conversion
-     Case conversion means changing text from upper case to lower case
-     or vice versa.  *Note Case::, for the commands for case conversion.
-
-Characters
-     Characters form the contents of an Emacs buffer; also, Emacs
-     commands are invoked by keys (q.v.), which are sequences of one or
-     more characters.  *Note Keystrokes::.
-
-Command
-     A command is a Lisp function specially defined to be able to serve
-     as a key binding in Emacs.  When you type a key (q.v.), Emacs
-     looks up its binding (q.v.) in the relevant keymaps (q.v.) to find
-     the command to run.  *Note Commands::.
-
-Command Name
-     A command name is the name of a Lisp symbol which is a command
-     (*note Commands::).  You can invoke any command by its name using
-     `M-x' (*note M-x::).
-
-Comments
-     A comment is text in a program which is intended only for the
-     people reading the program, and is marked specially so that it
-     will be ignored when the program is loaded or compiled.  Emacs
-     offers special commands for creating, aligning, and killing
-     comments.  *Note Comments::.
-
-Compilation
-     Compilation is the process of creating an executable program from
-     source code.  Emacs has commands for compiling files of Emacs Lisp
-     code (*note Lisp Libraries::) and programs in C and other languages
-     (*note Compilation::).
-
-Complete Key
-     A complete key is a character or sequence of characters which,
-     when typed by the user, fully specifies one action to be performed
-     by Emacs.  For example, `X' and `Control-f' and `Control-x m' are
-     keys.  Keys derive their meanings from being bound (q.v.) to
-     commands (q.v.).  Thus, `X' is conventionally bound to a command
-     to insert `X' in the buffer; `C-x m' is conventionally bound to a
-     command to begin composing a mail message. *Note Keystrokes::.
-
-Completion
-     When Emacs automatically fills an abbreviation for a name into the
-     entire name, that process is called completion.  Completion is
-     done for minibuffer (q.v.) arguments when the set of possible
-     valid inputs is known; for example, on command names, buffer
-     names, and file names.  Completion occurs when you type <TAB>,
-     <SPC>, or <RET>.  *Note Completion::.
-
-Continuation Line
-     When a line of text is longer than the width of the frame, it
-     takes up more than one screen line when displayed.  We say that the
-     text line is continued, and all screen lines used for it after the
-     first are called continuation lines.  *Note Continuation: Basic.
-
-Control-Character
-     ASCII characters with octal codes 0 through 037, and also code
-     0177, do not have graphic images assigned to them.  These are the
-     control characters.  Any control character can be typed by holding
-     down the <CTRL> key and typing some other character; some have
-     special keys on the keyboard.  <RET>, <TAB>, <ESC>, <LFD>, and
-     <DEL> are all control characters.  *Note Keystrokes::.
-
-Copyleft
-     A copyleft is a notice giving the public legal permission to
-     redistribute a program or other work of art.  Copylefts are used
-     by leftists to enrich the public just as copyrights are used by
-     rightists to gain power over the public.
-
-Current Buffer
-     The current buffer in Emacs is the Emacs buffer on which most
-     editing commands operate.  You can select any Emacs buffer as the
-     current one.  *Note Buffers::.
-
-Current Line
-     The line point is on (*note Point::).
-
-Current Paragraph
-     The paragraph that point is in.  If point is between paragraphs,
-     the current paragraph is the one that follows point.  *Note
-     Paragraphs::.
-
-Current Defun
-     The defun (q.v.) that point is in.  If point is between defuns, the
-     current defun is the one that follows point.  *Note Defuns::.
-
-Cursor
-     The cursor is the rectangle on the screen which indicates the
-     position called point (q.v.) at which insertion and deletion takes
-     place.  The cursor is on or under the character that follows
-     point.  Often people speak of `the cursor' when, strictly
-     speaking, they mean `point'.  *Note Cursor: Basic.
-
-Customization
-     Customization is making minor changes in the way Emacs works.  It
-     is often done by setting variables (*note Variables::) or by
-     rebinding keys (*note Keymaps::).
-
-Default Argument
-     The default for an argument is the value that is used if you do not
-     specify one.  When Emacs prompts you in the minibuffer for an
-     argument, the default argument is used if you just type <RET>.
-     *Note Minibuffer::.
-
-Default Directory
-     When you specify a file name that does not start with `/' or `~',
-     it is interpreted relative to the current buffer's default
-     directory.  *Note Default Directory: Minibuffer File.
-
-Defun
-     A defun is a list at the top level of parenthesis or bracket
-     structure in a program.  It is so named because most such lists in
-     Lisp programs are calls to the Lisp function `defun'.  *Note
-     Defuns::.
-
-<DEL>
-     The <DEL> character runs the command that deletes one character of
-     text.  *Note DEL: Basic.
-
-Deletion
-     Deleting text means erasing it without saving it.  Emacs deletes
-     text only when it is expected not to be worth saving (all
-     whitespace, or only one character).  The alternative is killing
-     (q.v.).  *Note Deletion: Killing.
-
-Deletion of Files
-     Deleting a file means removing it from the file system.  *Note
-     Misc File Ops::.
-
-Deletion of Messages
-     Deleting a message means flagging it to be eliminated from your
-     mail file.  Until the mail file is expunged, you can undo this by
-     undeleting the message.
-
-Deletion of Frames
-     When working under the multi-frame X-based version of XEmacs, you
-     can delete individual frames using the Close menu item from the
-     File menu.
-
-Deletion of Windows
-     When you delete a subwindow of an Emacs frame, you eliminate it
-     from the frame.  Other windows expand to use up the space.  The
-     deleted window can never come back, but no actual text is lost.
-     *Note Windows::.
-
-Directory
-     Files in the Unix file system are grouped into file directories.
-     *Note Directories: ListDir.
-
-Dired
-     Dired is the Emacs facility that displays the contents of a file
-     directory and allows you to "edit the directory", performing
-     operations on the files in the directory.  *Note Dired::.
-
-Disabled Command
-     A disabled command is one that you may not run without special
-     confirmation.  Commands are usually disabled because they are
-     confusing for beginning users.  *Note Disabling::.
-
-Dribble File
-     A file into which Emacs writes all the characters that the user
-     types on the keyboard.  Dribble files are used to make a record for
-     debugging Emacs bugs.  Emacs does not make a dribble file unless
-     you tell it to.  *Note Bugs::.
-
-Echo Area
-     The area at the bottom of the Emacs frame which is used for
-     echoing the arguments to commands, for asking questions, and for
-     printing brief messages (including error messages).  *Note Echo
-     Area::.
-
-Echoing
-     Echoing refers to acknowledging the receipt of commands by
-     displaying them (in the echo area).  Emacs never echoes
-     single-character keys; longer keys echo only if you pause while
-     typing them.
-
-Error
-     An error occurs when an Emacs command cannot execute in the current
-     circumstances.  When an error occurs, execution of the command
-     stops (unless the command has been programmed to do otherwise) and
-     Emacs reports the error by printing an error message (q.v.).
-     Type-ahead is discarded.  Then Emacs is ready to read another
-     editing command.
-
-Error Messages
-     Error messages are single lines of output printed by Emacs when the
-     user asks for something impossible to do (such as killing text
-     forward when point is at the end of the buffer).  They appear in
-     the echo area, accompanied by a beep.
-
-<ESC>
-     <ESC> is a character used as a prefix for typing Meta characters on
-     keyboards lacking a <META> key.  Unlike the <META> key (which,
-     like the <SHIFT> key, is held down while another character is
-     typed), the <ESC> key is pressed and released, and applies to the
-     next character typed.
-
-Fill Prefix
-     The fill prefix is a string that Emacs enters at the beginning of
-     each line when it performs filling.  It is not regarded as part of
-     the text to be filled.  *Note Filling::.
-
-Filling
-     Filling text means moving text from line to line so that all the
-     lines are approximately the same length.  *Note Filling::.
-
-Frame
-     When running Emacs on a TTY terminal, "frame" means the terminal's
-     screen.  When running Emacs under X, you can have multiple frames,
-     each corresponding to a top-level X window and each looking like
-     the screen on a TTY.  Each frame contains one or more
-     non-overlapping Emacs windows (possibly with associated
-     scrollbars, under X), an echo area, and (under X) possibly a
-     menubar, toolbar, and/or gutter.
-
-Global
-     Global means `independent of the current environment; in effect
-     throughout Emacs'.  It is the opposite of local (q.v.).  Examples
-     of the use of `global' appear below.
-
-Global Abbrev
-     A global definition of an abbrev (q.v.) is effective in all major
-     modes that do not have local (q.v.) definitions for the same
-     abbrev.  *Note Abbrevs::.
-
-Global Keymap
-     The global keymap (q.v.) contains key bindings that are in effect
-     unless local key bindings in a major mode's local keymap (q.v.)
-     override them.*Note Keymaps::.
-
-Global Substitution
-     Global substitution means replacing each occurrence of one string
-     by another string through a large amount of text.  *Note Replace::.
-
-Global Variable
-     The global value of a variable (q.v.) takes effect in all buffers
-     that do not have their own local (q.v.) values for the variable.
-     *Note Variables::.
-
-Graphic Character
-     Graphic characters are those assigned pictorial images rather than
-     just names.  All the non-Meta (q.v.) characters except for the
-     Control (q.v.) character are graphic characters.  These include
-     letters, digits, punctuation, and spaces; they do not include
-     <RET> or <ESC>.  In Emacs, typing a graphic character inserts that
-     character (in ordinary editing modes).  *Note Basic Editing: Basic.
-
-Grinding
-     Grinding means adjusting the indentation in a program to fit the
-     nesting structure.  *Note Grinding: Indentation.
-
-Hardcopy
-     Hardcopy means printed output.  Emacs has commands for making
-     printed listings of text in Emacs buffers.  *Note Hardcopy::.
-
-<HELP>
-     You can type <HELP> at any time to ask what options you have, or
-     to ask what any command does.  <HELP> is really `Control-h'.
-     *Note Help::.
-
-Inbox
-     An inbox is a file in which mail is delivered by the operating
-     system.  Some mail handlers transfers mail from inboxes to mail
-     files (q.v.) in which the mail is then stored permanently or until
-     explicitly deleted.
-
-Indentation
-     Indentation means blank space at the beginning of a line.  Most
-     programming languages have conventions for using indentation to
-     illuminate the structure of the program, and Emacs has special
-     features to help you set up the correct indentation.  *Note
-     Indentation::.
-
-Insertion
-     Insertion means copying text into the buffer, either from the
-     keyboard or from some other place in Emacs.
-
-Justification
-     Justification means adding extra spaces to lines of text to make
-     them come exactly to a specified width.  *Note Justification:
-     Filling.
-
-Keyboard Macros
-     Keyboard macros are a way of defining new Emacs commands from
-     sequences of existing ones, with no need to write a Lisp program.
-     *Note Keyboard Macros::.
-
-Key
-     A key is a sequence of characters that, when input to Emacs,
-     specify or begin to specify a single action for Emacs to perform.
-     That is, the sequence is considered a single unit.  If the key is
-     enough to specify one action, it is a complete key (q.v.); if it
-     is less than enough, it is a prefix key (q.v.).  *Note
-     Keystrokes::.
-
-Keymap
-     The keymap is the data structure that records the bindings (q.v.)
-     of keys to the commands that they run.  For example, the keymap
-     binds the character `C-n' to the command function `next-line'.
-     *Note Keymaps::.
-
-Kill Ring
-     The kill ring is the place where all text you have killed recently
-     is saved.  You can re-insert any of the killed text still in the
-     ring; this is called yanking (q.v.).  *Note Yanking::.
-
-Killing
-     Killing means erasing text and saving it on the kill ring so it
-     can be yanked (q.v.) later.  Some other systems call this
-     "cutting."  Most Emacs commands to erase text do killing, as
-     opposed to deletion (q.v.).  *Note Killing::.
-
-Killing Jobs
-     Killing a job (such as, an invocation of Emacs) means making it
-     cease to exist.  Any data within it, if not saved in a file, is
-     lost.  *Note Exiting::.
-
-List
-     A list is, approximately, a text string beginning with an open
-     parenthesis and ending with the matching close parenthesis.  In C
-     mode and other non-Lisp modes, groupings surrounded by other kinds
-     of matched delimiters appropriate to the language, such as braces,
-     are also considered lists.  Emacs has special commands for many
-     operations on lists.  *Note Lists::.
-
-Local
-     Local means `in effect only in a particular context'; the relevant
-     kind of context is a particular function execution, a particular
-     buffer, or a particular major mode.  Local is the opposite of
-     `global' (q.v.).  Specific uses of `local' in Emacs terminology
-     appear below.
-
-Local Abbrev
-     A local abbrev definition is effective only if a particular major
-     mode is selected.  In that major mode, it overrides any global
-     definition for the same abbrev.  *Note Abbrevs::.
-
-Local Keymap
-     A local keymap is used in a particular major mode; the key bindings
-     (q.v.) in the current local keymap override global bindings of the
-     same keys.  *Note Keymaps::.
-
-Local Variable
-     A local value of a variable (q.v.) applies to only one buffer.
-     *Note Locals::.
-
-M-
-     `M-' in the name of a character is an abbreviation for <META>, one
-     of the modifier keys that can accompany any character.  *Note
-     Keystrokes::.
-
-M-C-
-     `M-C-' in the name of a character is an abbreviation for
-     Control-Meta; it means the same thing as `C-M-'.  If your terminal
-     lacks a real <META> key, you type a Control-Meta character by
-     typing <ESC> and then typing the corresponding Control character.
-     *Note C-M-: Keystrokes.
-
-M-x
-     `M-x' is the key which is used to call an Emacs command by name.
-     You use it to call commands that are not bound to keys.  *Note
-     M-x::.
-
-Mail
-     Mail means messages sent from one user to another through the
-     computer system, to be read at the recipient's convenience.  Emacs
-     has commands for composing and sending mail, and for reading and
-     editing the mail you have received.  *Note Sending Mail::.
-
-Major Mode
-     The major modes are a mutually exclusive set of options each of
-     which configures Emacs for editing a certain sort of text.
-     Ideally, each programming language has its own major mode.  *Note
-     Major Modes::.
-
-Mark
-     The mark points to a position in the text.  It specifies one end
-     of the region (q.v.), point being the other end.  Many commands
-     operate on the whole region, that is, all the text from point to
-     the mark.  *Note Mark::.
-
-Mark Ring
-     The mark ring is used to hold several recent previous locations of
-     the mark, just in case you want to move back to them.  *Note Mark
-     Ring::.
-
-Message
-     See `mail'.
-
-Meta
-     Meta is the name of a modifier bit which a command character may
-     have.  It is present in a character if the character is typed with
-     the <META> key held down.  Such characters are given names that
-     start with `Meta-'.  For example, `Meta-<' is typed by holding down
-     <META> and at the same time typing `<' (which itself is done, on
-     most terminals, by holding down <SHIFT> and typing `,').  *Note
-     Meta: Keystrokes.
-
-Meta Character
-     A Meta character is one whose character code includes the Meta bit.
-
-Minibuffer
-     The minibuffer is the window that Emacs displays inside the echo
-     area (q.v.) when it prompts you for arguments to commands.  *Note
-     Minibuffer::.
-
-Minor Mode
-     A minor mode is an optional feature of Emacs which can be switched
-     on or off independent of the major mode.  Each minor mode has a
-     command to turn it on or off.  *Note Minor Modes::.
-
-Mode Line
-     The mode line is the line at the bottom of each text window (q.v.),
-     which gives status information on the buffer displayed in that
-     window.  *Note Mode Line::.
-
-Modified Buffer
-     A buffer (q.v.) is modified if its text has been changed since the
-     last time the buffer was saved (or since it was created, if it has
-     never been saved).  *Note Saving::.
-
-Moving Text
-     Moving text means erasing it from one place and inserting it in
-     another.  This is done by killing (q.v.) and then yanking (q.v.).
-     *Note Killing::.
-
-Named Mark
-     A named mark is a register (q.v.) in its role of recording a
-     location in text so that you can move point to that location.
-     *Note Registers::.
-
-Narrowing
-     Narrowing means creating a restriction (q.v.) that limits editing
-     in the current buffer to only a part of the text in the buffer.
-     Text outside that part is inaccessible to the user until the
-     boundaries are widened again, but it is still there, and saving
-     the file saves the invisible text.  *Note Narrowing::.
-
-Newline
-     <LFD> characters in the buffer terminate lines of text and are
-     called newlines.  *Note Newline: Keystrokes.
-
-Numeric Argument
-     A numeric argument is a number, specified before a command, to
-     change the effect of the command.  Often the numeric argument
-     serves as a repeat count.  *Note Arguments::.
-
-Option
-     An option is a variable (q.v.) that allows you to customize Emacs
-     by giving it a new value.  *Note Variables::.
-
-Overwrite Mode
-     Overwrite mode is a minor mode.  When it is enabled, ordinary text
-     characters replace the existing text after point rather than
-     pushing it to the right.  *Note Minor Modes::.
-
-Page
-     A page is a unit of text, delimited by formfeed characters (ASCII
-     Control-L, code 014) coming at the beginning of a line.  Some Emacs
-     commands are provided for moving over and operating on pages.
-     *Note Pages::.
-
-Paragraphs
-     Paragraphs are the medium-size unit of English text.  There are
-     special Emacs commands for moving over and operating on paragraphs.
-     *Note Paragraphs::.
-
-Parsing
-     We say that Emacs parses words or expressions in the text being
-     edited.  Really, all it knows how to do is find the other end of a
-     word or expression.  *Note Syntax::.
-
-Point
-     Point is the place in the buffer at which insertion and deletion
-     occur.  Point is considered to be between two characters, not at
-     one character.  The terminal's cursor (q.v.) indicates the
-     location of point.  *Note Point: Basic.
-
-Prefix Key
-     A prefix key is a key (q.v.) whose sole function is to introduce a
-     set of multi-character keys.  `Control-x' is an example of a prefix
-     key; any two-character sequence starting with `C-x' is also a
-     legitimate key.  *Note Keystrokes::.
-
-Prompt
-     A prompt is text printed to ask the user for input.  Printing a
-     prompt is called prompting.  Emacs prompts always appear in the
-     echo area (q.v.).  One kind of prompting happens when the
-     minibuffer is used to read an argument (*note Minibuffer::); the
-     echoing which happens when you pause in the middle of typing a
-     multi-character key is also a kind of prompting (*note Echo
-     Area::).
-
-Quitting
-     Quitting means cancelling a partially typed command or a running
-     command, using `C-g'.  *Note Quitting::.
-
-Quoting
-     Quoting means depriving a character of its usual special
-     significance.  In Emacs this is usually done with `Control-q'.
-     What constitutes special significance depends on the context and
-     on convention.  For example, an "ordinary" character as an Emacs
-     command inserts itself; so in this context, a special character is
-     any character that does not normally insert itself (such as <DEL>,
-     for example), and quoting it makes it insert itself as if it were
-     not special.  Not all contexts allow quoting.  *Note Quoting:
-     Basic.
-
-Read-only Buffer
-     A read-only buffer is one whose text you are not allowed to change.
-     Normally Emacs makes buffers read-only when they contain text which
-     has a special significance to Emacs, such as Dired buffers.
-     Visiting a file that is write-protected also makes a read-only
-     buffer.  *Note Buffers::.
-
-Recursive Editing Level
-     A recursive editing level is a state in which part of the
-     execution of a command involves asking the user to edit some text.
-     This text may or may not be the same as the text to which the
-     command was applied.  The mode line indicates recursive editing
-     levels with square brackets (`[' and `]').  *Note Recursive Edit::.
-
-Redisplay
-     Redisplay is the process of correcting the image on the screen to
-     correspond to changes that have been made in the text being edited.
-     *Note Redisplay: Frame.
-
-Regexp
-     See `regular expression'.
-
-Region
-     The region is the text between point (q.v.) and the mark (q.v.).
-     Many commands operate on the text of the region.  *Note Region:
-     Mark.
-
-Registers
-     Registers are named slots in which text or buffer positions or
-     rectangles can be saved for later use.  *Note Registers::.
-
-Regular Expression
-     A regular expression is a pattern that can match various text
-     strings; for example, `l[0-9]+' matches `l' followed by one or more
-     digits.  *Note Regexps::.
-
-Replacement
-     See `global substitution'.
-
-Restriction
-     A buffer's restriction is the amount of text, at the beginning or
-     the end of the buffer, that is temporarily invisible and
-     inaccessible.  Giving a buffer a nonzero amount of restriction is
-     called narrowing (q.v.).  *Note Narrowing::.
-
-<RET>
-     <RET> is the character than runs the command to insert a newline
-     into the text.  It is also used to terminate most arguments read
-     in the minibuffer (q.v.).  *Note Return: Keystrokes.
-
-Saving
-     Saving a buffer means copying its text into the file that was
-     visited (q.v.) in that buffer.  To actually change a file you have
-     edited in Emacs, you have to save it.  *Note Saving::.
-
-Scrolling
-     Scrolling means shifting the text in the Emacs window to make a
-     different part of the buffer visible.  *Note Scrolling: Display.
-
-Searching
-     Searching means moving point to the next occurrence of a specified
-     string.  *Note Search::.
-
-Selecting
-     Selecting a buffer means making it the current (q.v.) buffer.
-     *Note Selecting: Buffers.
-
-Self-documentation
-     Self-documentation is the feature of Emacs which can tell you what
-     any command does, or can give you a list of all commands related
-     to a topic you specify.  You ask for self-documentation with the
-     help character, `C-h'.  *Note Help::.
-
-Sentences
-     Emacs has commands for moving by or killing by sentences.  *Note
-     Sentences::.
-
-Sexp
-     An sexp (short for `s-expression,' itself short for `symbolic
-     expression') is the basic syntactic unit of Lisp in its textual
-     form: either a list, or Lisp atom.  Many Emacs commands operate on
-     sexps.  The term `sexp' is generalized to languages other than
-     Lisp to mean a syntactically recognizable expression.  *Note
-     Sexps: Lists.
-
-Simultaneous Editing
-     Simultaneous editing means two users modifying the same file at
-     once.  If simultaneous editing is not detected, you may lose your
-     work.  Emacs detects all cases of simultaneous editing and warns
-     the user to investigate them.  *Note Simultaneous Editing:
-     Interlocking.
-
-String
-     A string is a kind of Lisp data object which contains a sequence of
-     characters.  Many Emacs variables are intended to have strings as
-     values.  The Lisp syntax for a string consists of the characters in
-     the string with a `"' before and another `"' after. Write a `"'
-     that is part of the string as `\"' and a `\' that is part of the
-     string as `\\'.  You can include all other characters, including
-     newline, just by writing them inside the string. You can also
-     include escape sequences as in C, such as `\n' for newline or
-     `\241' using an octal character code.
-
-String Substitution
-     See `global substitution'.
-
-Syntax Table
-     The syntax table tells Emacs which characters are part of a word,
-     which characters balance each other like parentheses, etc.  *Note
-     Syntax::.
-
-Tag Table
-     A tag table is a file that serves as an index to the function
-     definitions in one or more other files.  *Note Tags::.
-
-Termscript File
-     A termscript file contains a record of all characters Emacs sent to
-     the terminal.  It is used for tracking down bugs in Emacs
-     redisplay.  Emacs does not make a termscript file unless
-     explicitly instructed to do so.  *Note Bugs::.
-
-Text
-     Text has two meanings (*note Text::):
-
-        * Data consisting of a sequence of characters, as opposed to
-          binary numbers, images, graphics commands, executable
-          programs, and the like.  The contents of an Emacs buffer are
-          always text in this sense.
-
-        * Data consisting of written human language, as opposed to
-          programs, or something that follows the stylistic conventions
-          of human language.
-
-Top Level
-     Top level is the normal state of Emacs, in which you are editing
-     the text of the file you have visited.  You are at top level
-     whenever you are not in a recursive editing level (q.v.) or the
-     minibuffer (q.v.), and not in the middle of a command.  You can
-     get back to top level by aborting (q.v.) and quitting (q.v.).
-     *Note Quitting::.
-
-Transposition
-     Transposing two units of text means putting each one into the place
-     formerly occupied by the other.  There are Emacs commands to
-     transpose two adjacent characters, words, sexps (q.v.), or lines
-     (*note Transpose::).
-
-Truncation
-     Truncating text lines in the display means leaving out any text on
-     a line that does not fit within the right margin of the window
-     displaying it.  See also `continuation line'.  *Note Truncation:
-     Basic.
-
-Undoing
-     Undoing means making your previous editing go in reverse, bringing
-     back the text that existed earlier in the editing session.  *Note
-     Undo::.
-
-Variable
-     A variable is Lisp object that can store an arbitrary value.
-     Emacs uses some variables for internal purposes, and has others
-     (known as `options' (q.v.)) you can set to control the behavior of
-     Emacs.  The variables used in Emacs that you are likely to be
-     interested in are listed in the Variables Index of this manual.
-     *Note Variables::, for information on variables.
-
-Visiting
-     Visiting a file means loading its contents into a buffer (q.v.)
-     where they can be edited.  *Note Visiting::.
-
-Whitespace
-     Whitespace is any run of consecutive formatting characters (spaces,
-     tabs, newlines, and backspaces).
-
-Widening
-     Widening is removing any restriction (q.v.) on the current buffer;
-     it is the opposite of narrowing (q.v.).  *Note Narrowing::.
-
-Window
-     Emacs divides the frame into one or more windows, each of which can
-     display the contents of one buffer (q.v.) at any time.  *Note
-     Frame::, for basic information on how Emacs uses the frame.  *Note
-     Windows::, for commands to control the use of windows. Note that if
-     you are running Emacs under X, terminology can be confusing: Each
-     Emacs frame occupies a separate X window and can, in turn, be
-     divided into different subwindows.
-
-Word Abbrev
-     Synonymous with `abbrev'.
-
-Word Search
-     Word search is searching for a sequence of words, considering the
-     punctuation between them as insignificant.  *Note Word Search::.
-
-Yanking
-     Yanking means reinserting text previously killed.  It can be used
-     to undo a mistaken kill, or for copying or moving text.  Some other
-     systems call this "pasting".  *Note Yanking::.
-
index 9ce962e..2ab1eed 100644 (file)
@@ -30,954 +30,784 @@ versions, except that the sections entitled "The GNU Manifesto",
 translation approved by the author instead of in the original English.
 
 \1f
-File: xemacs.info,  Node: Manifesto,  Next: Key Index,  Prev: Glossary,  Up: Top
-
-The GNU Manifesto
-*****************
-
-What's GNU?  GNU's Not Unix!
-============================
-
-   GNU, which stands for GNU's Not Unix, is the name for the complete
-Unix-compatible software system which I am writing so that I can give it
-away free to everyone who can use it.  Several other volunteers are
-helping me.  Contributions of time, money, programs, and equipment are
-greatly needed.
-
-   So far we have an Emacs text editor with Lisp for writing editor
-commands, a source level debugger, a yacc-compatible parser generator,
-a linker, and around 35 utilities.  A shell (command interpreter) is
-nearly completed.  A new portable optimizing C compiler has compiled
-itself and may be released this year.  An initial kernel exists, but
-many more features are needed to emulate Unix.  When the kernel and
-compiler are finished, it will be possible to distribute a GNU system
-suitable for program development.  We will use TeX as our text
-formatter, but an nroff is being worked on.  We will use the free,
-portable X window system as well.  After this we will add a portable
-Common Lisp, an Empire game, a spreadsheet, and hundreds of other
-things, plus online documentation.  We hope to supply, eventually,
-everything useful that normally comes with a Unix system, and more.
-
-   GNU will be able to run Unix programs, but will not be identical to
-Unix.  We will make all improvements that are convenient, based on our
-experience with other operating systems.  In particular, we plan to
-have longer filenames, file version numbers, a crashproof file system,
-filename completion perhaps, terminal-independent display support, and
-perhaps eventually a Lisp-based window system through which several
-Lisp programs and ordinary Unix programs can share a screen.  Both C
-and Lisp will be available as system programming languages.  We will
-try to support UUCP, MIT Chaosnet, and Internet protocols for
-communication.
-
-   GNU is aimed initially at machines in the 68000/16000 class with
-virtual memory, because they are the easiest machines to make it run
-on.  The extra effort to make it run on smaller machines will be left
-to someone who wants to use it on them.
-
-   To avoid horrible confusion, please pronounce the `G' in the word
-`GNU' when it is the name of this project.
-
-Why I Must Write GNU
-====================
-
-   I consider that the golden rule requires that if I like a program I
-must share it with other people who like it.  Software sellers want to
-divide the users and conquer them, making each user agree not to share
-with others.  I refuse to break solidarity with other users in this
-way.  I cannot in good conscience sign a nondisclosure agreement or a
-software license agreement.  For years I worked within the Artificial
-Intelligence Lab to resist such tendencies and other inhospitalities,
-but eventually they had gone too far: I could not remain in an
-institution where such things are done for me against my will.
-
-   So that I can continue to use computers without dishonor, I have
-decided to put together a sufficient body of free software so that I
-will be able to get along without any software that is not free.  I
-have resigned from the AI lab to deny MIT any legal excuse to prevent
-me from giving GNU away.
-
-Why GNU Will Be Compatible With Unix
-====================================
-
-   Unix is not my ideal system, but it is not too bad.  The essential
-features of Unix seem to be good ones, and I think I can fill in what
-Unix lacks without spoiling them.  And a system compatible with Unix
-would be convenient for many other people to adopt.
-
-How GNU Will Be Available
-=========================
-
-   GNU is not in the public domain.  Everyone will be permitted to
-modify and redistribute GNU, but no distributor will be allowed to
-restrict its further redistribution.  That is to say, proprietary
-modifications will not be allowed.  I want to make sure that all
-versions of GNU remain free.
-
-Why Many Other Programmers Want to Help
-=======================================
-
-   I have found many other programmers who are excited about GNU and
-want to help.
-
-   Many programmers are unhappy about the commercialization of system
-software.  It may enable them to make more money, but it requires them
-to feel in conflict with other programmers in general rather than feel
-as comrades.  The fundamental act of friendship among programmers is the
-sharing of programs; marketing arrangements now typically used
-essentially forbid programmers to treat others as friends.  The
-purchaser of software must choose between friendship and obeying the
-law.  Naturally, many decide that friendship is more important.  But
-those who believe in law often do not feel at ease with either choice.
-They become cynical and think that programming is just a way of making
-money.
-
-   By working on and using GNU rather than proprietary programs, we can
-be hospitable to everyone and obey the law.  In addition, GNU serves as
-an example to inspire and a banner to rally others to join us in
-sharing.  This can give us a feeling of harmony which is impossible if
-we use software that is not free.  For about half the programmers I
-talk to, this is an important happiness that money cannot replace.
-
-How You Can Contribute
-======================
-
-   I am asking computer manufacturers for donations of machines and
-money.  I'm asking individuals for donations of programs and work.
-
-   One consequence you can expect if you donate machines is that GNU
-will run on them at an early date.  The machines should be complete,
-ready-to-use systems, approved for use in a residential area, and not
-in need of sophisticated cooling or power.
-
-   I have found very many programmers eager to contribute part-time
-work for GNU.  For most projects, such part-time distributed work would
-be very hard to coordinate; the independently-written parts would not
-work together.  But for the particular task of replacing Unix, this
-problem is absent.  A complete Unix system contains hundreds of utility
-programs, each of which is documented separately.  Most interface
-specifications are fixed by Unix compatibility.  If each contributor
-can write a compatible replacement for a single Unix utility, and make
-it work properly in place of the original on a Unix system, then these
-utilities will work right when put together.  Even allowing for Murphy
-to create a few unexpected problems, assembling these components will
-be a feasible task.  (The kernel will require closer communication and
-will be worked on by a small, tight group.)
-
-   If I get donations of money, I may be able to hire a few people full
-or part time.  The salary won't be high by programmers' standards, but
-I'm looking for people for whom building community spirit is as
-important as making money.  I view this as a way of enabling dedicated
-people to devote their full energies to working on GNU by sparing them
-the need to make a living in another way.
-
-Why All Computer Users Will Benefit
-===================================
-
-   Once GNU is written, everyone will be able to obtain good system
-software free, just like air.
-
-   This means much more than just saving everyone the price of a Unix
-license.  It means that much wasteful duplication of system programming
-effort will be avoided.  This effort can go instead into advancing the
-state of the art.
-
-   Complete system sources will be available to everyone.  As a result,
-a user who needs changes in the system will always be free to make them
-himself, or hire any available programmer or company to make them for
-him.  Users will no longer be at the mercy of one programmer or company
-which owns the sources and is in sole position to make changes.
-
-   Schools will be able to provide a much more educational environment
-by encouraging all students to study and improve the system code.
-Harvard's computer lab used to have the policy that no program could be
-installed on the system if its sources were not on public display, and
-upheld it by actually refusing to install certain programs.  I was very
-much inspired by this.
-
-   Finally, the overhead of considering who owns the system software
-and what one is or is not entitled to do with it will be lifted.
-
-   Arrangements to make people pay for using a program, including
-licensing of copies, always incur a tremendous cost to society through
-the cumbersome mechanisms necessary to figure out how much (that is,
-which programs) a person must pay for.  And only a police state can
-force everyone to obey them.  Consider a space station where air must
-be manufactured at great cost: charging each breather per liter of air
-may be fair, but wearing the metered gas mask all day and all night is
-intolerable even if everyone can afford to pay the air bill.  And the
-TV cameras everywhere to see if you ever take the mask off are
-outrageous.  It's better to support the air plant with a head tax and
-chuck the masks.
-
-   Copying all or parts of a program is as natural to a programmer as
-breathing, and as productive.  It ought to be as free.
-
-Some Easily Rebutted Objections to GNU's Goals
-==============================================
-
-     "Nobody will use it if it is free, because that means they can't
-     rely on any support."
-
-     "You have to charge for the program to pay for providing the
-     support."
-
-   If people would rather pay for GNU plus service than get GNU free
-without service, a company to provide just service to people who have
-obtained GNU free ought to be profitable.
-
-   We must distinguish between support in the form of real programming
-work and mere handholding.  The former is something one cannot rely on
-from a software vendor.  If your problem is not shared by enough
-people, the vendor will tell you to get lost.
-
-   If your business needs to be able to rely on support, the only way
-is to have all the necessary sources and tools.  Then you can hire any
-available person to fix your problem; you are not at the mercy of any
-individual.  With Unix, the price of sources puts this out of
-consideration for most businesses.  With GNU this will be easy.  It is
-still possible for there to be no available competent person, but this
-problem cannot be blamed on distribution arrangements.  GNU does not
-eliminate all the world's problems, only some of them.
-
-   Meanwhile, the users who know nothing about computers need
-handholding: doing things for them which they could easily do
-themselves but don't know how.
-
-   Such services could be provided by companies that sell just
-hand-holding and repair service.  If it is true that users would rather
-spend money and get a product with service, they will also be willing
-to buy the service having got the product free.  The service companies
-will compete in quality and price; users will not be tied to any
-particular one.  Meanwhile, those of us who don't need the service
-should be able to use the program without paying for the service.
-
-     "You cannot reach many people without advertising, and you must
-     charge for the program to support that."
-
-     "It's no use advertising a program people can get free."
-
-   There are various forms of free or very cheap publicity that can be
-used to inform numbers of computer users about something like GNU.  But
-it may be true that one can reach more microcomputer users with
-advertising.  If this is really so, a business which advertises the
-service of copying and mailing GNU for a fee ought to be successful
-enough to pay for its advertising and more.  This way, only the users
-who benefit from the advertising pay for it.
-
-   On the other hand, if many people get GNU from their friends, and
-such companies don't succeed, this will show that advertising was not
-really necessary to spread GNU.  Why is it that free market advocates
-don't want to let the free market decide this?
-
-     "My company needs a proprietary operating system to get a
-     competitive edge."
-
-   GNU will remove operating system software from the realm of
-competition.  You will not be able to get an edge in this area, but
-neither will your competitors be able to get an edge over you.  You and
-they will compete in other areas, while benefitting mutually in this
-one.  If your business is selling an operating system, you will not
-like GNU, but that's tough on you.  If your business is something else,
-GNU can save you from being pushed into the expensive business of
-selling operating systems.
-
-   I would like to see GNU development supported by gifts from many
-manufacturers and users, reducing the cost to each.
-
-     "Don't programmers deserve a reward for their creativity?"
-
-   If anything deserves a reward, it is social contribution.
-Creativity can be a social contribution, but only in so far as society
-is free to use the results.  If programmers deserve to be rewarded for
-creating innovative programs, by the same token they deserve to be
-punished if they restrict the use of these programs.
-
-     "Shouldn't a programmer be able to ask for a reward for his
-     creativity?"
-
-   There is nothing wrong with wanting pay for work, or seeking to
-maximize one's income, as long as one does not use means that are
-destructive.  But the means customary in the field of software today
-are based on destruction.
-
-   Extracting money from users of a program by restricting their use of
-it is destructive because the restrictions reduce the amount and the
-ways that the program can be used.  This reduces the amount of wealth
-that humanity derives from the program.  When there is a deliberate
-choice to restrict, the harmful consequences are deliberate destruction.
-
-   The reason a good citizen does not use such destructive means to
-become wealthier is that, if everyone did so, we would all become
-poorer from the mutual destructiveness.  This is Kantian ethics; or,
-the Golden Rule.  Since I do not like the consequences that result if
-everyone hoards information, I am required to consider it wrong for one
-to do so.  Specifically, the desire to be rewarded for one's creativity
-does not justify depriving the world in general of all or part of that
-creativity.
-
-     "Won't programmers starve?"
-
-   I could answer that nobody is forced to be a programmer.  Most of us
-cannot manage to get any money for standing on the street and making
-faces.  But we are not, as a result, condemned to spend our lives
-standing on the street making faces, and starving.  We do something
-else.
-
-   But that is the wrong answer because it accepts the questioner's
-implicit assumption: that without ownership of software, programmers
-cannot possibly be paid a cent.  Supposedly it is all or nothing.
-
-   The real reason programmers will not starve is that it will still be
-possible for them to get paid for programming; just not paid as much as
-now.
-
-   Restricting copying is not the only basis for business in software.
-It is the most common basis because it brings in the most money.  If it
-were prohibited, or rejected by the customer, software business would
-move to other bases of organization which are now used less often.
-There are always numerous ways to organize any kind of business.
-
-   Probably programming will not be as lucrative on the new basis as it
-is now.  But that is not an argument against the change.  It is not
-considered an injustice that sales clerks make the salaries that they
-now do.  If programmers made the same, that would not be an injustice
-either.  (In practice they would still make considerably more than
-that.)
-
-     "Don't people have a right to control how their creativity is
-     used?"
-
-   "Control over the use of one's ideas" really constitutes control over
-other people's lives; and it is usually used to make their lives more
-difficult.
-
-   People who have studied the issue of intellectual property rights
-carefully (such as lawyers) say that there is no intrinsic right to
-intellectual property.  The kinds of supposed intellectual property
-rights that the government recognizes were created by specific acts of
-legislation for specific purposes.
-
-   For example, the patent system was established to encourage
-inventors to disclose the details of their inventions.  Its purpose was
-to help society rather than to help inventors.  At the time, the life
-span of 17 years for a patent was short compared with the rate of
-advance of the state of the art.  Since patents are an issue only among
-manufacturers, for whom the cost and effort of a license agreement are
-small compared with setting up production, the patents often do not do
-much harm.  They do not obstruct most individuals who use patented
-products.
-
-   The idea of copyright did not exist in ancient times, when authors
-frequently copied other authors at length in works of non-fiction.  This
-practice was useful, and is the only way many authors' works have
-survived even in part.  The copyright system was created expressly for
-the purpose of encouraging authorship.  In the domain for which it was
-invented--books, which could be copied economically only on a printing
-press--it did little harm, and did not obstruct most of the individuals
-who read the books.
-
-   All intellectual property rights are just licenses granted by society
-because it was thought, rightly or wrongly, that society as a whole
-would benefit by granting them.  But in any particular situation, we
-have to ask: are we really better off granting such license?  What kind
-of act are we licensing a person to do?
-
-   The case of programs today is very different from that of books a
-hundred years ago.  The fact that the easiest way to copy a program is
-from one neighbor to another, the fact that a program has both source
-code and object code which are distinct, and the fact that a program is
-used rather than read and enjoyed, combine to create a situation in
-which a person who enforces a copyright is harming society as a whole
-both materially and spiritually; in which a person should not do so
-regardless of whether the law enables him to.
-
-     "Competition makes things get done better."
-
-   The paradigm of competition is a race: by rewarding the winner, we
-encourage everyone to run faster.  When capitalism really works this
-way, it does a good job; but its defenders are wrong in assuming it
-always works this way.  If the runners forget why the reward is offered
-and become intent on winning, no matter how, they may find other
-strategies--such as, attacking other runners.  If the runners get into
-a fist fight, they will all finish late.
-
-   Proprietary and secret software is the moral equivalent of runners
-in a fist fight.  Sad to say, the only referee we've got does not seem
-to object to fights; he just regulates them ("For every ten yards you
-run, you can fire one shot").  He really ought to break them up, and
-penalize runners for even trying to fight.
-
-     "Won't everyone stop programming without a monetary incentive?"
-
-   Actually, many people will program with absolutely no monetary
-incentive.  Programming has an irresistible fascination for some
-people, usually the people who are best at it.  There is no shortage of
-professional musicians who keep at it even though they have no hope of
-making a living that way.
-
-   But really this question, though commonly asked, is not appropriate
-to the situation.  Pay for programmers will not disappear, only become
-less.  So the right question is, will anyone program with a reduced
-monetary incentive?  My experience shows that they will.
-
-   For more than ten years, many of the world's best programmers worked
-at the Artificial Intelligence Lab for far less money than they could
-have had anywhere else.  They got many kinds of non-monetary rewards:
-fame and appreciation, for example.  And creativity is also fun, a
-reward in itself.
-
-   Then most of them left when offered a chance to do the same
-interesting work for a lot of money.
-
-   What the facts show is that people will program for reasons other
-than riches; but if given a chance to make a lot of money as well, they
-will come to expect and demand it.  Low-paying organizations do poorly
-in competition with high-paying ones, but they do not have to do badly
-if the high-paying ones are banned.
-
-     "We need the programmers desperately.  If they demand that we stop
-     helping our neighbors, we have to obey."
-
-   You're never so desperate that you have to obey this sort of demand.
-Remember: millions for defense, but not a cent for tribute!
-
-     "Programmers need to make a living somehow."
-
-   In the short run, this is true.  However, there are plenty of ways
-that programmers could make a living without selling the right to use a
-program.  This way is customary now because it brings programmers and
-businessmen the most money, not because it is the only way to make a
-living.  It is easy to find other ways if you want to find them.  Here
-are a number of examples.
-
-   A manufacturer introducing a new computer will pay for the porting of
-operating systems onto the new hardware.
-
-   The sale of teaching, hand-holding, and maintenance services could
-also employ programmers.
-
-   People with new ideas could distribute programs as freeware and ask
-for donations from satisfied users or sell hand-holding services.  I
-have met people who are already working this way successfully.
-
-   Users with related needs can form users' groups and pay dues.  A
-group would contract with programming companies to write programs that
-the group's members would like to use.
-
-   All sorts of development can be funded with a Software Tax:
-
-     Suppose everyone who buys a computer has to pay a certain percent
-     of the price as a software tax.  The government gives this to an
-     agency like the NSF to spend on software development.
-
-     But if the computer buyer makes a donation to software development
-     himself, he can take a credit against the tax.  He can donate to
-     the project of his own choosing--often, chosen because he hopes to
-     use the results when
-
-     it is done.  He can take a credit for any amount of donation up to
-     the total tax he had to pay.
-
-     The total tax rate could be decided by a vote of the payers of the
-     tax, weighted according to the amount they will be taxed on.
-
-     The consequences:
-
-        * The computer-using community supports software development.
-
-        * This community decides what level of support is needed.
-
-        * Users who care which projects their share is spent on can
-          choose this for themselves.
-
-   In the long run, making programs free is a step toward the
-post-scarcity world, where nobody will have to work very hard just to
-make a living.  People will be free to devote themselves to activities
-that are fun, such as programming, after spending the necessary ten
-hours a week on required tasks such as legislation, family counseling,
-robot repair, and asteroid prospecting.  There will be no need to be
-able to make a living from programming.
-
-   We have already greatly reduced the amount of work that the whole
-society must do for its actual productivity, but only a little of this
-has translated itself into leisure for workers because much
-nonproductive activity is required to accompany productive activity.
-The main causes of this are bureaucracy and isometric struggles against
-competition.  Free software will greatly reduce these drains in the
-area of software production.  We must do this, in order for technical
-gains in productivity to translate into less work for us.
-
-\1f
-File: xemacs.info,  Node: Key Index,  Next: Command Index,  Prev: Manifesto,  Up: Top
-
-Key (Character) Index
-*********************
-
-* Menu:
-
-* ! (query-replace):                     Query Replace.
-* " (TeX mode):                          TeX Editing.
-* , (query-replace):                     Query Replace.
-* . (Calendar mode):                     Specified Dates.
-* . (query-replace):                     Query Replace.
-* ? (Calendar mode):                     General Calendar.
-* ^ (query-replace):                     Query Replace.
-* a (Calendar mode):                     Holidays.
-* BS:                                    Inserting Text.
-* button1:                               Intro to Keystrokes.
-* button1up:                             Intro to Keystrokes.
-* button2:                               Intro to Keystrokes.
-* button2up:                             Intro to Keystrokes.
-* button3:                               Intro to Keystrokes.
-* button3up:                             Intro to Keystrokes.
-* C-<:                                   Setting Mark.
-* C->:                                   Setting Mark.
-* C-@ (Calendar mode):                   Mark and Region.
-* C-\:                                   Select Input Method.
-* C-] <1>:                               Quitting.
-* C-]:                                   Recursive Edit.
-* C-_:                                   Undo.
-* C-a:                                   Moving Point.
-* C-a (Calendar mode):                   Move to Beginning or End.
-* C-b:                                   Moving Point.
-* C-b (Calendar mode):                   Calendar Unit Motion.
-* C-c:                                   Key Sequences.
-* C-c ' (Picture mode):                  Insert in Picture.
-* C-c . (Picture mode):                  Insert in Picture.
-* C-c / (Picture mode):                  Insert in Picture.
-* C-c ; (Fortran mode):                  Fortran Comments.
-* C-c < (Picture mode):                  Insert in Picture.
-* C-c > (Picture mode):                  Insert in Picture.
-* C-c \ (Picture mode):                  Insert in Picture.
-* C-c ^ (Picture mode):                  Insert in Picture.
-* C-c ` (Picture mode):                  Insert in Picture.
-* C-c C-\ (Shell mode):                  Shell Mode.
-* C-c C-b (Outline mode):                Outline Motion.
-* C-c C-b (Picture mode):                Insert in Picture.
-* C-c C-b (TeX mode):                    TeX Print.
-* C-c C-c (Edit Abbrevs):                Editing Abbrevs.
-* C-c C-c (Edit Tab Stops):              Tab Stops.
-* C-c C-c (Mail mode):                   Mail Mode.
-* C-c C-c (Occur mode):                  Other Repeating Search.
-* C-c C-c (Shell mode):                  Shell Mode.
-* C-c C-d (Picture mode):                Basic Picture.
-* C-c C-d (Shell mode):                  Shell Mode.
-* C-c C-f (LaTeX mode):                  TeX Editing.
-* C-c C-f (Outline mode):                Outline Motion.
-* C-c C-f (Picture mode):                Insert in Picture.
-* C-c C-f C-c (Mail mode):               Mail Mode.
-* C-c C-f C-s (Mail mode):               Mail Mode.
-* C-c C-f C-t (Mail mode):               Mail Mode.
-* C-c C-h (Outline mode):                Outline Visibility.
-* C-c C-i (Outline mode):                Outline Visibility.
-* C-c C-j (Term mode):                   Term Mode.
-* C-c C-k (Picture mode):                Rectangles in Picture.
-* C-c C-k (Term mode):                   Term Mode.
-* C-c C-k (TeX mode):                    TeX Print.
-* C-c C-l (Calendar mode):               General Calendar.
-* C-c C-l (TeX mode):                    TeX Print.
-* C-c C-n (Fortran mode):                Fortran Motion.
-* C-c C-n (Outline mode):                Outline Motion.
-* C-c C-o (Shell mode):                  Shell Mode.
-* C-c C-p (Fortran mode):                Fortran Motion.
-* C-c C-p (Outline mode):                Outline Motion.
-* C-c C-p (TeX mode):                    TeX Print.
-* C-c C-q (Mail mode):                   Mail Mode.
-* C-c C-q (Term mode):                   Paging in Term.
-* C-c C-q (TeX mode):                    TeX Print.
-* C-c C-r (Fortran mode):                Fortran Columns.
-* C-c C-r (Shell mode):                  Shell Mode.
-* C-c C-r (TeX mode):                    TeX Print.
-* C-c C-s (Mail mode):                   Mail Mode.
-* C-c C-s (Outline mode):                Outline Visibility.
-* C-c C-u (Outline mode):                Outline Motion.
-* C-c C-u (Shell mode):                  Shell Mode.
-* C-c C-w (Fortran mode):                Fortran Columns.
-* C-c C-w (Mail mode):                   Mail Mode.
-* C-c C-w (Picture mode):                Rectangles in Picture.
-* C-c C-w (Shell mode):                  Shell Mode.
-* C-c C-x (Picture mode):                Rectangles in Picture.
-* C-c C-y (Mail mode):                   Mail Mode.
-* C-c C-y (Picture mode):                Rectangles in Picture.
-* C-c C-y (Shell mode):                  Shell Mode.
-* C-c C-z (Shell mode):                  Shell Mode.
-* C-c TAB (Picture mode):                Tabs in Picture.
-* C-c { (TeX mode):                      TeX Editing.
-* C-c } (TeX mode):                      TeX Editing.
-* C-d:                                   Killing.
-* C-d (Shell mode):                      Shell Mode.
-* C-e:                                   Moving Point.
-* C-e (Calendar mode):                   Move to Beginning or End.
-* C-END:                                 Moving Point.
-* C-f:                                   Moving Point.
-* C-f (Calendar mode):                   Calendar Unit Motion.
-* C-g <1>:                               Quitting.
-* C-g:                                   Minibuffer.
-* C-g (isearch-mode):                    Incremental Search.
-* C-h <1>:                               Help.
-* C-h:                                   Key Sequences.
-* C-h A:                                 Apropos.
-* C-h b:                                 Misc Help.
-* C-h C:                                 Coding Systems.
-* C-h c:                                 Key Help.
-* C-h C-\:                               Select Input Method.
-* C-h C-c:                               Misc Help.
-* C-h C-d:                               Misc Help.
-* C-h C-f:                               Misc Help.
-* C-h C-h:                               Help.
-* C-h C-k:                               Misc Help.
-* C-h C-w:                               Misc Help.
-* C-h f:                                 Documentation.
-* C-h F:                                 Misc Help.
-* C-h f:                                 Name Help.
-* C-h h:                                 Mule Intro.
-* C-h I:                                 Select Input Method.
-* C-h i:                                 Misc Help.
-* C-h k:                                 Key Help.
-* C-h L:                                 Language Environments.
-* C-h l:                                 Misc Help.
-* C-h m:                                 Misc Help.
-* C-h n:                                 Misc Help.
-* C-h p:                                 Library Keywords.
-* C-h s:                                 Syntax Change.
-* C-h t <1>:                             Misc Help.
-* C-h t:                                 Basic.
-* C-h v <1>:                             Examining.
-* C-h v <2>:                             Documentation.
-* C-h v:                                 Name Help.
-* C-h w:                                 Name Help.
-* C-HOME:                                Moving Point.
-* C-k:                                   Killing.
-* C-l <1>:                               Scrolling.
-* C-l:                                   Moving Point.
-* C-l (query-replace):                   Query Replace.
-* C-LEFT:                                Moving Point.
-* C-M-@ <1>:                             Lists.
-* C-M-@:                                 Marking Objects.
-* C-M-\ <1>:                             Multi-line Indent.
-* C-M-\:                                 Indentation Commands.
-* C-M-a:                                 Defuns.
-* C-M-a (Fortran mode):                  Fortran Motion.
-* C-M-b:                                 Lists.
-* C-M-c:                                 Recursive Edit.
-* C-M-d:                                 Lists.
-* C-M-e:                                 Defuns.
-* C-M-e (Fortran mode):                  Fortran Motion.
-* C-M-f:                                 Lists.
-* C-M-h <1>:                             Defuns.
-* C-M-h:                                 Marking Objects.
-* C-M-h (Fortran mode):                  Fortran Motion.
-* C-M-k <1>:                             Lists.
-* C-M-k:                                 Killing.
-* C-M-n:                                 Lists.
-* C-M-o:                                 Indentation Commands.
-* C-M-p:                                 Lists.
-* C-M-q:                                 Multi-line Indent.
-* C-M-q (Fortran mode):                  ForIndent Commands.
-* C-M-t <1>:                             Lists.
-* C-M-t:                                 Transpose.
-* C-M-u:                                 Lists.
-* C-M-v <1>:                             Other Window.
-* C-M-v:                                 Minibuffer Edit.
-* C-M-w:                                 Appending Kills.
-* C-M-x <1>:                             External Lisp.
-* C-M-x:                                 Lisp Eval.
-* C-n:                                   Moving Point.
-* C-n (Calendar mode):                   Calendar Unit Motion.
-* C-o:                                   Blank Lines.
-* C-p:                                   Moving Point.
-* C-p (Calendar mode):                   Calendar Unit Motion.
-* C-q:                                   Inserting Text.
-* C-q (isearch-mode):                    Incremental Search.
-* C-r:                                   Incremental Search.
-* C-r (isearch-mode):                    Incremental Search.
-* C-r (query-replace):                   Query Replace.
-* C-RIGHT:                               Moving Point.
-* C-s:                                   Incremental Search.
-* C-s (isearch-mode):                    Incremental Search.
-* C-SPC:                                 Setting Mark.
-* C-SPC (Calendar mode):                 Mark and Region.
-* C-t <1>:                               Transpose.
-* C-t:                                   Moving Point.
-* C-u:                                   Arguments.
-* C-u - C-x ;:                           Comments.
-* C-u C-@:                               Mark Ring.
-* C-u C-SPC:                             Mark Ring.
-* C-u C-x v v:                           Editing with VC.
-* C-u TAB:                               Multi-line Indent.
-* C-v <1>:                               Scrolling.
-* C-v:                                   Moving Point.
-* C-v (Calendar mode):                   Scroll Calendar.
-* C-w:                                   Killing.
-* C-w (isearch-mode):                    Incremental Search.
-* C-w (query-replace):                   Query Replace.
-* C-x:                                   Key Sequences.
-* C-x $:                                 Selective Display.
-* C-x (:                                 Basic Kbd Macro.
-* C-x ):                                 Basic Kbd Macro.
-* C-x .:                                 Fill Prefix.
-* C-x 0:                                 Change Window.
-* C-x 1:                                 Change Window.
-* C-x 2:                                 Split Window.
-* C-x 3:                                 Split Window.
-* C-x 4:                                 Pop Up Window.
-* C-x 4 .:                               Find Tag.
-* C-x 4 b:                               Select Buffer.
-* C-x 4 d:                               Dired Enter.
-* C-x 4 f:                               Visiting.
-* C-x 4 m:                               Sending Mail.
-* C-x 5 b:                               Select Buffer.
-* C-x 5 C-f:                             Visiting.
-* C-x ;:                                 Comments.
-* C-x <:                                 Horizontal Scrolling.
-* C-x < (Calendar mode):                 Scroll Calendar.
-* C-x =:                                 Position Info.
-* C-x >:                                 Horizontal Scrolling.
-* C-x > (Calendar mode):                 Scroll Calendar.
-* C-x [:                                 Pages.
-* C-x [ (Calendar mode):                 Calendar Unit Motion.
-* C-x ]:                                 Pages.
-* C-x ] (Calendar mode):                 Calendar Unit Motion.
-* C-x ^:                                 Change Window.
-* C-x `:                                 Compilation.
-* C-x a g:                               Defining Abbrevs.
-* C-x a i g:                             Defining Abbrevs.
-* C-x a i l:                             Defining Abbrevs.
-* C-x a l:                               Defining Abbrevs.
-* C-x b:                                 Select Buffer.
-* C-x C-b:                               List Buffers.
-* C-x C-c:                               Exiting.
-* C-x C-d:                               ListDir.
-* C-x C-e:                               Lisp Eval.
-* C-x C-l:                               Case.
-* C-x C-o <1>:                           Killing.
-* C-x C-o:                               Blank Lines.
-* C-x C-p <1>:                           Pages.
-* C-x C-p:                               Marking Objects.
-* C-x C-q:                               Misc Buffer.
-* C-x C-q (version control):             Editing with VC.
-* C-x C-s:                               Saving.
-* C-x C-t:                               Transpose.
-* C-x C-u:                               Case.
-* C-x C-v:                               Visiting.
-* C-x C-w:                               Saving.
-* C-x C-x:                               Setting Mark.
-* C-x C-x (Calendar mode):               Mark and Region.
-* C-x d:                                 Dired Enter.
-* C-x DEL <1>:                           Sentences.
-* C-x DEL <2>:                           Kill Errors.
-* C-x DEL:                               Killing.
-* C-x e:                                 Basic Kbd Macro.
-* C-x ESC ESC:                           Repetition.
-* C-x f:                                 Fill Commands.
-* C-x h:                                 Marking Objects.
-* C-x k:                                 Kill Buffer.
-* C-x l:                                 Pages.
-* C-x m:                                 Sending Mail.
-* C-x n n:                               Narrowing.
-* C-x n w:                               Narrowing.
-* C-x o:                                 Other Window.
-* C-x q:                                 Kbd Macro Query.
-* C-x r +:                               RegNumbers.
-* C-x r b:                               Bookmarks.
-* C-x r g:                               RegText.
-* C-x r i:                               RegText.
-* C-x r j:                               RegPos.
-* C-x r l:                               Bookmarks.
-* C-x r m:                               Bookmarks.
-* C-x r n:                               RegNumbers.
-* C-x r r:                               RegRect.
-* C-x r s:                               RegText.
-* C-x r SPC:                             RegPos.
-* C-x r w:                               RegConfig.
-* C-x RET:                               Mule Intro.
-* C-x RET c:                             Specify Coding.
-* C-x RET C-\:                           Select Input Method.
-* C-x RET f:                             Specify Coding.
-* C-x RET k:                             Specify Coding.
-* C-x RET p:                             Specify Coding.
-* C-x RET t:                             Specify Coding.
-* C-x s:                                 Saving.
-* C-x TAB:                               Indentation Commands.
-* C-x u:                                 Undo.
-* C-x v =:                               Old Versions.
-* C-x v a:                               Change Logs and VC.
-* C-x v c:                               Editing with VC.
-* C-x v d:                               VC Status.
-* C-x v h:                               Version Headers.
-* C-x v i:                               Editing with VC.
-* C-x v l:                               VC Status.
-* C-x v r:                               Making Snapshots.
-* C-x v s:                               Making Snapshots.
-* C-x v u:                               Editing with VC.
-* C-x v ~:                               Old Versions.
-* C-x }:                                 Change Window.
-* C-y:                                   Kill Ring.
-* C-y (isearch-mode):                    Incremental Search.
-* C-z:                                   Exiting.
-* control key:                           Intro to Keystrokes.
-* d (Calendar mode):                     Diary Commands.
-* DEL <1>:                               Program Modes.
-* DEL <2>:                               Major Modes.
-* DEL <3>:                               Kill Errors.
-* DEL:                                   Killing.
-* DEL (isearch-mode):                    Incremental Search.
-* DEL (query-replace):                   Query Replace.
-* DOWN:                                  Moving Point.
-* END:                                   Moving Point.
-* ESC <1>:                               Meta Key.
-* ESC:                                   Key Sequences.
-* ESC (query-replace):                   Query Replace.
-* F1:                                    Help.
-* g CHAR (Calendar mode):                From Other Calendar.
-* g d (Calendar mode):                   Specified Dates.
-* g m l (Calendar mode):                 Mayan Calendar.
-* h (Calendar mode):                     Holidays.
-* Help:                                  Help.
-* HOME:                                  Moving Point.
-* hyper key <1>:                         Super and Hyper Keys.
-* hyper key <2>:                         Representing Keystrokes.
-* hyper key:                             Intro to Keystrokes.
-* i a (Calendar mode):                   Special Diary Entries.
-* i b (Calendar mode):                   Special Diary Entries.
-* i c (Calendar mode):                   Special Diary Entries.
-* i d (Calendar mode):                   Adding to Diary.
-* i m (Calendar mode):                   Adding to Diary.
-* i w (Calendar mode):                   Adding to Diary.
-* i y (Calendar mode):                   Adding to Diary.
-* LEFT:                                  Moving Point.
-* LFD <1>:                               Basic Indent.
-* LFD <2>:                               Major Modes.
-* LFD:                                   String Key Sequences.
-* LFD (TeX mode):                        TeX Editing.
-* m (Calendar mode):                     Diary Commands.
-* M (Calendar mode):                     Lunar Phases.
-* M-!:                                   Single Shell.
-* M-$:                                   Spelling.
-* M-%:                                   Query Replace.
-* M-':                                   Expanding Abbrevs.
-* M-(:                                   Balanced Editing.
-* M-):                                   Balanced Editing.
-* M-,:                                   Tags Search.
-* M--:                                   Arguments.
-* M-- M-c:                               Fixing Case.
-* M-- M-l:                               Fixing Case.
-* M-- M-u:                               Fixing Case.
-* M-.:                                   Find Tag.
-* M-/:                                   Dynamic Abbrevs.
-* M-1:                                   Arguments.
-* M-;:                                   Comments.
-* M-<:                                   Moving Point.
-* M-< (Calendar mode):                   Move to Beginning or End.
-* M-=:                                   Position Info.
-* M-= (Calendar mode):                   Mark and Region.
-* M->:                                   Moving Point.
-* M-> (Calendar mode):                   Move to Beginning or End.
-* M-?:                                   Nroff Mode.
-* M-@ <1>:                               Words.
-* M-@:                                   Marking Objects.
-* M-[:                                   Paragraphs.
-* M-\ <1>:                               Indentation Commands.
-* M-\:                                   Killing.
-* M-]:                                   Paragraphs.
-* M-^ <1>:                               Indentation Commands.
-* M-^:                                   Killing.
-* M-a:                                   Sentences.
-* M-a (Calendar mode):                   Move to Beginning or End.
-* M-b:                                   Words.
-* M-c:                                   Case.
-* M-C-r:                                 Regexp Search.
-* M-C-s:                                 Regexp Search.
-* M-d <1>:                               Words.
-* M-d:                                   Killing.
-* M-DEL <1>:                             Words.
-* M-DEL <2>:                             Kill Errors.
-* M-DEL:                                 Killing.
-* M-e:                                   Sentences.
-* M-e (Calendar mode):                   Move to Beginning or End.
-* M-ESC:                                 Lisp Eval.
-* M-f:                                   Words.
-* M-g:                                   Fill Commands.
-* M-h <1>:                               Paragraphs.
-* M-h:                                   Marking Objects.
-* M-i:                                   Tab Stops.
-* M-k <1>:                               Sentences.
-* M-k:                                   Killing.
-* M-l:                                   Case.
-* M-LFD:                                 Comments.
-* M-LFD (Fortran mode):                  ForIndent Commands.
-* M-m:                                   Indentation Commands.
-* M-n <1>:                               Nroff Mode.
-* M-n:                                   Repetition.
-* M-n (isearch-mode):                    Incremental Search.
-* M-n (minibuffer history):              Minibuffer History.
-* M-n (Shell mode):                      Shell Mode.
-* M-p <1>:                               Nroff Mode.
-* M-p:                                   Repetition.
-* M-p (isearch-mode):                    Incremental Search.
-* M-p (minibuffer history):              Minibuffer History.
-* M-p (Shell mode):                      Shell Mode.
-* M-q:                                   Fill Commands.
-* M-r:                                   Moving Point.
-* M-r (minibuffer history):              Minibuffer History.
-* M-s:                                   Fill Commands.
-* M-s (minibuffer history):              Minibuffer History.
-* M-SPC:                                 Killing.
-* M-t <1>:                               Words.
-* M-t:                                   Transpose.
-* M-TAB <1>:                             Tabs in Picture.
-* M-TAB:                                 Lisp Completion.
-* M-TAB (customization buffer):          Changing an Option.
-* M-TAB (isearch-mode):                  Incremental Search.
-* M-u:                                   Case.
-* M-v <1>:                               Scrolling.
-* M-v:                                   Moving Point.
-* M-v (Calendar mode):                   Scroll Calendar.
-* M-w:                                   Kill Ring.
-* M-x:                                   M-x.
-* M-y:                                   Earlier Kills.
-* M-z:                                   Killing.
-* M-{ (Calendar mode):                   Calendar Unit Motion.
-* M-|:                                   Single Shell.
-* M-} (Calendar mode):                   Calendar Unit Motion.
-* M-~:                                   Saving.
-* META:                                  Meta Key.
-* meta key:                              Intro to Keystrokes.
-* next:                                  Scrolling.
-* o (Calendar mode):                     Specified Dates.
-* p (Calendar mode):                     To Other Calendar.
-* p d (Calendar mode):                   General Calendar.
-* pgdn:                                  Scrolling.
-* PGDN:                                  Moving Point.
-* pgup:                                  Scrolling.
-* PGUP:                                  Moving Point.
-* prior:                                 Scrolling.
-* q (Calendar mode):                     General Calendar.
-* RET:                                   Inserting Text.
-* RET (isearch-mode):                    Incremental Search.
-* RET (Shell mode):                      Shell Mode.
-* RIGHT:                                 Moving Point.
-* s (Calendar mode):                     Diary Commands.
-* S (Calendar mode):                     Sunrise/Sunset.
-* S-TAB (customization buffer):          Changing an Option.
-* shift key:                             Intro to Keystrokes.
-* SPC:                                   Completion Commands.
-* SPC (Calendar mode):                   General Calendar.
-* SPC (query-replace):                   Query Replace.
-* super key <1>:                         Super and Hyper Keys.
-* super key <2>:                         Representing Keystrokes.
-* super key:                             Intro to Keystrokes.
-* t (Calendar mode):                     LaTeX Calendar.
-* TAB <1>:                               Basic Indent.
-* TAB <2>:                               Text Mode.
-* TAB <3>:                               Indentation.
-* TAB <4>:                               Major Modes.
-* TAB <5>:                               Completion Example.
-* TAB:                                   String Key Sequences.
-* TAB (customization buffer):            Changing an Option.
-* TAB (Shell mode):                      Shell Mode.
-* u (Calendar mode) <1>:                 Diary Commands.
-* u (Calendar mode):                     Holidays.
-* UP:                                    Moving Point.
-* x (Calendar mode):                     Holidays.
+File: xemacs.info,  Node: Glossary,  Next: Manifesto,  Prev: Intro,  Up: Top
+
+Glossary
+********
+
+Abbrev
+     An abbrev is a text string which expands into a different text
+     string when present in the buffer.  For example, you might define
+     a short word as an abbrev for a long phrase that you want to insert
+     frequently.  *Note Abbrevs::.
+
+Aborting
+     Aborting means getting out of a recursive edit (q.v.).  You can use
+     the commands `C-]' and `M-x top-level' for this.  *Note Quitting::.
+
+Auto Fill mode
+     Auto Fill mode is a minor mode in which text you insert is
+     automatically broken into lines of fixed width.  *Note Filling::.
+
+Auto Saving
+     Auto saving means that Emacs automatically stores the contents of
+     an Emacs buffer in a specially-named file so the information will
+     not be lost if the buffer is lost due to a system error or user
+     error.  *Note Auto Save::.
+
+Backup File
+     A backup file records the contents that a file had before the
+     current editing session.  Emacs creates backup files automatically
+     to help you track down or cancel changes you later regret.  *Note
+     Backup::.
+
+Balance Parentheses
+     Emacs can balance parentheses manually or automatically.  Manual
+     balancing is done by the commands to move over balanced expressions
+     (*note Lists::).  Automatic balancing is done by blinking the
+     parenthesis that matches one just inserted (*note Matching Parens:
+     Matching.).
+
+Bind
+     To bind a key is to change its binding (q.v.).  *Note Rebinding::.
+
+Binding
+     A key gets its meaning in Emacs by having a binding which is a
+     command (q.v.), a Lisp function that is run when the key is typed.
+     *Note Binding: Commands.  Customization often involves rebinding a
+     character to a different command function.  The bindings of all
+     keys are recorded in the keymaps (q.v.).  *Note Keymaps::.
+
+Blank Lines
+     Blank lines are lines that contain only whitespace.  Emacs has
+     several commands for operating on the blank lines in a buffer.
+
+Buffer
+     The buffer is the basic editing unit; one buffer corresponds to one
+     piece of text being edited.  You can have several buffers, but at
+     any time you are editing only one, the `selected' buffer, though
+     several buffers can be visible when you are using multiple
+     windows.  *Note Buffers::.
+
+Buffer Selection History
+     Emacs keeps a buffer selection history which records how recently
+     each Emacs buffer was selected.  Emacs uses this list when
+     choosing a buffer to select.  *Note Buffers::.
+
+C-
+     `C' in the name of a character is an abbreviation for Control.
+     *Note C-: Keystrokes.
+
+C-M-
+     `C-M-' in the name of a character is an abbreviation for
+     Control-Meta.  *Note C-M-: Keystrokes.
+
+Case Conversion
+     Case conversion means changing text from upper case to lower case
+     or vice versa.  *Note Case::, for the commands for case conversion.
+
+Characters
+     Characters form the contents of an Emacs buffer; also, Emacs
+     commands are invoked by keys (q.v.), which are sequences of one or
+     more characters.  *Note Keystrokes::.
+
+Command
+     A command is a Lisp function specially defined to be able to serve
+     as a key binding in Emacs.  When you type a key (q.v.), Emacs
+     looks up its binding (q.v.) in the relevant keymaps (q.v.) to find
+     the command to run.  *Note Commands::.
+
+Command Name
+     A command name is the name of a Lisp symbol which is a command
+     (*note Commands::).  You can invoke any command by its name using
+     `M-x' (*note M-x::).
+
+Comments
+     A comment is text in a program which is intended only for the
+     people reading the program, and is marked specially so that it
+     will be ignored when the program is loaded or compiled.  Emacs
+     offers special commands for creating, aligning, and killing
+     comments.  *Note Comments::.
+
+Compilation
+     Compilation is the process of creating an executable program from
+     source code.  Emacs has commands for compiling files of Emacs Lisp
+     code (*note Lisp Libraries::) and programs in C and other languages
+     (*note Compilation::).
+
+Complete Key
+     A complete key is a character or sequence of characters which,
+     when typed by the user, fully specifies one action to be performed
+     by Emacs.  For example, `X' and `Control-f' and `Control-x m' are
+     keys.  Keys derive their meanings from being bound (q.v.) to
+     commands (q.v.).  Thus, `X' is conventionally bound to a command
+     to insert `X' in the buffer; `C-x m' is conventionally bound to a
+     command to begin composing a mail message. *Note Keystrokes::.
+
+Completion
+     When Emacs automatically fills an abbreviation for a name into the
+     entire name, that process is called completion.  Completion is
+     done for minibuffer (q.v.) arguments when the set of possible
+     valid inputs is known; for example, on command names, buffer
+     names, and file names.  Completion occurs when you type <TAB>,
+     <SPC>, or <RET>.  *Note Completion::.
+
+Continuation Line
+     When a line of text is longer than the width of the frame, it
+     takes up more than one screen line when displayed.  We say that the
+     text line is continued, and all screen lines used for it after the
+     first are called continuation lines.  *Note Continuation: Basic.
+
+Control-Character
+     ASCII characters with octal codes 0 through 037, and also code
+     0177, do not have graphic images assigned to them.  These are the
+     control characters.  Any control character can be typed by holding
+     down the <CTRL> key and typing some other character; some have
+     special keys on the keyboard.  <RET>, <TAB>, <ESC>, <LFD>, and
+     <DEL> are all control characters.  *Note Keystrokes::.
+
+Copyleft
+     A copyleft is a notice giving the public legal permission to
+     redistribute a program or other work of art.  Copylefts are used
+     by leftists to enrich the public just as copyrights are used by
+     rightists to gain power over the public.
+
+Current Buffer
+     The current buffer in Emacs is the Emacs buffer on which most
+     editing commands operate.  You can select any Emacs buffer as the
+     current one.  *Note Buffers::.
+
+Current Line
+     The line point is on (*note Point::).
+
+Current Paragraph
+     The paragraph that point is in.  If point is between paragraphs,
+     the current paragraph is the one that follows point.  *Note
+     Paragraphs::.
+
+Current Defun
+     The defun (q.v.) that point is in.  If point is between defuns, the
+     current defun is the one that follows point.  *Note Defuns::.
+
+Cursor
+     The cursor is the rectangle on the screen which indicates the
+     position called point (q.v.) at which insertion and deletion takes
+     place.  The cursor is on or under the character that follows
+     point.  Often people speak of `the cursor' when, strictly
+     speaking, they mean `point'.  *Note Cursor: Basic.
+
+Customization
+     Customization is making minor changes in the way Emacs works.  It
+     is often done by setting variables (*note Variables::) or by
+     rebinding keys (*note Keymaps::).
+
+Default Argument
+     The default for an argument is the value that is used if you do not
+     specify one.  When Emacs prompts you in the minibuffer for an
+     argument, the default argument is used if you just type <RET>.
+     *Note Minibuffer::.
+
+Default Directory
+     When you specify a file name that does not start with `/' or `~',
+     it is interpreted relative to the current buffer's default
+     directory.  *Note Default Directory: Minibuffer File.
+
+Defun
+     A defun is a list at the top level of parenthesis or bracket
+     structure in a program.  It is so named because most such lists in
+     Lisp programs are calls to the Lisp function `defun'.  *Note
+     Defuns::.
+
+<DEL>
+     The <DEL> character runs the command that deletes one character of
+     text.  *Note DEL: Basic.
+
+Deletion
+     Deleting text means erasing it without saving it.  Emacs deletes
+     text only when it is expected not to be worth saving (all
+     whitespace, or only one character).  The alternative is killing
+     (q.v.).  *Note Deletion: Killing.
+
+Deletion of Files
+     Deleting a file means removing it from the file system.  *Note
+     Misc File Ops::.
+
+Deletion of Messages
+     Deleting a message means flagging it to be eliminated from your
+     mail file.  Until the mail file is expunged, you can undo this by
+     undeleting the message.
+
+Deletion of Frames
+     When working under the multi-frame X-based version of XEmacs, you
+     can delete individual frames using the Close menu item from the
+     File menu.
+
+Deletion of Windows
+     When you delete a subwindow of an Emacs frame, you eliminate it
+     from the frame.  Other windows expand to use up the space.  The
+     deleted window can never come back, but no actual text is lost.
+     *Note Windows::.
+
+Directory
+     Files in the Unix file system are grouped into file directories.
+     *Note Directories: ListDir.
+
+Dired
+     Dired is the Emacs facility that displays the contents of a file
+     directory and allows you to "edit the directory", performing
+     operations on the files in the directory.  *Note Dired::.
+
+Disabled Command
+     A disabled command is one that you may not run without special
+     confirmation.  Commands are usually disabled because they are
+     confusing for beginning users.  *Note Disabling::.
+
+Dribble File
+     A file into which Emacs writes all the characters that the user
+     types on the keyboard.  Dribble files are used to make a record for
+     debugging Emacs bugs.  Emacs does not make a dribble file unless
+     you tell it to.  *Note Bugs::.
+
+Echo Area
+     The area at the bottom of the Emacs frame which is used for
+     echoing the arguments to commands, for asking questions, and for
+     printing brief messages (including error messages).  *Note Echo
+     Area::.
+
+Echoing
+     Echoing refers to acknowledging the receipt of commands by
+     displaying them (in the echo area).  Emacs never echoes
+     single-character keys; longer keys echo only if you pause while
+     typing them.
+
+Error
+     An error occurs when an Emacs command cannot execute in the current
+     circumstances.  When an error occurs, execution of the command
+     stops (unless the command has been programmed to do otherwise) and
+     Emacs reports the error by printing an error message (q.v.).
+     Type-ahead is discarded.  Then Emacs is ready to read another
+     editing command.
+
+Error Messages
+     Error messages are single lines of output printed by Emacs when the
+     user asks for something impossible to do (such as killing text
+     forward when point is at the end of the buffer).  They appear in
+     the echo area, accompanied by a beep.
+
+<ESC>
+     <ESC> is a character used as a prefix for typing Meta characters on
+     keyboards lacking a <META> key.  Unlike the <META> key (which,
+     like the <SHIFT> key, is held down while another character is
+     typed), the <ESC> key is pressed and released, and applies to the
+     next character typed.
+
+Fill Prefix
+     The fill prefix is a string that Emacs enters at the beginning of
+     each line when it performs filling.  It is not regarded as part of
+     the text to be filled.  *Note Filling::.
+
+Filling
+     Filling text means moving text from line to line so that all the
+     lines are approximately the same length.  *Note Filling::.
+
+Frame
+     When running Emacs on a TTY terminal, "frame" means the terminal's
+     screen.  When running Emacs under X, you can have multiple frames,
+     each corresponding to a top-level X window and each looking like
+     the screen on a TTY.  Each frame contains one or more
+     non-overlapping Emacs windows (possibly with associated
+     scrollbars, under X), an echo area, and (under X) possibly a
+     menubar, toolbar, and/or gutter.
+
+Global
+     Global means `independent of the current environment; in effect
+     throughout Emacs'.  It is the opposite of local (q.v.).  Examples
+     of the use of `global' appear below.
+
+Global Abbrev
+     A global definition of an abbrev (q.v.) is effective in all major
+     modes that do not have local (q.v.) definitions for the same
+     abbrev.  *Note Abbrevs::.
+
+Global Keymap
+     The global keymap (q.v.) contains key bindings that are in effect
+     unless local key bindings in a major mode's local keymap (q.v.)
+     override them.*Note Keymaps::.
+
+Global Substitution
+     Global substitution means replacing each occurrence of one string
+     by another string through a large amount of text.  *Note Replace::.
+
+Global Variable
+     The global value of a variable (q.v.) takes effect in all buffers
+     that do not have their own local (q.v.) values for the variable.
+     *Note Variables::.
+
+Graphic Character
+     Graphic characters are those assigned pictorial images rather than
+     just names.  All the non-Meta (q.v.) characters except for the
+     Control (q.v.) character are graphic characters.  These include
+     letters, digits, punctuation, and spaces; they do not include
+     <RET> or <ESC>.  In Emacs, typing a graphic character inserts that
+     character (in ordinary editing modes).  *Note Basic Editing: Basic.
+
+Grinding
+     Grinding means adjusting the indentation in a program to fit the
+     nesting structure.  *Note Grinding: Indentation.
+
+Hardcopy
+     Hardcopy means printed output.  Emacs has commands for making
+     printed listings of text in Emacs buffers.  *Note Hardcopy::.
+
+<HELP>
+     You can type <HELP> at any time to ask what options you have, or
+     to ask what any command does.  <HELP> is really `Control-h'.
+     *Note Help::.
+
+Inbox
+     An inbox is a file in which mail is delivered by the operating
+     system.  Some mail handlers transfers mail from inboxes to mail
+     files (q.v.) in which the mail is then stored permanently or until
+     explicitly deleted.
+
+Indentation
+     Indentation means blank space at the beginning of a line.  Most
+     programming languages have conventions for using indentation to
+     illuminate the structure of the program, and Emacs has special
+     features to help you set up the correct indentation.  *Note
+     Indentation::.
+
+Insertion
+     Insertion means copying text into the buffer, either from the
+     keyboard or from some other place in Emacs.
+
+Justification
+     Justification means adding extra spaces to lines of text to make
+     them come exactly to a specified width.  *Note Justification:
+     Filling.
+
+Keyboard Macros
+     Keyboard macros are a way of defining new Emacs commands from
+     sequences of existing ones, with no need to write a Lisp program.
+     *Note Keyboard Macros::.
+
+Key
+     A key is a sequence of characters that, when input to Emacs,
+     specify or begin to specify a single action for Emacs to perform.
+     That is, the sequence is considered a single unit.  If the key is
+     enough to specify one action, it is a complete key (q.v.); if it
+     is less than enough, it is a prefix key (q.v.).  *Note
+     Keystrokes::.
+
+Keymap
+     The keymap is the data structure that records the bindings (q.v.)
+     of keys to the commands that they run.  For example, the keymap
+     binds the character `C-n' to the command function `next-line'.
+     *Note Keymaps::.
+
+Kill Ring
+     The kill ring is the place where all text you have killed recently
+     is saved.  You can re-insert any of the killed text still in the
+     ring; this is called yanking (q.v.).  *Note Yanking::.
+
+Killing
+     Killing means erasing text and saving it on the kill ring so it
+     can be yanked (q.v.) later.  Some other systems call this
+     "cutting."  Most Emacs commands to erase text do killing, as
+     opposed to deletion (q.v.).  *Note Killing::.
+
+Killing Jobs
+     Killing a job (such as, an invocation of Emacs) means making it
+     cease to exist.  Any data within it, if not saved in a file, is
+     lost.  *Note Exiting::.
+
+List
+     A list is, approximately, a text string beginning with an open
+     parenthesis and ending with the matching close parenthesis.  In C
+     mode and other non-Lisp modes, groupings surrounded by other kinds
+     of matched delimiters appropriate to the language, such as braces,
+     are also considered lists.  Emacs has special commands for many
+     operations on lists.  *Note Lists::.
+
+Local
+     Local means `in effect only in a particular context'; the relevant
+     kind of context is a particular function execution, a particular
+     buffer, or a particular major mode.  Local is the opposite of
+     `global' (q.v.).  Specific uses of `local' in Emacs terminology
+     appear below.
+
+Local Abbrev
+     A local abbrev definition is effective only if a particular major
+     mode is selected.  In that major mode, it overrides any global
+     definition for the same abbrev.  *Note Abbrevs::.
+
+Local Keymap
+     A local keymap is used in a particular major mode; the key bindings
+     (q.v.) in the current local keymap override global bindings of the
+     same keys.  *Note Keymaps::.
+
+Local Variable
+     A local value of a variable (q.v.) applies to only one buffer.
+     *Note Locals::.
+
+M-
+     `M-' in the name of a character is an abbreviation for <META>, one
+     of the modifier keys that can accompany any character.  *Note
+     Keystrokes::.
+
+M-C-
+     `M-C-' in the name of a character is an abbreviation for
+     Control-Meta; it means the same thing as `C-M-'.  If your terminal
+     lacks a real <META> key, you type a Control-Meta character by
+     typing <ESC> and then typing the corresponding Control character.
+     *Note C-M-: Keystrokes.
+
+M-x
+     `M-x' is the key which is used to call an Emacs command by name.
+     You use it to call commands that are not bound to keys.  *Note
+     M-x::.
+
+Mail
+     Mail means messages sent from one user to another through the
+     computer system, to be read at the recipient's convenience.  Emacs
+     has commands for composing and sending mail, and for reading and
+     editing the mail you have received.  *Note Sending Mail::.
+
+Major Mode
+     The major modes are a mutually exclusive set of options each of
+     which configures Emacs for editing a certain sort of text.
+     Ideally, each programming language has its own major mode.  *Note
+     Major Modes::.
+
+Mark
+     The mark points to a position in the text.  It specifies one end
+     of the region (q.v.), point being the other end.  Many commands
+     operate on the whole region, that is, all the text from point to
+     the mark.  *Note Mark::.
+
+Mark Ring
+     The mark ring is used to hold several recent previous locations of
+     the mark, just in case you want to move back to them.  *Note Mark
+     Ring::.
+
+Message
+     See `mail'.
+
+Meta
+     Meta is the name of a modifier bit which a command character may
+     have.  It is present in a character if the character is typed with
+     the <META> key held down.  Such characters are given names that
+     start with `Meta-'.  For example, `Meta-<' is typed by holding down
+     <META> and at the same time typing `<' (which itself is done, on
+     most terminals, by holding down <SHIFT> and typing `,').  *Note
+     Meta: Keystrokes.
+
+Meta Character
+     A Meta character is one whose character code includes the Meta bit.
+
+Minibuffer
+     The minibuffer is the window that Emacs displays inside the echo
+     area (q.v.) when it prompts you for arguments to commands.  *Note
+     Minibuffer::.
+
+Minor Mode
+     A minor mode is an optional feature of Emacs which can be switched
+     on or off independent of the major mode.  Each minor mode has a
+     command to turn it on or off.  *Note Minor Modes::.
+
+Mode Line
+     The mode line is the line at the bottom of each text window (q.v.),
+     which gives status information on the buffer displayed in that
+     window.  *Note Mode Line::.
+
+Modified Buffer
+     A buffer (q.v.) is modified if its text has been changed since the
+     last time the buffer was saved (or since it was created, if it has
+     never been saved).  *Note Saving::.
+
+Moving Text
+     Moving text means erasing it from one place and inserting it in
+     another.  This is done by killing (q.v.) and then yanking (q.v.).
+     *Note Killing::.
+
+Named Mark
+     A named mark is a register (q.v.) in its role of recording a
+     location in text so that you can move point to that location.
+     *Note Registers::.
+
+Narrowing
+     Narrowing means creating a restriction (q.v.) that limits editing
+     in the current buffer to only a part of the text in the buffer.
+     Text outside that part is inaccessible to the user until the
+     boundaries are widened again, but it is still there, and saving
+     the file saves the invisible text.  *Note Narrowing::.
+
+Newline
+     <LFD> characters in the buffer terminate lines of text and are
+     called newlines.  *Note Newline: Keystrokes.
+
+Numeric Argument
+     A numeric argument is a number, specified before a command, to
+     change the effect of the command.  Often the numeric argument
+     serves as a repeat count.  *Note Arguments::.
+
+Option
+     An option is a variable (q.v.) that allows you to customize Emacs
+     by giving it a new value.  *Note Variables::.
+
+Overwrite Mode
+     Overwrite mode is a minor mode.  When it is enabled, ordinary text
+     characters replace the existing text after point rather than
+     pushing it to the right.  *Note Minor Modes::.
+
+Page
+     A page is a unit of text, delimited by formfeed characters (ASCII
+     Control-L, code 014) coming at the beginning of a line.  Some Emacs
+     commands are provided for moving over and operating on pages.
+     *Note Pages::.
+
+Paragraphs
+     Paragraphs are the medium-size unit of English text.  There are
+     special Emacs commands for moving over and operating on paragraphs.
+     *Note Paragraphs::.
+
+Parsing
+     We say that Emacs parses words or expressions in the text being
+     edited.  Really, all it knows how to do is find the other end of a
+     word or expression.  *Note Syntax::.
+
+Point
+     Point is the place in the buffer at which insertion and deletion
+     occur.  Point is considered to be between two characters, not at
+     one character.  The terminal's cursor (q.v.) indicates the
+     location of point.  *Note Point: Basic.
+
+Prefix Key
+     A prefix key is a key (q.v.) whose sole function is to introduce a
+     set of multi-character keys.  `Control-x' is an example of a prefix
+     key; any two-character sequence starting with `C-x' is also a
+     legitimate key.  *Note Keystrokes::.
+
+Prompt
+     A prompt is text printed to ask the user for input.  Printing a
+     prompt is called prompting.  Emacs prompts always appear in the
+     echo area (q.v.).  One kind of prompting happens when the
+     minibuffer is used to read an argument (*note Minibuffer::); the
+     echoing which happens when you pause in the middle of typing a
+     multi-character key is also a kind of prompting (*note Echo
+     Area::).
+
+Quitting
+     Quitting means cancelling a partially typed command or a running
+     command, using `C-g'.  *Note Quitting::.
+
+Quoting
+     Quoting means depriving a character of its usual special
+     significance.  In Emacs this is usually done with `Control-q'.
+     What constitutes special significance depends on the context and
+     on convention.  For example, an "ordinary" character as an Emacs
+     command inserts itself; so in this context, a special character is
+     any character that does not normally insert itself (such as <DEL>,
+     for example), and quoting it makes it insert itself as if it were
+     not special.  Not all contexts allow quoting.  *Note Quoting:
+     Basic.
+
+Read-only Buffer
+     A read-only buffer is one whose text you are not allowed to change.
+     Normally Emacs makes buffers read-only when they contain text which
+     has a special significance to Emacs, such as Dired buffers.
+     Visiting a file that is write-protected also makes a read-only
+     buffer.  *Note Buffers::.
+
+Recursive Editing Level
+     A recursive editing level is a state in which part of the
+     execution of a command involves asking the user to edit some text.
+     This text may or may not be the same as the text to which the
+     command was applied.  The mode line indicates recursive editing
+     levels with square brackets (`[' and `]').  *Note Recursive Edit::.
+
+Redisplay
+     Redisplay is the process of correcting the image on the screen to
+     correspond to changes that have been made in the text being edited.
+     *Note Redisplay: Frame.
+
+Regexp
+     See `regular expression'.
+
+Region
+     The region is the text between point (q.v.) and the mark (q.v.).
+     Many commands operate on the text of the region.  *Note Region:
+     Mark.
+
+Registers
+     Registers are named slots in which text or buffer positions or
+     rectangles can be saved for later use.  *Note Registers::.
+
+Regular Expression
+     A regular expression is a pattern that can match various text
+     strings; for example, `l[0-9]+' matches `l' followed by one or more
+     digits.  *Note Regexps::.
+
+Replacement
+     See `global substitution'.
+
+Restriction
+     A buffer's restriction is the amount of text, at the beginning or
+     the end of the buffer, that is temporarily invisible and
+     inaccessible.  Giving a buffer a nonzero amount of restriction is
+     called narrowing (q.v.).  *Note Narrowing::.
+
+<RET>
+     <RET> is the character than runs the command to insert a newline
+     into the text.  It is also used to terminate most arguments read
+     in the minibuffer (q.v.).  *Note Return: Keystrokes.
+
+Saving
+     Saving a buffer means copying its text into the file that was
+     visited (q.v.) in that buffer.  To actually change a file you have
+     edited in Emacs, you have to save it.  *Note Saving::.
+
+Scrolling
+     Scrolling means shifting the text in the Emacs window to make a
+     different part of the buffer visible.  *Note Scrolling: Display.
+
+Searching
+     Searching means moving point to the next occurrence of a specified
+     string.  *Note Search::.
+
+Selecting
+     Selecting a buffer means making it the current (q.v.) buffer.
+     *Note Selecting: Buffers.
+
+Self-documentation
+     Self-documentation is the feature of Emacs which can tell you what
+     any command does, or can give you a list of all commands related
+     to a topic you specify.  You ask for self-documentation with the
+     help character, `C-h'.  *Note Help::.
+
+Sentences
+     Emacs has commands for moving by or killing by sentences.  *Note
+     Sentences::.
+
+Sexp
+     An sexp (short for `s-expression,' itself short for `symbolic
+     expression') is the basic syntactic unit of Lisp in its textual
+     form: either a list, or Lisp atom.  Many Emacs commands operate on
+     sexps.  The term `sexp' is generalized to languages other than
+     Lisp to mean a syntactically recognizable expression.  *Note
+     Sexps: Lists.
+
+Simultaneous Editing
+     Simultaneous editing means two users modifying the same file at
+     once.  If simultaneous editing is not detected, you may lose your
+     work.  Emacs detects all cases of simultaneous editing and warns
+     the user to investigate them.  *Note Simultaneous Editing:
+     Interlocking.
+
+String
+     A string is a kind of Lisp data object which contains a sequence of
+     characters.  Many Emacs variables are intended to have strings as
+     values.  The Lisp syntax for a string consists of the characters in
+     the string with a `"' before and another `"' after. Write a `"'
+     that is part of the string as `\"' and a `\' that is part of the
+     string as `\\'.  You can include all other characters, including
+     newline, just by writing them inside the string. You can also
+     include escape sequences as in C, such as `\n' for newline or
+     `\241' using an octal character code.
+
+String Substitution
+     See `global substitution'.
+
+Syntax Table
+     The syntax table tells Emacs which characters are part of a word,
+     which characters balance each other like parentheses, etc.  *Note
+     Syntax::.
+
+Tag Table
+     A tag table is a file that serves as an index to the function
+     definitions in one or more other files.  *Note Tags::.
+
+Termscript File
+     A termscript file contains a record of all characters Emacs sent to
+     the terminal.  It is used for tracking down bugs in Emacs
+     redisplay.  Emacs does not make a termscript file unless
+     explicitly instructed to do so.  *Note Bugs::.
+
+Text
+     Text has two meanings (*note Text::):
+
+        * Data consisting of a sequence of characters, as opposed to
+          binary numbers, images, graphics commands, executable
+          programs, and the like.  The contents of an Emacs buffer are
+          always text in this sense.
+
+        * Data consisting of written human language, as opposed to
+          programs, or something that follows the stylistic conventions
+          of human language.
+
+Top Level
+     Top level is the normal state of Emacs, in which you are editing
+     the text of the file you have visited.  You are at top level
+     whenever you are not in a recursive editing level (q.v.) or the
+     minibuffer (q.v.), and not in the middle of a command.  You can
+     get back to top level by aborting (q.v.) and quitting (q.v.).
+     *Note Quitting::.
+
+Transposition
+     Transposing two units of text means putting each one into the place
+     formerly occupied by the other.  There are Emacs commands to
+     transpose two adjacent characters, words, sexps (q.v.), or lines
+     (*note Transpose::).
+
+Truncation
+     Truncating text lines in the display means leaving out any text on
+     a line that does not fit within the right margin of the window
+     displaying it.  See also `continuation line'.  *Note Truncation:
+     Basic.
+
+Undoing
+     Undoing means making your previous editing go in reverse, bringing
+     back the text that existed earlier in the editing session.  *Note
+     Undo::.
+
+Variable
+     A variable is Lisp object that can store an arbitrary value.
+     Emacs uses some variables for internal purposes, and has others
+     (known as `options' (q.v.)) you can set to control the behavior of
+     Emacs.  The variables used in Emacs that you are likely to be
+     interested in are listed in the Variables Index of this manual.
+     *Note Variables::, for information on variables.
+
+Visiting
+     Visiting a file means loading its contents into a buffer (q.v.)
+     where they can be edited.  *Note Visiting::.
+
+Whitespace
+     Whitespace is any run of consecutive formatting characters (spaces,
+     tabs, newlines, and backspaces).
+
+Widening
+     Widening is removing any restriction (q.v.) on the current buffer;
+     it is the opposite of narrowing (q.v.).  *Note Narrowing::.
+
+Window
+     Emacs divides the frame into one or more windows, each of which can
+     display the contents of one buffer (q.v.) at any time.  *Note
+     Frame::, for basic information on how Emacs uses the frame.  *Note
+     Windows::, for commands to control the use of windows. Note that if
+     you are running Emacs under X, terminology can be confusing: Each
+     Emacs frame occupies a separate X window and can, in turn, be
+     divided into different subwindows.
+
+Word Abbrev
+     Synonymous with `abbrev'.
+
+Word Search
+     Word search is searching for a sequence of words, considering the
+     punctuation between them as insignificant.  *Note Word Search::.
+
+Yanking
+     Yanking means reinserting text previously killed.  It can be used
+     to undo a mistaken kill, or for copying or moving text.  Some other
+     systems call this "pasting".  *Note Yanking::.
 
index fe8b724..9ce962e 100644 (file)
@@ -30,766 +30,954 @@ versions, except that the sections entitled "The GNU Manifesto",
 translation approved by the author instead of in the original English.
 
 \1f
-File: xemacs.info,  Node: Command Index,  Next: Variable Index,  Prev: Key Index,  Up: Top
+File: xemacs.info,  Node: Manifesto,  Next: Key Index,  Prev: Glossary,  Up: Top
 
-Command and Function Index
-**************************
+The GNU Manifesto
+*****************
+
+What's GNU?  GNU's Not Unix!
+============================
+
+   GNU, which stands for GNU's Not Unix, is the name for the complete
+Unix-compatible software system which I am writing so that I can give it
+away free to everyone who can use it.  Several other volunteers are
+helping me.  Contributions of time, money, programs, and equipment are
+greatly needed.
+
+   So far we have an Emacs text editor with Lisp for writing editor
+commands, a source level debugger, a yacc-compatible parser generator,
+a linker, and around 35 utilities.  A shell (command interpreter) is
+nearly completed.  A new portable optimizing C compiler has compiled
+itself and may be released this year.  An initial kernel exists, but
+many more features are needed to emulate Unix.  When the kernel and
+compiler are finished, it will be possible to distribute a GNU system
+suitable for program development.  We will use TeX as our text
+formatter, but an nroff is being worked on.  We will use the free,
+portable X window system as well.  After this we will add a portable
+Common Lisp, an Empire game, a spreadsheet, and hundreds of other
+things, plus online documentation.  We hope to supply, eventually,
+everything useful that normally comes with a Unix system, and more.
+
+   GNU will be able to run Unix programs, but will not be identical to
+Unix.  We will make all improvements that are convenient, based on our
+experience with other operating systems.  In particular, we plan to
+have longer filenames, file version numbers, a crashproof file system,
+filename completion perhaps, terminal-independent display support, and
+perhaps eventually a Lisp-based window system through which several
+Lisp programs and ordinary Unix programs can share a screen.  Both C
+and Lisp will be available as system programming languages.  We will
+try to support UUCP, MIT Chaosnet, and Internet protocols for
+communication.
+
+   GNU is aimed initially at machines in the 68000/16000 class with
+virtual memory, because they are the easiest machines to make it run
+on.  The extra effort to make it run on smaller machines will be left
+to someone who wants to use it on them.
+
+   To avoid horrible confusion, please pronounce the `G' in the word
+`GNU' when it is the name of this project.
+
+Why I Must Write GNU
+====================
+
+   I consider that the golden rule requires that if I like a program I
+must share it with other people who like it.  Software sellers want to
+divide the users and conquer them, making each user agree not to share
+with others.  I refuse to break solidarity with other users in this
+way.  I cannot in good conscience sign a nondisclosure agreement or a
+software license agreement.  For years I worked within the Artificial
+Intelligence Lab to resist such tendencies and other inhospitalities,
+but eventually they had gone too far: I could not remain in an
+institution where such things are done for me against my will.
+
+   So that I can continue to use computers without dishonor, I have
+decided to put together a sufficient body of free software so that I
+will be able to get along without any software that is not free.  I
+have resigned from the AI lab to deny MIT any legal excuse to prevent
+me from giving GNU away.
+
+Why GNU Will Be Compatible With Unix
+====================================
+
+   Unix is not my ideal system, but it is not too bad.  The essential
+features of Unix seem to be good ones, and I think I can fill in what
+Unix lacks without spoiling them.  And a system compatible with Unix
+would be convenient for many other people to adopt.
+
+How GNU Will Be Available
+=========================
+
+   GNU is not in the public domain.  Everyone will be permitted to
+modify and redistribute GNU, but no distributor will be allowed to
+restrict its further redistribution.  That is to say, proprietary
+modifications will not be allowed.  I want to make sure that all
+versions of GNU remain free.
+
+Why Many Other Programmers Want to Help
+=======================================
+
+   I have found many other programmers who are excited about GNU and
+want to help.
+
+   Many programmers are unhappy about the commercialization of system
+software.  It may enable them to make more money, but it requires them
+to feel in conflict with other programmers in general rather than feel
+as comrades.  The fundamental act of friendship among programmers is the
+sharing of programs; marketing arrangements now typically used
+essentially forbid programmers to treat others as friends.  The
+purchaser of software must choose between friendship and obeying the
+law.  Naturally, many decide that friendship is more important.  But
+those who believe in law often do not feel at ease with either choice.
+They become cynical and think that programming is just a way of making
+money.
+
+   By working on and using GNU rather than proprietary programs, we can
+be hospitable to everyone and obey the law.  In addition, GNU serves as
+an example to inspire and a banner to rally others to join us in
+sharing.  This can give us a feeling of harmony which is impossible if
+we use software that is not free.  For about half the programmers I
+talk to, this is an important happiness that money cannot replace.
+
+How You Can Contribute
+======================
+
+   I am asking computer manufacturers for donations of machines and
+money.  I'm asking individuals for donations of programs and work.
+
+   One consequence you can expect if you donate machines is that GNU
+will run on them at an early date.  The machines should be complete,
+ready-to-use systems, approved for use in a residential area, and not
+in need of sophisticated cooling or power.
+
+   I have found very many programmers eager to contribute part-time
+work for GNU.  For most projects, such part-time distributed work would
+be very hard to coordinate; the independently-written parts would not
+work together.  But for the particular task of replacing Unix, this
+problem is absent.  A complete Unix system contains hundreds of utility
+programs, each of which is documented separately.  Most interface
+specifications are fixed by Unix compatibility.  If each contributor
+can write a compatible replacement for a single Unix utility, and make
+it work properly in place of the original on a Unix system, then these
+utilities will work right when put together.  Even allowing for Murphy
+to create a few unexpected problems, assembling these components will
+be a feasible task.  (The kernel will require closer communication and
+will be worked on by a small, tight group.)
+
+   If I get donations of money, I may be able to hire a few people full
+or part time.  The salary won't be high by programmers' standards, but
+I'm looking for people for whom building community spirit is as
+important as making money.  I view this as a way of enabling dedicated
+people to devote their full energies to working on GNU by sparing them
+the need to make a living in another way.
+
+Why All Computer Users Will Benefit
+===================================
+
+   Once GNU is written, everyone will be able to obtain good system
+software free, just like air.
+
+   This means much more than just saving everyone the price of a Unix
+license.  It means that much wasteful duplication of system programming
+effort will be avoided.  This effort can go instead into advancing the
+state of the art.
+
+   Complete system sources will be available to everyone.  As a result,
+a user who needs changes in the system will always be free to make them
+himself, or hire any available programmer or company to make them for
+him.  Users will no longer be at the mercy of one programmer or company
+which owns the sources and is in sole position to make changes.
+
+   Schools will be able to provide a much more educational environment
+by encouraging all students to study and improve the system code.
+Harvard's computer lab used to have the policy that no program could be
+installed on the system if its sources were not on public display, and
+upheld it by actually refusing to install certain programs.  I was very
+much inspired by this.
+
+   Finally, the overhead of considering who owns the system software
+and what one is or is not entitled to do with it will be lifted.
+
+   Arrangements to make people pay for using a program, including
+licensing of copies, always incur a tremendous cost to society through
+the cumbersome mechanisms necessary to figure out how much (that is,
+which programs) a person must pay for.  And only a police state can
+force everyone to obey them.  Consider a space station where air must
+be manufactured at great cost: charging each breather per liter of air
+may be fair, but wearing the metered gas mask all day and all night is
+intolerable even if everyone can afford to pay the air bill.  And the
+TV cameras everywhere to see if you ever take the mask off are
+outrageous.  It's better to support the air plant with a head tax and
+chuck the masks.
+
+   Copying all or parts of a program is as natural to a programmer as
+breathing, and as productive.  It ought to be as free.
+
+Some Easily Rebutted Objections to GNU's Goals
+==============================================
+
+     "Nobody will use it if it is free, because that means they can't
+     rely on any support."
+
+     "You have to charge for the program to pay for providing the
+     support."
+
+   If people would rather pay for GNU plus service than get GNU free
+without service, a company to provide just service to people who have
+obtained GNU free ought to be profitable.
+
+   We must distinguish between support in the form of real programming
+work and mere handholding.  The former is something one cannot rely on
+from a software vendor.  If your problem is not shared by enough
+people, the vendor will tell you to get lost.
+
+   If your business needs to be able to rely on support, the only way
+is to have all the necessary sources and tools.  Then you can hire any
+available person to fix your problem; you are not at the mercy of any
+individual.  With Unix, the price of sources puts this out of
+consideration for most businesses.  With GNU this will be easy.  It is
+still possible for there to be no available competent person, but this
+problem cannot be blamed on distribution arrangements.  GNU does not
+eliminate all the world's problems, only some of them.
+
+   Meanwhile, the users who know nothing about computers need
+handholding: doing things for them which they could easily do
+themselves but don't know how.
+
+   Such services could be provided by companies that sell just
+hand-holding and repair service.  If it is true that users would rather
+spend money and get a product with service, they will also be willing
+to buy the service having got the product free.  The service companies
+will compete in quality and price; users will not be tied to any
+particular one.  Meanwhile, those of us who don't need the service
+should be able to use the program without paying for the service.
+
+     "You cannot reach many people without advertising, and you must
+     charge for the program to support that."
+
+     "It's no use advertising a program people can get free."
+
+   There are various forms of free or very cheap publicity that can be
+used to inform numbers of computer users about something like GNU.  But
+it may be true that one can reach more microcomputer users with
+advertising.  If this is really so, a business which advertises the
+service of copying and mailing GNU for a fee ought to be successful
+enough to pay for its advertising and more.  This way, only the users
+who benefit from the advertising pay for it.
+
+   On the other hand, if many people get GNU from their friends, and
+such companies don't succeed, this will show that advertising was not
+really necessary to spread GNU.  Why is it that free market advocates
+don't want to let the free market decide this?
+
+     "My company needs a proprietary operating system to get a
+     competitive edge."
+
+   GNU will remove operating system software from the realm of
+competition.  You will not be able to get an edge in this area, but
+neither will your competitors be able to get an edge over you.  You and
+they will compete in other areas, while benefitting mutually in this
+one.  If your business is selling an operating system, you will not
+like GNU, but that's tough on you.  If your business is something else,
+GNU can save you from being pushed into the expensive business of
+selling operating systems.
+
+   I would like to see GNU development supported by gifts from many
+manufacturers and users, reducing the cost to each.
+
+     "Don't programmers deserve a reward for their creativity?"
+
+   If anything deserves a reward, it is social contribution.
+Creativity can be a social contribution, but only in so far as society
+is free to use the results.  If programmers deserve to be rewarded for
+creating innovative programs, by the same token they deserve to be
+punished if they restrict the use of these programs.
+
+     "Shouldn't a programmer be able to ask for a reward for his
+     creativity?"
+
+   There is nothing wrong with wanting pay for work, or seeking to
+maximize one's income, as long as one does not use means that are
+destructive.  But the means customary in the field of software today
+are based on destruction.
+
+   Extracting money from users of a program by restricting their use of
+it is destructive because the restrictions reduce the amount and the
+ways that the program can be used.  This reduces the amount of wealth
+that humanity derives from the program.  When there is a deliberate
+choice to restrict, the harmful consequences are deliberate destruction.
+
+   The reason a good citizen does not use such destructive means to
+become wealthier is that, if everyone did so, we would all become
+poorer from the mutual destructiveness.  This is Kantian ethics; or,
+the Golden Rule.  Since I do not like the consequences that result if
+everyone hoards information, I am required to consider it wrong for one
+to do so.  Specifically, the desire to be rewarded for one's creativity
+does not justify depriving the world in general of all or part of that
+creativity.
+
+     "Won't programmers starve?"
+
+   I could answer that nobody is forced to be a programmer.  Most of us
+cannot manage to get any money for standing on the street and making
+faces.  But we are not, as a result, condemned to spend our lives
+standing on the street making faces, and starving.  We do something
+else.
+
+   But that is the wrong answer because it accepts the questioner's
+implicit assumption: that without ownership of software, programmers
+cannot possibly be paid a cent.  Supposedly it is all or nothing.
+
+   The real reason programmers will not starve is that it will still be
+possible for them to get paid for programming; just not paid as much as
+now.
+
+   Restricting copying is not the only basis for business in software.
+It is the most common basis because it brings in the most money.  If it
+were prohibited, or rejected by the customer, software business would
+move to other bases of organization which are now used less often.
+There are always numerous ways to organize any kind of business.
+
+   Probably programming will not be as lucrative on the new basis as it
+is now.  But that is not an argument against the change.  It is not
+considered an injustice that sales clerks make the salaries that they
+now do.  If programmers made the same, that would not be an injustice
+either.  (In practice they would still make considerably more than
+that.)
+
+     "Don't people have a right to control how their creativity is
+     used?"
+
+   "Control over the use of one's ideas" really constitutes control over
+other people's lives; and it is usually used to make their lives more
+difficult.
+
+   People who have studied the issue of intellectual property rights
+carefully (such as lawyers) say that there is no intrinsic right to
+intellectual property.  The kinds of supposed intellectual property
+rights that the government recognizes were created by specific acts of
+legislation for specific purposes.
+
+   For example, the patent system was established to encourage
+inventors to disclose the details of their inventions.  Its purpose was
+to help society rather than to help inventors.  At the time, the life
+span of 17 years for a patent was short compared with the rate of
+advance of the state of the art.  Since patents are an issue only among
+manufacturers, for whom the cost and effort of a license agreement are
+small compared with setting up production, the patents often do not do
+much harm.  They do not obstruct most individuals who use patented
+products.
+
+   The idea of copyright did not exist in ancient times, when authors
+frequently copied other authors at length in works of non-fiction.  This
+practice was useful, and is the only way many authors' works have
+survived even in part.  The copyright system was created expressly for
+the purpose of encouraging authorship.  In the domain for which it was
+invented--books, which could be copied economically only on a printing
+press--it did little harm, and did not obstruct most of the individuals
+who read the books.
+
+   All intellectual property rights are just licenses granted by society
+because it was thought, rightly or wrongly, that society as a whole
+would benefit by granting them.  But in any particular situation, we
+have to ask: are we really better off granting such license?  What kind
+of act are we licensing a person to do?
+
+   The case of programs today is very different from that of books a
+hundred years ago.  The fact that the easiest way to copy a program is
+from one neighbor to another, the fact that a program has both source
+code and object code which are distinct, and the fact that a program is
+used rather than read and enjoyed, combine to create a situation in
+which a person who enforces a copyright is harming society as a whole
+both materially and spiritually; in which a person should not do so
+regardless of whether the law enables him to.
+
+     "Competition makes things get done better."
+
+   The paradigm of competition is a race: by rewarding the winner, we
+encourage everyone to run faster.  When capitalism really works this
+way, it does a good job; but its defenders are wrong in assuming it
+always works this way.  If the runners forget why the reward is offered
+and become intent on winning, no matter how, they may find other
+strategies--such as, attacking other runners.  If the runners get into
+a fist fight, they will all finish late.
+
+   Proprietary and secret software is the moral equivalent of runners
+in a fist fight.  Sad to say, the only referee we've got does not seem
+to object to fights; he just regulates them ("For every ten yards you
+run, you can fire one shot").  He really ought to break them up, and
+penalize runners for even trying to fight.
+
+     "Won't everyone stop programming without a monetary incentive?"
+
+   Actually, many people will program with absolutely no monetary
+incentive.  Programming has an irresistible fascination for some
+people, usually the people who are best at it.  There is no shortage of
+professional musicians who keep at it even though they have no hope of
+making a living that way.
+
+   But really this question, though commonly asked, is not appropriate
+to the situation.  Pay for programmers will not disappear, only become
+less.  So the right question is, will anyone program with a reduced
+monetary incentive?  My experience shows that they will.
+
+   For more than ten years, many of the world's best programmers worked
+at the Artificial Intelligence Lab for far less money than they could
+have had anywhere else.  They got many kinds of non-monetary rewards:
+fame and appreciation, for example.  And creativity is also fun, a
+reward in itself.
+
+   Then most of them left when offered a chance to do the same
+interesting work for a lot of money.
+
+   What the facts show is that people will program for reasons other
+than riches; but if given a chance to make a lot of money as well, they
+will come to expect and demand it.  Low-paying organizations do poorly
+in competition with high-paying ones, but they do not have to do badly
+if the high-paying ones are banned.
+
+     "We need the programmers desperately.  If they demand that we stop
+     helping our neighbors, we have to obey."
+
+   You're never so desperate that you have to obey this sort of demand.
+Remember: millions for defense, but not a cent for tribute!
+
+     "Programmers need to make a living somehow."
+
+   In the short run, this is true.  However, there are plenty of ways
+that programmers could make a living without selling the right to use a
+program.  This way is customary now because it brings programmers and
+businessmen the most money, not because it is the only way to make a
+living.  It is easy to find other ways if you want to find them.  Here
+are a number of examples.
+
+   A manufacturer introducing a new computer will pay for the porting of
+operating systems onto the new hardware.
+
+   The sale of teaching, hand-holding, and maintenance services could
+also employ programmers.
+
+   People with new ideas could distribute programs as freeware and ask
+for donations from satisfied users or sell hand-holding services.  I
+have met people who are already working this way successfully.
+
+   Users with related needs can form users' groups and pay dues.  A
+group would contract with programming companies to write programs that
+the group's members would like to use.
+
+   All sorts of development can be funded with a Software Tax:
+
+     Suppose everyone who buys a computer has to pay a certain percent
+     of the price as a software tax.  The government gives this to an
+     agency like the NSF to spend on software development.
+
+     But if the computer buyer makes a donation to software development
+     himself, he can take a credit against the tax.  He can donate to
+     the project of his own choosing--often, chosen because he hopes to
+     use the results when
+
+     it is done.  He can take a credit for any amount of donation up to
+     the total tax he had to pay.
+
+     The total tax rate could be decided by a vote of the payers of the
+     tax, weighted according to the amount they will be taxed on.
+
+     The consequences:
+
+        * The computer-using community supports software development.
+
+        * This community decides what level of support is needed.
+
+        * Users who care which projects their share is spent on can
+          choose this for themselves.
+
+   In the long run, making programs free is a step toward the
+post-scarcity world, where nobody will have to work very hard just to
+make a living.  People will be free to devote themselves to activities
+that are fun, such as programming, after spending the necessary ten
+hours a week on required tasks such as legislation, family counseling,
+robot repair, and asteroid prospecting.  There will be no need to be
+able to make a living from programming.
+
+   We have already greatly reduced the amount of work that the whole
+society must do for its actual productivity, but only a little of this
+has translated itself into leisure for workers because much
+nonproductive activity is required to accompany productive activity.
+The main causes of this are bureaucracy and isometric struggles against
+competition.  Free software will greatly reduce these drains in the
+area of software production.  We must do this, in order for technical
+gains in productivity to translate into less work for us.
+
+\1f
+File: xemacs.info,  Node: Key Index,  Next: Command Index,  Prev: Manifesto,  Up: Top
+
+Key (Character) Index
+*********************
 
 * Menu:
 
-* abbrev-mode <1>:                       Minor Modes.
-* abbrev-mode:                           Abbrevs.
-* abbrev-prefix-mark:                    Expanding Abbrevs.
-* abort-recursive-edit <1>:              Quitting.
-* abort-recursive-edit:                  Recursive Edit.
-* add-change-log-entry:                  Change Log.
-* add-global-abbrev:                     Defining Abbrevs.
-* add-menu:                              Menu Customization.
-* add-menu-item:                         Menu Customization.
-* add-mode-abbrev:                       Defining Abbrevs.
-* add-name-to-file:                      Misc File Ops.
-* american-calendar:                     Date Formats.
-* append-next-kill:                      Appending Kills.
-* append-to-buffer:                      Accumulating Text.
-* append-to-file <1>:                    Misc File Ops.
-* append-to-file:                        Accumulating Text.
-* apropos:                               Apropos.
-* apropos-documentation:                 Apropos.
-* apropos-value:                         Apropos.
-* ask-user-about-lock:                   Interlocking.
-* auto-fill-mode <1>:                    Minor Modes.
-* auto-fill-mode:                        Auto Fill.
-* auto-save-mode:                        Auto Save Control.
-* back-to-indentation:                   Indentation Commands.
-* backward-char:                         Moving Point.
-* backward-delete-char-untabify:         Program Modes.
-* backward-kill-sentence <1>:            Sentences.
-* backward-kill-sentence <2>:            Kill Errors.
-* backward-kill-sentence:                Killing.
-* backward-kill-word <1>:                Words.
-* backward-kill-word <2>:                Kill Errors.
-* backward-kill-word:                    Killing.
-* backward-list:                         Lists.
-* backward-or-forward-delete-char:       Inserting Text.
-* backward-page:                         Pages.
-* backward-paragraph:                    Paragraphs.
-* backward-sentence:                     Sentences.
-* backward-sexp:                         Lists.
-* backward-text-line:                    Nroff Mode.
-* backward-up-list:                      Lists.
-* backward-word:                         Words.
-* batch-byte-compile:                    Compiling Libraries.
-* beginning-of-buffer:                   Moving Point.
-* beginning-of-defun:                    Defuns.
-* beginning-of-fortran-subprogram:       Fortran Motion.
-* beginning-of-line:                     Moving Point.
-* bookmark-delete:                       Bookmarks.
-* bookmark-insert:                       Bookmarks.
-* bookmark-insert-location:              Bookmarks.
-* bookmark-jump:                         Bookmarks.
-* bookmark-load:                         Bookmarks.
-* bookmark-save:                         Bookmarks.
-* bookmark-set:                          Bookmarks.
-* bookmark-write:                        Bookmarks.
-* buffer-menu:                           Several Buffers.
-* byte-compile-and-load-file:            Compiling Libraries.
-* byte-compile-buffer:                   Compiling Libraries.
-* byte-compile-file:                     Compiling Libraries.
-* byte-recompile-directory:              Compiling Libraries.
-* c-indent-line:                         Basic Indent.
-* calendar:                              Calendar/Diary.
-* calendar-backward-day:                 Calendar Unit Motion.
-* calendar-backward-month:               Calendar Unit Motion.
-* calendar-backward-week:                Calendar Unit Motion.
-* calendar-beginning-of-month:           Move to Beginning or End.
-* calendar-beginning-of-week:            Move to Beginning or End.
-* calendar-beginning-of-year:            Move to Beginning or End.
-* calendar-count-days-region:            Mark and Region.
-* calendar-cursor-holidays:              Holidays.
-* calendar-end-of-month:                 Move to Beginning or End.
-* calendar-end-of-week:                  Move to Beginning or End.
-* calendar-end-of-year:                  Move to Beginning or End.
-* calendar-exchange-point-and-mark:      Mark and Region.
-* calendar-forward-day:                  Calendar Unit Motion.
-* calendar-forward-month:                Calendar Unit Motion.
-* calendar-forward-week:                 Calendar Unit Motion.
-* calendar-forward-year:                 Calendar Unit Motion.
-* calendar-goto-astro-day-number:        From Other Calendar.
-* calendar-goto-chinese-date:            From Other Calendar.
-* calendar-goto-coptic-date:             From Other Calendar.
-* calendar-goto-date:                    Specified Dates.
-* calendar-goto-ethiopic-date:           From Other Calendar.
-* calendar-goto-french-date:             From Other Calendar.
-* calendar-goto-hebrew-date:             From Other Calendar.
-* calendar-goto-islamic-date:            From Other Calendar.
-* calendar-goto-iso-date:                From Other Calendar.
-* calendar-goto-julian-date:             From Other Calendar.
-* calendar-goto-mayan-long-count-date:   Mayan Calendar.
-* calendar-goto-persian-date:            From Other Calendar.
-* calendar-goto-today:                   Specified Dates.
-* calendar-mark-today:                   Calendar Customizing.
-* calendar-next-calendar-round-date:     Mayan Calendar.
-* calendar-next-haab-date:               Mayan Calendar.
-* calendar-next-tzolkin-date:            Mayan Calendar.
-* calendar-other-month:                  Specified Dates.
-* calendar-phases-of-moon:               Lunar Phases.
-* calendar-previous-haab-date:           Mayan Calendar.
-* calendar-previous-tzolkin-date:        Mayan Calendar.
-* calendar-print-astro-day-number:       To Other Calendar.
-* calendar-print-chinese-date:           To Other Calendar.
-* calendar-print-coptic-date:            To Other Calendar.
-* calendar-print-day-of-year:            General Calendar.
-* calendar-print-ethiopic-date:          To Other Calendar.
-* calendar-print-french-date:            To Other Calendar.
-* calendar-print-hebrew-date:            To Other Calendar.
-* calendar-print-islamic-date:           To Other Calendar.
-* calendar-print-iso-date:               To Other Calendar.
-* calendar-print-julian-date:            To Other Calendar.
-* calendar-print-mayan-date:             To Other Calendar.
-* calendar-print-persian-date:           To Other Calendar.
-* calendar-set-mark:                     Mark and Region.
-* calendar-star-date:                    Calendar Customizing.
-* calendar-sunrise-sunset:               Sunrise/Sunset.
-* calendar-unmark <1>:                   Diary Commands.
-* calendar-unmark:                       Holidays.
-* call-last-kbd-macro:                   Basic Kbd Macro.
-* cancel-debug-on-entry:                 Lisp Debug.
-* capitalize-word <1>:                   Case.
-* capitalize-word:                       Fixing Case.
-* center-line:                           Fill Commands.
-* choose-completion:                     Completion Commands.
-* clear-rectangle:                       Rectangles.
-* comint-delchar-or-maybe-eof:           Shell Mode.
-* comint-dynamic-complete:               Shell Mode.
-* comint-next-input:                     Shell Mode.
-* comint-previous-input:                 Shell Mode.
-* command-apropos:                       Apropos.
-* compare-windows <1>:                   Other Window.
-* compare-windows:                       Comparing Files.
-* compile:                               Compilation.
-* compile-defun:                         Defuns.
-* convert-mocklisp-buffer:               Mocklisp.
-* conx:                                  CONX.
-* conx-buffer:                           CONX.
-* conx-init:                             CONX.
-* conx-load:                             CONX.
-* conx-region:                           CONX.
-* conx-save:                             CONX.
-* copy-file:                             Misc File Ops.
-* copy-last-shell-input:                 Shell Mode.
-* copy-rectangle-to-register:            RegRect.
-* copy-region-as-kill:                   Kill Ring.
-* copy-to-buffer:                        Accumulating Text.
-* copy-to-register:                      RegText.
-* count-lines-page:                      Pages.
-* count-lines-region:                    Position Info.
-* count-matches:                         Other Repeating Search.
-* count-text-lines:                      Nroff Mode.
-* customize:                             Easy Customization.
-* customize-apropos:                     Specific Customization.
-* customize-browse:                      Customization Groups.
-* customize-customized:                  Specific Customization.
-* customize-face:                        Specific Customization.
-* customize-group:                       Specific Customization.
-* customize-option:                      Specific Customization.
-* customize-saved:                       Specific Customization.
-* dabbrev-expand:                        Dynamic Abbrevs.
-* debug:                                 Lisp Debug.
-* debug-on-entry:                        Lisp Debug.
-* default-value:                         Locals.
-* define-abbrevs:                        Saving Abbrevs.
-* define-key <1>:                        Programmatic Rebinding.
-* define-key:                            Interactive Rebinding.
-* delete-backward-char <1>:              Kill Errors.
-* delete-backward-char:                  Killing.
-* delete-blank-lines <1>:                Killing.
-* delete-blank-lines:                    Blank Lines.
-* delete-char <1>:                       Basic Picture.
-* delete-char:                           Killing.
-* delete-file:                           Misc File Ops.
-* delete-horizontal-space <1>:           Indentation Commands.
-* delete-horizontal-space:               Killing.
-* delete-indentation <1>:                Indentation Commands.
-* delete-indentation:                    Killing.
-* delete-matching-lines:                 Other Repeating Search.
-* delete-menu-item:                      Menu Customization.
-* delete-non-matching-lines:             Other Repeating Search.
-* delete-other-windows:                  Change Window.
-* delete-rectangle:                      Rectangles.
-* delete-window:                         Change Window.
-* describe-bindings:                     Misc Help.
-* describe-calendar-mode:                General Calendar.
-* describe-coding-system:                Coding Systems.
-* describe-copying:                      Misc Help.
-* describe-distribution:                 Misc Help.
-* describe-function <1>:                 Documentation.
-* describe-function:                     Name Help.
-* describe-input-method:                 Select Input Method.
-* describe-key:                          Key Help.
-* describe-key-briefly:                  Key Help.
-* describe-language-environment:         Language Environments.
-* describe-mode:                         Misc Help.
-* describe-no-warranty:                  Misc Help.
-* describe-syntax:                       Syntax Change.
-* describe-variable <1>:                 Examining.
-* describe-variable <2>:                 Documentation.
-* describe-variable:                     Name Help.
-* diary:                                 Diary Commands.
-* diary-anniversary <1>:                 Sexp Diary Entries.
-* diary-anniversary:                     Special Diary Entries.
-* diary-astro-day-number:                Sexp Diary Entries.
-* diary-block:                           Special Diary Entries.
-* diary-cyclic <1>:                      Sexp Diary Entries.
-* diary-cyclic:                          Special Diary Entries.
-* diary-day-of-year:                     Sexp Diary Entries.
-* diary-float:                           Special Diary Entries.
-* diary-french-date:                     Sexp Diary Entries.
-* diary-hebrew-date:                     Sexp Diary Entries.
-* diary-islamic-date:                    Sexp Diary Entries.
-* diary-iso-date:                        Sexp Diary Entries.
-* diary-julian-date:                     Sexp Diary Entries.
-* diary-mail-entries:                    Diary Commands.
-* diary-mayan-date:                      Sexp Diary Entries.
-* diary-omer:                            Sexp Diary Entries.
-* diary-parasha:                         Sexp Diary Entries.
-* diary-phases-of-moon:                  Sexp Diary Entries.
-* diary-rosh-hodesh:                     Sexp Diary Entries.
-* diary-sabbath-candles:                 Sexp Diary Entries.
-* diary-sunrise-sunset:                  Sexp Diary Entries.
-* diary-yahrzeit:                        Sexp Diary Entries.
-* diff:                                  Comparing Files.
-* diff-backup:                           Comparing Files.
-* digit-argument:                        Arguments.
-* dired:                                 Dired Enter.
-* dired-other-window <1>:                Pop Up Window.
-* dired-other-window:                    Dired Enter.
-* disable-command:                       Disabling.
-* disable-menu-item:                     Menu Customization.
-* disassemble:                           Compiling Libraries.
-* display-time:                          Mode Line.
-* dissociated-press:                     Dissociated Press.
-* do-auto-save:                          Auto Save Control.
-* doctor:                                Total Frustration.
-* down-list:                             Lists.
-* downcase-region:                       Case.
-* downcase-word <1>:                     Case.
-* downcase-word:                         Fixing Case.
-* edit-abbrevs:                          Editing Abbrevs.
-* edit-abbrevs-redefine:                 Editing Abbrevs.
-* edit-options:                          Edit Options.
-* edit-picture:                          Picture.
-* edit-tab-stops <1>:                    Text Mode.
-* edit-tab-stops:                        Tab Stops.
-* edit-tab-stops-note-changes:           Tab Stops.
-* edt-emulation-off:                     Emulation.
-* edt-emulation-on:                      Emulation.
-* electric-nroff-mode:                   Nroff Mode.
-* emacs-lisp-mode:                       Lisp Eval.
-* emacs-version:                         Bugs.
-* enable-command:                        Disabling.
-* enable-menu-item:                      Menu Customization.
-* end-kbd-macro:                         Basic Kbd Macro.
-* end-of-buffer:                         Moving Point.
-* end-of-defun:                          Defuns.
-* end-of-fortran-subprogram:             Fortran Motion.
-* end-of-line:                           Moving Point.
-* enlarge-window:                        Change Window.
-* enlarge-window-horizontally:           Change Window.
-* european-calendar:                     Date Formats.
-* eval-current-buffer:                   Lisp Eval.
-* eval-defun:                            Lisp Eval.
-* eval-expression:                       Lisp Eval.
-* eval-last-sexp:                        Lisp Eval.
-* eval-region:                           Lisp Eval.
-* exchange-point-and-mark:               Setting Mark.
-* execute-extended-command:              M-x.
-* exit-calendar:                         General Calendar.
-* exit-recursive-edit:                   Recursive Edit.
-* expand-abbrev:                         Expanding Abbrevs.
-* expand-region-abbrevs:                 Expanding Abbrevs.
-* fancy-diary-display:                   Fancy Diary Display.
-* fill-individual-paragraphs:            Fill Prefix.
-* fill-paragraph:                        Fill Commands.
-* fill-region:                           Fill Commands.
-* fill-region-as-paragraph:              Fill Commands.
-* find-alternate-file:                   Visiting.
-* find-file:                             Visiting.
-* find-file-other-frame <1>:             Visiting.
-* find-file-other-frame:                 XEmacs under X.
-* find-file-other-window <1>:            Pop Up Window.
-* find-file-other-window:                Visiting.
-* find-tag:                              Find Tag.
-* find-tag-other-window <1>:             Find Tag.
-* find-tag-other-window:                 Pop Up Window.
-* find-this-file:                        Visiting.
-* find-this-file-other-window:           Visiting.
-* finder-by-keyword:                     Library Keywords.
-* fortran-column-ruler:                  Fortran Columns.
-* fortran-comment-region:                Fortran Comments.
-* fortran-indent-line:                   ForIndent Commands.
-* fortran-indent-subprogram:             ForIndent Commands.
-* fortran-mode:                          Fortran.
-* fortran-next-statement:                Fortran Motion.
-* fortran-previous-statement:            Fortran Motion.
-* fortran-split-line:                    ForIndent Commands.
-* fortran-window-create:                 Fortran Columns.
-* forward-char:                          Moving Point.
-* forward-list:                          Lists.
-* forward-page:                          Pages.
-* forward-paragraph:                     Paragraphs.
-* forward-sentence:                      Sentences.
-* forward-sexp:                          Lists.
-* forward-text-line:                     Nroff Mode.
-* forward-word:                          Words.
-* frame-configuration-to-register:       RegConfig.
-* global-set-key <1>:                    Programmatic Rebinding.
-* global-set-key:                        Interactive Rebinding.
-* goto-char:                             Moving Point.
-* goto-line:                             Moving Point.
-* hanoi:                                 Amusements.
-* help-command:                          Help.
-* help-for-help:                         Help.
-* help-with-tutorial <1>:                Misc Help.
-* help-with-tutorial:                    Basic.
-* hide-body:                             Outline Visibility.
-* hide-entry:                            Outline Visibility.
-* hide-leaves:                           Outline Visibility.
-* hide-subtree:                          Outline Visibility.
-* holidays:                              Holidays.
-* include-other-diary-files:             Included Diary Files.
-* increment-register:                    RegNumbers.
-* indent-c-exp:                          Multi-line Indent.
-* indent-for-comment:                    Comments.
-* indent-new-comment-line:               Comments.
-* indent-region <1>:                     Multi-line Indent.
-* indent-region:                         Indentation Commands.
-* indent-relative:                       Indentation Commands.
-* indent-rigidly:                        Indentation Commands.
-* indent-sexp:                           Multi-line Indent.
-* indented-text-mode:                    Text Mode.
-* info:                                  Misc Help.
-* Info-elisp-ref:                        Misc Help.
-* Info-goto-emacs-command-node:          Misc Help.
-* insert-abbrevs:                        Saving Abbrevs.
-* insert-anniversary-diary-entry:        Special Diary Entries.
-* insert-block-diary-entry:              Special Diary Entries.
-* insert-cyclic-diary-entry:             Special Diary Entries.
-* insert-diary-entry:                    Adding to Diary.
-* insert-file:                           Misc File Ops.
-* insert-hebrew-diary-entry:             Hebrew/Islamic Entries.
-* insert-islamic-diary-entry:            Hebrew/Islamic Entries.
-* insert-kbd-macro:                      Save Kbd Macro.
-* insert-monthly-diary-entry:            Adding to Diary.
-* insert-monthly-hebrew-diary-entry:     Hebrew/Islamic Entries.
-* insert-monthly-islamic-diary-entry:    Hebrew/Islamic Entries.
-* insert-parentheses:                    Balanced Editing.
-* insert-register:                       RegText.
-* insert-weekly-diary-entry:             Adding to Diary.
-* insert-yearly-diary-entry:             Adding to Diary.
-* insert-yearly-hebrew-diary-entry:      Hebrew/Islamic Entries.
-* insert-yearly-islamic-diary-entry:     Hebrew/Islamic Entries.
-* interactive:                           M-x.
-* interrupt-shell-subjob:                Shell Mode.
-* inverse-add-global-abbrev:             Defining Abbrevs.
-* inverse-add-mode-abbrev:               Defining Abbrevs.
-* invert-face:                           Faces.
-* isearch-abort:                         Incremental Search.
-* isearch-backward:                      Incremental Search.
-* isearch-backward-regexp:               Regexp Search.
-* isearch-complete:                      Incremental Search.
-* isearch-delete-char:                   Incremental Search.
-* isearch-exit:                          Incremental Search.
-* isearch-forward:                       Incremental Search.
-* isearch-forward-regexp:                Regexp Search.
-* isearch-quote-char:                    Incremental Search.
-* isearch-repeat-backward:               Incremental Search.
-* isearch-repeat-forward:                Incremental Search.
-* isearch-ring-advance:                  Incremental Search.
-* isearch-ring-retreat:                  Incremental Search.
-* isearch-yank-line:                     Incremental Search.
-* isearch-yank-word:                     Incremental Search.
-* jump-to-register <1>:                  Split Window.
-* jump-to-register:                      RegPos.
-* just-one-space:                        Killing.
-* kbd-macro-query:                       Kbd Macro Query.
-* kill-all-abbrevs:                      Defining Abbrevs.
-* kill-buffer:                           Kill Buffer.
-* kill-comment:                          Comments.
-* kill-compilation:                      Compilation.
-* kill-line:                             Killing.
-* kill-local-variable:                   Locals.
-* kill-output-from-shell:                Shell Mode.
-* kill-rectangle:                        Rectangles.
-* kill-region:                           Killing.
-* kill-sentence <1>:                     Sentences.
-* kill-sentence:                         Killing.
-* kill-sexp <1>:                         Lists.
-* kill-sexp:                             Killing.
-* kill-some-buffers:                     Kill Buffer.
-* kill-word <1>:                         Words.
-* kill-word:                             Killing.
-* latex-mode:                            TeX Mode.
-* LaTeX-mode:                            TeX Mode.
-* lisp-complete-symbol:                  Lisp Completion.
-* lisp-indent-line:                      Basic Indent.
-* lisp-interaction-mode:                 Lisp Interaction.
-* lisp-mode:                             External Lisp.
-* lisp-send-defun:                       External Lisp.
-* list-abbrevs:                          Editing Abbrevs.
-* list-bookmarks:                        Bookmarks.
-* list-buffers:                          List Buffers.
-* list-calendar-holidays:                Holidays.
-* list-coding-systems:                   Coding Systems.
-* list-command-history:                  Repetition.
-* list-directory:                        ListDir.
-* list-hebrew-diary-entries:             Hebrew/Islamic Entries.
-* list-holidays:                         Holidays.
-* list-input-methods:                    Select Input Method.
-* list-islamic-diary-entries:            Hebrew/Islamic Entries.
-* list-matching-lines:                   Other Repeating Search.
-* list-options:                          Edit Options.
-* list-tags:                             List Tags.
-* list-yahrzeit-dates:                   From Other Calendar.
-* load:                                  Loading.
-* load-default-sounds:                   Audible Bell.
-* load-file:                             Loading.
-* load-library <1>:                      Loading.
-* load-library:                          Startup Paths.
-* load-sound-file:                       Audible Bell.
-* local-set-key:                         Interactive Rebinding.
-* local-unset-key:                       Interactive Rebinding.
-* locate-library:                        Loading.
-* lpr-buffer:                            Hardcopy.
-* lpr-region:                            Hardcopy.
-* mail:                                  Sending Mail.
-* mail-cc:                               Mail Mode.
-* mail-fill-yanked-message:              Mail Mode.
-* mail-interactive-insert-alias:         Mail Headers.
-* mail-other-window <1>:                 Sending Mail.
-* mail-other-window:                     Pop Up Window.
-* mail-send:                             Mail Mode.
-* mail-send-and-exit:                    Mail Mode.
-* mail-signature:                        Mail Mode.
-* mail-subject:                          Mail Mode.
-* mail-to:                               Mail Mode.
-* mail-yank-original:                    Mail Mode.
-* make-directory:                        File Names.
-* make-face-bold:                        Faces.
-* make-face-bold-italic:                 Faces.
-* make-face-italic:                      Faces.
-* make-face-larger:                      Faces.
-* make-face-smaller:                     Faces.
-* make-face-unbold:                      Faces.
-* make-face-unitalic:                    Faces.
-* make-frame:                            XEmacs under X.
-* make-local-variable:                   Locals.
-* make-obsolete:                         Compiling Libraries.
-* make-symbolic-link:                    Misc File Ops.
-* make-variable-buffer-local:            Locals.
-* manual-entry:                          Documentation.
-* mark-beginning-of-buffer:              Setting Mark.
-* mark-calendar-holidays:                Holidays.
-* mark-defun <1>:                        Defuns.
-* mark-defun:                            Marking Objects.
-* mark-diary-entries:                    Diary Commands.
-* mark-end-of-buffer:                    Setting Mark.
-* mark-fortran-subprogram:               Fortran Motion.
-* mark-hebrew-diary-entries:             Hebrew/Islamic Entries.
-* mark-included-diary-files:             Included Diary Files.
-* mark-islamic-diary-entries:            Hebrew/Islamic Entries.
-* mark-page <1>:                         Pages.
-* mark-page:                             Marking Objects.
-* mark-paragraph <1>:                    Paragraphs.
-* mark-paragraph:                        Marking Objects.
-* mark-sexp <1>:                         Lists.
-* mark-sexp:                             Marking Objects.
-* mark-whole-buffer:                     Marking Objects.
-* mark-word <1>:                         Words.
-* mark-word:                             Marking Objects.
-* minibuffer-complete:                   Completion Example.
-* minibuffer-complete-word:              Completion Commands.
-* modify-syntax-entry:                   Syntax Change.
-* mouse-choose-completion:               Completion Commands.
-* mouse-del-char:                        Additional Mouse Operations.
-* mouse-delete-window:                   Additional Mouse Operations.
-* mouse-keep-one-window:                 Additional Mouse Operations.
-* mouse-kill-line:                       Additional Mouse Operations.
-* mouse-line-length:                     Additional Mouse Operations.
-* mouse-scroll:                          Additional Mouse Operations.
-* mouse-select:                          Additional Mouse Operations.
-* mouse-select-and-split:                Additional Mouse Operations.
-* mouse-set-mark:                        Additional Mouse Operations.
-* mouse-set-point:                       Additional Mouse Operations.
-* mouse-track:                           Additional Mouse Operations.
-* mouse-track-adjust:                    Additional Mouse Operations.
-* mouse-track-and-copy-to-cutbuffer:     Additional Mouse Operations.
-* mouse-track-delete-and-insert:         Additional Mouse Operations.
-* move-over-close-and-reindent:          Balanced Editing.
-* move-to-window-line:                   Moving Point.
-* name-last-kbd-macro:                   Save Kbd Macro.
-* narrow-to-region:                      Narrowing.
-* negative-argument:                     Arguments.
-* newline:                               Inserting Text.
-* newline-and-indent:                    Basic Indent.
-* next-complex-command:                  Repetition.
-* next-error:                            Compilation.
-* next-history-element:                  Minibuffer History.
-* next-line:                             Moving Point.
-* next-list-mode-item:                   Completion Commands.
-* next-matching-history-element:         Minibuffer History.
-* not-modified:                          Saving.
-* nroff-mode:                            Nroff Mode.
-* number-to-register:                    RegNumbers.
-* occur:                                 Other Repeating Search.
-* open-dribble-file:                     Bugs.
-* open-line:                             Blank Lines.
-* open-rectangle:                        Rectangles.
-* open-termscript:                       Bugs.
-* other-window:                          Other Window.
-* other-window-any-frame:                Other Window.
-* outline-backward-same-level:           Outline Motion.
-* outline-forward-same-level:            Outline Motion.
-* outline-next-visible-heading:          Outline Motion.
-* outline-previous-visible-heading:      Outline Motion.
-* outline-up-heading:                    Outline Motion.
-* overwrite-mode:                        Minor Modes.
-* phases-of-moon:                        Lunar Phases.
-* picture-backward-clear-column:         Basic Picture.
-* picture-backward-column:               Basic Picture.
-* picture-clear-column:                  Basic Picture.
-* picture-clear-line:                    Basic Picture.
-* picture-clear-rectangle:               Rectangles in Picture.
-* picture-clear-rectangle-to-register:   Rectangles in Picture.
-* picture-forward-column:                Basic Picture.
-* picture-motion:                        Insert in Picture.
-* picture-motion-reverse:                Insert in Picture.
-* picture-move-down:                     Basic Picture.
-* picture-move-up:                       Basic Picture.
-* picture-movement-down:                 Insert in Picture.
-* picture-movement-left:                 Insert in Picture.
-* picture-movement-ne:                   Insert in Picture.
-* picture-movement-nw:                   Insert in Picture.
-* picture-movement-right:                Insert in Picture.
-* picture-movement-se:                   Insert in Picture.
-* picture-movement-sw:                   Insert in Picture.
-* picture-movement-up:                   Insert in Picture.
-* picture-newline:                       Basic Picture.
-* picture-open-line:                     Basic Picture.
-* picture-set-tab-stops:                 Tabs in Picture.
-* picture-tab:                           Tabs in Picture.
-* picture-tab-search:                    Tabs in Picture.
-* picture-yank-rectangle:                Rectangles in Picture.
-* picture-yank-rectangle-from-register:  Rectangles in Picture.
-* plain-TeX-mode:                        TeX Mode.
-* plain-tex-mode:                        TeX Mode.
-* play-sound:                            Audible Bell.
-* point-to-register:                     RegPos.
-* prefer-coding-system:                  Recognize Coding.
-* prepend-to-buffer:                     Accumulating Text.
-* previous-complex-command:              Repetition.
-* previous-history-element:              Minibuffer History.
-* previous-line:                         Moving Point.
-* previous-list-mode-item:               Completion Commands.
-* previous-matching-history-element:     Minibuffer History.
-* print-buffer:                          Hardcopy.
-* print-diary-entries <1>:               Diary Customizing.
-* print-diary-entries:                   Diary Commands.
-* print-region:                          Hardcopy.
-* quail-set-keyboard-layout:             Select Input Method.
-* query-replace:                         Query Replace.
-* query-replace-regexp:                  Query Replace.
-* quietly-read-abbrev-file:              Saving Abbrevs.
-* quit-shell-subjob:                     Shell Mode.
-* quoted-insert:                         Inserting Text.
-* re-search-backward:                    Regexp Search.
-* re-search-forward:                     Regexp Search.
-* read-abbrev-file:                      Saving Abbrevs.
-* read-key-sequence:                     Representing Keystrokes.
-* recenter <1>:                          Scrolling.
-* recenter:                              Moving Point.
-* recover-file:                          Recover.
-* redraw-calendar:                       General Calendar.
-* relabel-menu-item:                     Menu Customization.
-* remove-directory:                      File Names.
-* rename-buffer:                         Misc Buffer.
-* rename-file:                           Misc File Ops.
-* repeat-complex-command:                Repetition.
-* replace-regexp:                        Unconditional Replace.
-* replace-string:                        Unconditional Replace.
-* revert-buffer:                         Reverting.
-* run-lisp:                              External Lisp.
-* save-buffer:                           Saving.
-* save-buffers-kill-emacs:               Exiting.
-* save-some-buffers:                     Saving.
-* scroll-calendar-left:                  Scroll Calendar.
-* scroll-calendar-left-three-months:     Scroll Calendar.
-* scroll-calendar-right:                 Scroll Calendar.
-* scroll-calendar-right-three-months:    Scroll Calendar.
-* scroll-down:                           Scrolling.
-* scroll-left:                           Horizontal Scrolling.
-* scroll-other-window <1>:               General Calendar.
-* scroll-other-window:                   Other Window.
-* scroll-right:                          Horizontal Scrolling.
-* scroll-up:                             Scrolling.
-* search-backward:                       Non-Incremental Search.
-* search-forward:                        Non-Incremental Search.
-* select-input-method:                   Select Input Method.
-* self-insert:                           Inserting Text.
-* send-shell-input:                      Shell Mode.
-* set-buffer-file-coding-system:         Specify Coding.
-* set-buffer-process-coding-system:      Specify Coding.
-* set-comment-column:                    Comments.
-* set-default-file-modes:                Interlocking.
-* set-face-background:                   Faces.
-* set-face-background-pixmap:            Faces.
-* set-face-font:                         Faces.
-* set-face-foreground:                   Faces.
-* set-face-underline-p:                  Faces.
-* set-fill-column:                       Fill Commands.
-* set-fill-prefix:                       Fill Prefix.
-* set-gnu-bindings:                      Emulation.
-* set-goal-column:                       Moving Point.
-* set-gosmacs-bindings:                  Emulation.
-* set-keyboard-coding-system:            Specify Coding.
-* set-language-environment:              Language Environments.
-* set-mark-command:                      Setting Mark.
-* set-selective-display:                 Selective Display.
-* set-terminal-coding-system:            Specify Coding.
-* set-variable:                          Examining.
-* set-visited-file-name:                 Saving.
-* setq-default:                          Locals.
-* shell:                                 Interactive Shell.
-* shell-command:                         Single Shell.
-* shell-command-on-region:               Single Shell.
-* shell-send-eof:                        Shell Mode.
-* show-all:                              Outline Visibility.
-* show-all-diary-entries:                Diary Commands.
-* show-branches:                         Outline Visibility.
-* show-children:                         Outline Visibility.
-* show-entry:                            Outline Visibility.
-* show-output-from-shell:                Shell Mode.
-* show-subtree:                          Outline Visibility.
-* simple-diary-display:                  Fancy Diary Display.
-* sort-columns:                          Sorting.
-* sort-diary-entries:                    Fancy Diary Display.
-* sort-fields:                           Sorting.
-* sort-lines:                            Sorting.
-* sort-numeric-fields:                   Sorting.
-* sort-pages:                            Sorting.
-* sort-paragraphs:                       Sorting.
-* spell-buffer:                          Spelling.
-* spell-region:                          Spelling.
-* spell-string:                          Spelling.
-* spell-word:                            Spelling.
-* split-line:                            Indentation Commands.
-* split-window-horizontally:             Split Window.
-* split-window-vertically:               Split Window.
-* start-kbd-macro:                       Basic Kbd Macro.
-* stop-shell-subjob:                     Shell Mode.
-* substitute-key-definition:             Interactive Rebinding.
-* sunrise-sunset:                        Sunrise/Sunset.
-* suspend-emacs:                         Exiting.
-* switch-to-buffer:                      Select Buffer.
-* switch-to-buffer-other-frame <1>:      Select Buffer.
-* switch-to-buffer-other-frame:          XEmacs under X.
-* switch-to-buffer-other-window <1>:     Pop Up Window.
-* switch-to-buffer-other-window:         Select Buffer.
-* switch-to-completions:                 Completion Commands.
-* switch-to-other-buffer:                Select Buffer.
-* tab-to-tab-stop <1>:                   Text Mode.
-* tab-to-tab-stop:                       Tab Stops.
-* tabify:                                Just Spaces.
-* tags-apropos:                          List Tags.
-* tags-loop-continue:                    Tags Search.
-* tags-query-replace:                    Tags Search.
-* tags-search:                           Tags Search.
-* term:                                  Terminal emulator.
-* term-line-mode:                        Term Mode.
-* term-pager-toggle:                     Paging in Term.
-* tex-buffer:                            TeX Print.
-* tex-close-latex-block:                 TeX Editing.
-* tex-insert-braces:                     TeX Editing.
-* tex-insert-quote:                      TeX Editing.
-* tex-kill-job:                          TeX Print.
-* tex-mode:                              TeX Mode.
-* TeX-mode:                              TeX Mode.
-* tex-print:                             TeX Print.
-* tex-recenter-output-buffer:            TeX Print.
-* tex-region:                            TeX Print.
-* tex-show-print-queue:                  TeX Print.
-* tex-terminate-paragraph:               TeX Editing.
-* text-mode:                             Text Mode.
-* toggle-input-method:                   Select Input Method.
-* toggle-read-only:                      Misc Buffer.
-* top-level <1>:                         Quitting.
-* top-level:                             Recursive Edit.
-* transpose-chars <1>:                   Transpose.
-* transpose-chars:                       Moving Point.
-* transpose-lines:                       Transpose.
-* transpose-sexps <1>:                   Lists.
-* transpose-sexps:                       Transpose.
-* transpose-words <1>:                   Words.
-* transpose-words:                       Transpose.
-* undo:                                  Undo.
-* unexpand-abbrev:                       Expanding Abbrevs.
-* universal-argument:                    Arguments.
-* universal-coding-system-argument:      Specify Coding.
-* untabify:                              Just Spaces.
-* up-list:                               TeX Editing.
-* upcase-region:                         Case.
-* upcase-word <1>:                       Case.
-* upcase-word:                           Fixing Case.
-* validate-tex-buffer:                   TeX Editing.
-* vc-cancel-version:                     Editing with VC.
-* vc-create-snapshot:                    Making Snapshots.
-* vc-diff:                               Old Versions.
-* vc-directory:                          VC Status.
-* vc-insert-headers:                     Version Headers.
-* vc-next-action:                        Editing with VC.
-* vc-print-log:                          VC Status.
-* vc-register:                           Editing with VC.
-* vc-rename-file:                        Renaming and VC.
-* vc-retrieve-snapshot:                  Making Snapshots.
-* vc-revert-buffer:                      Editing with VC.
-* vc-update-change-log:                  Change Logs and VC.
-* vc-version-other-window:               Old Versions.
-* view-buffer:                           Misc Buffer.
-* view-diary-entries:                    Diary Commands.
-* view-emacs-news:                       Misc Help.
-* view-file:                             Misc File Ops.
-* view-hello-file:                       Mule Intro.
-* view-lossage:                          Misc Help.
-* view-register:                         Registers.
-* visit-tags-table:                      Select Tags Table.
-* what-cursor-position:                  Position Info.
-* what-line:                             Position Info.
-* what-page:                             Position Info.
-* where-is:                              Name Help.
-* widen:                                 Narrowing.
-* widget-backward:                       Changing an Option.
-* widget-complete:                       Changing an Option.
-* widget-forward:                        Changing an Option.
-* window-configuration-to-register <1>:  Split Window.
-* window-configuration-to-register:      RegConfig.
-* word-search-backward:                  Word Search.
-* word-search-forward:                   Word Search.
-* write-abbrev-file:                     Saving Abbrevs.
-* write-file:                            Saving.
-* x-copy-primary-selection:              X Selection Commands.
-* x-create-frame:                        X Resources.
-* x-delete-primary-selection:            X Selection Commands.
-* x-insert-selection:                    X Selection Commands.
-* x-kill-primary-selection:              X Selection Commands.
-* x-mouse-kill:                          X Selection Commands.
-* x-own-secondary-selection:             X Selection Commands.
-* x-own-selection:                       X Selection Commands.
-* x-set-point-and-insert-selection:      X Selection Commands.
-* xemacs-local-faq:                      Misc Help.
-* Yank:                                  Kill Ring.
-* yank-pop:                              Earlier Kills.
-* yank-rectangle:                        Rectangles.
-* yow:                                   Amusements.
-* zap-to-char:                           Killing.
-* zmacs-activate-region:                 Active Regions.
-* zmacs-deactivate-region:               Active Regions.
+* ! (query-replace):                     Query Replace.
+* " (TeX mode):                          TeX Editing.
+* , (query-replace):                     Query Replace.
+* . (Calendar mode):                     Specified Dates.
+* . (query-replace):                     Query Replace.
+* ? (Calendar mode):                     General Calendar.
+* ^ (query-replace):                     Query Replace.
+* a (Calendar mode):                     Holidays.
+* BS:                                    Inserting Text.
+* button1:                               Intro to Keystrokes.
+* button1up:                             Intro to Keystrokes.
+* button2:                               Intro to Keystrokes.
+* button2up:                             Intro to Keystrokes.
+* button3:                               Intro to Keystrokes.
+* button3up:                             Intro to Keystrokes.
+* C-<:                                   Setting Mark.
+* C->:                                   Setting Mark.
+* C-@ (Calendar mode):                   Mark and Region.
+* C-\:                                   Select Input Method.
+* C-] <1>:                               Quitting.
+* C-]:                                   Recursive Edit.
+* C-_:                                   Undo.
+* C-a:                                   Moving Point.
+* C-a (Calendar mode):                   Move to Beginning or End.
+* C-b:                                   Moving Point.
+* C-b (Calendar mode):                   Calendar Unit Motion.
+* C-c:                                   Key Sequences.
+* C-c ' (Picture mode):                  Insert in Picture.
+* C-c . (Picture mode):                  Insert in Picture.
+* C-c / (Picture mode):                  Insert in Picture.
+* C-c ; (Fortran mode):                  Fortran Comments.
+* C-c < (Picture mode):                  Insert in Picture.
+* C-c > (Picture mode):                  Insert in Picture.
+* C-c \ (Picture mode):                  Insert in Picture.
+* C-c ^ (Picture mode):                  Insert in Picture.
+* C-c ` (Picture mode):                  Insert in Picture.
+* C-c C-\ (Shell mode):                  Shell Mode.
+* C-c C-b (Outline mode):                Outline Motion.
+* C-c C-b (Picture mode):                Insert in Picture.
+* C-c C-b (TeX mode):                    TeX Print.
+* C-c C-c (Edit Abbrevs):                Editing Abbrevs.
+* C-c C-c (Edit Tab Stops):              Tab Stops.
+* C-c C-c (Mail mode):                   Mail Mode.
+* C-c C-c (Occur mode):                  Other Repeating Search.
+* C-c C-c (Shell mode):                  Shell Mode.
+* C-c C-d (Picture mode):                Basic Picture.
+* C-c C-d (Shell mode):                  Shell Mode.
+* C-c C-f (LaTeX mode):                  TeX Editing.
+* C-c C-f (Outline mode):                Outline Motion.
+* C-c C-f (Picture mode):                Insert in Picture.
+* C-c C-f C-c (Mail mode):               Mail Mode.
+* C-c C-f C-s (Mail mode):               Mail Mode.
+* C-c C-f C-t (Mail mode):               Mail Mode.
+* C-c C-h (Outline mode):                Outline Visibility.
+* C-c C-i (Outline mode):                Outline Visibility.
+* C-c C-j (Term mode):                   Term Mode.
+* C-c C-k (Picture mode):                Rectangles in Picture.
+* C-c C-k (Term mode):                   Term Mode.
+* C-c C-k (TeX mode):                    TeX Print.
+* C-c C-l (Calendar mode):               General Calendar.
+* C-c C-l (TeX mode):                    TeX Print.
+* C-c C-n (Fortran mode):                Fortran Motion.
+* C-c C-n (Outline mode):                Outline Motion.
+* C-c C-o (Shell mode):                  Shell Mode.
+* C-c C-p (Fortran mode):                Fortran Motion.
+* C-c C-p (Outline mode):                Outline Motion.
+* C-c C-p (TeX mode):                    TeX Print.
+* C-c C-q (Mail mode):                   Mail Mode.
+* C-c C-q (Term mode):                   Paging in Term.
+* C-c C-q (TeX mode):                    TeX Print.
+* C-c C-r (Fortran mode):                Fortran Columns.
+* C-c C-r (Shell mode):                  Shell Mode.
+* C-c C-r (TeX mode):                    TeX Print.
+* C-c C-s (Mail mode):                   Mail Mode.
+* C-c C-s (Outline mode):                Outline Visibility.
+* C-c C-u (Outline mode):                Outline Motion.
+* C-c C-u (Shell mode):                  Shell Mode.
+* C-c C-w (Fortran mode):                Fortran Columns.
+* C-c C-w (Mail mode):                   Mail Mode.
+* C-c C-w (Picture mode):                Rectangles in Picture.
+* C-c C-w (Shell mode):                  Shell Mode.
+* C-c C-x (Picture mode):                Rectangles in Picture.
+* C-c C-y (Mail mode):                   Mail Mode.
+* C-c C-y (Picture mode):                Rectangles in Picture.
+* C-c C-y (Shell mode):                  Shell Mode.
+* C-c C-z (Shell mode):                  Shell Mode.
+* C-c TAB (Picture mode):                Tabs in Picture.
+* C-c { (TeX mode):                      TeX Editing.
+* C-c } (TeX mode):                      TeX Editing.
+* C-d:                                   Killing.
+* C-d (Shell mode):                      Shell Mode.
+* C-e:                                   Moving Point.
+* C-e (Calendar mode):                   Move to Beginning or End.
+* C-END:                                 Moving Point.
+* C-f:                                   Moving Point.
+* C-f (Calendar mode):                   Calendar Unit Motion.
+* C-g <1>:                               Quitting.
+* C-g:                                   Minibuffer.
+* C-g (isearch-mode):                    Incremental Search.
+* C-h <1>:                               Help.
+* C-h:                                   Key Sequences.
+* C-h A:                                 Apropos.
+* C-h b:                                 Misc Help.
+* C-h C:                                 Coding Systems.
+* C-h c:                                 Key Help.
+* C-h C-\:                               Select Input Method.
+* C-h C-c:                               Misc Help.
+* C-h C-d:                               Misc Help.
+* C-h C-f:                               Misc Help.
+* C-h C-h:                               Help.
+* C-h C-k:                               Misc Help.
+* C-h C-w:                               Misc Help.
+* C-h f:                                 Documentation.
+* C-h F:                                 Misc Help.
+* C-h f:                                 Name Help.
+* C-h h:                                 Mule Intro.
+* C-h I:                                 Select Input Method.
+* C-h i:                                 Misc Help.
+* C-h k:                                 Key Help.
+* C-h L:                                 Language Environments.
+* C-h l:                                 Misc Help.
+* C-h m:                                 Misc Help.
+* C-h n:                                 Misc Help.
+* C-h p:                                 Library Keywords.
+* C-h s:                                 Syntax Change.
+* C-h t <1>:                             Misc Help.
+* C-h t:                                 Basic.
+* C-h v <1>:                             Examining.
+* C-h v <2>:                             Documentation.
+* C-h v:                                 Name Help.
+* C-h w:                                 Name Help.
+* C-HOME:                                Moving Point.
+* C-k:                                   Killing.
+* C-l <1>:                               Scrolling.
+* C-l:                                   Moving Point.
+* C-l (query-replace):                   Query Replace.
+* C-LEFT:                                Moving Point.
+* C-M-@ <1>:                             Lists.
+* C-M-@:                                 Marking Objects.
+* C-M-\ <1>:                             Multi-line Indent.
+* C-M-\:                                 Indentation Commands.
+* C-M-a:                                 Defuns.
+* C-M-a (Fortran mode):                  Fortran Motion.
+* C-M-b:                                 Lists.
+* C-M-c:                                 Recursive Edit.
+* C-M-d:                                 Lists.
+* C-M-e:                                 Defuns.
+* C-M-e (Fortran mode):                  Fortran Motion.
+* C-M-f:                                 Lists.
+* C-M-h <1>:                             Defuns.
+* C-M-h:                                 Marking Objects.
+* C-M-h (Fortran mode):                  Fortran Motion.
+* C-M-k <1>:                             Lists.
+* C-M-k:                                 Killing.
+* C-M-n:                                 Lists.
+* C-M-o:                                 Indentation Commands.
+* C-M-p:                                 Lists.
+* C-M-q:                                 Multi-line Indent.
+* C-M-q (Fortran mode):                  ForIndent Commands.
+* C-M-t <1>:                             Lists.
+* C-M-t:                                 Transpose.
+* C-M-u:                                 Lists.
+* C-M-v <1>:                             Other Window.
+* C-M-v:                                 Minibuffer Edit.
+* C-M-w:                                 Appending Kills.
+* C-M-x <1>:                             External Lisp.
+* C-M-x:                                 Lisp Eval.
+* C-n:                                   Moving Point.
+* C-n (Calendar mode):                   Calendar Unit Motion.
+* C-o:                                   Blank Lines.
+* C-p:                                   Moving Point.
+* C-p (Calendar mode):                   Calendar Unit Motion.
+* C-q:                                   Inserting Text.
+* C-q (isearch-mode):                    Incremental Search.
+* C-r:                                   Incremental Search.
+* C-r (isearch-mode):                    Incremental Search.
+* C-r (query-replace):                   Query Replace.
+* C-RIGHT:                               Moving Point.
+* C-s:                                   Incremental Search.
+* C-s (isearch-mode):                    Incremental Search.
+* C-SPC:                                 Setting Mark.
+* C-SPC (Calendar mode):                 Mark and Region.
+* C-t <1>:                               Transpose.
+* C-t:                                   Moving Point.
+* C-u:                                   Arguments.
+* C-u - C-x ;:                           Comments.
+* C-u C-@:                               Mark Ring.
+* C-u C-SPC:                             Mark Ring.
+* C-u C-x v v:                           Editing with VC.
+* C-u TAB:                               Multi-line Indent.
+* C-v <1>:                               Scrolling.
+* C-v:                                   Moving Point.
+* C-v (Calendar mode):                   Scroll Calendar.
+* C-w:                                   Killing.
+* C-w (isearch-mode):                    Incremental Search.
+* C-w (query-replace):                   Query Replace.
+* C-x:                                   Key Sequences.
+* C-x $:                                 Selective Display.
+* C-x (:                                 Basic Kbd Macro.
+* C-x ):                                 Basic Kbd Macro.
+* C-x .:                                 Fill Prefix.
+* C-x 0:                                 Change Window.
+* C-x 1:                                 Change Window.
+* C-x 2:                                 Split Window.
+* C-x 3:                                 Split Window.
+* C-x 4:                                 Pop Up Window.
+* C-x 4 .:                               Find Tag.
+* C-x 4 b:                               Select Buffer.
+* C-x 4 d:                               Dired Enter.
+* C-x 4 f:                               Visiting.
+* C-x 4 m:                               Sending Mail.
+* C-x 5 b:                               Select Buffer.
+* C-x 5 C-f:                             Visiting.
+* C-x ;:                                 Comments.
+* C-x <:                                 Horizontal Scrolling.
+* C-x < (Calendar mode):                 Scroll Calendar.
+* C-x =:                                 Position Info.
+* C-x >:                                 Horizontal Scrolling.
+* C-x > (Calendar mode):                 Scroll Calendar.
+* C-x [:                                 Pages.
+* C-x [ (Calendar mode):                 Calendar Unit Motion.
+* C-x ]:                                 Pages.
+* C-x ] (Calendar mode):                 Calendar Unit Motion.
+* C-x ^:                                 Change Window.
+* C-x `:                                 Compilation.
+* C-x a g:                               Defining Abbrevs.
+* C-x a i g:                             Defining Abbrevs.
+* C-x a i l:                             Defining Abbrevs.
+* C-x a l:                               Defining Abbrevs.
+* C-x b:                                 Select Buffer.
+* C-x C-b:                               List Buffers.
+* C-x C-c:                               Exiting.
+* C-x C-d:                               ListDir.
+* C-x C-e:                               Lisp Eval.
+* C-x C-l:                               Case.
+* C-x C-o <1>:                           Killing.
+* C-x C-o:                               Blank Lines.
+* C-x C-p <1>:                           Pages.
+* C-x C-p:                               Marking Objects.
+* C-x C-q:                               Misc Buffer.
+* C-x C-q (version control):             Editing with VC.
+* C-x C-s:                               Saving.
+* C-x C-t:                               Transpose.
+* C-x C-u:                               Case.
+* C-x C-v:                               Visiting.
+* C-x C-w:                               Saving.
+* C-x C-x:                               Setting Mark.
+* C-x C-x (Calendar mode):               Mark and Region.
+* C-x d:                                 Dired Enter.
+* C-x DEL <1>:                           Sentences.
+* C-x DEL <2>:                           Kill Errors.
+* C-x DEL:                               Killing.
+* C-x e:                                 Basic Kbd Macro.
+* C-x ESC ESC:                           Repetition.
+* C-x f:                                 Fill Commands.
+* C-x h:                                 Marking Objects.
+* C-x k:                                 Kill Buffer.
+* C-x l:                                 Pages.
+* C-x m:                                 Sending Mail.
+* C-x n n:                               Narrowing.
+* C-x n w:                               Narrowing.
+* C-x o:                                 Other Window.
+* C-x q:                                 Kbd Macro Query.
+* C-x r +:                               RegNumbers.
+* C-x r b:                               Bookmarks.
+* C-x r g:                               RegText.
+* C-x r i:                               RegText.
+* C-x r j:                               RegPos.
+* C-x r l:                               Bookmarks.
+* C-x r m:                               Bookmarks.
+* C-x r n:                               RegNumbers.
+* C-x r r:                               RegRect.
+* C-x r s:                               RegText.
+* C-x r SPC:                             RegPos.
+* C-x r w:                               RegConfig.
+* C-x RET:                               Mule Intro.
+* C-x RET c:                             Specify Coding.
+* C-x RET C-\:                           Select Input Method.
+* C-x RET f:                             Specify Coding.
+* C-x RET k:                             Specify Coding.
+* C-x RET p:                             Specify Coding.
+* C-x RET t:                             Specify Coding.
+* C-x s:                                 Saving.
+* C-x TAB:                               Indentation Commands.
+* C-x u:                                 Undo.
+* C-x v =:                               Old Versions.
+* C-x v a:                               Change Logs and VC.
+* C-x v c:                               Editing with VC.
+* C-x v d:                               VC Status.
+* C-x v h:                               Version Headers.
+* C-x v i:                               Editing with VC.
+* C-x v l:                               VC Status.
+* C-x v r:                               Making Snapshots.
+* C-x v s:                               Making Snapshots.
+* C-x v u:                               Editing with VC.
+* C-x v ~:                               Old Versions.
+* C-x }:                                 Change Window.
+* C-y:                                   Kill Ring.
+* C-y (isearch-mode):                    Incremental Search.
+* C-z:                                   Exiting.
+* control key:                           Intro to Keystrokes.
+* d (Calendar mode):                     Diary Commands.
+* DEL <1>:                               Program Modes.
+* DEL <2>:                               Major Modes.
+* DEL <3>:                               Kill Errors.
+* DEL:                                   Killing.
+* DEL (isearch-mode):                    Incremental Search.
+* DEL (query-replace):                   Query Replace.
+* DOWN:                                  Moving Point.
+* END:                                   Moving Point.
+* ESC <1>:                               Meta Key.
+* ESC:                                   Key Sequences.
+* ESC (query-replace):                   Query Replace.
+* F1:                                    Help.
+* g CHAR (Calendar mode):                From Other Calendar.
+* g d (Calendar mode):                   Specified Dates.
+* g m l (Calendar mode):                 Mayan Calendar.
+* h (Calendar mode):                     Holidays.
+* Help:                                  Help.
+* HOME:                                  Moving Point.
+* hyper key <1>:                         Super and Hyper Keys.
+* hyper key <2>:                         Representing Keystrokes.
+* hyper key:                             Intro to Keystrokes.
+* i a (Calendar mode):                   Special Diary Entries.
+* i b (Calendar mode):                   Special Diary Entries.
+* i c (Calendar mode):                   Special Diary Entries.
+* i d (Calendar mode):                   Adding to Diary.
+* i m (Calendar mode):                   Adding to Diary.
+* i w (Calendar mode):                   Adding to Diary.
+* i y (Calendar mode):                   Adding to Diary.
+* LEFT:                                  Moving Point.
+* LFD <1>:                               Basic Indent.
+* LFD <2>:                               Major Modes.
+* LFD:                                   String Key Sequences.
+* LFD (TeX mode):                        TeX Editing.
+* m (Calendar mode):                     Diary Commands.
+* M (Calendar mode):                     Lunar Phases.
+* M-!:                                   Single Shell.
+* M-$:                                   Spelling.
+* M-%:                                   Query Replace.
+* M-':                                   Expanding Abbrevs.
+* M-(:                                   Balanced Editing.
+* M-):                                   Balanced Editing.
+* M-,:                                   Tags Search.
+* M--:                                   Arguments.
+* M-- M-c:                               Fixing Case.
+* M-- M-l:                               Fixing Case.
+* M-- M-u:                               Fixing Case.
+* M-.:                                   Find Tag.
+* M-/:                                   Dynamic Abbrevs.
+* M-1:                                   Arguments.
+* M-;:                                   Comments.
+* M-<:                                   Moving Point.
+* M-< (Calendar mode):                   Move to Beginning or End.
+* M-=:                                   Position Info.
+* M-= (Calendar mode):                   Mark and Region.
+* M->:                                   Moving Point.
+* M-> (Calendar mode):                   Move to Beginning or End.
+* M-?:                                   Nroff Mode.
+* M-@ <1>:                               Words.
+* M-@:                                   Marking Objects.
+* M-[:                                   Paragraphs.
+* M-\ <1>:                               Indentation Commands.
+* M-\:                                   Killing.
+* M-]:                                   Paragraphs.
+* M-^ <1>:                               Indentation Commands.
+* M-^:                                   Killing.
+* M-a:                                   Sentences.
+* M-a (Calendar mode):                   Move to Beginning or End.
+* M-b:                                   Words.
+* M-c:                                   Case.
+* M-C-r:                                 Regexp Search.
+* M-C-s:                                 Regexp Search.
+* M-d <1>:                               Words.
+* M-d:                                   Killing.
+* M-DEL <1>:                             Words.
+* M-DEL <2>:                             Kill Errors.
+* M-DEL:                                 Killing.
+* M-e:                                   Sentences.
+* M-e (Calendar mode):                   Move to Beginning or End.
+* M-ESC:                                 Lisp Eval.
+* M-f:                                   Words.
+* M-g:                                   Fill Commands.
+* M-h <1>:                               Paragraphs.
+* M-h:                                   Marking Objects.
+* M-i:                                   Tab Stops.
+* M-k <1>:                               Sentences.
+* M-k:                                   Killing.
+* M-l:                                   Case.
+* M-LFD:                                 Comments.
+* M-LFD (Fortran mode):                  ForIndent Commands.
+* M-m:                                   Indentation Commands.
+* M-n <1>:                               Nroff Mode.
+* M-n:                                   Repetition.
+* M-n (isearch-mode):                    Incremental Search.
+* M-n (minibuffer history):              Minibuffer History.
+* M-n (Shell mode):                      Shell Mode.
+* M-p <1>:                               Nroff Mode.
+* M-p:                                   Repetition.
+* M-p (isearch-mode):                    Incremental Search.
+* M-p (minibuffer history):              Minibuffer History.
+* M-p (Shell mode):                      Shell Mode.
+* M-q:                                   Fill Commands.
+* M-r:                                   Moving Point.
+* M-r (minibuffer history):              Minibuffer History.
+* M-s:                                   Fill Commands.
+* M-s (minibuffer history):              Minibuffer History.
+* M-SPC:                                 Killing.
+* M-t <1>:                               Words.
+* M-t:                                   Transpose.
+* M-TAB <1>:                             Tabs in Picture.
+* M-TAB:                                 Lisp Completion.
+* M-TAB (customization buffer):          Changing an Option.
+* M-TAB (isearch-mode):                  Incremental Search.
+* M-u:                                   Case.
+* M-v <1>:                               Scrolling.
+* M-v:                                   Moving Point.
+* M-v (Calendar mode):                   Scroll Calendar.
+* M-w:                                   Kill Ring.
+* M-x:                                   M-x.
+* M-y:                                   Earlier Kills.
+* M-z:                                   Killing.
+* M-{ (Calendar mode):                   Calendar Unit Motion.
+* M-|:                                   Single Shell.
+* M-} (Calendar mode):                   Calendar Unit Motion.
+* M-~:                                   Saving.
+* META:                                  Meta Key.
+* meta key:                              Intro to Keystrokes.
+* next:                                  Scrolling.
+* o (Calendar mode):                     Specified Dates.
+* p (Calendar mode):                     To Other Calendar.
+* p d (Calendar mode):                   General Calendar.
+* pgdn:                                  Scrolling.
+* PGDN:                                  Moving Point.
+* pgup:                                  Scrolling.
+* PGUP:                                  Moving Point.
+* prior:                                 Scrolling.
+* q (Calendar mode):                     General Calendar.
+* RET:                                   Inserting Text.
+* RET (isearch-mode):                    Incremental Search.
+* RET (Shell mode):                      Shell Mode.
+* RIGHT:                                 Moving Point.
+* s (Calendar mode):                     Diary Commands.
+* S (Calendar mode):                     Sunrise/Sunset.
+* S-TAB (customization buffer):          Changing an Option.
+* shift key:                             Intro to Keystrokes.
+* SPC:                                   Completion Commands.
+* SPC (Calendar mode):                   General Calendar.
+* SPC (query-replace):                   Query Replace.
+* super key <1>:                         Super and Hyper Keys.
+* super key <2>:                         Representing Keystrokes.
+* super key:                             Intro to Keystrokes.
+* t (Calendar mode):                     LaTeX Calendar.
+* TAB <1>:                               Basic Indent.
+* TAB <2>:                               Text Mode.
+* TAB <3>:                               Indentation.
+* TAB <4>:                               Major Modes.
+* TAB <5>:                               Completion Example.
+* TAB:                                   String Key Sequences.
+* TAB (customization buffer):            Changing an Option.
+* TAB (Shell mode):                      Shell Mode.
+* u (Calendar mode) <1>:                 Diary Commands.
+* u (Calendar mode):                     Holidays.
+* UP:                                    Moving Point.
+* x (Calendar mode):                     Holidays.
 
index e5b56b3..fe8b724 100644 (file)
@@ -30,812 +30,766 @@ versions, except that the sections entitled "The GNU Manifesto",
 translation approved by the author instead of in the original English.
 
 \1f
-File: xemacs.info,  Node: Variable Index,  Next: Concept Index,  Prev: Command Index,  Up: Top
+File: xemacs.info,  Node: Command Index,  Next: Variable Index,  Prev: Key Index,  Up: Top
 
-Variable Index
-**************
+Command and Function Index
+**************************
 
 * Menu:
 
-* abbrev-all-caps:                       Expanding Abbrevs.
-* abbrev-file-name:                      Saving Abbrevs.
+* abbrev-mode <1>:                       Minor Modes.
 * abbrev-mode:                           Abbrevs.
-* after-load-alist:                      Loading.
-* after-save-hook:                       Saving.
-* all-christian-calendar-holidays:       Holiday Customizing.
-* all-hebrew-calendar-holidays:          Holiday Customizing.
-* all-islamic-calendar-holidays:         Holiday Customizing.
-* appt-audible:                          Appt Customizing.
-* appt-display-duration:                 Appt Customizing.
-* appt-display-mode-line:                Appt Customizing.
-* appt-message-warning-time:             Appt Customizing.
-* appt-msg-window:                       Appt Customizing.
-* appt-visible:                          Appt Customizing.
-* apropos-do-all:                        Apropos.
-* auto-fill-inhibit-regexp:              Fill Commands.
-* auto-lower-frame:                      XEmacs under X.
-* auto-mode-alist:                       Choosing Modes.
-* auto-raise-frame:                      XEmacs under X.
-* auto-save-default:                     Auto Save Control.
-* auto-save-interval:                    Auto Save Control.
-* auto-save-timeout:                     Auto Save Control.
-* auto-save-visited-file-name:           Auto Save Files.
-* backup-by-copying:                     Backup Copying.
-* backup-by-copying-when-linked:         Backup Copying.
-* backup-by-copying-when-mismatch:       Backup Copying.
-* bell-volume:                           Audible Bell.
-* blink-matching-paren:                  Matching.
-* blink-matching-paren-distance:         Matching.
-* bookmark-save-flag:                    Bookmarks.
-* bookmark-search-size:                  Bookmarks.
-* buffer-file-coding-system:             Recognize Coding.
-* buffer-file-name:                      Visiting.
-* buffer-file-truename:                  Visiting.
-* buffer-read-only:                      Misc Buffer.
-* buffer-tag-table:                      Find Tag.
-* c-argdecl-indent:                      C Indent.
-* c-auto-newline:                        C Indent.
-* c-brace-imaginary-offset:              C Indent.
-* c-brace-offset:                        C Indent.
-* c-continued-statement-offset:          C Indent.
-* c-indent-level:                        C Indent.
-* c-label-offset:                        C Indent.
-* c-mode-hook:                           Program Modes.
-* c-mode-map:                            Keymaps.
-* c-tab-always-indent:                   C Indent.
-* calendar-date-display-form:            Date Display Format.
-* calendar-daylight-savings-ends:        Daylight Savings.
-* calendar-daylight-savings-ends-time:   Daylight Savings.
-* calendar-daylight-savings-starts:      Daylight Savings.
-* calendar-daylight-time-offset:         Daylight Savings.
-* calendar-daylight-time-zone-name:      Sunrise/Sunset.
-* calendar-holiday-marker:               Calendar Customizing.
-* calendar-holidays:                     Holiday Customizing.
-* calendar-latitude:                     Sunrise/Sunset.
-* calendar-load-hook:                    Calendar Customizing.
-* calendar-location-name:                Sunrise/Sunset.
-* calendar-longitude:                    Sunrise/Sunset.
-* calendar-standard-time-zone-name:      Sunrise/Sunset.
-* calendar-time-display-form:            Time Display Format.
-* calendar-time-zone:                    Sunrise/Sunset.
-* calendar-today-marker:                 Calendar Customizing.
-* calendar-week-start-day:               Move to Beginning or End.
-* case-fold-search <1>:                  Replacement and Case.
-* case-fold-search:                      Search Case.
-* case-replace:                          Replacement and Case.
-* christian-holidays:                    Holiday Customizing.
-* coding:                                Recognize Coding.
-* command-history:                       Repetition.
-* command-line-args:                     Command Switches.
-* comment-column:                        Comments.
-* comment-end:                           Comments.
-* comment-indent-hook:                   Comments.
-* comment-line-start:                    Fortran Comments.
-* comment-line-start-skip:               Fortran Comments.
-* comment-multi-line:                    Comments.
-* comment-start:                         Comments.
-* comment-start-skip:                    Comments.
-* compare-ignore-case:                   Comparing Files.
-* compile-command:                       Compilation.
-* completion-auto-help:                  Completion Options.
-* completion-ignored-extensions:         Completion Options.
-* create-frame-hook:                     XEmacs under X.
-* ctl-arrow:                             Display Vars.
-* ctl-x-map:                             Keymaps.
-* current-input-method:                  Select Input Method.
-* data-directory:                        Startup Paths.
-* data-directory-list:                   Startup Paths.
-* debug-on-error:                        Lisp Debug.
-* debug-on-quit:                         Lisp Debug.
-* default-buffer-file-coding-system:     Specify Coding.
-* default-directory:                     File Names.
-* default-directory-alist:               File Names.
-* default-frame-alist:                   XEmacs under X.
-* default-input-method:                  Select Input Method.
-* default-major-mode:                    Choosing Modes.
-* delete-auto-save-files:                Auto Save Files.
-* delete-old-versions:                   Backup Deletion.
-* describe-function-show-arglist:        Name Help.
-* diary-date-forms:                      Diary Customizing.
-* diary-display-hook:                    Fancy Diary Display.
-* diary-entry-marker:                    Calendar Customizing.
-* diary-file:                            Format of Diary File.
-* diary-list-include-blanks:             Fancy Diary Display.
-* diary-mail-days:                       Diary Commands.
-* diff-switches:                         Comparing Files.
-* dired-kept-versions:                   Dired Deletion.
-* dired-listing-switches:                Dired Enter.
-* display-buffer-function:               Pop Up Window.
-* doc-directory:                         Startup Paths.
-* echo-keystrokes:                       Display Vars.
-* emacs-lisp-mode-hook:                  Program Modes.
-* emacs-roots:                           Startup Paths.
-* EMACSDATA:                             Startup Paths.
-* EMACSLOADPATH:                         Startup Paths.
-* EMACSPATH:                             Startup Paths.
-* enable-local-variables:                File Variables.
-* enable-recursive-minibuffers:          Minibuffer Edit.
-* esc-map:                               Keymaps.
-* european-calendar-style:               Date Formats.
-* exec-directory:                        Startup Paths.
-* exec-path:                             Startup Paths.
-* explicit-shell-file-name:              Interactive Shell.
-* file-coding-system-alist:              Recognize Coding.
-* file-name-coding-system:               Specify Coding.
-* fill-column:                           Fill Commands.
-* fill-prefix:                           Fill Prefix.
-* find-file-compare-truenames:           Visiting.
-* find-file-hooks:                       Visiting.
-* find-file-not-found-hooks:             Visiting.
-* find-file-run-dired:                   Visiting.
-* find-file-use-truenames:               Visiting.
-* fortran-check-all-num-for-matching-do: ForIndent Vars.
-* fortran-comment-indent-char:           Fortran Comments.
-* fortran-comment-indent-style:          Fortran Comments.
-* fortran-comment-line-column:           Fortran Comments.
-* fortran-comment-region:                Fortran Comments.
-* fortran-continuation-char:             ForIndent Conv.
-* fortran-continuation-indent:           ForIndent Vars.
-* fortran-do-indent:                     ForIndent Vars.
-* fortran-electric-line-number:          ForIndent Num.
-* fortran-if-indent:                     ForIndent Vars.
-* fortran-line-number-indent:            ForIndent Num.
-* fortran-minimum-statement-indent:      ForIndent Vars.
-* frame-icon-title-format <1>:           Command Switches.
-* frame-icon-title-format:               XEmacs under X.
-* frame-title-format <1>:                Command Switches.
-* frame-title-format:                    XEmacs under X.
-* general-holidays:                      Holiday Customizing.
-* global-map:                            Keymaps.
-* hebrew-holidays:                       Holiday Customizing.
-* help-map:                              Keymaps.
-* holidays-in-diary-buffer:              Diary Customizing.
-* indent-tabs-mode:                      Just Spaces.
-* Info-directory-list:                   Startup Paths.
-* INFOPATH:                              Startup Paths.
-* initial-calendar-window-hook:          Calendar Customizing.
-* initial-major-mode:                    Entering Emacs.
-* input-method-highlight-flag:           Input Methods.
-* input-method-verbose-flag:             Input Methods.
-* input-ring-size:                       Interactive Shell.
-* insert-default-directory <1>:          File Names.
-* insert-default-directory:              Minibuffer File.
-* isearch-mode-map:                      Keymaps.
-* islamic-holidays:                      Holiday Customizing.
-* kept-new-versions:                     Backup Deletion.
-* kept-old-versions:                     Backup Deletion.
-* keyboard-translate-table:              Intro to Keystrokes.
-* kill-ring-max:                         Earlier Kills.
-* LaTeX-mode-hook:                       TeX Print.
-* lisp-body-indention:                   Lisp Indent.
-* lisp-directory:                        Startup Paths.
-* lisp-indent-offset:                    Lisp Indent.
-* lisp-interaction-mode-hook:            Program Modes.
-* lisp-mode-hook:                        Program Modes.
-* lisp-mode-map:                         Keymaps.
-* list-diary-entries-hook:               Included Diary Files.
-* list-directory-brief-switches:         ListDir.
-* list-directory-verbose-switches:       ListDir.
-* load-path <1>:                         Loading.
-* load-path:                             Startup Paths.
-* local-holidays:                        Holiday Customizing.
-* lpr-switches:                          Hardcopy.
-* mail-abbrev-mailrc-file:               Mail Headers.
-* mail-abbrev-mode-regexp:               Mail Headers.
-* mail-alias-separator-string:           Mail Headers.
-* mail-archive-file-name:                Mail Headers.
-* mail-header-separator:                 Mail Format.
-* mail-mode-hook:                        Mail Mode.
-* make-backup-files:                     Backup.
-* make-tags-files-invisible:             Find Tag.
-* mark-diary-entries-hook:               Included Diary Files.
-* mark-diary-entries-in-calendar:        Calendar Customizing.
-* mark-holidays-in-calendar:             Calendar Customizing.
-* mark-ring:                             Mark Ring.
-* mark-ring-max:                         Mark Ring.
-* meta-flag:                             Meta Key.
-* minibuffer-confirm-incomplete <1>:     Completion Options.
-* minibuffer-confirm-incomplete:         Minibuffer Edit.
-* minibuffer-local-completion-map:       Keymaps.
-* minibuffer-local-map:                  Keymaps.
-* minibuffer-local-must-match-map:       Keymaps.
-* minibuffer-local-ns-map:               Keymaps.
-* mode-line-inverse-video:               Mode Line.
-* modeline-pointer-glyph:                Mouse Selection.
-* muddle-mode-hook:                      Program Modes.
-* next-line-add-newlines:                Moving Point.
-* next-screen-context-lines:             Scrolling.
-* no-redraw-on-reenter:                  Display Vars.
-* nongregorian-diary-listing-hook:       Hebrew/Islamic Entries.
-* nongregorian-diary-marking-hook:       Hebrew/Islamic Entries.
-* nontext-pointer-glyph:                 Mouse Selection.
-* nroff-mode-hook:                       Nroff Mode.
-* number-of-diary-entries:               Diary Customizing.
-* other-holidays:                        Holiday Customizing.
-* outline-mode-hook:                     Outline Mode.
-* outline-regexp:                        Outline Format.
-* page-delimiter:                        Pages.
-* paragraph-separate:                    Paragraphs.
-* paragraph-start:                       Paragraphs.
-* parse-sexp-ignore-comments:            Syntax Entry.
-* PATH:                                  Startup Paths.
-* picture-mode-hook:                     Picture.
-* picture-tab-chars:                     Tabs in Picture.
-* plain-TeX-mode-hook:                   TeX Print.
-* print-diary-entries-hook:              Diary Customizing.
-* repeat-complex-command-map:            Keymaps.
-* require-final-newline:                 Saving.
-* save-abbrevs:                          Saving Abbrevs.
-* scheme-mode-hook:                      Program Modes.
-* scroll-conservatively:                 Scrolling.
-* scroll-step:                           Scrolling.
-* search-slow-speed:                     Incremental Search.
-* search-slow-window-lines:              Incremental Search.
-* selective-display-ellipses <1>:        Outline Visibility.
-* selective-display-ellipses:            Display Vars.
-* sentence-end:                          Sentences.
-* shell-cd-regexp:                       Interactive Shell.
-* shell-file-name:                       Single Shell.
-* shell-popd-regexp:                     Interactive Shell.
-* shell-prompt-pattern:                  Shell Mode.
-* shell-pushd-regexp:                    Interactive Shell.
-* sound-alist:                           Audible Bell.
-* tab-stop-list:                         Tab Stops.
-* tab-width:                             Display Vars.
-* tag-mark-stack-max:                    Find Tag.
-* tag-table-alist <1>:                   Find Tag.
-* tag-table-alist:                       Select Tags Table.
-* tags-always-build-completion-table:    Select Tags Table.
-* tags-build-completion-table:           Find Tag.
-* tags-file-name <1>:                    Find Tag.
-* tags-file-name:                        Select Tags Table.
-* term-file-prefix:                      Terminal Init.
-* term-setup-hook:                       Terminal Init.
-* TeX-mode-hook:                         TeX Print.
-* text-mode-hook:                        Text Mode.
-* text-pointer-glyph:                    Mouse Selection.
-* today-invisible-calendar-hook:         Calendar Customizing.
-* today-visible-calendar-hook:           Calendar Customizing.
-* track-eol:                             Moving Point.
-* truncate-lines:                        Continuation Lines.
-* truncate-partial-width-windows:        Split Window.
-* vc-command-messages:                   Variables for Check-in/out.
-* vc-comment-alist:                      Version Headers.
-* vc-default-back-end:                   Editing with VC.
-* vc-header-alist:                       Version Headers.
-* vc-initial-comment:                    Editing with VC.
-* vc-keep-workfiles:                     Editing with VC.
-* vc-log-mode-hook:                      Log Entries.
-* vc-make-backup-files:                  Editing with VC.
-* vc-mistrust-permissions:               Variables for Check-in/out.
-* vc-path:                               Variables for Check-in/out.
-* vc-static-header-alist:                Version Headers.
-* vc-suppress-confirm:                   Variables for Check-in/out.
-* version-control:                       Backup Names.
-* view-calendar-holidays-initially:      Calendar Customizing.
-* view-diary-entries-initially:          Calendar Customizing.
-* window-min-height:                     Change Window.
-* window-min-width:                      Change Window.
-* write-file-hooks:                      Saving.
-* x-frame-defaults:                      XEmacs under X.
-* zmacs-region-stays:                    Active Regions.
-* zmacs-regions:                         Active Regions.
-
-\1f
-File: xemacs.info,  Node: Concept Index,  Next: Frame,  Prev: Variable Index,  Up: Top
-
-Concept Index
-*************
-
-* Menu:
-
-* $ in regexp:                           Regexps.
-* ( in regexp:                           Regexps.
-* ) in regexp:                           Regexps.
-* * in regexp:                           Regexps.
-* *? in regexp:                          Regexps.
-* + in regexp:                           Regexps.
-* +? in regexp:                          Regexps.
-* . in regexp:                           Regexps.
-* .mailrc file:                          Mail Headers.
-* // in file name:                       Minibuffer File.
-* ? in regexp:                           Regexps.
-* ?? in regexp:                          Regexps.
-* [ in regexp:                           Regexps.
-* \ in regexp:                           Regexps.
-* \' in regexp:                          Regexps.
-* \(?: in regexp:                        Regexps.
-* \< in regexp:                          Regexps.
-* \= in regexp:                          Regexps.
-* \> in regexp:                          Regexps.
-* \` in regexp:                          Regexps.
-* \B in regexp:                          Regexps.
-* \b in regexp:                          Regexps.
-* \S in regexp:                          Regexps.
-* \s in regexp:                          Regexps.
-* \W in regexp:                          Regexps.
-* \w in regexp:                          Regexps.
-* \{n,m\} in regexp:                     Regexps.
-* ] in regexp:                           Regexps.
-* ^ in regexp:                           Regexps.
-* Abbrev mode:                           Minor Modes.
-* abbrevs:                               Abbrevs.
-* aborting:                              Quitting.
-* accumulating text:                     Accumulating Text.
-* active fields (customization buffer):  Customization Groups.
-* active regions:                        Active Regions.
-* adding menu items:                     Menu Customization.
-* adding menus:                          Menu Customization.
-* againformation:                        Dissociated Press.
-* Apps menu <1>:                         Apps Menu.
-* Apps menu:                             Pull-down Menus.
+* abbrev-prefix-mark:                    Expanding Abbrevs.
+* abort-recursive-edit <1>:              Quitting.
+* abort-recursive-edit:                  Recursive Edit.
+* add-change-log-entry:                  Change Log.
+* add-global-abbrev:                     Defining Abbrevs.
+* add-menu:                              Menu Customization.
+* add-menu-item:                         Menu Customization.
+* add-mode-abbrev:                       Defining Abbrevs.
+* add-name-to-file:                      Misc File Ops.
+* american-calendar:                     Date Formats.
+* append-next-kill:                      Appending Kills.
+* append-to-buffer:                      Accumulating Text.
+* append-to-file <1>:                    Misc File Ops.
+* append-to-file:                        Accumulating Text.
 * apropos:                               Apropos.
-* architecture-specific directories:     Startup Paths.
-* arguments (from shell):                Command Switches.
-* arrow keys:                            Moving Point.
-* ASCII:                                 Intro to Keystrokes.
-* Asm mode:                              Asm Mode.
-* astronomical day numbers:              Calendar Systems.
-* audible bell, changing:                Audible Bell.
-* Auto Delete Selection menu item:       Options Menu.
-* Auto Fill mode <1>:                    Minor Modes.
-* Auto Fill mode <2>:                    Comments.
-* Auto Fill mode:                        Auto Fill.
-* Auto-Save mode:                        Auto Save.
-* autoload:                              Loading.
-* backup file:                           Backup.
-* batch mode:                            Command Switches.
-* beginning of line in regexp:           Regexps.
-* bell, changing:                        Audible Bell.
-* binary packages:                       Package Terminology.
-* binding:                               Commands.
-* blank lines <1>:                       Comments.
-* blank lines:                           Blank Lines.
-* body lines (Outline mode):             Outline Format.
-* bold font:                             Face Customization.
-* bookmarks:                             Bookmarks.
-* boredom:                               Amusements.
-* buffer:                                Frame.
-* buffer menu:                           Several Buffers.
-* buffers:                               Buffers.
-* Buffers menu <1>:                      Buffers Menu.
-* Buffers menu:                          Pull-down Menus.
-* Buffers Menu Length... menu item:      Options Menu.
-* Buffers Sub-Menus menu item:           Options Menu.
-* buggestion:                            Dissociated Press.
-* bugs:                                  Bugs.
-* byte code:                             Compiling Libraries.
-* C:                                     Programs.
-* C mode:                                Program Modes.
+* apropos-documentation:                 Apropos.
+* apropos-value:                         Apropos.
+* ask-user-about-lock:                   Interlocking.
+* auto-fill-mode <1>:                    Minor Modes.
+* auto-fill-mode:                        Auto Fill.
+* auto-save-mode:                        Auto Save Control.
+* back-to-indentation:                   Indentation Commands.
+* backward-char:                         Moving Point.
+* backward-delete-char-untabify:         Program Modes.
+* backward-kill-sentence <1>:            Sentences.
+* backward-kill-sentence <2>:            Kill Errors.
+* backward-kill-sentence:                Killing.
+* backward-kill-word <1>:                Words.
+* backward-kill-word <2>:                Kill Errors.
+* backward-kill-word:                    Killing.
+* backward-list:                         Lists.
+* backward-or-forward-delete-char:       Inserting Text.
+* backward-page:                         Pages.
+* backward-paragraph:                    Paragraphs.
+* backward-sentence:                     Sentences.
+* backward-sexp:                         Lists.
+* backward-text-line:                    Nroff Mode.
+* backward-up-list:                      Lists.
+* backward-word:                         Words.
+* batch-byte-compile:                    Compiling Libraries.
+* beginning-of-buffer:                   Moving Point.
+* beginning-of-defun:                    Defuns.
+* beginning-of-fortran-subprogram:       Fortran Motion.
+* beginning-of-line:                     Moving Point.
+* bookmark-delete:                       Bookmarks.
+* bookmark-insert:                       Bookmarks.
+* bookmark-insert-location:              Bookmarks.
+* bookmark-jump:                         Bookmarks.
+* bookmark-load:                         Bookmarks.
+* bookmark-save:                         Bookmarks.
+* bookmark-set:                          Bookmarks.
+* bookmark-write:                        Bookmarks.
+* buffer-menu:                           Several Buffers.
+* byte-compile-and-load-file:            Compiling Libraries.
+* byte-compile-buffer:                   Compiling Libraries.
+* byte-compile-file:                     Compiling Libraries.
+* byte-recompile-directory:              Compiling Libraries.
+* c-indent-line:                         Basic Indent.
 * calendar:                              Calendar/Diary.
-* calendar and LaTeX:                    LaTeX Calendar.
-* calendar, first day of week:           Move to Beginning or End.
-* candle lighting times:                 Sexp Diary Entries.
-* case conversion <1>:                   Case.
-* case conversion:                       Fixing Case.
-* Case Sensitive Search menu item:       Options Menu.
-* centering:                             Fill Commands.
-* change log:                            Change Log.
-* changing buffers:                      Select Buffer.
-* changing menu items:                   Menu Customization.
-* character set:                         Intro to Keystrokes.
-* character set (in regexp):             Regexps.
-* checking in files:                     Concepts of VC.
-* checking out files:                    Concepts of VC.
-* Chinese:                               Mule.
-* Chinese calendar:                      Calendar Systems.
-* Clear menu item:                       Edit Menu.
-* clipboard selections:                  X Clipboard Selection.
-* coding systems:                        Coding Systems.
-* command <1>:                           Key Bindings.
-* command:                               Commands.
-* command history:                       Repetition.
-* command line arguments:                Command Switches.
-* command name:                          Key Bindings.
-* comments:                              Comments.
-* comparing files:                       Comparing Files.
-* compilation errors:                    Compilation.
-* compiling files:                       Compilation.
-* completion:                            Completion.
-* completion (symbol names):             Lisp Completion.
-* continuation line:                     Continuation Lines.
-* Control-Meta:                          Lists.
-* Coptic calendar:                       Calendar Systems.
-* Copy menu item:                        Edit Menu.
-* copying files:                         Misc File Ops.
-* copying text <1>:                      Accumulating Text.
-* copying text:                          Yanking.
-* core distribution:                     Using Packages.
-* crashes:                               Auto Save.
-* creating directories:                  File Names.
-* creating files:                        Visiting.
-* current buffer:                        Buffers.
-* current stack frame:                   Lisp Debug.
-* cursor <1>:                            Inserting Text.
-* cursor:                                Point.
-* cursor motion:                         Moving Point.
-* customization <1>:                     Customization.
-* customization <2>:                     Lisp Indent.
-* customization:                         Commands.
-* customization buffer:                  Easy Customization.
-* customization groups:                  Customization Groups.
-* customizing faces:                     Face Customization.
-* cut buffers:                           X Selection Commands.
-* Cut menu item:                         Edit Menu.
-* cutting:                               Killing.
-* day of year:                           General Calendar.
-* daylight savings time:                 Daylight Savings.
-* debugger:                              Lisp Debug.
-* default argument:                      Minibuffer.
-* defuns:                                Defuns.
-* Delete Frame menu item:                File Menu.
-* deleting blank lines:                  Blank Lines.
-* deleting characters and lines:         Erasing.
-* deleting menu items:                   Menu Customization.
-* deletion <1>:                          Killing.
-* deletion:                              Inserting Text.
-* deletion (of files) <1>:               Misc File Ops.
-* deletion (of files):                   Dired.
-* diary:                                 Diary.
-* diary buffer:                          Fancy Diary Display.
-* diary file:                            Format of Diary File.
-* ding:                                  Audible Bell.
-* directories:                           Startup Paths.
-* directory hierarchies:                 Startup Paths.
-* directory listing:                     ListDir.
-* Dired:                                 Dired.
-* disabled command:                      Disabling.
-* disabling menu items:                  Menu Customization.
-* Distribution:                          License.
+* calendar-backward-day:                 Calendar Unit Motion.
+* calendar-backward-month:               Calendar Unit Motion.
+* calendar-backward-week:                Calendar Unit Motion.
+* calendar-beginning-of-month:           Move to Beginning or End.
+* calendar-beginning-of-week:            Move to Beginning or End.
+* calendar-beginning-of-year:            Move to Beginning or End.
+* calendar-count-days-region:            Mark and Region.
+* calendar-cursor-holidays:              Holidays.
+* calendar-end-of-month:                 Move to Beginning or End.
+* calendar-end-of-week:                  Move to Beginning or End.
+* calendar-end-of-year:                  Move to Beginning or End.
+* calendar-exchange-point-and-mark:      Mark and Region.
+* calendar-forward-day:                  Calendar Unit Motion.
+* calendar-forward-month:                Calendar Unit Motion.
+* calendar-forward-week:                 Calendar Unit Motion.
+* calendar-forward-year:                 Calendar Unit Motion.
+* calendar-goto-astro-day-number:        From Other Calendar.
+* calendar-goto-chinese-date:            From Other Calendar.
+* calendar-goto-coptic-date:             From Other Calendar.
+* calendar-goto-date:                    Specified Dates.
+* calendar-goto-ethiopic-date:           From Other Calendar.
+* calendar-goto-french-date:             From Other Calendar.
+* calendar-goto-hebrew-date:             From Other Calendar.
+* calendar-goto-islamic-date:            From Other Calendar.
+* calendar-goto-iso-date:                From Other Calendar.
+* calendar-goto-julian-date:             From Other Calendar.
+* calendar-goto-mayan-long-count-date:   Mayan Calendar.
+* calendar-goto-persian-date:            From Other Calendar.
+* calendar-goto-today:                   Specified Dates.
+* calendar-mark-today:                   Calendar Customizing.
+* calendar-next-calendar-round-date:     Mayan Calendar.
+* calendar-next-haab-date:               Mayan Calendar.
+* calendar-next-tzolkin-date:            Mayan Calendar.
+* calendar-other-month:                  Specified Dates.
+* calendar-phases-of-moon:               Lunar Phases.
+* calendar-previous-haab-date:           Mayan Calendar.
+* calendar-previous-tzolkin-date:        Mayan Calendar.
+* calendar-print-astro-day-number:       To Other Calendar.
+* calendar-print-chinese-date:           To Other Calendar.
+* calendar-print-coptic-date:            To Other Calendar.
+* calendar-print-day-of-year:            General Calendar.
+* calendar-print-ethiopic-date:          To Other Calendar.
+* calendar-print-french-date:            To Other Calendar.
+* calendar-print-hebrew-date:            To Other Calendar.
+* calendar-print-islamic-date:           To Other Calendar.
+* calendar-print-iso-date:               To Other Calendar.
+* calendar-print-julian-date:            To Other Calendar.
+* calendar-print-mayan-date:             To Other Calendar.
+* calendar-print-persian-date:           To Other Calendar.
+* calendar-set-mark:                     Mark and Region.
+* calendar-star-date:                    Calendar Customizing.
+* calendar-sunrise-sunset:               Sunrise/Sunset.
+* calendar-unmark <1>:                   Diary Commands.
+* calendar-unmark:                       Holidays.
+* call-last-kbd-macro:                   Basic Kbd Macro.
+* cancel-debug-on-entry:                 Lisp Debug.
+* capitalize-word <1>:                   Case.
+* capitalize-word:                       Fixing Case.
+* center-line:                           Fill Commands.
+* choose-completion:                     Completion Commands.
+* clear-rectangle:                       Rectangles.
+* comint-delchar-or-maybe-eof:           Shell Mode.
+* comint-dynamic-complete:               Shell Mode.
+* comint-next-input:                     Shell Mode.
+* comint-previous-input:                 Shell Mode.
+* command-apropos:                       Apropos.
+* compare-windows <1>:                   Other Window.
+* compare-windows:                       Comparing Files.
+* compile:                               Compilation.
+* compile-defun:                         Defuns.
+* convert-mocklisp-buffer:               Mocklisp.
+* conx:                                  CONX.
+* conx-buffer:                           CONX.
+* conx-init:                             CONX.
+* conx-load:                             CONX.
+* conx-region:                           CONX.
+* conx-save:                             CONX.
+* copy-file:                             Misc File Ops.
+* copy-last-shell-input:                 Shell Mode.
+* copy-rectangle-to-register:            RegRect.
+* copy-region-as-kill:                   Kill Ring.
+* copy-to-buffer:                        Accumulating Text.
+* copy-to-register:                      RegText.
+* count-lines-page:                      Pages.
+* count-lines-region:                    Position Info.
+* count-matches:                         Other Repeating Search.
+* count-text-lines:                      Nroff Mode.
+* customize:                             Easy Customization.
+* customize-apropos:                     Specific Customization.
+* customize-browse:                      Customization Groups.
+* customize-customized:                  Specific Customization.
+* customize-face:                        Specific Customization.
+* customize-group:                       Specific Customization.
+* customize-option:                      Specific Customization.
+* customize-saved:                       Specific Customization.
+* dabbrev-expand:                        Dynamic Abbrevs.
+* debug:                                 Lisp Debug.
+* debug-on-entry:                        Lisp Debug.
+* default-value:                         Locals.
+* define-abbrevs:                        Saving Abbrevs.
+* define-key <1>:                        Programmatic Rebinding.
+* define-key:                            Interactive Rebinding.
+* delete-backward-char <1>:              Kill Errors.
+* delete-backward-char:                  Killing.
+* delete-blank-lines <1>:                Killing.
+* delete-blank-lines:                    Blank Lines.
+* delete-char <1>:                       Basic Picture.
+* delete-char:                           Killing.
+* delete-file:                           Misc File Ops.
+* delete-horizontal-space <1>:           Indentation Commands.
+* delete-horizontal-space:               Killing.
+* delete-indentation <1>:                Indentation Commands.
+* delete-indentation:                    Killing.
+* delete-matching-lines:                 Other Repeating Search.
+* delete-menu-item:                      Menu Customization.
+* delete-non-matching-lines:             Other Repeating Search.
+* delete-other-windows:                  Change Window.
+* delete-rectangle:                      Rectangles.
+* delete-window:                         Change Window.
+* describe-bindings:                     Misc Help.
+* describe-calendar-mode:                General Calendar.
+* describe-coding-system:                Coding Systems.
+* describe-copying:                      Misc Help.
+* describe-distribution:                 Misc Help.
+* describe-function <1>:                 Documentation.
+* describe-function:                     Name Help.
+* describe-input-method:                 Select Input Method.
+* describe-key:                          Key Help.
+* describe-key-briefly:                  Key Help.
+* describe-language-environment:         Language Environments.
+* describe-mode:                         Misc Help.
+* describe-no-warranty:                  Misc Help.
+* describe-syntax:                       Syntax Change.
+* describe-variable <1>:                 Examining.
+* describe-variable <2>:                 Documentation.
+* describe-variable:                     Name Help.
+* diary:                                 Diary Commands.
+* diary-anniversary <1>:                 Sexp Diary Entries.
+* diary-anniversary:                     Special Diary Entries.
+* diary-astro-day-number:                Sexp Diary Entries.
+* diary-block:                           Special Diary Entries.
+* diary-cyclic <1>:                      Sexp Diary Entries.
+* diary-cyclic:                          Special Diary Entries.
+* diary-day-of-year:                     Sexp Diary Entries.
+* diary-float:                           Special Diary Entries.
+* diary-french-date:                     Sexp Diary Entries.
+* diary-hebrew-date:                     Sexp Diary Entries.
+* diary-islamic-date:                    Sexp Diary Entries.
+* diary-iso-date:                        Sexp Diary Entries.
+* diary-julian-date:                     Sexp Diary Entries.
+* diary-mail-entries:                    Diary Commands.
+* diary-mayan-date:                      Sexp Diary Entries.
+* diary-omer:                            Sexp Diary Entries.
+* diary-parasha:                         Sexp Diary Entries.
+* diary-phases-of-moon:                  Sexp Diary Entries.
+* diary-rosh-hodesh:                     Sexp Diary Entries.
+* diary-sabbath-candles:                 Sexp Diary Entries.
+* diary-sunrise-sunset:                  Sexp Diary Entries.
+* diary-yahrzeit:                        Sexp Diary Entries.
+* diff:                                  Comparing Files.
+* diff-backup:                           Comparing Files.
+* digit-argument:                        Arguments.
+* dired:                                 Dired Enter.
+* dired-other-window <1>:                Pop Up Window.
+* dired-other-window:                    Dired Enter.
+* disable-command:                       Disabling.
+* disable-menu-item:                     Menu Customization.
+* disassemble:                           Compiling Libraries.
+* display-time:                          Mode Line.
+* dissociated-press:                     Dissociated Press.
+* do-auto-save:                          Auto Save Control.
 * doctor:                                Total Frustration.
-* double slash in file name:             Minibuffer File.
-* drastic changes:                       Reverting.
-* dribble file:                          Bugs.
-* early package hierarchies:             Startup Paths.
-* echo area:                             Echo Area.
-* Edit menu <1>:                         Edit Menu.
-* Edit menu:                             Pull-down Menus.
-* editable fields (customization buffer): Customization Groups.
-* editing level, recursive <1>:          Quitting.
-* editing level, recursive:              Recursive Edit.
-* EDT:                                   Emulation.
-* Eliza:                                 Total Frustration.
-* Emacs initialization file:             Init File.
-* Emacs-Lisp mode:                       Lisp Eval.
-* enabling menu items:                   Menu Customization.
-* encoding of characters:                Mule.
-* End Macro Recording menu item:         Edit Menu.
-* entering XEmacs:                       Entering Emacs.
-* environment:                           Single Shell.
-* erasing characters and lines:          Erasing.
-* error log:                             Compilation.
-* etags program:                         Create Tags Table.
-* Ethiopic calendar:                     Calendar Systems.
-* Execute Last Macro menu item:          Edit Menu.
-* Exit Emacs menu item:                  File Menu.
-* exiting <1>:                           Recursive Edit.
-* exiting:                               Exiting.
-* expansion (of abbrevs):                Abbrevs.
-* expression:                            Lists.
-* file dates:                            Interlocking.
-* file directory:                        ListDir.
-* File menu <1>:                         File Menu.
-* File menu:                             Pull-down Menus.
-* file names:                            File Names.
-* file protection:                       Interlocking.
-* files <1>:                             Visiting.
-* files <2>:                             Files.
-* files:                                 Basic Files.
-* fill prefix:                           Fill Prefix.
-* filling:                               Filling.
-* Font menu item:                        Options Menu.
-* fonts and faces:                       Face Customization.
-* formfeed:                              Pages.
-* Fortran mode:                          Fortran.
-* frame:                                 Frame.
-* French Revolutionary calendar:         Calendar Systems.
-* function <1>:                          Key Bindings.
-* function:                              Commands.
-* General Public License:                License.
-* getting help with keys:                Basic Help.
-* global keymap:                         Keymaps.
-* global substitution:                   Replace.
-* graphic characters:                    Inserting Text.
-* Greek:                                 Mule.
-* Gregorian calendar:                    Other Calendars.
-* grinding:                              Grinding.
-* hardcopy:                              Hardcopy.
-* header (TeX mode):                     TeX Print.
-* headers (of mail message):             Mail Headers.
-* heading lines (Outline mode):          Outline Format.
-* Hebrew calendar:                       Calendar Systems.
-* help:                                  Help.
-* Help menu <1>:                         Help Menu.
-* Help menu:                             Pull-down Menus.
-* hierarchies:                           Startup Paths.
-* history of commands:                   Repetition.
-* history of minibuffer input:           Minibuffer History.
-* holiday forms:                         Holiday Customizing.
+* down-list:                             Lists.
+* downcase-region:                       Case.
+* downcase-word <1>:                     Case.
+* downcase-word:                         Fixing Case.
+* edit-abbrevs:                          Editing Abbrevs.
+* edit-abbrevs-redefine:                 Editing Abbrevs.
+* edit-options:                          Edit Options.
+* edit-picture:                          Picture.
+* edit-tab-stops <1>:                    Text Mode.
+* edit-tab-stops:                        Tab Stops.
+* edit-tab-stops-note-changes:           Tab Stops.
+* edt-emulation-off:                     Emulation.
+* edt-emulation-on:                      Emulation.
+* electric-nroff-mode:                   Nroff Mode.
+* emacs-lisp-mode:                       Lisp Eval.
+* emacs-version:                         Bugs.
+* enable-command:                        Disabling.
+* enable-menu-item:                      Menu Customization.
+* end-kbd-macro:                         Basic Kbd Macro.
+* end-of-buffer:                         Moving Point.
+* end-of-defun:                          Defuns.
+* end-of-fortran-subprogram:             Fortran Motion.
+* end-of-line:                           Moving Point.
+* enlarge-window:                        Change Window.
+* enlarge-window-horizontally:           Change Window.
+* european-calendar:                     Date Formats.
+* eval-current-buffer:                   Lisp Eval.
+* eval-defun:                            Lisp Eval.
+* eval-expression:                       Lisp Eval.
+* eval-last-sexp:                        Lisp Eval.
+* eval-region:                           Lisp Eval.
+* exchange-point-and-mark:               Setting Mark.
+* execute-extended-command:              M-x.
+* exit-calendar:                         General Calendar.
+* exit-recursive-edit:                   Recursive Edit.
+* expand-abbrev:                         Expanding Abbrevs.
+* expand-region-abbrevs:                 Expanding Abbrevs.
+* fancy-diary-display:                   Fancy Diary Display.
+* fill-individual-paragraphs:            Fill Prefix.
+* fill-paragraph:                        Fill Commands.
+* fill-region:                           Fill Commands.
+* fill-region-as-paragraph:              Fill Commands.
+* find-alternate-file:                   Visiting.
+* find-file:                             Visiting.
+* find-file-other-frame <1>:             Visiting.
+* find-file-other-frame:                 XEmacs under X.
+* find-file-other-window <1>:            Pop Up Window.
+* find-file-other-window:                Visiting.
+* find-tag:                              Find Tag.
+* find-tag-other-window <1>:             Find Tag.
+* find-tag-other-window:                 Pop Up Window.
+* find-this-file:                        Visiting.
+* find-this-file-other-window:           Visiting.
+* finder-by-keyword:                     Library Keywords.
+* fortran-column-ruler:                  Fortran Columns.
+* fortran-comment-region:                Fortran Comments.
+* fortran-indent-line:                   ForIndent Commands.
+* fortran-indent-subprogram:             ForIndent Commands.
+* fortran-mode:                          Fortran.
+* fortran-next-statement:                Fortran Motion.
+* fortran-previous-statement:            Fortran Motion.
+* fortran-split-line:                    ForIndent Commands.
+* fortran-window-create:                 Fortran Columns.
+* forward-char:                          Moving Point.
+* forward-list:                          Lists.
+* forward-page:                          Pages.
+* forward-paragraph:                     Paragraphs.
+* forward-sentence:                      Sentences.
+* forward-sexp:                          Lists.
+* forward-text-line:                     Nroff Mode.
+* forward-word:                          Words.
+* frame-configuration-to-register:       RegConfig.
+* global-set-key <1>:                    Programmatic Rebinding.
+* global-set-key:                        Interactive Rebinding.
+* goto-char:                             Moving Point.
+* goto-line:                             Moving Point.
+* hanoi:                                 Amusements.
+* help-command:                          Help.
+* help-for-help:                         Help.
+* help-with-tutorial <1>:                Misc Help.
+* help-with-tutorial:                    Basic.
+* hide-body:                             Outline Visibility.
+* hide-entry:                            Outline Visibility.
+* hide-leaves:                           Outline Visibility.
+* hide-subtree:                          Outline Visibility.
 * holidays:                              Holidays.
-* horizontal scrolling:                  Horizontal Scrolling.
-* Icomplete mode:                        Completion Options.
-* ignoriginal:                           Dissociated Press.
-* indentation <1>:                       Comments.
-* indentation <2>:                       Grinding.
-* indentation:                           Indentation.
-* inferior process:                      Compilation.
-* Info:                                  Misc Help.
-* init file:                             Init File.
-* input methods:                         Input Methods.
-* Insert File... menu item:              File Menu.
-* inserting blank lines:                 Blank Lines.
-* insertion:                             Inserting Text.
-* international scripts:                 Mule.
-* interval operator (in regexps):        Etags Regexps.
-* invisible lines:                       Outline Mode.
-* IPA:                                   Mule.
-* Islamic calendar:                      Calendar Systems.
-* ISO commercial calendar:               Calendar Systems.
-* italic font:                           Face Customization.
-* Japanese:                              Mule.
-* Julian calendar:                       Calendar Systems.
-* Julian day numbers:                    Calendar Systems.
-* justification:                         Fill Commands.
-* key rebinding, permanent:              Init File.
-* key rebinding, this session:           Rebinding.
-* keyboard macros:                       Keyboard Macros.
-* keycode:                               Super and Hyper Keys.
-* keymap <1>:                            Keymaps.
-* keymap:                                Commands.
-* keystroke:                             Intro to Keystrokes.
-* keysym:                                Intro to Keystrokes.
-* keysyms:                               Super and Hyper Keys.
-* Kill Buffer menu item:                 File Menu.
-* kill ring:                             Yanking.
-* killing:                               Killing.
-* killing characters and lines:          Erasing.
-* killing Emacs:                         Exiting.
-* Korean:                                Mule.
-* language environments:                 Language Environments.
-* last package hierarchies:              Startup Paths.
-* late package hierarchies:              Startup Paths.
-* LaTeX:                                 TeX Mode.
-* leaving Emacs:                         Exiting.
-* libraries:                             Lisp Libraries.
-* license to copy XEmacs:                License.
-* line number:                           Position Info.
-* line wrapping:                         Continuation Lines.
-* Lisp:                                  Programs.
-* Lisp mode:                             Program Modes.
-* list:                                  Lists.
-* loading libraries:                     Loading.
-* loading Lisp code:                     Lisp Libraries.
-* local keymap:                          Keymaps.
-* local variables:                       Locals.
-* local variables in files:              File Variables.
-* locking and version control:           Concepts of VC.
-* log entry:                             Editing with VC.
-* mail <1>:                              Reading Mail.
+* include-other-diary-files:             Included Diary Files.
+* increment-register:                    RegNumbers.
+* indent-c-exp:                          Multi-line Indent.
+* indent-for-comment:                    Comments.
+* indent-new-comment-line:               Comments.
+* indent-region <1>:                     Multi-line Indent.
+* indent-region:                         Indentation Commands.
+* indent-relative:                       Indentation Commands.
+* indent-rigidly:                        Indentation Commands.
+* indent-sexp:                           Multi-line Indent.
+* indented-text-mode:                    Text Mode.
+* info:                                  Misc Help.
+* Info-elisp-ref:                        Misc Help.
+* Info-goto-emacs-command-node:          Misc Help.
+* insert-abbrevs:                        Saving Abbrevs.
+* insert-anniversary-diary-entry:        Special Diary Entries.
+* insert-block-diary-entry:              Special Diary Entries.
+* insert-cyclic-diary-entry:             Special Diary Entries.
+* insert-diary-entry:                    Adding to Diary.
+* insert-file:                           Misc File Ops.
+* insert-hebrew-diary-entry:             Hebrew/Islamic Entries.
+* insert-islamic-diary-entry:            Hebrew/Islamic Entries.
+* insert-kbd-macro:                      Save Kbd Macro.
+* insert-monthly-diary-entry:            Adding to Diary.
+* insert-monthly-hebrew-diary-entry:     Hebrew/Islamic Entries.
+* insert-monthly-islamic-diary-entry:    Hebrew/Islamic Entries.
+* insert-parentheses:                    Balanced Editing.
+* insert-register:                       RegText.
+* insert-weekly-diary-entry:             Adding to Diary.
+* insert-yearly-diary-entry:             Adding to Diary.
+* insert-yearly-hebrew-diary-entry:      Hebrew/Islamic Entries.
+* insert-yearly-islamic-diary-entry:     Hebrew/Islamic Entries.
+* interactive:                           M-x.
+* interrupt-shell-subjob:                Shell Mode.
+* inverse-add-global-abbrev:             Defining Abbrevs.
+* inverse-add-mode-abbrev:               Defining Abbrevs.
+* invert-face:                           Faces.
+* isearch-abort:                         Incremental Search.
+* isearch-backward:                      Incremental Search.
+* isearch-backward-regexp:               Regexp Search.
+* isearch-complete:                      Incremental Search.
+* isearch-delete-char:                   Incremental Search.
+* isearch-exit:                          Incremental Search.
+* isearch-forward:                       Incremental Search.
+* isearch-forward-regexp:                Regexp Search.
+* isearch-quote-char:                    Incremental Search.
+* isearch-repeat-backward:               Incremental Search.
+* isearch-repeat-forward:                Incremental Search.
+* isearch-ring-advance:                  Incremental Search.
+* isearch-ring-retreat:                  Incremental Search.
+* isearch-yank-line:                     Incremental Search.
+* isearch-yank-word:                     Incremental Search.
+* jump-to-register <1>:                  Split Window.
+* jump-to-register:                      RegPos.
+* just-one-space:                        Killing.
+* kbd-macro-query:                       Kbd Macro Query.
+* kill-all-abbrevs:                      Defining Abbrevs.
+* kill-buffer:                           Kill Buffer.
+* kill-comment:                          Comments.
+* kill-compilation:                      Compilation.
+* kill-line:                             Killing.
+* kill-local-variable:                   Locals.
+* kill-output-from-shell:                Shell Mode.
+* kill-rectangle:                        Rectangles.
+* kill-region:                           Killing.
+* kill-sentence <1>:                     Sentences.
+* kill-sentence:                         Killing.
+* kill-sexp <1>:                         Lists.
+* kill-sexp:                             Killing.
+* kill-some-buffers:                     Kill Buffer.
+* kill-word <1>:                         Words.
+* kill-word:                             Killing.
+* latex-mode:                            TeX Mode.
+* LaTeX-mode:                            TeX Mode.
+* lisp-complete-symbol:                  Lisp Completion.
+* lisp-indent-line:                      Basic Indent.
+* lisp-interaction-mode:                 Lisp Interaction.
+* lisp-mode:                             External Lisp.
+* lisp-send-defun:                       External Lisp.
+* list-abbrevs:                          Editing Abbrevs.
+* list-bookmarks:                        Bookmarks.
+* list-buffers:                          List Buffers.
+* list-calendar-holidays:                Holidays.
+* list-coding-systems:                   Coding Systems.
+* list-command-history:                  Repetition.
+* list-directory:                        ListDir.
+* list-hebrew-diary-entries:             Hebrew/Islamic Entries.
+* list-holidays:                         Holidays.
+* list-input-methods:                    Select Input Method.
+* list-islamic-diary-entries:            Hebrew/Islamic Entries.
+* list-matching-lines:                   Other Repeating Search.
+* list-options:                          Edit Options.
+* list-tags:                             List Tags.
+* list-yahrzeit-dates:                   From Other Calendar.
+* load:                                  Loading.
+* load-default-sounds:                   Audible Bell.
+* load-file:                             Loading.
+* load-library <1>:                      Loading.
+* load-library:                          Startup Paths.
+* load-sound-file:                       Audible Bell.
+* local-set-key:                         Interactive Rebinding.
+* local-unset-key:                       Interactive Rebinding.
+* locate-library:                        Loading.
+* lpr-buffer:                            Hardcopy.
+* lpr-region:                            Hardcopy.
 * mail:                                  Sending Mail.
-* major modes:                           Major Modes.
-* make:                                  Compilation.
-* manuals, on-line:                      Misc Help.
-* mark:                                  Mark.
-* mark ring <1>:                         Mark and Region.
-* mark ring:                             Mark Ring.
-* Markov chain:                          Dissociated Press.
-* master file:                           Concepts of VC.
-* matching parentheses:                  Matching.
-* Mayan calendar:                        Calendar Systems.
-* Mayan calendar round:                  Mayan Calendar.
-* Mayan haab calendar:                   Mayan Calendar.
-* Mayan long count:                      Mayan Calendar.
-* Mayan tzolkin calendar:                Mayan Calendar.
-* menus <1>:                             Change Window.
-* menus:                                 Pull-down Menus.
-* message <1>:                           Reading Mail.
-* message:                               Sending Mail.
-* Meta:                                  Words.
-* minibuffer <1>:                        Keymaps.
-* minibuffer <2>:                        M-x.
-* minibuffer:                            Minibuffer.
-* minibuffer history:                    Minibuffer History.
-* minor modes:                           Minor Modes.
-* mistakes, correcting <1>:              Fixit.
-* mistakes, correcting:                  Undo.
-* mocklisp:                              Mocklisp.
-* mode hook:                             Program Modes.
-* mode line <1>:                         Minor Modes.
-* mode line:                             Mode Line.
-* mode, Term:                            Term Mode.
-* modified (buffer):                     Visiting.
-* modifier key:                          Intro to Keystrokes.
-* modifier mapping:                      Super and Hyper Keys.
-* moon, phases of:                       Lunar Phases.
-* mouse operations:                      Additional Mouse Operations.
-* mouse selection:                       Mouse Selection.
-* movement:                              Moving Point.
-* moving inside the calendar:            Calendar Motion.
-* moving point:                          Moving Point.
-* moving text:                           Yanking.
-* moving the cursor:                     Moving Point.
-* MULE:                                  Mule.
-* multi-frame XEmacs:                    XEmacs under X.
-* multibyte characters:                  Mule.
-* named configurations (RCS):            Snapshot Caveats.
-* narrowing:                             Narrowing.
-* New Frame menu item:                   File Menu.
+* mail-cc:                               Mail Mode.
+* mail-fill-yanked-message:              Mail Mode.
+* mail-interactive-insert-alias:         Mail Headers.
+* mail-other-window <1>:                 Sending Mail.
+* mail-other-window:                     Pop Up Window.
+* mail-send:                             Mail Mode.
+* mail-send-and-exit:                    Mail Mode.
+* mail-signature:                        Mail Mode.
+* mail-subject:                          Mail Mode.
+* mail-to:                               Mail Mode.
+* mail-yank-original:                    Mail Mode.
+* make-directory:                        File Names.
+* make-face-bold:                        Faces.
+* make-face-bold-italic:                 Faces.
+* make-face-italic:                      Faces.
+* make-face-larger:                      Faces.
+* make-face-smaller:                     Faces.
+* make-face-unbold:                      Faces.
+* make-face-unitalic:                    Faces.
+* make-frame:                            XEmacs under X.
+* make-local-variable:                   Locals.
+* make-obsolete:                         Compiling Libraries.
+* make-symbolic-link:                    Misc File Ops.
+* make-variable-buffer-local:            Locals.
+* manual-entry:                          Documentation.
+* mark-beginning-of-buffer:              Setting Mark.
+* mark-calendar-holidays:                Holidays.
+* mark-defun <1>:                        Defuns.
+* mark-defun:                            Marking Objects.
+* mark-diary-entries:                    Diary Commands.
+* mark-end-of-buffer:                    Setting Mark.
+* mark-fortran-subprogram:               Fortran Motion.
+* mark-hebrew-diary-entries:             Hebrew/Islamic Entries.
+* mark-included-diary-files:             Included Diary Files.
+* mark-islamic-diary-entries:            Hebrew/Islamic Entries.
+* mark-page <1>:                         Pages.
+* mark-page:                             Marking Objects.
+* mark-paragraph <1>:                    Paragraphs.
+* mark-paragraph:                        Marking Objects.
+* mark-sexp <1>:                         Lists.
+* mark-sexp:                             Marking Objects.
+* mark-whole-buffer:                     Marking Objects.
+* mark-word <1>:                         Words.
+* mark-word:                             Marking Objects.
+* minibuffer-complete:                   Completion Example.
+* minibuffer-complete-word:              Completion Commands.
+* modify-syntax-entry:                   Syntax Change.
+* mouse-choose-completion:               Completion Commands.
+* mouse-del-char:                        Additional Mouse Operations.
+* mouse-delete-window:                   Additional Mouse Operations.
+* mouse-keep-one-window:                 Additional Mouse Operations.
+* mouse-kill-line:                       Additional Mouse Operations.
+* mouse-line-length:                     Additional Mouse Operations.
+* mouse-scroll:                          Additional Mouse Operations.
+* mouse-select:                          Additional Mouse Operations.
+* mouse-select-and-split:                Additional Mouse Operations.
+* mouse-set-mark:                        Additional Mouse Operations.
+* mouse-set-point:                       Additional Mouse Operations.
+* mouse-track:                           Additional Mouse Operations.
+* mouse-track-adjust:                    Additional Mouse Operations.
+* mouse-track-and-copy-to-cutbuffer:     Additional Mouse Operations.
+* mouse-track-delete-and-insert:         Additional Mouse Operations.
+* move-over-close-and-reindent:          Balanced Editing.
+* move-to-window-line:                   Moving Point.
+* name-last-kbd-macro:                   Save Kbd Macro.
+* narrow-to-region:                      Narrowing.
+* negative-argument:                     Arguments.
 * newline:                               Inserting Text.
-* non-incremental search:                Non-Incremental Search.
-* nroff:                                 Nroff Mode.
-* numeric arguments:                     Arguments.
-* omer count:                            Sexp Diary Entries.
-* on-line manuals:                       Misc Help.
-* Open File, New Frame... menu item:     File Menu.
-* Open File... menu item:                File Menu.
-* option <1>:                            Examining.
-* option:                                Variables.
-* Options menu <1>:                      Options Menu.
-* Options menu:                          Pull-down Menus.
-* other editors:                         Emulation.
-* outlines:                              Outline Mode.
-* outragedy:                             Dissociated Press.
-* Overstrike menu item:                  Options Menu.
-* Overwrite mode:                        Minor Modes.
-* package hierarchies:                   Startup Paths.
-* package path:                          Startup Paths.
-* packages:                              Packages.
-* page number:                           Position Info.
-* pages:                                 Pages.
-* paragraphs:                            Paragraphs.
-* parasha, weekly:                       Sexp Diary Entries.
-* Paren Highlighting menu item:          Options Menu.
-* parentheses:                           Matching.
-* Paste menu item:                       Edit Menu.
-* pasting:                               Yanking.
-* path:                                  Startup Paths.
-* paths:                                 Startup Paths.
-* per-buffer variables:                  Locals.
-* Persian calendar:                      Calendar Systems.
-* phases of the moon:                    Lunar Phases.
-* pictures:                              Picture.
-* point <1>:                             Inserting Text.
-* point:                                 Point.
-* pointer face:                          Mouse Selection.
-* pointer shapes:                        Mouse Selection.
-* prefix key sequence:                   Key Sequences.
-* presidentagon:                         Dissociated Press.
-* primary selections:                    X Selection Commands.
-* Print Buffer menu item:                File Menu.
-* prompt:                                Minibuffer.
-* properbose:                            Dissociated Press.
-* Pull-down Menus <1>:                   Change Window.
-* Pull-down Menus:                       Pull-down Menus.
-* query replace:                         Query Replace.
-* quitting:                              Quitting.
-* quitting (in search):                  Incremental Search.
-* quitting Emacs:                        Exiting.
-* quoting:                               Inserting Text.
-* random sentences:                      CONX.
-* RCS:                                   Concepts of VC.
-* Read Only menu item:                   Options Menu.
-* read-only buffer:                      Misc Buffer.
-* rebinding keys, permanently:           Init File.
-* rebinding keys, this session:          Rebinding.
-* rectangle <1>:                         Rectangles in Picture.
-* rectangle:                             RegRect.
-* rectangles:                            Rectangles.
-* recursive editing level <1>:           Quitting.
-* recursive editing level:               Recursive Edit.
-* redefining keys:                       Key Bindings Using Strings.
-* regexp:                                Regexp Search.
-* regexp alternative:                    Regexps.
-* regexp grouping:                       Regexps.
-* region <1>:                            Case.
-* region:                                Mark.
-* registered file:                       Concepts of VC.
-* registers:                             Registers.
-* regular expression:                    Regexp Search.
-* regular packages:                      Package Terminology.
-* removing directories:                  File Names.
-* replacement:                           Replace.
-* restriction:                           Narrowing.
-* Revert Buffer menu item:               File Menu.
-* root of a hierarchy:                   Startup Paths.
-* rosh hodesh:                           Sexp Diary Entries.
-* Russian:                               Mule.
-* Save Buffer As ... menu item:          File Menu.
-* Save Buffer menu item:                 File Menu.
-* Save Options:                          Options Menu.
-* saving:                                Visiting.
-* saving option value:                   Changing an Option.
-* SCCS:                                  Concepts of VC.
-* Scheme mode:                           Program Modes.
-* scrolling:                             Scrolling.
-* scrolling in the calendar:             Scroll Calendar.
-* searching:                             Search.
-* selected buffer:                       Buffers.
-* selected window:                       Basic Window.
-* selective display:                     Outline Mode.
-* self-documentation:                    Help.
-* sentences:                             Sentences.
-* setting option value:                  Changing an Option.
-* setting variables:                     Examining.
-* sexp:                                  Lists.
-* sexp diary entries:                    Sexp Diary Entries.
-* shell commands:                        Shell.
-* Shell mode:                            Shell Mode.
-* shift modifier:                        Representing Keystrokes.
-* shrinking XEmacs frame:                Exiting.
-* simultaneous editing:                  Interlocking.
-* single-file packages:                  Package Terminology.
-* site-specific directories:             Startup Paths.
-* Size menu item:                        Options Menu.
-* slashes repeated in file name:         Minibuffer File.
-* snapshots and version control:         Snapshots.
-* sorting:                               Sorting.
-* sorting diary entries:                 Fancy Diary Display.
-* source packages:                       Package Terminology.
-* spelling:                              Spelling.
-* Split Frame:                           File Menu.
-* Start Macro Recording menu item:       Edit Menu.
-* starting XEmacs:                       Entering Emacs.
-* startup paths:                         Startup Paths.
-* string substitution:                   Replace.
-* subshell:                              Shell.
-* subtree (Outline mode):                Outline Visibility.
-* sunrise and sunset:                    Sunrise/Sunset.
-* suspending:                            Exiting.
-* switching buffers:                     Select Buffer.
-* Syntax Highlighting menu item:         Options Menu.
-* syntax table <1>:                      Syntax.
-* syntax table:                          Words.
-* tags table:                            Tags.
-* Teach Extended Commands menu item:     Options Menu.
-* techniquitous:                         Dissociated Press.
-* television:                            Appending Kills.
-* Term mode:                             Term Mode.
-* termscript file:                       Bugs.
-* TeX:                                   TeX Mode.
-* text:                                  Text.
-* Text mode:                             Text Mode.
-* Tools menu <1>:                        Tools Menu.
-* Tools menu:                            Pull-down Menus.
-* top level:                             Mode Line.
-* transposition <1>:                     Lists.
-* transposition <2>:                     Words.
-* transposition:                         Transpose.
-* truncation:                            Continuation Lines.
-* typos:                                 Fixit.
-* Un-split (Keep Others):                File Menu.
-* Un-split (Keep This):                  File Menu.
+* newline-and-indent:                    Basic Indent.
+* next-complex-command:                  Repetition.
+* next-error:                            Compilation.
+* next-history-element:                  Minibuffer History.
+* next-line:                             Moving Point.
+* next-list-mode-item:                   Completion Commands.
+* next-matching-history-element:         Minibuffer History.
+* not-modified:                          Saving.
+* nroff-mode:                            Nroff Mode.
+* number-to-register:                    RegNumbers.
+* occur:                                 Other Repeating Search.
+* open-dribble-file:                     Bugs.
+* open-line:                             Blank Lines.
+* open-rectangle:                        Rectangles.
+* open-termscript:                       Bugs.
+* other-window:                          Other Window.
+* other-window-any-frame:                Other Window.
+* outline-backward-same-level:           Outline Motion.
+* outline-forward-same-level:            Outline Motion.
+* outline-next-visible-heading:          Outline Motion.
+* outline-previous-visible-heading:      Outline Motion.
+* outline-up-heading:                    Outline Motion.
+* overwrite-mode:                        Minor Modes.
+* phases-of-moon:                        Lunar Phases.
+* picture-backward-clear-column:         Basic Picture.
+* picture-backward-column:               Basic Picture.
+* picture-clear-column:                  Basic Picture.
+* picture-clear-line:                    Basic Picture.
+* picture-clear-rectangle:               Rectangles in Picture.
+* picture-clear-rectangle-to-register:   Rectangles in Picture.
+* picture-forward-column:                Basic Picture.
+* picture-motion:                        Insert in Picture.
+* picture-motion-reverse:                Insert in Picture.
+* picture-move-down:                     Basic Picture.
+* picture-move-up:                       Basic Picture.
+* picture-movement-down:                 Insert in Picture.
+* picture-movement-left:                 Insert in Picture.
+* picture-movement-ne:                   Insert in Picture.
+* picture-movement-nw:                   Insert in Picture.
+* picture-movement-right:                Insert in Picture.
+* picture-movement-se:                   Insert in Picture.
+* picture-movement-sw:                   Insert in Picture.
+* picture-movement-up:                   Insert in Picture.
+* picture-newline:                       Basic Picture.
+* picture-open-line:                     Basic Picture.
+* picture-set-tab-stops:                 Tabs in Picture.
+* picture-tab:                           Tabs in Picture.
+* picture-tab-search:                    Tabs in Picture.
+* picture-yank-rectangle:                Rectangles in Picture.
+* picture-yank-rectangle-from-register:  Rectangles in Picture.
+* plain-TeX-mode:                        TeX Mode.
+* plain-tex-mode:                        TeX Mode.
+* play-sound:                            Audible Bell.
+* point-to-register:                     RegPos.
+* prefer-coding-system:                  Recognize Coding.
+* prepend-to-buffer:                     Accumulating Text.
+* previous-complex-command:              Repetition.
+* previous-history-element:              Minibuffer History.
+* previous-line:                         Moving Point.
+* previous-list-mode-item:               Completion Commands.
+* previous-matching-history-element:     Minibuffer History.
+* print-buffer:                          Hardcopy.
+* print-diary-entries <1>:               Diary Customizing.
+* print-diary-entries:                   Diary Commands.
+* print-region:                          Hardcopy.
+* quail-set-keyboard-layout:             Select Input Method.
+* query-replace:                         Query Replace.
+* query-replace-regexp:                  Query Replace.
+* quietly-read-abbrev-file:              Saving Abbrevs.
+* quit-shell-subjob:                     Shell Mode.
+* quoted-insert:                         Inserting Text.
+* re-search-backward:                    Regexp Search.
+* re-search-forward:                     Regexp Search.
+* read-abbrev-file:                      Saving Abbrevs.
+* read-key-sequence:                     Representing Keystrokes.
+* recenter <1>:                          Scrolling.
+* recenter:                              Moving Point.
+* recover-file:                          Recover.
+* redraw-calendar:                       General Calendar.
+* relabel-menu-item:                     Menu Customization.
+* remove-directory:                      File Names.
+* rename-buffer:                         Misc Buffer.
+* rename-file:                           Misc File Ops.
+* repeat-complex-command:                Repetition.
+* replace-regexp:                        Unconditional Replace.
+* replace-string:                        Unconditional Replace.
+* revert-buffer:                         Reverting.
+* run-lisp:                              External Lisp.
+* save-buffer:                           Saving.
+* save-buffers-kill-emacs:               Exiting.
+* save-some-buffers:                     Saving.
+* scroll-calendar-left:                  Scroll Calendar.
+* scroll-calendar-left-three-months:     Scroll Calendar.
+* scroll-calendar-right:                 Scroll Calendar.
+* scroll-calendar-right-three-months:    Scroll Calendar.
+* scroll-down:                           Scrolling.
+* scroll-left:                           Horizontal Scrolling.
+* scroll-other-window <1>:               General Calendar.
+* scroll-other-window:                   Other Window.
+* scroll-right:                          Horizontal Scrolling.
+* scroll-up:                             Scrolling.
+* search-backward:                       Non-Incremental Search.
+* search-forward:                        Non-Incremental Search.
+* select-input-method:                   Select Input Method.
+* self-insert:                           Inserting Text.
+* send-shell-input:                      Shell Mode.
+* set-buffer-file-coding-system:         Specify Coding.
+* set-buffer-process-coding-system:      Specify Coding.
+* set-comment-column:                    Comments.
+* set-default-file-modes:                Interlocking.
+* set-face-background:                   Faces.
+* set-face-background-pixmap:            Faces.
+* set-face-font:                         Faces.
+* set-face-foreground:                   Faces.
+* set-face-underline-p:                  Faces.
+* set-fill-column:                       Fill Commands.
+* set-fill-prefix:                       Fill Prefix.
+* set-gnu-bindings:                      Emulation.
+* set-goal-column:                       Moving Point.
+* set-gosmacs-bindings:                  Emulation.
+* set-keyboard-coding-system:            Specify Coding.
+* set-language-environment:              Language Environments.
+* set-mark-command:                      Setting Mark.
+* set-selective-display:                 Selective Display.
+* set-terminal-coding-system:            Specify Coding.
+* set-variable:                          Examining.
+* set-visited-file-name:                 Saving.
+* setq-default:                          Locals.
+* shell:                                 Interactive Shell.
+* shell-command:                         Single Shell.
+* shell-command-on-region:               Single Shell.
+* shell-send-eof:                        Shell Mode.
+* show-all:                              Outline Visibility.
+* show-all-diary-entries:                Diary Commands.
+* show-branches:                         Outline Visibility.
+* show-children:                         Outline Visibility.
+* show-entry:                            Outline Visibility.
+* show-output-from-shell:                Shell Mode.
+* show-subtree:                          Outline Visibility.
+* simple-diary-display:                  Fancy Diary Display.
+* sort-columns:                          Sorting.
+* sort-diary-entries:                    Fancy Diary Display.
+* sort-fields:                           Sorting.
+* sort-lines:                            Sorting.
+* sort-numeric-fields:                   Sorting.
+* sort-pages:                            Sorting.
+* sort-paragraphs:                       Sorting.
+* spell-buffer:                          Spelling.
+* spell-region:                          Spelling.
+* spell-string:                          Spelling.
+* spell-word:                            Spelling.
+* split-line:                            Indentation Commands.
+* split-window-horizontally:             Split Window.
+* split-window-vertically:               Split Window.
+* start-kbd-macro:                       Basic Kbd Macro.
+* stop-shell-subjob:                     Shell Mode.
+* substitute-key-definition:             Interactive Rebinding.
+* sunrise-sunset:                        Sunrise/Sunset.
+* suspend-emacs:                         Exiting.
+* switch-to-buffer:                      Select Buffer.
+* switch-to-buffer-other-frame <1>:      Select Buffer.
+* switch-to-buffer-other-frame:          XEmacs under X.
+* switch-to-buffer-other-window <1>:     Pop Up Window.
+* switch-to-buffer-other-window:         Select Buffer.
+* switch-to-completions:                 Completion Commands.
+* switch-to-other-buffer:                Select Buffer.
+* tab-to-tab-stop <1>:                   Text Mode.
+* tab-to-tab-stop:                       Tab Stops.
+* tabify:                                Just Spaces.
+* tags-apropos:                          List Tags.
+* tags-loop-continue:                    Tags Search.
+* tags-query-replace:                    Tags Search.
+* tags-search:                           Tags Search.
+* term:                                  Terminal emulator.
+* term-line-mode:                        Term Mode.
+* term-pager-toggle:                     Paging in Term.
+* tex-buffer:                            TeX Print.
+* tex-close-latex-block:                 TeX Editing.
+* tex-insert-braces:                     TeX Editing.
+* tex-insert-quote:                      TeX Editing.
+* tex-kill-job:                          TeX Print.
+* tex-mode:                              TeX Mode.
+* TeX-mode:                              TeX Mode.
+* tex-print:                             TeX Print.
+* tex-recenter-output-buffer:            TeX Print.
+* tex-region:                            TeX Print.
+* tex-show-print-queue:                  TeX Print.
+* tex-terminate-paragraph:               TeX Editing.
+* text-mode:                             Text Mode.
+* toggle-input-method:                   Select Input Method.
+* toggle-read-only:                      Misc Buffer.
+* top-level <1>:                         Quitting.
+* top-level:                             Recursive Edit.
+* transpose-chars <1>:                   Transpose.
+* transpose-chars:                       Moving Point.
+* transpose-lines:                       Transpose.
+* transpose-sexps <1>:                   Lists.
+* transpose-sexps:                       Transpose.
+* transpose-words <1>:                   Words.
+* transpose-words:                       Transpose.
 * undo:                                  Undo.
-* Undo menu item:                        Edit Menu.
-* variable:                              Variables.
-* variables:                             Commands.
-* version control:                       Version Control.
-* version-specific directories:          Startup Paths.
-* vi:                                    Emulation.
-* viewing:                               Misc File Ops.
-* Viper:                                 Emulation.
-* visiting:                              Visiting.
-* visiting files:                        Visiting.
-* weeks, which day they start on:        Move to Beginning or End.
-* Weight menu item:                      Options Menu.
-* widening:                              Narrowing.
-* window:                                Frame.
-* windows:                               Windows.
-* Windows menu:                          Change Window.
-* word search:                           Word Search.
-* words <1>:                             Case.
-* words <2>:                             Words.
-* words:                                 Fixing Case.
-* work file:                             Concepts of VC.
-* wrapping:                              Continuation Lines.
-* X resources:                           X Resources.
-* yahrzeits <1>:                         Sexp Diary Entries.
-* yahrzeits:                             From Other Calendar.
-* yanking:                               Yanking.
-* | in regexp:                           Regexps.
-
+* unexpand-abbrev:                       Expanding Abbrevs.
+* universal-argument:                    Arguments.
+* universal-coding-system-argument:      Specify Coding.
+* untabify:                              Just Spaces.
+* up-list:                               TeX Editing.
+* upcase-region:                         Case.
+* upcase-word <1>:                       Case.
+* upcase-word:                           Fixing Case.
+* validate-tex-buffer:                   TeX Editing.
+* vc-cancel-version:                     Editing with VC.
+* vc-create-snapshot:                    Making Snapshots.
+* vc-diff:                               Old Versions.
+* vc-directory:                          VC Status.
+* vc-insert-headers:                     Version Headers.
+* vc-next-action:                        Editing with VC.
+* vc-print-log:                          VC Status.
+* vc-register:                           Editing with VC.
+* vc-rename-file:                        Renaming and VC.
+* vc-retrieve-snapshot:                  Making Snapshots.
+* vc-revert-buffer:                      Editing with VC.
+* vc-update-change-log:                  Change Logs and VC.
+* vc-version-other-window:               Old Versions.
+* view-buffer:                           Misc Buffer.
+* view-diary-entries:                    Diary Commands.
+* view-emacs-news:                       Misc Help.
+* view-file:                             Misc File Ops.
+* view-hello-file:                       Mule Intro.
+* view-lossage:                          Misc Help.
+* view-register:                         Registers.
+* visit-tags-table:                      Select Tags Table.
+* what-cursor-position:                  Position Info.
+* what-line:                             Position Info.
+* what-page:                             Position Info.
+* where-is:                              Name Help.
+* widen:                                 Narrowing.
+* widget-backward:                       Changing an Option.
+* widget-complete:                       Changing an Option.
+* widget-forward:                        Changing an Option.
+* window-configuration-to-register <1>:  Split Window.
+* window-configuration-to-register:      RegConfig.
+* word-search-backward:                  Word Search.
+* word-search-forward:                   Word Search.
+* write-abbrev-file:                     Saving Abbrevs.
+* write-file:                            Saving.
+* x-copy-primary-selection:              X Selection Commands.
+* x-create-frame:                        X Resources.
+* x-delete-primary-selection:            X Selection Commands.
+* x-insert-selection:                    X Selection Commands.
+* x-kill-primary-selection:              X Selection Commands.
+* x-mouse-kill:                          X Selection Commands.
+* x-own-secondary-selection:             X Selection Commands.
+* x-own-selection:                       X Selection Commands.
+* x-set-point-and-insert-selection:      X Selection Commands.
+* xemacs-local-faq:                      Misc Help.
+* Yank:                                  Kill Ring.
+* yank-pop:                              Earlier Kills.
+* yank-rectangle:                        Rectangles.
+* yow:                                   Amusements.
+* zap-to-char:                           Killing.
+* zmacs-activate-region:                 Active Regions.
+* zmacs-deactivate-region:               Active Regions.