diff etc/NEWS @ 371:cc15677e0335 r21-2b1

Import from CVS: tag r21-2b1
author cvs
date Mon, 13 Aug 2007 11:03:08 +0200
parents a4f53d9b3154
children 6240c7796c7a
line wrap: on
line diff
--- a/etc/NEWS	Mon Aug 13 11:01:58 2007 +0200
+++ b/etc/NEWS	Mon Aug 13 11:03:08 2007 +0200
@@ -30,6 +30,10 @@
     particular version is implied, "Emacs" will be used.
 
 
+* Changes in XEmacs 21.2
+========================
+None yet.
+
 * Changes in XEmacs 21.0
 ========================
 
@@ -38,10 +42,6 @@
 See the file `etc/PACKAGES' in the distribution for a partial list of
 packages available at the time of the 21.0 release.
 
-IMPORTANT NOTE: XEmacs currently expects the user-specific package
-hierarchy in ~/.xemacs.  This will probably change to
-~/.xemacs/packages in a future version of XEmacs.
-
 ** XEmacs is now supported under Microsoft Windows 95/98 and Windows
 NT operating systems.  For starters, look at the XEmacs on Windows FAQ
 at <URL:http://jagor.srce.hr/~hniksic/xemacs-on-windows-faq.txt>.  To
@@ -63,18 +63,8 @@
 ** When the Zmacs region is active, `M-x query-replace' and the other
 replace commands now operate on the region contents only.
 
-** XEmacs now is able to choose X visuals and use private colormaps.
-The '-visual <visualStr>' command line option or the '.EmacsVisual'
-Xresource controls which visual XEmacs will use, and
-'-privateColormap' or '.privateColormap' will force XEmacs to create a
-private colormap for use.  The syntax for the visual string is
-"<visual><bitdepth>" where <visual> is one of 'StaticColor',
-'TrueColor', 'GrayScale', 'PseudoColor' or 'DirectColor' and
-<bitdepth> is the appropriate number of bits per pixel.  If an invalid
-or non-supported combination is entered, XEmacs attempts to find a happy
-medium.  The X creation mechanism will then determine if it needs to
-create a colormap for use, or the presence of the private flags will
-force it to create it.
+** Using the new `-private' option, you can make XEmacs use a private
+colormap.
 
 ** The `imenu' package has been ported to XEmacs and is available as a
 package.
@@ -101,7 +91,7 @@
 is initialized using the environment variable NAME and (failing that)
 the user's system name.
 
-The behavior of the `user-full-name' function with an argument
+The behaviour of the `user-full-name' function with an argument
 specified is unchanged.
 
 ** The new command `M-x customize-changed-options' lets you customize
@@ -167,12 +157,6 @@
 It has been greatly enhanced with respect to the one once included
 with the ilisp package and should work well under XEmacs 21.0.
 
-** Gnuserv changes
-
-*** Like the old 'gnudoit' program. Gnuclient -batch now can read from stdin.
-
-*** Gnuclient -batch no longer breaks off the output at the first LF.
-
 ** C mode changes
 
 *** Multiline macros are now handled, both as they affect indentation,
@@ -316,48 +300,13 @@
 subsystem.  If the `dir' file does not exist in an Info directory, the
 relevant information will be generated on-the-fly.
 
-This behavior can be customized, look for `Info-auto-generate-directory'
+This behaviour can be customized, look for `Info-auto-generate-directory'
 and `Info-save-auto-generated-dir' in the `info' customization group.
 
-** Version Control is no longer automatically loaded.  Users must
-add:
-
-(require 'vc-hooks)
-
-to their .emacs file to get version control functionality.
-
-** The EDiff menus are no longer included in the default menubar.
-Users must add:
-
-(require 'ediff-hook)
-
-to their .emacs file to get the menus.
-
-** An experimental version of dynamic linking is supported.
-
-There is no documentation and we are making no guarantees about what
-might change in the future with the "C" level API.  Examples of how to 
-make DLLs are in the modules subdirectory of the XEmacs source
-distribution.
-
-Please note that XEmacs is a GPL'ed program and there are restrictions
-on what kinds of binaries that can be linked with it.  In particular,
-proprietary DLLs without source cannot be distributed.  See the file
-COPYING for more details.
 
 * Lisp and internal changes in XEmacs 21.0
 ==========================================
 
-** There is a new configure option '--with-clash-detection' to
-   enable/disable 'lockdir' based clash detection. (Actually, it has
-   been there since 20.4, but was not documented then). The
-   implementation based on a central locking directory can cause
-   severe slowdowns on networked file systems. Therefore the default
-   has been changed to build with clash detection disabled, pending
-   reimplementation of the feature (most likely compatible with the
-   new implementation in recent FSF verions and Interleaf) in an
-   upcoming version.
-
 ** It is now possible to build XEmacs with support for 31-bit Lisp
 integers (normally, Lisp integers are only 28 bits wide on 32-bit
 machines.)  Configure with --use-minimal-tagbits to test.  With this
@@ -442,7 +391,7 @@
 
 This means that if you want to test whether A < B < C, you can write
 it as (< A B C) instead of (and (< A B) (< B C)).  Likewise,
-(apply #'> LIST) now tests if LIST is monotonically increasing -- and
+(apply #'> LIST) now tests if LIST is monotonously increasing -- and
 so on.
 
 ** The XEmacs hashtables now have a consistent read/print syntax.
@@ -465,8 +414,6 @@
 been tested:
   - LDAP 3.3 from the University of Michigan 
     (get it from <URL:http://www.umich.edu/~dirsvcs/ldap/>)
-  - OpenLDAP 1.0.3 from the OpenLDAP Foundation
-    (get it from <URL:http://www.openldap.org/>)
   - LDAP SDK 1.0 from Netscape Corp.
     (get it from <URL:http://developer.netscape.com/>)
 
@@ -550,3885 +497,10 @@
 Look under "Startup Paths" in the Info documentation for more
 information.
 
-*** site-lisp is no longer part of the load-path by default.
+*** site-lisp is now longer part of the load-path by default.
 Its use is deprecated, but you can specify --with-site-lisp=yes at the
 configure command line to get it back.
 
 *** `Info-default-directory-list' is now obsolete.  If you want to
 change the path which XEmacs uses to search for info files, set
 `Info-directory-list' instead.
-
-
-* Changes in XEmacs 20.4
-========================
-
-** XEmacs 20.4 is a bugfix release with no user-visible changes.
-
-
-* Changes in XEmacs 20.3
-========================
-
-** Quail input method is now available.
-
-Quail is a simple key-translation system that allows users to input
-any multilingual text from normal ASCII keyboard.  This means that
-XEmacs with Mule now supports a number of European languages.
-
-** More Windows NT support.
-
-Thanks to efforts of many people, coordinated by David Hobley
-<davidh@wr.com.au> and Marc Paquette <marcpa@cam.org>, beta versions
-of XEmacs now run on 32-bit Windows platforms (Windows NT and Windows
-95).  The current betas require having an X server to run XEmacs;
-however, a native NT/95 port is in alpha, thanks to Jonathan Harris
-<jhar@tardis.ed.ac.uk>.
-
-The NT development is now coordinated by a mailing list at
-<xemacs-nt@xemacs.org>.  Mail to <xemacs-nt-request@xemacs.org> to
-subscribe.
-
-** Multiple TTY frames are now available.
-
-On consoles that display only one frame at a time (e.g. TTY consoles),
-creating a new frame with `C-x 5 2' also raises and selects that
-frame.  The behavior of window system frames is unchanged.
-
-** Package starting changes.
-
-State of Emacs should never be changed with loading a package.  The
-following XEmacs packages that used to break this have been changed.
-
-*** Loading `paren' no longer enables paren-blinking.  Use
-`paren-set-mode' explicitly, or customize `paren-mode'.
-
-*** Loading `uniquify' no longer enables uniquify.  Set
-`uniquify-buffer-name-style' to a legal value.
-
-*** Loading `time' no longer enables display time.  Invoke
-`display-time' explicitly.
-
-*** Loading `jka-compr' no longer enables on-the-fly compression.  Use
-`toggle-auto-compression' instead.
-
-*** Loading `id-select' no longer enables its behavior.  Use
-`id-select-install' instead.
-
-** Zmacs region is not deactivated when an error is signaled.
-
-The behavior of the zmacs region can now be controlled in the event of
-a signaled error.  The new variable `errors-deactivate-region' may be
-set to nil to revert to the old behavior.  As before, typing C-g
-deactivates the region.
-
-** Multiple Info `dir' functionality has been merged with GNU Emacs
-19.34.
-
-XEmacs will now correctly merge all the `dir' files in
-`Info-directory-list' (initialized from either the `INFOPATH'
-env. variable or `Info-default-directory-list'.)  These files may be
-full-fledged info files containing subnodes or menus.  Previously
-supported `localdir' files are looked for also, secondary to `dir's.
-See the manual for details.
-
-** Abbreviations can now contain non-word characters.
-
-This means that it is finally possible to do such simple things as
-define `#in' to expand to `#include' in C mode, `s-c-b' to
-`save-current-buffer' in Lisp mode, `call/cc' to
-`call-with-current-continuation' in Scheme mode, etc.
-
-** `C-x n d' now runs the new command `narrow-to-defun',
-which narrows the accessible parts of the buffer to just
-the current defun.
-
-** The new command `C-x 4 0' (kill-buffer-and-window) kills the
-current buffer and deletes the selected window.  It asks for
-confirmation first.
-
-** `ESC ESC ESC' (keyboard-escape-quit) will now correctly abort
-recursive edits (as documented.)
-
-** arc-mode has a new function called `archive-quit' bound to q, which
-quits archive mode in the same fashion dired-quit works.
-
-** A `tetris' clone is now available within XEmacs, written by Glynn
-Clements.  Try it out with `M-x tetris'.
- 
-** The feature to teach the key bindings of extended commands now
-prints the message after the command finishes.  After some time, the
-previous echo area contents are restored (in case the command prints
-something useful).
-
-** If you set scroll-conservatively to a small number, then when you
-move point a short distance off the screen, XEmacs will scroll the
-screen just far enough to bring point back on screen, provided that
-does not exceed `scroll-conservatively' lines.
-
-** Face background colors now take precedence over the default face
-background pixmap, which means that background pixmaps no longer clash
-with zmacs-regions, or clickable buttons.
-
-** Regexps can now contain additional Perl-like constructs.
-
-** Modifiers can be added to a keystroke by preceding it with a `C-x @
-<x>' sequence where <x> is one of letters `S', `c', `m', `a', `h', `s'
-corresponding to shift, control, meta, alt, hyper, and super modifiers,
-respectively.  It is possible to add several modifiers by repeating this
-sequence.  This feature is especially useful on text terminals where it
-allows one to enter keystrokes like, e.g., `M-home'.
-
-** An arbitrary keystroke can be generated by entering `C-x @ k
-<keysym-name> RET'.  For example a sequence:
-
-  C-x @ c C-x @ k b a c k s p a c e RET
-
-will result in a `C-backspace' keystroke even on text terminals.
-
-** Customize changes.
-
-*** Customize has undergone a massive speedup, and should now operate
-acceptably fast.  Slowness of the interface used to be the biggest
-gripe.
-
-*** Many more packages have been modified to use the facility, so
-almost all of XEmacs options can now be examined through the Customize
-groups.
-
-*** There is a new `browser' mode of traversing customizations, in
-many ways easier to follow than the standard one.  Try it out with
-`M-x customize-browse'.
-
-** Pending-delete changes.
-
-*** Pending-delete is now a minor mode, with the normal minor-mode
-semantics and toggle functions.  Old functions are left for
-compatibility.
-
-*** Loading pending-del no longer turns on pending-delete mode.  In
-fact, it is no longer necessary to explicitly load pending-del.  All
-you need to do to turn on pending-delete is run the pending-delete
-function:
-
-  Within XEmacs:   Type      M-x pending-delete <ret>
-                    not      M-x load-library <ret> pending-delete <ret>
-  
-  In .emacs:       Use       (turn-on-pending-delete)
-                   not       (load "pending-del")
-
-** XEmacs can now save the minibuffer histories from various
-minibuffers.  To use this feature, add the line:
-
-   (savehist-load)
-
-to your .emacs.  This will load the minibuffer histories (if any) at
-startup, as well as instruct XEmacs to save them before exiting.  You
-can use Customize to add or remove the histories being saved.
-
-** The default format for ChangeLog entries (as created by `C-x 4 a')
-is now the international ISO 8601 format.
-
-To revert to the old behavior, use:
-
-   (setq add-log-time-format 'current-time-string)
-
-Or `M-x customize RET add-log RET'.
-
-** In ChangeLog mode, you can now press `C-c C-c' to save the file
-and restore old window configuration, or `C-c C-k' to abandon the
-changes.
-
-** The key `C-x m' no longer runs the `mail' command directly.
-Instead, it runs the command `compose-mail', which invokes the mail
-composition mechanism you have selected with the variable
-`mail-user-agent'.  The default choice of user agent is
-`sendmail-user-agent', which gives behavior compatible with the old
-behavior.
-
-C-x 4 m now runs compose-mail-other-window, and C-x 5 m runs
-compose-mail-other-frame.
-
-** When you kill a buffer that visits a file, if there are any
-registers that save positions in the file, these register values no
-longer become completely useless.  If you try to go to such a register
-with `C-x j', then you are asked whether to visit the file again.  If
-you say yes, it visits the file and then goes to the same position.
-
-** When you visit a file that changes frequently outside Emacs--for
-example, a log of output from a process that continues to run--it may
-be useful for Emacs to revert the file without querying you whenever
-you visit the file afresh with `C-x C-f'.
-
-You can request this behavior for certain files by setting the
-variable revert-without-query to a list of regular expressions.  If a
-file's name matches any of these regular expressions, find-file and
-revert-buffer revert the buffer without asking for permission--but
-only if you have not edited the buffer text yourself.
-
-** Gnuserv changes
-
-*** The Lisp part of gnuserv has been rewritten to allow for more
-flexibility and features.
-
-*** Many new options and variables are now customizable.  Try
-`M-x customize RET gnuserv RET'.
-
-*** The functionality of `gnuattach' and `gnudoit' programs is
-provided by `gnuclient', which now accepts the standard `-nw',
-`-display', `-eval' and `-f' options.
-
-** Etags changes.
-
-*** In C, C++, Objective C and Java, Etags tags global variables by
-default.  The resulting tags files are inflated by 30% on average.
-Use --no-globals to turn this feature off.  Etags can also tag
-variables that are members of structure-like constructs, but it does
-not by default.  Use --members to turn this feature on.
-
-*** C++ member functions are now recognized as tags.
-
-*** Java is tagged like C++.  In addition, "extends" and "implements"
-constructs are tagged.  Files are recognised by the extension .java.
-
-*** Etags can now handle programs written in Postscript.  Files are
-recognised by the extensions .ps and .pdb (Postscript with C syntax).
-In Postscript, tags are lines that start with a slash.
-
-*** Etags now handles Objective C and Objective C++ code.  The usual C and
-C++ tags are recognized in these languages; in addition, etags
-recognizes special Objective C syntax for classes, class categories,
-methods and protocols.
-
-*** Etags also handles Cobol.  Files are recognised by the extension
-.cobol.  The tagged lines are those containing a word that begins in
-column 8 and ends in a full stop, i.e. anything that could be a
-paragraph name.
-
-*** Regexps in Etags now support intervals, as in ed or grep.  The syntax of
-an interval is \{M,N\}, and it means to match the preceding expression
-at least M times and as many as N times.
-
-** Ada mode changes.
-
-*** There is now better support for using find-file.el with Ada mode.
-If you switch between spec and body, the cursor stays in the same
-procedure (modulo overloading).  If a spec has no body file yet, but
-you try to switch to its body file, Ada mode now generates procedure
-stubs.
-
-*** There are two new commands:
- - `ada-make-local'   : invokes gnatmake on the current buffer
- - `ada-check-syntax' : check syntax of current buffer.
-
-The user options `ada-compiler-make', `ada-make-options',
-`ada-language-version', `ada-compiler-syntax-check', and
-`ada-compile-options' are used within these commands. 
-
-*** Ada mode can now work with Outline minor mode.  The outline level
-is calculated from the indenting, not from syntactic constructs.
-Outlining does not work if your code is not correctly indented.
-
-*** The new function `ada-gnat-style' converts the buffer to the style of
-formatting used in GNAT.  It places two blanks after a comment start,
-places one blank between a word end and an opening '(', and puts one
-space between a comma and the beginning of a word.
-
-** New demand based locking implementation
-
-A faster, but experimental replacement for lazy-lock (called lazy-shot) is
-provided.  Like lazy-lock it provides demand based and idle time
-font-lock-ing.  However the lazy-lock versions that came with previous
-versions slowed down XEmacs (possibly quite a lot).  Lazy-shot solves
-this problem by relying on new support from the C code part of XEmacs.
-The support however is experimental and will cause some flashing as
-parts of the buffer are colored.  This likely to change in the future
-as the C support is completed. 
-
-The current lazy-shot implementation is mostly interface compatible
-with lazy-lock v2.06 (the version shipped with XEmacs is v1.x).
-
-*** To enable:
- 1. Despite the flashing, lazy-shot was deemed such an improvement by
-    the majority of beta testers that it is now the standard method
-    provided by the options menu. Alternatively add
-
-	(add-hook 'font-lock-mode-hook 'turn-on-lazy-shot)
-
-    to '.emacs'.	
- 2. If you were using lazy-lock before, just replace all occurrences of 
-    "lazy-lock" by "lazy-shot" in your '.emacs' file.
-
-*** To disable:
-
-If prefer to use lazy-lock in stead of lazy-shot, put
-
-	(remove-hook 'font-lock-mode-hook 'turn-on-lazy-shot)
-	(add-hook 'font-lock-mode-hook 'turn-on-lazy-lock)
-
-at the END of `.emacs'.
-
-** RefTeX mode
-
-RefTeX mode is a new minor mode with special support for \label{}, \ref{}
-and \cite{} macros in LaTeX documents.  RefTeX distinguishes labels of
-different environments (equation, figure, ...) and has full support for
-multifile documents.  To use it, select a buffer with a LaTeX document and
-turn the mode on with M-x reftex-mode.  Here are the main user commands:
-
-C-c (    reftex-label        
-   Creates a label semi-automatically.  RefTeX is context sensitive and
-   knows which kind of label is needed.
-
-C-c )    reftex-reference
-   Offers in a menu all labels in the document, along with context of the
-   label definition.  The selected label is referenced as \ref{LABEL}.
-
-C-c [    reftex-citation
-   Prompts for a regular expression and displays a list of matching BibTeX
-   database entries.  The selected entry is cited with a \cite{KEY} macro.
-
-C-c &    reftex-view-crossref
-   Views the cross reference of a \ref{} or \cite{} command near point.
-
-C-c =    reftex-toc
-   Shows a table of contents of the (multifile) document.  From there you
-   can quickly jump to every section.
- 
-Under X, RefTeX installs a "Ref" menu in the menu bar, with additional
-commands.  Full documentation and customization examples are in the file
-reftex.el.  You can use the finder to view this information:
-C-h p --> tex --> reftex.el
-
-
-* Lisp and internal changes in XEmacs 20.3
-==========================================
-
-** Autoconf 2 is supported, making XEmacs more conforming to
-conventions used by other free software.
-
-** `tty-erase-char' is a new variable that reports which character
-was set up as the terminal's erase character at the time Emacs was
-started.
-
-** It is now possible to attach the menubar accelerator keys to menu
-entries.  Look at the Lispref under Menus->Menu Accelerators for
-details.
-
-** `insert-file-contents' can now read from a special file,
-as long as the arguments VISIT and REPLACE are nil.
-
-** `string-to-number' now accepts an optional BASE argument that
-specifies which base to use.  The default base is 10.
-
-** The TIME argument to `format-time-string' is now optional and
-defaults to the current time.
-
-** The PATTERN argument to `split-string' is now optional and defaults
-to whitespace ("[ \f\t\n\r\v]+").
-
-** `set-extent-properties' is a new function that can be used to
-change properties of an extent at once, and is analogous to
-`set-frame-properties'.
-
-** If a format field width is specified as `*', the field width is
-now assumed to have been specified as an argument (as in C.)
-
-  (format "%*s" 10 "abc")
-    => "       abc"
-
-** The new macro `with-current-buffer' lets you evaluate an expression
-conveniently with a different current buffer.  It looks like this:
-
-  (with-current-buffer BUFFER BODY-FORMS...)
-
-BUFFER is the expression that says which buffer to use.
-BODY-FORMS say what to do in that buffer.
-The old `eval-in-buffer' macro is obsoleted by `with-current-buffer'.
-
-** The new primitive `save-current-buffer' saves and restores the
-choice of current buffer, like `save-excursion', but without saving or
-restoring the value of point or the mark.  `with-current-buffer'
-works using `save-current-buffer'.
-
-** The new macro `with-temp-file' lets you do some work in a new buffer and
-write the output to a specified file.  Like `progn', it returns the value
-of the last form.
-
-** The variable `debug-ignored-errors' now works in XEmacs.  It allows
-one to ignore the debugger for some common errors, even when
-`debug-on-error' is t.  It has no effect when `debug-on-signal' is
-non-nil.
-
-** The new function `current-message' returns the message currently
-displayed in the echo area, or nil if there is none.
-
-** File-access primitive functions no longer discard an extra redundant
-directory name from the beginning of the file name.  In other words,
-they no longer do anything special with // or /~.  The same goes for
-`expand-file-name'.  That conversion is now done only in
-`substitute-in-file-name'.
-
-This makes it possible for a Lisp program to open a file whose name
-begins with ~.
-
-** The regexp matcher has been extended to recognize the following
-constructs, borrowed from Perl:
-
-*** Additional quantifiers.
-
-In addition to `*', `+' and `?', XEmacs now recognizes the following
-quantifiers:
-
-  \{n\}    Match exactly n times
-  \{n,\}   Match at least n times
-  \{n,m\}  Match at least n but not more than m times
-
-*** Non-greedy quantifiers.
-
-Any of the standard quantifiers (`*', `+' and others) can now be
-followed by an optional `?', which will make them become "non-greedy", 
-i.e. they will match as little text as possible.  Note that the
-meanings don't change, just the "gravity."
-
-*** Shy groups.
-
-The \(?: ... \) groups things like \( ... \), but doesn't record the
-context for backreferences or future use.  This is useful when you
-need a lot of groups for the sake of priorities, but actually want to
-record only one or two.
-
-** The new function `regexp-opt' returns an efficient regexp to match
-a string.  The arguments are STRINGS and (optionally) PAREN.  This
-function can be used where regexp matching or searching is intensively
-used and speed is important, e.g., in Font Lock mode.
-
-** The featurep syntax has been extended to resemble the Common Lisp
-one, as suggested by Erik Naggum.
-
-*** The `xemacs' feature is defined in XEmacs by default.
-
-*** The expression `#+fexp form' is equivalent to
-(when (featurep fexp) form), only it is evaluated at read-time.  Also,
-`#-fexp form' is equivalent to (unless (featurep fexp) form).
-
-*** In addition to symbols, a FEXP can also be a number, or a logical
-operator.  Here are some examples:
-  ;; evaluates to non-nil on XEmacs:
-  (featurep 'xemacs)
-  ;; evaluates to non-nil on XEmacs 20.3 or later:
-  (featurep '(and xemacs 20.03))
-  ;; evaluates to non-nil either on Emacs, or on XEmacs built without
-  ;; X support:
-  (featurep '(or emacs (and xemacs (not x))))
-
-
-
-* Changes in XEmacs 20.2
-========================
-
-** Why XEmacs 20.1 is called 20.2
-
-Testing of XEmacs 20.1 revealed a number of showstopping bugs at the
-very final moment.  Instead of confusing the version numbers further,
-the `20.1' designation was abandoned, and the release was renamed to
-`20.2'.
-
-** Delete/backspace keysyms have been separated
-
-The Delete and Backspace keysyms are now no longer identical.  A better
-version of delbackspace.el has been added called delbs.el.
-
-** XEmacs 20.0 MULE API supported for backwards compatibility
-
-XEmacs 20.2 primarily supports the MULE 3 API.  It now also supports
-the XEmacs 20.0 MULE API.
-
-** The logo has been changed, and the default background color is
-now a shade of gray instead of the eye-burning white.
-
-The sample .Xdefaults and .emacs files contain examples of how to
-revert to the old background color.
-
-** Default modeline colors are now less of a color-salad.
-
-** The `C-z' key now iconifies only the current X frame.  You can use
-`C-x C-z' to get the old behavior.
-
-On the tty frames `C-z' behaves as before.
-
-** The command `display-time' now draws a pretty image in the modeline
-when new mail arrives.  It also supports balloon-help messages.
-
-** Various commands that were previously disabled are now enabled, like
-eval-expression (`M-:') and upcase-region (`C-x C-u')/downcase-region
-(`C-x C-l').
-
-** It is now possible to customize the functions called by XEmacs toolbar.
-
-Type `M-x customize RET toolbar RET' to customize it.  Customizations
-include the choice of functions for the buttons to invoke, as well as
-a wide choice of mailers and newsreaders to invoked by the respective
-functions.
-
-** `temp-buffer-shrink-to-fit' now defaults to nil.
-
-There are unresolved issues regarding this feature, which is why the
-XEmacs developers decided to disable it by default.
-
-** `ps-print-color-p' now defaults to nil.
-
-This is because the new default background color is non-white.  The
-`Printing Options' in the `Options' menu now include an item that
-enables color printing, and sets the white background.
-
-** `line-number-mode' should be used to get line numbers in the
-modeline, and `column-number-mode' to get column numbers.  Line
-numbers now number from 1 by default.
-
-** font-lock-mode will now correctly fontify `int a, b, c;'
-expressions in C mode.
-
-** The blinking cursor is always "on" during movement.
-
-** The XEmacs build process has been changed to make site
-administration easier.  See lisp/site-load.el for details.
-
-** Numerous causes of crashes have been fixed.  XEmacs should now be
-even more stable than before.
-
-** configure no longer defaults to using --with-xim=motif if Motif libraries
-are linked.
-
-There are many bugs in the Xlib XIM support in X11R6.3.
-
-** A number of new packages are added, and many packages were
-updated.
-
-** Gnus-5.4.52, courtesy of Lars Magne Ingebrigtsen
-
-*** nntp.el has been totally rewritten in an asynchronous fashion.
-
-*** Article prefetching functionality has been moved up into 
-Gnus.  
-
-*** Scoring can now be performed with logical operators like 
-`and', `or', `not', and parent redirection.
-
-*** Article washing status can be displayed in the
-article mode line.
-
-*** gnus.el has been split into many smaller files.
-
-*** Suppression of duplicate articles based on Message-ID.
-
-(setq gnus-suppress-duplicates t)
-
-*** New variables for specifying what score and adapt files
-are to be considered home score and adapt files.  See
-`gnus-home-score-file' and `gnus-home-adapt-files'.
-
-*** Groups can inherit group parameters from parent topics.
-
-*** Article editing has been revamped and is now usable.
-
-*** Signatures can be recognized in more intelligent fashions.
-See `gnus-signature-separator' and `gnus-signature-limit'.
-
-*** Summary pick mode has been made to look more nn-like.
-Line numbers are displayed and the `.' command can be
-used to pick articles.
-
-*** Commands for moving the .newsrc.eld from one server to
-another have been added.
-
-    `M-x gnus-change-server'
-
-*** A way to specify that "uninteresting" fields be suppressed when
-generating lines in buffers.
-
-*** Several commands in the group buffer can be undone with
-`M-C-_'.
-
-*** Scoring can be done on words using the new score type `w'.
-
-*** Adaptive scoring can be done on a Subject word-by-word basis:
-
-    (setq gnus-use-adaptive-scoring '(word))
-
-*** Scores can be decayed.
- 
-    (setq gnus-decay-scores t)
-
-*** Scoring can be performed using a regexp on the Date header.  The
-Date is normalized to compact ISO 8601 format first.
-
-*** A new command has been added to remove all data on articles from
-the native server.
-
-   `M-x gnus-group-clear-data-on-native-groups'
-
-*** A new command for reading collections of documents
-(nndoc with nnvirtual on top) has been added -- `M-C-d'.
-
-*** Process mark sets can be pushed and popped.
-
-*** A new mail-to-news backend makes it possible to post
-even when the NNTP server doesn't allow posting.
-
-*** A new backend for reading searches from Web search engines
-(DejaNews, Alta Vista, InReference) has been added.
-
-    Use the `G w' command in the group buffer to create such
-    a group.
-
-*** Groups inside topics can now be sorted using the standard
-sorting functions, and each topic can be sorted independently.
-
-    See the commands under the `T S' submap.
-
-*** Subsets of the groups can be sorted independently.
-
-    See the commands under the `G P' submap.
-
-*** Cached articles can be pulled into the groups.
-  
-    Use the `Y c' command.
-
-*** Score files are now applied in a more reliable order.
-
-*** Reports on where mail messages end up can be generated.
-
-    `M-x nnmail-split-history'
-
-*** More hooks and functions have been added to remove junk
-from incoming mail before saving the mail.
- 
-    See `nnmail-prepare-incoming-header-hook'.
-
-*** The nnml mail backend now understands compressed article files.
-
-** Custom 1.86, courtesy of Per Abrahamsen
-
-The Customize library enables Emacs Lisp programmers to specify types
-of their variables, so that the users can customize them.
-
-Invoke the customizations buffer using the menus (Customize is at the
-top of the Options menu), or using commands `M-x customize',
-`M-x customize-variable' and `M-x customize-face'.  Customize can save
-the changed settings to your `.emacs' file.
-
-Customize is now the preferred way to change XEmacs settings.  Tens of
-packages have been converted to take advantage of the Customize
-features, including Gnus, Message, Supercite, Psgml, Comint, W3,
-cc-mode (and many other programming language modes), ispell.el,
-ps-print.el, id-select.el, most of the programming language modes, and
-many many more.
-
-See the "Lisp Changes" section later for a short description of why
-and how to add custom support to your Lisp packages.  Custom is also
-documented in the XEmacs info manuals.
-
-** W3-3.0.86, courtesy of William Perry
-
-Version 3 of Emacs/W3, the Emacs World Wide Web browser, has been
-included.  It is significantly faster than any of the previous
-versions, and contains numerous new features.
-
-** AUCTeX-9.7k, courtesy of Per Abrahamsen
-
-AUC TeX is a comprehensive customizable integrated environment for
-writing input files for LaTeX using Emacs.
-
-AUC TeX lets you run TeX/LaTeX and other LaTeX-related tools, such as
-a output filters or post processor from inside Emacs.  Especially
-`running LaTeX' is interesting, as AUC TeX lets you browse through the
-errors TeX reported, while it moves the cursor directly to the
-reported error, and displays some documentation for that particular
-error.  This will even work when the document is spread over several
-files.
-
-AUC TeX automatically indents your `LaTeX-source', not only as you
-write it -- you can also let it indent and format an entire document.
-It has a special outline feature, which can greatly help you `getting
-an overview' of a document.
-
-Apart from these special features, AUC TeX provides an large range of
-handy Emacs macros, which in several different ways can help you write
-your LaTeX documents fast and painless.
-
-** redo.el-1.01, courtesy of Kyle Jones
-
-redo.el is a package that implements true redo mechanism in XEmacs
-buffers.  Once you load it from your `.emacs', you can bind the `redo'
-command to a convenient key to use it.
-
-Emacs' normal undo system allows you to undo an arbitrary number of
-buffer changes.  These undos are recorded as ordinary buffer changes
-themselves.  So when you break the chain of undos by issuing some
-other command, you can then undo all the undos.  The chain of recorded
-buffer modifications therefore grows without bound, truncated only at
-garbage collection time.
-
-The redo/undo system is different in two ways:
-
-*** The undo/redo command chain is only broken by a buffer modification.
-
-You can move around the buffer or switch buffers and still come back
-and do more undos or redos.
-
-*** The `redo' command rescinds the most recent undo without
-recording the change as a _new_ buffer change.
-
-It completely reverses the effect of the undo, which includes making
-the chain of buffer modification records shorter by one, to counteract
-the effect of the undo command making the record list longer by one.
-
-** edmacro.el-3.10, courtesy of Dave Gillespie, ported to XEmacs by
-Hrvoje Niksic.
-
-Edmacro is a utility that provides easy editing of keyboard macros.
-Originally written by Dave Gillespie, it has been mostly rewritten by
-Hrvoje Niksic, in order to make it distinguish characters and integer,
-as well as to adapt it to XEmacs keysyms.
-
-Press `C-x C-k' to invoke the `edit-kbd-macro' command that lets you
-edit old as well as define new keyboard macros.  You can also edit the
-last 100 keystrokes and insert them into a macro to be bound to a key
-or named as a command.  The recorded/edited macros can be dumped to
-`.emacs' file.
-
-** xmine.el-1.8, courtesy of Jens Lautenbacher
-
-XEmacs now includes a minesweeper game with a full-featured graphics
-and mouse interface.  Invoke with `M-x xmine'.
-
-** efs-1.15-x5 courtesy of Andy Norman and Michael Sperber
-
-EFS is now integrated with XEmacs, and replaces the old ange-ftp.  It
-has many more features, including info documentation, support for many
-different FTP servers, and integration with dired.
-
-** mic-paren.el-1.3.1, courtesy of Mikael Sjödin
-** hyperbole-4.022, courtesy of Bob Weiner
-** hm--html-menus-5.3, courtesy of Heiko Muenkel
-** python-mode.el-2.90, courtesy of Barry Warsaw
-** balloon-help-1.06, courtesy of Kyle Jones
-** xrdb-mode.el-1.21, courtesy of Barry Warsaw
-** igrep.el-2.56, courtesy of Kevin Rodgers
-** frame-icon.el, courtesy of Michael Lamoureux and Bob Weiner
-** itimer.el-1.05, courtesy of Kyle Jones
-** VM-6.30, courtesy of Kyle Jones
-** OO-Browser-2.10, courtesy of Bob Weiner
-** viper-2.93, courtesy of Michael Kifer
-** ediff-2.65, courtesy of Michael Kifer
-** detached-minibuf-1.1, courtesy of Alvin Shelton
-** whitespace-mode.el, courtesy of Heiko Muenkel
-** winmgr-mode.el, courtesy of David Konerding, Stefan Strobel & Barry Warsaw
-** fast-lock.el-3.11.01, courtesy of Simon Marshall
-** lazy-lock.el-1.16, courtesy of Simon Marshall
-** browse-cltl2.el-1.1, courtesy of Holger Schauer
-** eldoc.el-1.10, courtesy of Noah Friedman
-** tm-7.105, courtesy of MORIOKA Tomohiko
-** verilog-mode.el-2.25, courtesy of Michael McNamara & Adrian Aichner
-** overlay.el, courtesy of Joseph Nuspl
-** live-icon.el-1.3, fixes courtesy of Karl Hegbloom
-** tpu-edt.el, fixes courtesy of R. Kevin Oberman
-** etags.c-11.86 Courtesy of F. Potortì
-
-
-* Lisp and internal changes in XEmacs 20.2
-==========================================
-
-** `defcustom' and `defgroup' can now be used to specify types and
-placement of the user-settable variables.
-
-You can now specify the types of user-settable variables in your Lisp
-packages to be customized by users.  To do so, use `defcustom' as a
-replacement for `defvar'.
-
-For example, the old declaration:
-
-(defvar foo-blurgoze nil
-  "*non-nil means that foo will act very blurgozely.")
-
-can be rewritten as:
-
-(defcustom foo-blurgoze nil
-  "*non-nil means that foo will act very blurgozely."
-  :type 'boolean
-  :group 'foo)
-
-From a package writer's point of view, nothing has been changed
-However, the user can now type `M-x customize RET foo-blurgoze RET' to
-customize the variable.
-
-Other, more complex data structures can be described with `defcustom'
-too, for instance:
-
-(defcustom foo-hairy-alist '((somekey . "somestring")
-                             (otherkey . (foo-doit))
-                             (thirdkey . [1 2 3]))
-"*Alist describing the hairy options of the foo package.
-The CAR of each element is a symbol, whereas the CDR can be either a
-string, a form to evaluate, or a vector of integers.
-New Emacs users simply adore alists like this one."
-  :type '(repeat (cons (symbol :tag "Key")
-                       (choice string
-                               (vector (repeat :inline t integer))
-                               sexp)))
-  :group 'foo)
-
-The user will be able to add and remove the entries to the list in a
-visually appealing way, as well as save the settings to his/her
-`.emacs'.
-
-Note that `defcustom' will also be included in GNU Emacs 19.35, and
-that both XEmacs and GNU Emacs will be using it in the future.
-Although the user-interface of customize may change, the Lisp
-interface will remain the same.  This is why we recommend that you use
-`defcustom' for user-settable variables in your new Lisp packages.
-
-** The `read-kbd-macro' function is now available.
-
-The `read-kbd-macro' function (as well as the read-time evaluated
-`kbd' macro) from the edmacro package is now available in XEmacs.  For
-example:
-
-(define-key foo-mode-map (kbd "C-c <up>") 'foo-up)
-
-is completely equivalent to
-
-(define-key foo-mode-map [(control ?c) up] 'foo-up)
-
-The `kbd' macro is preferred over `read-kbd-macro' function , as it
-evaluates before compiling, thus having no loading overhead.
-
-Using `kbd' is not necessary for GNU Emacs compatibility (GNU Emacs
-supports the XEmacs-style keysyms), but adds to clarity.  For example,
-(kbd "C-?") is usually easier to read than [(control ??)].  The full
-description of the syntax of keybindings accepted by `read-kbd-macro'
-is documented in the docstring of `edmacro-mode'.
-
-** Overlay compatibility is implemented.
-
-The overlay support in XEmacs is now functional.  Written by Joe
-Nuspl, the overlay compatibility library overlay.el is implemented on
-top of the native XEmacs extents, and can be used as a GNU
-Emacs-compatible way of changing display properties.
-
-** You should use keysyms kp-* (kp-1, kp-2, ..., kp-enter etc.)
-rather than the old form kp_*.  The new form is also compatible with
-GNU Emacs.
-
-** The keysyms mouse-1, mouse-2, mouse-3 and down-mouse-1,
-down-mouse-2, and down-mouse-3 have been added for GNU Emacs
-compatibility.
-
-** A new user variable `signal-error-on-buffer-boundary' has been
-added.
-
-Set this to variable to nil to avoid XEmacs usual lossage of zmacs
-region when moving up against a buffer boundary.
-
-** lib-complete.el was MULE-ized.
-
-The commands `find-library', `find-library-other-window' and
-`find-library-other-frame' now take an optional coding system
-argument.
-
-** Experimental support for Lisp reader macros #-, #+.
-
-The Common Lisp reader macros for feature test are now supported.  This
-feature is present for evaluation purposes and is subject to change.
-
-** `values' now has a setf method
-
-** The `eval-after-load' and `eval-next-after-load' functions are
-now available.
-
-** A bug that prevented `current-display-table' to be correctly set
-with `set-specifier' has been fixed.
-
-** The bug in easymenu which prevented multiple menus from being
-accessible through button3 has been fixed.
-
-You can now safely use easymenu to define multiple menu entries in a
-compatible way, with the added menus accessible via button3 as local
-submenus.
-
-** Many bugs in the scrollbar code have been fixed.
-
-** First alpha level support of MS Windows NT is available, courtesy
-of David Hobley and Marc Paquette.
-
-** Wnn/egg now has initial support Courtesy of Jareth Hein.
-
-** Some old non-working code has been removed until someone chooses
-to work on it.
-
-This includes much of the NeXTStep stuff.  The VMS support is also
-likely to be removed in the future.
-
-** Many files have been purged out of the etc/ directory.
-
-If you still need the purged files, look for them in the GNU Emacs
-distribution.
-
-
-* Major Differences Between 19.14 and 20.0
-===========================================
-
-XEmacs 20.0 is the first public release to have support for MULE
-(Multi-Lingual Emacs).  The --with-mule configuration flag must be
-used to enable Mule support.
-
-Many bugs have been fixed.  An effort has been made to eradicate all
-XEmacs crashes, although we are not quite done yet.  The overall
-quality of XEmacs should be higher than any previous release.  XEmacs
-now compiles with nary a warning with some compilers.
-
--- Multiple character sets can be displayed in a buffer.  The file
-   mule-doc/demo in the distribution contains a greeting in many
-   different languages.
-
--- Although the Mule work is for all languages, particular effort has
-   been invested in Japanese, with particular focus on Japanese users
-   of Sun WorkShop.  Many menubar labels have been translated into
-   Japanese.  Martin Buchholz, the maintainer of MULE features within
-   XEmacs normally runs XEmacs in a Japanese language environment.
-   Some of the other contributors are Japanese, most importantly
-   Morioka Tomohiko, author of the TM package, providing MIME support
-   for Mail and News.
-
--- Input for complex Asian languages is supported via XIM, a mechanism
-   introduced in X11R5 to allow applications to get localized input
-   without knowledge of the language.  The way XIM works is that when
-   the locale has a complex character set, such as Japanese, and extra
-   minibuffer-like status window appears attached to various
-   application windows, and indicates the status of the input method.
-   Composed input in XEmacs should work the same as with other
-   applications.  If Motif and Mule support is configured into XEmacs,
-   then XIM support is automatically configured in as well.
-
--- TM (Tools for Mime) now comes with XEmacs.  This provides MIME
-   (Multipurpose Internet Mail Extensions) support for Mail and News.
-   The primary author is Morioka Tomohiko.
-
--- Japanese input can also be input using the `canna' input method.
-   This support was contributed by Morioka Tomohiko.  Setting up canna
-   usually requires more user effort (and better knowledge of Japanese!)
-   than XIM, but provides a better-integrated input method.
-
--- A mini-tutorial on using Mule:
-
-   -- Every time data passes between XEmacs and the rest of the
-      environment, via file or process input or output, XEmacs must
-      convert between its internal multi-character representation and
-      the external representation (`coding system').  Many
-      difficulties with Mule are related to controlling these coding
-      system conversions.
-
-      -- file-coding-system, file-coding-system-for-read,
-         overriding-file-coding-system, and file-coding-system-alist
-         are used to determine the coding systems used on file input
-         and output.
-
-      -- For each process, (set-process-input-coding-system) and
-         (set-process-output-coding-system) determine the coding
-         system used for I/O from the process.
-
-      -- Many other things are encoded using pathname-coding-system:
-         -- file and directory names
-         -- window manager properties: window title, icon name
-         -- process names and process arguments
-         -- XIM input.
-
-      -- In many cases, you will want to have the same values for all
-         the above variables in many cases.  For example, in a
-         Japanese environment, you will want to use the 'euc-japan
-         coding system consistently, except when running certain
-         processes that do byte-oriented, rather than
-         character-oriented I/O, such as gzip, or when processing Mail
-         or News, where ISO2022-based coding systems are the norm,
-         since they support multiple character sets.
-
-   -- To add support for a new language or character set, start by
-      trying to copy code in japanese-hooks.el.
-
-   -- The traditional pre-Mule data conversion is equivalent to the
-      'binary coding system under Mule.  In this case all characters
-      are treated as iso8859-1 (i.e. characters for English + Western
-      European languages).
-
-   -- many fileio-related commands such as find-file and write-file
-      take an extra argument, coding-system, which specifies the
-      encoding to be used with the file on disk.  For example, here is
-      a command that converts from the Japanese EUC to ISO2022 format:
-
-         xemacs -batch -eval '(progn (find-file
-         "locale-start.el.euc" (quote euc-japan)) (write-file
-         "locale-start.el" nil (quote iso-2022-8-unix)))'
-
-      Interactively, you can be prompted for a coding system by
-      providing a prefix argument to the fileio command.  In
-      particular, C-u C-x C-f is a useful sequence to edit a file
-      using a particular coding system.
-
-   -- In an Asian locale (i.e. if $LANG is set to ja, ko, or zh),
-      XEmacs automatically sets up a language environment assuming
-      that the operating system encodes information in the national
-      version of EUC, which supports English and the national
-      language, but typically no other character sets.
-
--- Command line processing should work much better now - no more order
-   dependencies.
-
--- Many many package upgraded (thanks go to countless maintainers):
-
-  -- ediff 2.64 (Michael Kifer)
-  -- Gnus 5.2.40 (Lars Magne Ingebrigtsen)
-  -- w3 3.0.51  (Bill Perry)
-  -- ilisp 5.8 (Chris McConnell, Ivan Vasquez, Marco Antoniotti, Rick
-     Campbell)
-  -- VM 5.97     (Kyle Jones)
-  -- etags 11.78 (Francesco Potorti`)
-  -- ksh-mode.el 2.9
-  -- vhdl-mode.el 2.73 (Rod Whitby)
-  -- id-select.el (Bob Weiner)
-  -- EDT/TPU emulation modes should work now for the first time.
-  -- viper 2.92 (Michael Kifer) is now the `official' vi emulator for XEmacs.
-  -- big-menubar should work much better now.
-  -- mode-motion+.el 3.16
-  -- backup-dir 2.0 (Greg Klanderman)
-  -- ps-print.el-3.05 (Jacques Duthen Prestataire)
-  -- lazy-lock-1.15 (Simon Marshall)
-  -- reporter 3.3 (Barry Warsaw)
-  -- hm--html-menus 5.0 (Heiko Muenkel)
-  -- cc-mode 4.322 (Barry Warsaw)
-  -- elp 2.37 (Barry Warsaw)
-
-
--- Many new packages have been added:
-  -- m4-mode 1.8 (Andrew Csillag)
-  -- crisp.el - crisp/brief emulation (Gary D. Foster)
-  -- Johan Vroman's iso-acc.el has been ported to XEmacs by Alexandre Oliva
-  -- psgml-1.01 (Lennart Staflin, James Clark)
-  -- python-mode.el 2.83 (Barry Warsaw)
-  -- vrml-mode.el (Ben Wing)
-  -- enriched.el, face-menu.el (Boris Goldowsky, Michael Sperber)
-  -- sh-script.el (Daniel Pfeiffer)
-  -- decipher.el (Christopher J. Madsen)
-
--- New function x-keysym-on-keyboard-p helps determine keyboard
-   characteristics for key rebinding:
-
-  x-keysym-on-keyboard-p: (KEYSYM &optional DEVICE)
-    -- a built-in function.
-  Return true if KEYSYM names a key on the keyboard of DEVICE.
-  More precisely, return true if pressing a physical key
-  on the keyboard of DEVICE without any modifier keys generates KEYSYM.
-  Valid keysyms are listed in the files /usr/include/X11/keysymdef.h and in
-  /usr/lib/X11/XKeysymDB, or whatever the equivalents are on your system.
-
--- Installed info files are now compressed (support courtesy of Joseph J Nuspl)
-
--- (load-average) works on Solaris, even if you're not root. Thanks to
-   Hrvoje Niksic.
-
--- OffiX drag-and-drop support added
-
--- lots of syncing with 19.34 elisp files, most by Steven Baur
-
-
-** Major Differences Between 19.13 and 19.14
-============================================
-
-XEmacs has a new address!  The canonical ftp site is now
-ftp.xemacs.org:/pub/xemacs and the Web page is now at
-http://www.xemacs.org/.  All mailing lists now have @xemacs.org
-addresses.  For the time being the @cs.uiuc.edu addresses will
-continue to function.
-
-This is a major new release.  Many features have been added, as well
-as many bugs fixed.  The Motif menubar has still _NOT_ been fixed for
-19.14.  You should use the Lucid menubar instead.
-
-
-
-Major user-visible changes:
----------------------------
-
--- Color support in TTY mode is provided.  You have to have a TTY capable
-   of displaying them, such as color xterm or the console under Linux.
-   If your terminal type supports colors (e.g. `xterm-color'), XEmacs
-   will automatically notice this and start using color.
-
--- blink-cursor-mode enables a blinking text cursor.  There is a
-   menubar option for this also.
-
--- auto-show-mode is turned on by default; this means that XEmacs
-   will automatically scroll a window horizontally as necessary to
-   keep point in view.
-
--- a file dialog box is provided and will be used whenever you
-   are prompted for a filename as a result of a menubar selection.
-
--- XEmacs can be compiled with built-in GIF, JPEG, and PNG support.
-   The GIF libraries are supplied with XEmacs; for JPEG and PNG,
-   you have to obtain the appropriate libraries (this is well-
-   documented).  This makes image display much easier and faster under
-   W3 (the web browser) and TM (adds MIME support to VM and GNUS;
-   not yet included with XEmacs but will be in 19.15).
-
--- XEmacs provides a really nice mode (PSGML with "Wing improvements")
-   for editing HTML and other SGML documents.  It parses the document,
-   and as a result it does proper indentation, can show you the context
-   you're in, the allowed tags at a particular position, etc.
-
--- XEmacs comes standard with modes for editing Java and VRML code,
-   including font-lock support.
-
--- GNUS 5.2 comes standard with XEmacs.
-
--- You can now embed colors in the modeline, with different sections
-   of the modeline responding appropriately to various mouse gestures:
-   For example, clicking on the "read-only" indicator toggles the
-   read-only status of a buffer, and clicking on the buffer name
-   cycles to the next buffer.  Pressing button3 on these areas brings
-   up a popup menu of appropriate commands.
-
--- There is a much nicer mode for completion lists and such.
-   At the minibuffer prompt, if you hit page-up or Meta-V, the completion
-   buffer will be displayed (if it wasn't already), you're moved into
-   it, and can move around and select filenames using the arrow keys
-   and the return key.  Rather than a cursor, a filename is highlighted,
-   and the arrow keys change which filename is highlighted.
-
--- The edit-faces subsystem has also been much improved, in somewhat
-   similar ways to the completion list improvements.
-
--- Many improvements were made to the multi-device support.
-   We now provide an auxiliary utility called "gnuattach" that
-   lets you connect to an existing XEmacs process and display
-   a TTY frame on the current TTY connection, and commands
-   `make-frame-on-display' (with a corresponding menubar entry)
-   and `make-frame-on-tty' for more easily creating frames on
-   new TTY or X connections.
-
--- We have incorporated nearly all of the functionality of GNU Emacs
-   19.30 into XEmacs.  This includes support for lazy-loaded
-   byte code and documentation strings, improved paragraph filling,
-   better support for margins within documents, v19 regular expression
-   routines (including caching of compiled regexps), etc.
-
--- In accordance with GNU Emacs 19.30, the following key binding
-   changes have been made:
-
-   C-x ESC -> C-x ESC ESC
-   ESC ESC -> ESC :
-   ESC ESC ESC is "abort anything" (keyboard-escape-quit).
-
--- All major packages have been updated to their latest-released
-   versions.
-
--- XEmacs now gracefully handles a full colormap (such as typically
-   results when running Netscape).  The nearest available color
-   is automatically substituted.
-
--- Many bug fixes to the subprocess/PTY code, ps-print, menubar
-   functions, `set-text-properties', DEC Alpha support, toolbar
-   resizing (the "phantom VM toolbar" bug), and lots and lots
-   of other things were made.
-
--- The ncurses library (a replacement for curses, found especially
-   under Linux) is supported, and will be automatically used
-   if it can be found.
-
--- You can now undo in the minibuffer.
-
--- Surrogate minibuffers now work.  These are also sometimes referred
-   to as "global" minibuffers.
-
--- font-lock has been merged with GNU Emacs 19.30, improved defaults
-   have been added, and changes have been made to the way it is
-   configured.
-
--- Many, many modes have menubar entries for them.
-
--- `recover-session' lets you recover whatever files can be recovered
-   after your XEmacs process has died unexpectedly.
-
--- C-h k followed by a toolbar button press correctly reports
-   the binding of the toolbar button.
-
--- `function-key-map', `key-translation-map', and `keyboard-translate-table'
-   are now correctly implemented.
-
--- `show-message-log' (and its menubar entry under Edit) have been
-   removed; instead use `view-lossage' (and its menubar entry under
-   Help).
-
--- There is a standard menubar entry for specifying which browser
-   (Netscape, W3, Mosaic, etc.) to use when dispatching URL's
-   in mail, Usenet news, etc.
-
--- Improved native sound support under Linux.
-
--- Lots of other things we forgot to mention.
-
-
-
-Significant Lisp-level changes:
--------------------------------
-
--- Many improvements to the E-Lisp documentation have been made;
-   it should now be up-to-date and complete in nearly all cases.
-
--- XEmacs has extensive documentation on its internals, for
-   would-be C hackers.
-
--- Common-Lisp support (the CL package) is now dumped standard
-   into XEmacs.  No more need for (require 'cl) or anything
-   like that.
-
--- Full support for extents and text properties over strings is
-   provided.
-
--- The extent properties `start-open', `end-open', `start-closed',
-   and `end-closed' now work correctly w.r.t. text properties.
-
--- The `face' property of extents and text properties can now
-   be a list.
-
--- The `mouse-face' property from GNU Emacs is now supported.
-   It supersedes the `highlight' property.
-
--- `enriched' and `facemenu' packages from GNU Emacs have been ported.
-
--- New functions for easier creation of dialog boxes:
-   `get-dialog-box-response', `message-box', and `message-or-box'.
-
--- `function-min-args' and `function-max-args' allow you to determine
-   the minimum and maximum allowed arguments for any type of
-   function (i.e. subr, lambda expression, byte-compiled function, etc.).
-
--- Some C-level support for doing E-Lisp profiling is provided.
-   See `start-profiling', `stop-profiling', and
-   `pretty-print-profiling-info'.
-
--- `current-process-time' reports the user, system, and real times
-   for the currently running XEmacs process.
-
--- `next-window', `previous-window', `next-frame', `previous-frame',
-   `other-window', `get-lru-window', etc. have an extra device
-   argument that allows you to restrict which devices it includes
-   (normally all devices).  Some functions that incorrectly ignored
-   frames on different devices (e.g. C-x 0) are fixed.
-
--- new functions `run-hook-with-args-until-success',
-   `run-hook-with-args-until-failure'.
-
--- generalized facility for local vs. global hooks.  See `make-local-hook',
-   `add-hook'.
-
--- New functions for querying the window tree: `frame-leftmost-window',
-   `frame-rightmost-window', `window-first-hchild', `window-first-vchild',
-   `window-next-child', `window-previous-child', and `window-parent'.
-
--- Epoch support works.  This gets you direct access to some X events
-   and objects (e.g. properties and property-notify events).
-
--- The multi-device support has been majorly revamped.  There is now
-   a new concept of "consoles" (devices grouped together under a
-   common keyboard/mouse), console-local variables, and a generalized
-   concept of device/console connection.
-
--- `display-buffer' synched with GNU Emacs 19.30, giving you lots of
-   wondrous cruft such as
-     -- unsplittable frames
-     -- pop-up-frames, pop-up-frame-function
-     -- special-display-buffer-names, special-display-regexps,
-        special-display-function
-     -- same-window-buffer-names, same-window-regexps
-
--- XEmacs has support for accessing DBM- and/or DB-format databases,
-   provided that you have the appropriate libraries on your system.
-
--- There is a new font style: "strikethru" fonts.
-
--- New data type "weak list", which is a list with special
-   garbage-collection properties, similar to weak hash tables.
-
--- `set-face-parent' makes one face inherit all properties from another.
-
--- The junky frame parameters mechanism has been revamped as
-   frame properties, which a standard property-list interface.
-
--- Lots and lots of functions for working with property lists have
-   been added.
-
--- New functions `push-window-configuration', `pop-window-configuration',
-   `unpop-window-configuration' for maintain a stack of window
-   configurations.
-
--- Many fixups to the glyph code; icons and mouse pointers are now
-   properly merged into the glyph mechanism.
-
--- `set-specifier' works more sensibly, like `set-face-property'.
-
--- Many new specifiers for individually controlling toolbar height/width
-   and visibility and text cursor visibility.
-
--- New face `text-cursor' controls the colors of the text cursor.
-
--- Many new variables for turning on debug information about the
-   inner workings of XEmacs.
-
--- Hash tables can now compare their keys using `equal' or `eql'
-   as well as `eq'.
-
--- Other things too numerous to mention.
-
-
-
-Significant configuration/build changes:
-----------------------------------------
-
--- You can disable TTY support, toolbar support, scrollbar support,
-   menubar support, and/or dialog box support at configure time
-   to save memory.
-
--- New configure option `--extra-verbose' shows the diagnostic
-   output from feature testing; this should help track down
-   problems with incorrect feature detection.
-
--- `dont-have-xmu' is now `with-xmu', with the reversed sense.
-   (It defaults to `yes'.)
-
--- `with-mocklisp' lets you add Mocklisp support if you really
-   need this.
-
--- `with-term' for adding TERM support for Linux users.
-
-
-
-** Major Differences Between 19.12 and 19.13
-============================================
-
-This is primarily a bug-fix release.  Lots of bugs have been fixed.
-Hopefully only a few have been introduced.  The most noteworthy bug
-fixes are:
-
- -- There should be no more problems connecting XEmacs to an X
-    server over SLIP or other slow connections.
- -- Periodic crashes when using the Buffers menu should be gone.
- -- etags would sometimes erase the current buffer; it doesn't
-    any more.
- -- XEmacs will correctly exit if the X server dies.
- -- uniconified frames are displayed properly under TVTWM.
- -- Breakage in `add-menu-item' / `add-menu-button' is fixed.
-
-The Motif menubar has _NOT_ been fixed for 19.13.  You should use the
-Lucid menubar instead.
-
-Multi-device support should now be working properly.  You can now open
-an X device after having started out on a TTY device.
-
-Background pixmaps now work.  See `set-face-background-pixmap'.
-
-Echo area messages are now saved to a buffer, " *Message Log*".  To
-see this buffer, use the command `show-message-log'.  It is possible
-to filter the message which are actually included by modifying the
-variables `log-message-ignore-regexps' and `log-message-ignore-labels'.
-
-You can now control which warnings you want to see.  See
-`display-warning-suppressed-classes' and friends.
-
-You can now set the default location of an "other window" from the
-Options menu.
-
-"Save Options" now saves the state of all faces.
-
-You can choose which file "Save Options" writes into; see
-`save-options-file'.
-
-XPM support is no longer required for the toolbar.
-
-The relocating allocator is now enabled by default whenever possible.
-This allows buffer memory to be returned to the system when no longer
-in use which helps keep XEmacs process size down.
-
-The ability to have captioned toolbars has been added.  Currently only
-the default toolbar actually has a captioned version provided.  A new
-specifier variable, `toolbar-buttons-captioned-p' controls whether the
-toolbar is captioned.
-
-A copy of the XEmacs FAQ is now included and is available through info.
-
-The on-line E-Lisp reference manual has been significantly updated.
-
-There is now audio support under Linux.
-
-Modifier keys can now be sticky.  This is controlled by the variable
-`modifier-keys-are-sticky'.
-
-manual-entry should now work correctly under Irix with the penalty of
-a longer startup time the first time it is invoked.  If you are having
-problems with this on another system try setting
-`Manual-use-subdirectory-list' to t.
-
-make-tty-device no longer automatically creates the first frame.
-
-Rectangular regions now work correctly.
-
-ediff no longer sets synchronize-minibuffers to t unless you first set
-ediff-synchronize-minibuffers
-
-keyboard-translate-table has been implemented.  This means that the
-`enable-flow-control' command for dealing with TTY connections that
-filter out ^S and ^Q now works.
-
-You can now create frames that are initially unmapped and frames that
-are "transient for another frame", meaning that they behave more like
-dialog-box frames.
-
-Other E-Lisp changes:
-
--- Specifier `menubar-visible-p' for controlling menubar visibility
--- Local command hooks should be set using `local-pre-command-hook'
-   and `local-post-command-hook' instead of making the global
-   equivalents be buffer-local.
--- `quit-char', `help-char', `meta-prefix-char' can be any key specifier
-   instead of just an integer.
--- new functions `add-async-timeout' and `disable-async-timeout'.
-   These let you create asynchronous timeouts, which are like
-   normal timeouts except that they're executed even during
-   running Lisp code.  Use this with care!
--- `debug-on-error' and `stack-trace-on-error' now enter the debugger
-   only when an *unhandled* error occurs.  If you want the old
-   behavior, use `debug-on-signal' and `stack-trace-on-signal'.
--- \U, \L, \u, \l, \E recognized specially in `replace-match'.
-   These are standard ex/perl commands for changing the case of
-   replaced text.
--- New function event-matches-key-specifier-p.  This provides
-   a clean way of comparing keypress events with key specifiers
-   such as 65, (shift home), etc. without having to resort
-   to ugly `character-to-event' / `event-to-character' hacks.
--- New function `add-to-list'
--- New Common-Lisp functions `some', `every', `notevery', `notany',
-   `adjoin', `union', `intersection', `set-difference',
-   `set-exclusive-or', `subsetp'
--- `remove-face-property' provides a clean way of removing a
-   face property.
-
-Many of the Emacs Lisp packages have been updated.  Some of the new
-Emacs Lisp packages ---
-
-ada-mode:  major mode for editing Ada source
-
-arc-mode:  simple editing of archives
-
-auto-show-mode:  automatically scrolls horizontally to keep point on-screen 
-
-completion:  dynamic word completion mode
-
-dabbrev:  the dynamic abbrev package has been rewritten and is much
-          more powerful -- e.g. it searches in other buffers as well
-          as the current one
-
-easymenu:  menu support package
-
-live-icon:  makes frame icons represent the current frame contents
-
-mailcrypt 3.2:  mail encryption with PGP; included but v2.4 is still
-		the default
-
-two-column:  for editing two-column text 
-
-
-** Major Differences Between 19.11 and 19.12
-============================================
-
-This is a huge new release.  Almost every aspect of XEmacs has been changed
-at least somewhat.  The highlights are:
-
--- TTY support (includes face support)
--- new redisplay engine; should be faster, less buggy, and more powerful
--- terminology change from "screen" to "frame"
--- built-in toolbar
--- toolbar support added to many packages
--- multiple device support (still in beta; improvements to come in
-   19.13)
--- Purify used to ensure that there are no memory leaks or memory corruption
-   problems
--- horizontal and vertical scrollbars in all windows
--- new Lucid (i.e. look-alike Motif) scrollbar widget
--- stay-up menus in the Lucid (look-alike Motif) menubar widget
--- 3-d modeline
--- new extents engine; should be faster, less buggy, and more powerful
--- much more powerful control over faces
--- expanded menubar
--- more work on synching with GNU Emacs 19.28
--- new packages: Hyperbole, OOBR (object browser), hm--html-menus, viper,
-   lazy-lock.el, ksh-mode.el, rsz-minibuf.el
--- package updates for all major packages
--- dynodump package for Solaris: provides proper undumping and portable
-   binaries across different OS versions and machine types
--- Greatly expanded concept of "glyphs" (pixmaps etc. in a buffer)
--- built-in support for displaying X-Faces, if the X-Face library is
-   available
--- built-in support for SOCKS if the SOCKS library is available
--- graceful behavior when the colormap is full (e.g. Netscape ate
-   all the colors)
--- built-in MD5 (secure hashing function) support
-
-
-More specific information:
-
-*** TTY Support
----------------
-
-The long-awaited TTY support is now available.  XEmacs will start up
-in TTY mode (using the tty you started XEmacs from) if the DISPLAY
-environment variable is not set or if you use the `-nw' option.
-
-Faces are available on TTY's.  For a demonstration, try editing a C
-file and turning on font-lock-mode.
-
-You can also connect to additional TTY's using `make-tty-device',
-whether your first frame was a TTY or an X window.  This ability is
-not yet completely finished.
-
-The full event-loop capabilities (processes, timeouts, etc.) are
-available on TTY's.
-
-
-
-*** New Redisplay Engine
-------------------------
-
-The redisplay engine has been rewritten to improve its efficiency and
-to increase its functionality.  It should also be significantly more
-bug-free than the previous redisplay engine.
-
-A line that is not big enough to display at the bottom of the window
-will normally be clipped (so that it is partially visible) rather than
-not displayed at all.  The variable `pixel-vertical-clip-threshold'
-can be used to control the minimum space that must be available for a
-line to be clipped rather than not displayed at all.
-
-Tabs are displayed in such a way that things line up fairly well even
-in the presence of variable-width fonts and/or lines with
-multiply-sized fonts.
-
-Display tables are implemented, through the specifier variable
-`current-display-table'.  They can be buffer-local, window-local,
-frame-local, or device-local.  See below for info about specifiers.
-
-
-
-*** Toolbar
------------
-
-There is now built-in support for a toolbar.  A sample toolbar is
-visible by default at the top of the frame.  Four separate toolbars
-can be configured (at the top, bottom, left, and right of the frame).
-The toolbar specification is similar to the menubar specification.
-The up, down, and disabled glyphs of a toolbar button can be
-separately controlled.  Explanatory text can be echoed in the echo
-area when the mouse passes over a toolbar button.  The size, contents,
-and visibility of the various toolbars can be controlled on a
-per-buffer, per-window, per-frame, and per-device basis through the
-use of specifiers.  See the chapter on toolbars in the Lisp Reference
-Manual (included with XEmacs) for more information.
-
-The toolbar color and shadow thicknesses are currently controlled only
-through `modify-frame-parameters' and through X resources.  We are
-planning on making these controllable through specifiers as well. (Our
-hope is to make `modify-frame-parameters' obsolete, as it is a clunky
-and not very powerful mechanism.)
-
-Info, GNUS, VM, W3, and various other packages include custom toolbars
-with them.
-
-
-
-*** Menubar
------------
-
-Stay-up menus are implemented in the look-alike Motif menubar.
-
-The default menubar has been expanded to include most commonly-used
-functions in XEmacs.
-
-The options menu has been greatly expanded to include many more
-options.
-
-The menubar specification format has been greatly expanded.  Per-menu
-activation hooks can be specified through the :filter keyword (thus
-obsoleting `activate-menubar-hook'); this allows for fast response
-time when you have a large and complex menu.  You can dynamically
-control whether menu items are present through the :included and
-:config keywords. (The latter keyword implements a simple menubar
-configuration scheme, in conjunction with the variable
-`menubar-configuration'.) Many different menu-item separators (single
-or double line; solid or dashed; flat, etched-in, or etched-out) are
-available.  See the chapter on menus in the Lisp Reference Manual for
-more information about all of this.
-
-New functions `add-submenu' and `add-menu-button' are available.
-These supersede the older `add-menu' and `add-menu-item' functions,
-and provide a more powerful and consistent interface.
-
-New convenience functions for popping up the part or all of the
-menubar in a pop-up menu are available: `popup-menubar-menu' and
-`popup-buffer-menu'.
-
-Menus are now incrementally constructed greatly improving menubar
-response time.
-
-
-
-*** Scrollbars
---------------
-
-A look-alike Motif scrollbar is now included with XEmacs.  No longer
-will you have to suffer with ugly Athena scrollbars.
-
-Windows can now have horizontal scrollbars.  Normally they are visible
-when the window's buffer is set to truncate lines rather than wrap
-them (e.g. `(setq truncate-lines t)').
-
-All windows, not only the right-most ones, can have vertical
-scrollbars.
-
-The functions to change a scrollbar's width have been superseded by
-the specifier variables `scrollbar-width' and `scrollbar-height'.
-This allows their values to be controlled on a buffer-local,
-window-local, frame-local, and device-local basis.  See below.
-
-The scrollbars interact better with the event loop (for example, you
-can type `C-h k', do a scrollbar action, and see a description of this
-scrollbar action printed as if you had pressed a key sequence or
-selected a menu item).
-
-The scrollbar behavior can be reprogrammed, by advising the
-`scrollbar-*' functions.
-
-
-
-*** Key Bindings
-----------------
-
-The oft-used function `goto-line' now has its own binding: M-g.
-
-New bindings are available for scrolling the "other" window: M-next,
-M-prior, M-home, M-end. (On many keyboards, `next' and `prior'
-labelled `PgUp' and `PgDn'.)
-
-You can reactivate a deactivated Zmacs region, without having any
-other effects, with the binding M-C-z.
-
-The bindings `M-u', `M-l', and `M-c' now work on the region (if a
-region is active) or work on a word, as before.
-
-Shift-Control-G forces a "critical quit", which drops immediately into
-the debugger; see below.
-
-
-
-*** Modeline
-------------
-
-The modeline can now have a 3-d look; this is enabled by default.  The
-specifier variable `modeline-shadow-thickness' controls the size.
-
-The modeline can now be turned off on a per-buffer, per-window,
-per-frame, or per-device basis.  The specifier variable
-`has-modeline-p' controls whether the modeline is visible.  See below
-for details about the vastly powerful specifier mechanism.
-
-The modeline functions and variables have been renamed to be
-`*-modeline-*' rather than `*-mode-line-*'.  Aliases are provided for
-all the old names.
-
-Variable width fonts now work correctly when used in the modeline.
-
-
-
-*** Minibuffer, Echo Area
--------------------------
-
-The minibuffer is no longer constrained to be one line high.  The
-package rsz-minibuf.el is included to automatically resize the
-minibuffer when its contents are too big; enable this with
-`resize-minibuffer-mode'.
-
-The echo area is now a true buffer, called " *Echo Area*".  This
-allows you to customize the echo area behavior through
-before-change-functions and after-change-functions.
-
-
-
-*** Specifiers
---------------
-
-XEmacs has a new concept called "specifiers", used to configure most
-display options (toolbar size and contents, scrollbar size, face
-properties, modeline visibility and shadow-thickness, glyphs, display
-tables, etc.).  We are planning on converting all display
-characteristics to use specifiers, and obsoleting the clunky functions
-`frame-parameters' and `modify-frame-parameters'.  Specifically:
-
--- You can specify values (called "instantiators") for particular
-   "locales" (i.e. buffers, windows, frames, devices, or a global value).
-   When determining what the actual value (or "instance") of a specifier
-   is, the specifications that are provided are searched from most
-   specific (i.e. buffer-local) to most general (i.e. global), looking
-   for a matching one.
-
--- You can specify multiple instantiators for a particular locale.
-   For example, when specifying what the foreground color of a face
-   is in a particular buffer, you could specify two instantiators:
-   "dark sea green" and "green".  The color would then be dark sea
-   green on devices that recognize that color, and green on other
-   devices.  You have effectively provided a fallback value to make
-   sure you get reasonable behavior on all devices.
-
--- You can add one or more tags to an instantiator, where a tag
-   is a symbol that has been previously registered with XEmacs.
-   This allows you to identify your instantiators for later
-   removal in a way that won't interfere with other applications
-   using the same specifier.  Furthermore, particular tags can
-   be restricted to match only particular sorts of devices.
-   Any tagged instantiator will be ignored if the device over which
-   it is being instanced does not match any of its tags.  This
-   allows you, for example, to restrict an instantiator to a
-   particular device type (X or TTY) and/or class (color, grayscale,
-   or mono). (You might want to specify, for example, that a
-   particular face is displayed in green on color devices and is
-   underlined on mono devices.)
-
--- A full API is provided for manipulating specifiers, and full
-   documentation is provided in the Lisp Reference Manual.
-
-
-
-*** Basic Lisp Stuff
---------------------
-
-Common-Lisp backquote syntax is recognized.  For example, the old
-expression
-
-(` (a b (, c)))
-
-can now be written
-
-`(a b ,c)
-
-The old backquote syntax is still accepted.
-
-The new function `type-of' returns a symbol describing the type of a
-Lisp object (`integer', `string', `symbol', etc.)
-
-Symbols beginning with a colon (called "keywords") are treated
-specially in that they are automatically made self-evaluating when
-they are interned into `obarray'.  The new function `keywordp' returns
-whether a symbol begins with a colon.
-
-`get', `put', and `remprop' have been generalized to allow you to set
-and retrieve properties on many different kinds of objects: symbols,
-strings, faces, glyphs, and extents (for extents, however, this is not
-yet implemented).  They are joined by a new function `object-props'
-that returns all of the properties that have been set on an object.
-
-New functions `plists-eq' and `plists-equal' are provided for
-comparing property lists (a property list is an alternating list
-of keys and values).
-
-The Common-Lisp functions `caar', `cadr', `cdar', `cddr', `caaar', etc.
-(up to four a's and/or d's), `first', `second', `third', etc. (up to
-`tenth'), `last', `rest', and `endp' have been added, for more
-convenient manipulation of lists.
-
-New function `mapvector' maps over a sequence and returns a vector
-of the results, analogous to `mapcar'.
-
-New functions `rassoc', `remassoc', `remassq', `remrassoc', and
-`remrassq' are provided for working with alists.
-
-New functions `defvaralias', `variable-alias' and `indirect-variable'
-are provided for creating variable aliases.
-
-Strings have a modified-tick that is bumped every time a string
-is modified in-place with `aset' or `fillarray'.  This is retrieved
-with the new function `string-modified-tick'.
-
-New macro `push' destructively adds an element to the beginning of a
-list.  New macro `pop' destructively removes and returns the first
-element of a list.
-
-
-
-*** Buffers
------------
-
-Most functions that operate on buffer text now take an optional BUFFER
-argument, specifying which buffer they operate on.  (Previously, they
-always operated on the current buffer.)
-
-The new function `transpose-regions' is provided, ported from GNU
-Emacs.
-
-The new function `save-current-buffer' works like `save-excursion'
-but only saves the current buffer, not the location of point in
-that buffer.
-
-
-
-*** Devices
------------
-
-XEmacs has a new concept of "device", which is represents a particular
-X display or TTY connection.  `make-frame' has a new, optional device
-parameter that allows you to specify which device the frame is to be
-created on.
-
-Multiple simultaneous TTY and/or X connections may be made.  The
-specifier mechanism provides reasonable behavior of glyphs, faces,
-etc. over heterogeneous device types and over devices whose individual
-capabilities may vary.
-
-There is also a device type called "stream" that represents a STDIO
-device that has no redisplay or cursor-motion capabilities, such as
-the "glass terminal" that XEmacs uses when it is run noninteractively.
-There is not all that much you can do with stream devices currently;
-please let us know if there are good uses you can think of for this
-capability. (For example, log files?)
-
-A new device API is provided.  Functions are provided such as
-`device-name' (the name of the device, which generally is based on the
-X display or TTY file name), `device-type' (X, TTY, or stream),
-`device-class' (color, grayscale, or mono), etc.  See the Lisp
-Reference Manual.
-
-Many functions have been extended to contain an additional, optional
-device argument, where such an extension makes sense.  In general, if
-the argument is omitted, it is equivalent to specifying
-`(selected-device)'.
-
-Many previous functions and variables are obsoleted in favor of the
-device API.  For example, `window-system' is obsoleted by
-`device-type', and `x-color-display-p' and friends are obsoleted by
-`device-class'.
-
-** NOTE **: The obsolete variable `window-system' is going
-to be deleted soon, probably in 19.14.  Please correct all
-your code to use `device-type'.
-
-** INCOMPATIBLE CHANGE **: The function `x-display-visual-class'
-returns different values from previous versions of XEmacs.
-
-
-
-*** Errors, Warnings, C-g
--------------------------
-
-There is a new warnings system implemented.  Many warnings that were
-formerly displayed in various ad-hoc ways (e.g. warnings about screwy
-modifier mappings, messages about failures handling the mouse cursor
-and errors in a gc-hook) have been regularized through this system.
-The new function `warn' displays a warning before the next redisplay
-(the actually display of the warning messages is accomplished through
-`display-warning-buffer').  Both `warn' and `display-warning-buffer'
-are Lisp functions (the C code calls out to them as necessary), and
-thus you can customize the warning system.
-
-Under an X display, you can press Shift-Control-G to force a "critical
-quit".  This will immediately display a backtrace and pop you into the
-debugger, regardless of the settings of `inhibit-quit' and
-`debug-on-quit'.
-
-C-g now works properly even on systems that don't implement SIGIO or
-for which SIGIO is broken (e.g. IRIX 5.3 and older versions of Linux).
-In addition, the SIGIO support has been fixed for many systems on
-which it didn't always work properly before (e.g. HPUX and Solaris).
-
-   
-
-*** Events
-----------
-
-** INCOMPATIBLE CHANGE **: Many event functions have been changed to
-accept and return windows instead of frames.
-
-New function: `event-live-p', specifying whether `deallocate-event'
-has been called on an event.
-
-The "menu event" type has been renamed to "misc-user event", and
-encompasses scrollbar events as well as menu events.  We are planning
-on making it also encompass toolbar events in a future release.
-
-New functions are provided for determining whether an particular
-sections of a frame: `event-over-border-p', `event-over-glyph-p',
-`event-over-modeline-p', `event-over-text-area-p', and
-`event-over-toolbar-p'.  The old, kludgey methods of checking the
-window-height, the internal-border-width, etc. are unreliable and
-should not be used.
-
-New functions `event-window-x-pixel' and `event-window-y-pixel' are
-provided for determining where in a particular window an event
-happened.
-
-New functions `event-glyph-x-pixel' and `event-glyph-y-pixel' are
-provided for determining where in a particular glyph an event
-happened.
-
-New function `event-closest-point', which returns the closest buffer
-position to the event even if the event did not occur over any text.
-
-New variable `unread-command-events', superseding the older
-`unread-command-event'.
-
-Many event-loop bugs have been fixed.
-
-
-
-*** Extents
------------
-
-The extent code has been largely rewritten.  It should be faster and
-more reliable.
-
-The text-property implementation has been greatly improved.
-
-Some new extent primitives are provided to return the position of the
-next or previous property change in a buffer.
-
-Extents can now have a parent specified; then all of its properties
-(except for the buffer it's in and its position in that buffer) come
-from that extent.  Hierarchies of such extents can be created.
-
-Extents now have a `detachable' property that controls what happens
-(they either get detached or shrink down to zero-length) when their
-text is deleted.  Previously, such extents would always be detached.
-
-The `invisible' property on extents now works.
-
-`map-extents' has three additional parameters that provide more
-control over which extents are mapped.
-
-`map-extents' deals better with changes made to extents in the
-buffer being mapped over.
-
-A new function `mapcar-extents' (an alternative to `map-extents') has
-been provided and should be easier to use than `map-extents'.
-
-
-
-*** Faces
----------
-
-Faces can now be buffer-local, window-local, and device-local as well
-as frame-local, and can be further restricted to a particular device
-type or class.  The way in which faces can be controlled is now based
-on the general and powerful specifier mechanism; see above.
-
-The new function `set-face-property' generalizes `set-face-font',
-`set-face-foreground', etc. and takes many new optional arguments, in
-accordance with the new specifier mechanism.
-
-The new functions `face-property' and `face-property-instance'
-generalize `face-font', `face-foreground', etc. and take many new
-optional arguments, in accordance with the new specifier mechanism.
-(`face-property' returns the value, if any, that was specified for a
-particular locale, and `face-property-instance' returns the actual
-value that will be used for display.  See the section on specifiers.)
-
-The functions `face-font', `face-foreground', `face-background',
-`set-face-font', `set-face-foreground', `set-face-background',
-etc. are now convenience functions, trivially implemented using
-`face-property' and `set-face-property' and take new optional
-arguments in accordance with those functions.  New convenience
-functions `face-font-instance', `face-foreground-instance',
-`face-background-instance', etc. are provided and are trivially
-implemented using `face-property-instance'.
-
-Inheritance of face properties can now be specified.  Each individual
-face property can inherit differently from other properties, or not
-inherit at all.
-
-You can set user-defined properties on faces using
-`set-face-property'.
-
-You can create "temporary" faces, which are faces that disappear
-when they are no longer in use.  This is as opposed to normal
-faces, which stay around forever.
-
-The function `make-face' takes a new optional argument specifying
-whether a face should be permanent or temporary, and returns the
-actual face object rather than the face symbol, as in previous
-versions of XEmacs.
-
-The function `face-list' takes a new optional argument specifying
-whether permanent, temporary, or both kinds of faces should be
-returned.
-
-Faces have new TTY-specific properties: `highlight', `reverse',
-`alternate', `blinking', and `dim'.
-
-Redisplay is smarter about dealing with face changes: changes to a
-particular face no longer cause all frames to be cleared and
-redisplayed.
-
-The Edit-Faces package is provided for interactively changing faces.
-A menu item on the options menu is provided for this.
-
-New functions are provided for retrieving the ascent, descent, height,
-and width of a character in a particular face.
-
-
-
-*** Fonts, Colors
------------------
-
-** INCOMPATIBLE CHANGE **: The old "font" and "pixel" objects are gone.
-In place are new objects "font specifier", "font instance", "color
-specifier", and "color instance".  Functions `font-name', `pixel-name'
-(an obsolete alias for `color-name'), etc. are now convenience
-functions for working with font and color specifiers.  Old code that
-is not too sophisticated about working with font and pixel objects may
-still work, though.  (For example, the idiom `(font-name (face-font
-'default))' still works.)
-
-You can now extract the RGB components of a color-instance object
-(similar to the old pixel object) with the function
-`color-instance-rgb-components'.  There is also a convenience function
-`color-rgb-components' for working with color specifiers.
-
-If there are no more colors available in the colormap, the nearest
-existing color will be used when allocating a new color.
-
-
-
-*** Frames
-----------
-
-What used to be called "screens" are now called "frames", for clarity
-and consistency with GNU Emacs.  Aliases are provided for all the old
-screen functions and variables, to avoid introducing a huge E-Lisp
-incompatibility.
-
-The frame code has been merged with GNU Emacs 19.28, providing
-improved functionality for many functions.
-
-
-
-*** Glyphs, Images, and Pixmaps
--------------------------------
-
-Glyphs (used in various places, i.e. as begin-glyphs and end-glyphs
-attached to extents and appearing in a buffer or in marginal
-annotations; as the truncator and continuor glyphs marking line wrap
-or truncation; as an overlay at the beginning of a line; as the
-displayable element in a toolbar button; etc.) can now be
-buffer-local, window-local, frame-local, and device-local, and can be
-further restricted to a particular device type or class.  The way in
-which faces can be controlled is now based on the general and powerful
-specifier mechanism; see above.
-
-** INCOMPATIBLE CHANGE **: The glyph and pixmap API has been completely
-overhauled.  A new Lisp object "glyph" is provided and should be used
-where the old "pixmap" object would have been used.  The pixmap object
-exists no longer.  There are also new Lisp objects "image specifier"
-and "image instance" (an image-instance is the closest equivalent to
-what a pixmap object was).  More work on glyphs and images is slated
-for 19.13.  The glyph and image docs in the Lisp Reference Manual are
-incomplete and will be finished in 19.13.
-
-The new function `set-glyph-property' allows setting of all the
-glyph properties (`baseline', `contrib-p', etc.).  Convenience
-functions for particular properties are also provided, just like
-for faces.
-
-You can set user-defined properties on glyphs using the new function
-`set-glyph-property'.
-
-When displaying pixmaps, existing, closest-matching colors will be
-used if the colormap is full.
-
-If the compface library is compiled into XEmacs, there is built-in
-support for displaying X-Face bitmaps. (These are typically small
-pictures of people's faces, included in a mail message through the
-X-Face: header.) VM and highlight-headers will automatically use the
-built-in X-Face support if it is available.
-
-Annotations in the right margin (as well as the left margin) are now
-implemented.  The left and right margin width functions have been
-superseded by the specifier variables `left-margin-width' and
-`right-margin-width', allowing much more flexible control through the
-specifier mechanism.
-
-** INCOMPATIBLE CHANGE **: The variable `use-left-overflow',
-for controlling annotations in the left margin, is now a specifier
-variable instead of a buffer-local variable.  (There is also a new
-variable `use-right-overflow', that is complementary.)
-
-
-
-*** Hashing
------------
-
-Two new types of weak hashtables can be created: key-weak and
-value-weak.  In a key-weak hashtable, an entry remains around
-if its key is referenced elsewhere, regardless of whether this
-is also the case for the value.  Value-weak hashtables are
-complementary. (This is as opposed to the traditional weak
-hashtables, where an entry remains around only if both the
-key and value are referenced elsewhere.) New functions
-`make-key-weak-hashtable' and `make-value-weak-hashtable'
-are provided for creating these hashtables.
-
-The new function `md5' is provided for performing an MD5
-hash of an object.  MD5 is a secure message digest algorithm
-developed by RSA, inc.
-
-
-
-*** Keymaps
------------
-
-The GNU Emacs concept of `function-key-map' is now partially
-implemented.  This allows conversion of function-key escape sequences
-such as `ESC [ 1 1 ~' into an equivalent human-readable keysym such as
-`F1'.  This work will be completed in 19.14.  The function-key map is
-device-local and controllable through the functions
-`device-function-key-map' and `set-device-function-key-map'.
-
-`where-is-internal' now correctly searches minor-mode keymaps,
-extent-local keymaps, etc.  As a side effect of this, menu items will
-now correctly show the keyboard equivalent for commands that are
-available through a minor-mode keymap, extent-local keymap, etc.
-
-** INCOMPATIBLE CHANGE **: The modifier key "Symbol" has
-been renamed to "Alt", for compatibility with the rest of the world.
-Keep in mind that on many keyboards, the key labelled "Alt" actually
-generates the "Meta" modifier.  (On Sun keyboards, however, the key
-labelled "Alt" does indeed generate the "Alt" modifier, and the key
-labelled with a diamond generates the "Meta" modifier.)
-
-
-
-*** Mouse, Active Region
-------------------------
-
-The mouse internals in mouse.el have been rewritten.  Hooks have been
-provided for easier customization of mouse behavior.  For example, you
-can now easily specify an action to be invoked on single-click
-(i.e. down-up without appreciable motion), double-click, drag-up, etc.
-
-Some code from GNU Emacs has been ported over, generalizing some of
-the X-specific mouse stuff.
-
-** INCOMPATIBLE CHANGE **: The function `set-mouse-position' accepts
-a window instead of a frame.
-
-New function `mouse-position' that obsoletes and is more powerful than
-`read-mouse-position'.
-
-New functions `mouse-pixel-position' and `set-mouse-pixel-position' for
-working with pixels instead of characters.
-
-The active (Zmacs) region is now highlighted using the `zmacs-region-face'
-instead of the `primary-selection-face'; this generalizes what used
-to be X-specific.
-
-New functions `region-active-p', `region-exists-p', and `activate-region'
-provide a uniform API for dealing with the region irrespective of
-whether the variable `zmacs-regions' is set.
-
-XEmacs is now a better X citizen with respect to the primary selection:
-it does not stomp on the primary selection quite so much.  This makes
-things more manageable if you set `zmacs-regions' to nil.
-
-
-
-*** Processes
--------------
-
-Various process race conditions and bugs have been fixed.  Problems
-with process termination not getting noticed until much later (if at
-all) should be gone now, as well as problems with zombie processes
-under some systems.
-
-SOCKS support is now included.  SOCKS is a package that allows hosts
-behind a firewall to gain full access to the Internet without
-requiring direct IP reachability.
-
-
-
-*** Windows
------------
-
-Windows 95 is still not out yet.
-
-** INCOMPATIBLE CHANGE **: The functions `locate-window-from-coordinates'
-and `window-edges' have been eliminated.  It no longer makes sense to
-work with windows in terms of character positions, because windows can
-(and often do) have many differently-sized fonts in them, because the
-3-D modeline is not exactly one line high, etc.
-
-The new functions `window-pixel-edges', `window-highest-p',
-`window-lowest-p', `frame-highest-window', and `frame-lowest-window'
-are provided as substitutes for the above-mentioned, deleted
-functions.
-
-The function `window-end' now takes an optional GUARANTEE argument
-that will ensure that the value is actually correct as of the next
-redisplay.
-
-The window code has been merged with GNU Emacs 19.28, providing
-improved functionality for many functions.
-
-
-
-*** System-Specific Information
--------------------------------
-
-Georg Nikodym's dynodump package is provided, for proper unexec()ing
-on Solaris systems.  Executables built on Solaris 2.3 can now run on
-Solaris 2.4 without crashing; similarly with executables built on one
-type of Sun machine and run on another.
-
-AIX 4.x is supported.
-
-The NeXTstep operating system is supported in TTY mode (this is still
-in beta).  There are plans to port XEmacs to the NeXTstep window
-system, but it may be awhile before this is complete.
-
-Problems with the `round' function causing arithmetic errors on HPUX 9
-have been fixed.
-
-You can now build XEmacs as an ELF executable on Linux systems that
-support ELF.
-
-Various other new system configurations are supported.
-
-
-
-*** Packages
-------------
-
-Most packages have been updated to the latest available versions.
-
-
-Some of the new Emacs Lisp packages ---
-
-Hyperbole: the everyday information manager.  Provides a Rolodex,
-	   allows links to be embedded in text, etc.
-
-OOBR: a sophisticated class browser for object-oriented languages.
-
-viper: a better VI emulator that allows Emacs and VI features
-       to coexist happily.
-
-hm--html-menus: a sophisticated package for editing HTML code,
-		from Heiko Muenkel.
-
-ksh-mode.el: for editing shell scripts.
-
-lazy-lock.el: a lazy, on-the-fly fontifier.
-
-paren.el: an improved matching paren highlighter
-
-
-
-Major changes to existing packages --
-
-VM: has a toolbar, many other nice features.
-
-w3: has a toolbar, many other nice features.
-
-ediff: provides three-way merging, has a better user interface.
-
-info: has a toolbar.
-
-highlight-headers.el: now highlights URL's and makes them active so
-		      that when clicked either Netscape 1.1 is called
-		      or Emacs W3 is run.
-
-
-** Major Differences Between 19.10 and 19.11
-============================================
-  
-The name has changed from "Lucid Emacs" to "XEmacs".  Along with this is a
-new canonical ftp site: cs.uiuc.edu:/pub/xemacs.
-
-XEmacs now has its very own World Wide Web page!  It contains a
-complete list of the FTP distribution sites, the most recent FAQ,
-pointers to Emacs Lisp packages not included with the distribution, and
-other useful stuff.  Check it out at http://xemacs.cs.uiuc.edu/.
-
-A preliminary New Users Guide.
-
-cc-mode.el now provides the default C, C++ and Objective-C modes.
-
-The primary goal of this release is stability.  Very few new features have
-been introduced but lots of bugs have been fixed.  Many of the Emacs Lisp
-packages have been updated.
-
-Some of the new Emacs Lisp packages ---
-
-tcl-mode.el:  major mode for editing TCL code
-
-fast-lock.el: saves and restores font-lock highlighting, greatly
-            reducing the time necessary for loading a font-lock'ed
-            file
-
-ps-print.el: prints buffers to Postscript printers preserving the
-           buffer's bold and italic text attributes
-
-toolbar.el: provides a "fake" toolbar for use with XEmacs (an
-          integrated one will be included with 19.12)
-
-
-** Major Differences Between 19.9 and 19.10
-===========================================
-
-The GNU `configure' system is now used to build lemacs.
-
-The Emacs Manual and Emacs Lisp Reference Manual now document version 19.10.
-If you notice any errors, please let us know.
-
-When pixmaps are displayed in a buffer, they contribute to the line height -
-that is, if the glyph is taller than the rest of the text on the line, the
-line will be as tall as necessary to display the glyph.
-
-In addition to using arbitrary sound files as emacs beeps, one can control
-the pitch and duration of the standard X beep, on X servers which allow that
-(Note: most don't.)
-
-There is support for playing sounds on systems with NetAudio servers.
-
-Minor modes may have mode-specific key bindings; keymaps may have an arbitrary
-number of parent maps.
-
-Menus can have toggle and radio buttons in them.
-
-There is a font selection menu.
-
-Some default key bindings have changed to match FSF19; the new bindings are
-
-  Screen-related commands:
-        C-x 5 2                 make-screen
-        C-x 5 0                 delete-screen
-        C-x 5 b                 switch-to-buffer-other-screen
-        C-x 5 f                 find-file-other-screen
-        C-x 5 C-f               find-file-other-screen
-        C-x 5 m                 mail-other-screen
-        C-x 5 o                 other-screen
-        C-x 5 r                 find-file-read-only-other-screen
-  Abbrev-related commands:
-        C-x a l                 add-mode-abbrev
-        C-x a C-a               add-mode-abbrev
-        C-x a g                 add-global-abbrev
-        C-x a +                 add-mode-abbrev
-        C-x a i g               inverse-add-global-abbrev
-        C-x a i l               inverse-add-mode-abbrev
-        C-x a -                 inverse-add-global-abbrev
-        C-x a e                 expand-abbrev
-        C-x a '                 expand-abbrev
-  Register-related commands:
-        C-x r C-SPC             point-to-register
-        C-x r SPC               point-to-register
-        C-x r j                 jump-to-register
-        C-x r s                 copy-to-register
-        C-x r x                 copy-to-register
-        C-x r i                 insert-register
-        C-x r g                 insert-register
-        C-x r r                 copy-rectangle-to-register
-        C-x r c                 clear-rectangle
-        C-x r k                 kill-rectangle
-        C-x r y                 yank-rectangle
-        C-x r o                 open-rectangle
-        C-x r t                 string-rectangle
-        C-x r w                 window-configuration-to-register
-  Narrowing-related commands:
-        C-x n n                 narrow-to-region
-        C-x n w                 widen
-  Other changes:
-        C-x 3                   split-window-horizontally (was undefined)
-        C-x -                   shrink-window-if-larger-than-buffer
-        C-x +                   balance-windows
-
-The variable allow-deletion-of-last-visible-screen has been removed, since 
-it was widely hated.  You can now always delete the last visible screen if
-there are other iconified screens in existence.
-
-ToolTalk support is provided.
-
-An Emacs screen can be placed within an "external client widget" managed
-by another application.  This allows an application to use an Emacs screen
-as its text pane rather than the standard Text widget that is provided
-with Motif or Athena.
-
-Additional compatibility with Epoch is provided (though this is not yet
-complete.)
-
-
-** Major Differences Between 19.8 and 19.9
-==========================================
-
-Scrollbars!  If you have Motif, these are real Motif scrollbars; otherwise,
-Athena scrollbars are used.  They obey all the usual resources of their
-respective toolkits.
-
-There is now an implementation of dialog boxes based on the Athena
-widgets, as well as the existing Motif implementation.
-
-This release works with Motif 1.2 as well as 1.1.  If you link with Motif, 
-you do not also need to link with Athena.
-
-If you compile lwlib with both USE_MOTIF and USE_LUCID defined (which is the
-recommended configuration) then the Lucid menus will draw text using the Motif
-string-drawing library, instead of the Xlib one.  The reason for this is that
-one can take advantage of the XmString facilities for including non-Latin1
-characters in resource specifications.  However, this is a user-visible change
-in that, in this configuration, the menubar will use the "*fontList" resource 
-in preference to the "*font" resource, if it is set.
-
-It's possible to make extents which are copied/pasted by kill and undo.
-There is an implementation of FSF19-style text properties based on this.
-
-There is a new variable, minibuffer-max-depth, which is intended to circumvent
-a common source of confusion among new Emacs users.  Since, under a window
-system, it's easy to jump out of the minibuffer (by doing M-x, then getting
-distracted, and clicking elsewhere) many, many novice users have had the
-problem of having multiple minibuffers build up, even to the point of
-exhausting the lisp stack.  So the default behavior is to disallow the
-minibuffer to ever be reinvoked while active; if you attempt to do so, you
-will be prompted about it.
-
-There is a new variable, teach-extended-commands-p, which if set, will cause
-`M-x' to remind you of any key bindings of the command you just invoked the
-"long way."
-
-There are menus in Dired, Tar, Comint, Compile, and Grep modes.
-
-There is a menu of window management commands on the right mouse button over
-the modelines.
-
-Popup menus now have titles at the top; this is controlled by the new 
-variable `popup-menu-titles'.
-
-The `Find' key on Sun keyboards will search for the next (or previous)
-occurrence of the selected text, as in OpenWindows programs.
-
-The `timer' package has been renamed to `itimer' to avoid a conflict with
-a different package called `timer'.
-
-VM 5.40 is included.
-
-W3, the emacs interface to the World Wide Web, is included.
-
-Felix Lee's GNUS speedups have been installed, including his new version of
-nntp.el which makes GNUS efficiently utilize the NNTP XOVER command if
-available (which is much faster.)  
-
-GNUS should also be much friendlier to new users: it starts up much faster,
-and doesn't (necessarily) subscribe you to every single newsgroup.
-
-The byte-compiler issues a new class of warnings: variables which are
-bound but not used.  This is merely an advisory, and does not mean the
-code is incorrect; you can disable these warnings in the usual way with
-the `byte-compiler-options' macro.
-
-the `start-open' and `end-open' extent properties, for specifying whether
-characters inserted exactly at a boundary of an extent should go into the
-extent or out of it, now work correctly.
-
-The `extent-data' slot has been generalized/replaced with a property list,
-so it's easier to attach arbitrary data to extent objects.
-
-The `event-modifiers' and `event-modifier-bits' functions work on motion
-events as well as other mouse and keyboard events.
-
-Forms-mode uses fonts and read-only regions.
-
-The behavior of the -geometry command line option should be correct now.
-
-The `iconic' screen parameter works when passed to x-create-screen.
-
-The user's manual now documents Lucid Emacs 19.9.
-
-The relocating buffer allocator is turned on by default; this means that when
-buffers are killed, their storage will be returned to the operating system, 
-and the size of the emacs process will shrink.
-
-CAVEAT: code which contains calls to certain `face' accessor functions will
-need to be recompiled by version 19.9 before it will work.  The functions
-whose callers must be recompiled are: face-font, face-foreground,
-face-background, face-background-pixmap, and face-underline-p.  The symptom
-of this problem is the error "Wrong type argument, arrayp, #<face ... >".
-The .elc files generated by version 19.9 will work in 19.6 and 19.8, but
-older .elc files which contain calls to these functions will not work in 19.9.
-
-Work In Progress:
-
- - We have been in the process of internationalizing Lucid Emacs.  This code is
-   ***not*** ready for general use yet.  However, the code is included (and
-   turned off by default) in this release.
-
-   - If you define I18N2 at compile-time, then sorting/collation will be done
-     according to the locale returned by setlocale().
-
-   - If you define I18N3 at compile-time, then all messages printed by lemacs
-     will be filtered through the gettext() library routine, to enable the use
-     of locale-specific translation catalogues.  The current implementation of
-     this is quite dependent on Solaris 2, and has a very large impact on 
-     existing code, therefore we are going to be making major changes soon.
-     (You'll notice calls to `gettext' and `GETTEXT' scattered around much of
-     the lisp and C code; ignore it, this will be going away.)
-
-   - If you define I18N4 at compile-time, then lemacs will internally use a
-     wide representation of characters, enabling the use of large character
-     sets such as Kanji.  This code is very OS dependent: it requires X11R5, 
-     and several OS-supplied library routines for reading and writing wide
-     characters (getwc(), putwc(), and a few others.)  Performance is also a
-     problem.  This code is also scheduled for a major overhaul, with the
-     intent of improving performance and portability.  
-
-     Our eventual goal is to merge with MULE, or at least provide the same base
-     level of functionality.  If you would like to help out with this, let us 
-     know.
-
- - Other work-in-progress includes Motif drag-and-drop support, ToolTalk 
-   support, and support for embedding an Emacs widget inside another 
-   application (where it can function as that other application's text-entry
-   area).  This code has not been extensively tested, and may (or may not)
-   have portability problems, but it's there for the adventurous.  Comments, 
-   suggestions, bug reports, and especially fixes are welcome.  But have no
-   expectations that this experimental code will work at all.
-
-
-** Major Differences Between 19.6 and 19.8
-==========================================
-
-There were almost no differences between versions 19.6 and 19.7; version 19.7
-was a bug-fix release that was distributed with Energize 2.1.
-
-Lucid Emacs 19.8 represents the first stage of the Lucid Emacs/Epoch merger.
-The redisplay engine now in lemacs is an improved descendant of the Epoch
-redisplay.  As a result, many bugs have been eliminated, and several disabled
-features have been re-enabled.  Notably:
-
-Selective display (and outline-mode) work.
-
-Horizontally split windows work.
-
-The height of a line is the height of the tallest font displayed on that line;
-it is possible for a screen to display lines of differing heights. (Previously,
-the height of all lines was the height of the tallest font loaded.)
-
-There is lisp code to scale fonts up and down, for example, to load the next-
-taller version of a font.
-
-There is a new internal representation for lisp objects, giving emacs-lisp 28
-bit integers and a 28 bit address space, up from the previous maximum of 26.
-We expect eventually to increase this to 30 bit integers and a 32 bit address
-space, eliminating the need for DATA_SEG_BITS on some architectures.  (On 64
-bit machines, add 32 to all of these numbers.)
-
-GC performance is improved.
-
-Various X objects (fonts, colors, cursors, pixmaps) are accessible as first-
-class lisp objects, with finalization.
-
-An alternate interface to embedding images in the text is provided, called
-"annotations."  You may create an "annotation margin" which is whitespace at
-the left side of the screen that contains only annotations, not buffer text.
-
-When using XPM files, one can specify the values of logical color names to be
-used when loading the files.
-
-It is possible to resize windows by dragging their modelines up and down.  More
-generally, it is possible to add bindings for mouse gestures on the modelines.
-
-There is support for playing sound files on HP machines.
-
-ILISP version 5.5 is included.
-
-The Common Lisp #' read syntax is supported (#' is to "function" as ' is to
-"quote".)
-
-The `active-p' slot of menu items is now evaluated, so one can put arbitrary
-lisp code in a menu to decide whether that item should be selectable, rather
-than doing this with an `activate-menubar-hook'.
-
-The X resource hierarchy has changed slightly, to be more consistent.  It used
-to be
-        argv[0]                 SCREEN-NAME     pane    screen
-        ApplicationShell        EmacsShell      Paned   EmacsFrame
-
-   now it is
-
-        argv[0]                 shell           pane    SCREEN-NAME
-        ApplicationShell        EmacsShell      Paned   EmacsFrame
-
-The Lucid Emacs sources have been largely merged with FSF version 19; this
-means that the lisp library contains the most recent releases of various
-packages, and many new features of FSF 19 have been incorporated.
-
-Because of this, the lemacs sources should also be substantially more portable.
-
-
-** Major Differences Between 19.4 and 19.6
-==========================================
-
-There were almost no differences between versions 19.4 and 19.5; we fixed
-a few minor bugs and repacked 19.4 as 19.5 for a CD-ROM that we gave away
-as a trade show promotion.
-
-The primary goal of the 19.6 release is stability, rather than improved
-functionality, so there aren't many user-visible changes.  The most notable
-changes are:
-
- - The -geometry command-line option now correctly overrides geometry
-   specifications in the resource database.
- - The `width' and `height' screen-parameters work.
- - Font-lock-mode considers the comment start and end characters to be
-   a part of the comment.
- - The lhilit package has been removed.  Use font-lock-mode instead.
- - vm-isearch has been fixed to work with isearch-mode.
- - new versions of ispell and calendar.
- - sccs.el has menus.
-
-Lots of bugs were fixed, including the problem that lemacs occasionally
-grabbed the keyboard focus.
-
-Also, as of Lucid Emacs 19.6 and Energize 2.0 (shipping now) it is possible
-to compile the public release of Lucid Emacs with support for Energize; so
-now Energize users will be able to build their own Energize-aware versions
-of lemacs, and will be able to use newer versions of lemacs as they are
-released to the net.  (Of course, this is not behavior covered by your
-Energize support contract; you do it at your own risk.)
-
-I have not incorporated all portability patches that I have been sent since
-19.4; I will try to get to them soon.  However, if you need to make any
-changes to lemacs to get it to compile on your system, it would be quite
-helpful if you would send me context diffs (diff -c) against version 19.6.
-
-
-** Major Differences Between 19.3 and 19.4
-==========================================
-
-Prototypes have been added for all functions.  Emacs compiles in the strict
-ANSI modes of lcc and gcc, so portability should be vastly improved.
-
-Many many many many core leaks have been plugged, especially in screen 
-creation and deletion.
-
-The float support reworked to be more portable and ANSI conformant.  This
-resulted in these new configuration parameters: HAVE_INVERSE_HYPERBOLIC, 
-HAVE_CBRT, HAVE_RINT, FLOAT_CHECK_ERRNO, FLOAT_CATCH_SIGILL, 
-FLOAT_CHECK_DOMAIN.  Let us know if you had to change the defaults on your
-architecture.
-
-The SunOS unexec has been rewritten, and now works with either static or 
-dynamic libraries, depending on whether -Bstatic or -Bdynamic were specified
-at link-time.
-
-Small (character-sized) bitmaps can be mixed in with buffer text via the new
-functions set-extent-begin-glyph and set-extent-end-glyph.  (This is actually
-a piece of functionality that Energize has been using for a while, but we've
-just gotten around to making it possible to use it without Energize.  See how
-nice we are?  Go buy our product.)
-
-If compiled with Motif support, one can pop up dialog boxes from emacs lisp.
-We encourage someone to contribute Athena an version of this code; it
-shouldn't be much work.  
-
-If dialog boxes are available, then y-or-n-p and yes-or-no-p use dialog boxes
-instead of the minibuffer if invoked as a result of a command that was 
-executed from a menu instead of from the keyboard.
-
-Multiple screen support works better; check out doc of get-screen-for-buffer.
-
-The default binding of backspace is the same as delete.  (C-h is still help.)
-
-A middle click while the minibuffer is active does completion if you click on 
-a highlighted completion, otherwise it executes the global binding of button2.
-
-New versions of Barry Warsaw's c++-mode and syntax.c.  Font-lock-mode works
-with C++ mode now.
-
-The semantics of activate-menubar-hook has changed; the functions are called
-with no arguments now.
-
-`truename' no longer hacks the automounter; use directory-abbrev-alist instead.
-
-Most minibuffer handling has been reimplemented in emacs-lisp.
-
-There is now a builtin minibuffer history mechanism which replaces gmhist.
-
-
-** Major Differences Between 19.2 and 19.3
-==========================================
-
-The ISO characters have correct case and syntax tables now, so the word-motion
-and case-converting commands work sensibly on them.
-
-If you set ctl-arrow to an integer, you can control exactly which characters
-are printable.  (There will be a less crufty way to do this eventually.)
-
-Menubars can now be buffer local; the function set-screen-menubar no longer
-exists.  Look at GNUS and VM for examples of how to do this, or read 
-menubar.el.
-
-When emacs is reading from the minibuffer with completions, any completions
-which are visible on the screen will highlight when the mouse moves over them;
-clicking middle on a completion is the same as typing it at the minibuffer.
-Some implications of this:  The *Completions* buffer is always mousable.  If
-you're using the completion feature of find-tag, your source code will be
-mousable when you type M-.  Dired buffers will be mousable as soon as you 
-type ^X^F.  And so on.
-
-The old isearch code has been replaced with a descendant of Dan LaLiberte's
-excellent isearch-mode; it is more customizable, and generally less bogus.
-You can search for "composed" characters.  There are new commands, too; see
-the doc for ^S, or the NEWS file.
-
-A patched GNUS 3.14 is included.
-
-The user's manual now documents Lucid Emacs 19.3.
-
-A few more modes have mouse and menu support.
-
-The startup code should be a little more robust, and give you more reasonable
-error messages when things aren't installed quite right (instead of the
-ubiquitous "cannot open DISPLAY"...)
-
-Subdirectories of the lisp directory whose names begin with a hyphen or dot
-are not automatically added to the load-path, so you can use this to avoid
-accidentally inflicting experimental software on your users.
-
-I've tried to incorporate all of the portability patches that were sent to
-me; I tried to solve some of the problems in different ways than the 
-patches did, so let me know if I missed something.
-
-Some systems will need to define NEED_STRDUP, NEED_REALPATH, HAVE_DREM, or
-HAVE_REMAINDER in config.h.  Really this should be done in the appropriate
-s- or m- files, but I don't know which systems need these and which don't.
-If yours does, let me know which file it should be in.
-
-Check out these new packages:
-
-blink-paren.el: causes the matching parenthesis to flash on and off whenever
-                the cursor is sitting on a paren-syntax character.
-
-pending-del.el: Certain commands implicitly delete the highlighted region:
-                Typing a character when there is a highlighted region replaces
-                that region with the typed character.
-
-font-lock.el:   A code-highlighting package, driven off of syntax tables, so
-                that it understands block comments, strings, etc.  The 
-                insertion hook is used to fontify text as you type it in.
-
-shell-font.el:  Displays your shell-buffer prompt in boldface.
-
-* The History of XEmacs
-=======================
-
-This product is an extension of GNU Emacs, previously known to some as
-"Lucid Emacs" or "ERA".  It was initially based on an early version of Emacs
-Version 19 from the Free Software Foundation and has since been kept
-up-to-date with recent versions of that product.  It stems from a
-collaboration of Lucid, Inc. with SunSoft DevPro (a division of Sun
-Microsystems, Inc.; formerly called SunPro) and the University of Illinois.
-
-NOTE: Lucid, Inc. is currently out of business but development on XEmacs
-continues strong.  Recently, Amdahl Corporation and INS Engineering have
-both contributed significantly to the development of XEmacs.
-
-
-* What's Different?
-===================
-
-
-** Differences between XEmacs and GNU Emacs 19
-==================================================
-In XEmacs 20, characters are first-class objects.  Characters can be
-converted to integers, but are not integers.  FSF 19, XEmacs 19, and Mule
-represent them as integers.
-
-In XEmacs, events are first-class objects.  FSF 19 represents them as
-integers, which obscures the differences between a key gesture and the
-ancient ASCII code used to represent a particular overlapping subset of them.
-
-In XEmacs, keymaps are first-class opaque objects.  FSF 19 represents them as
-complicated combinations of association lists and vectors.  If you use the
-advertised functional interface to manipulation of keymaps, the same code
-will work in XEmacs, Emacs 18, and GNU Emacs 19; if your code depends
-on the underlying implementation of keymaps, it will not.
-
-XEmacs uses "extents" to represent all non-textual aspects of buffers;
-FSF 19 uses two distinct objects, "text properties" and "overlays",
-which divide up the functionality between them.  Extents are a
-superset of the functionality of the two FSF data types.  The full FSF
-19 interface to text properties and overlays is supported in XEmacs
-(with extents being the underlying representation).
-
-Extents can be made to be copied into strings, and thus restored by kill
-and yank.  Thus, one can specify this behavior on either "extents" or
-"text properties", whereas in FSF 19 text properties always have this
-behavior and overlays never do.
-
-Many more packages are provided standard with XEmacs than with FSF 19.
-
-Images of arbitrary size can be embedded in a buffer.
-
-Variable width fonts work.
-
-The height of a line is the height of the tallest font on that line, instead
-of all lines having the same height.
-
-XEmacs uses the MIT "Xt" toolkit instead of raw Xlib calls, which
-makes it be a more well-behaved X citizen (and also improves
-portability).  A result of this is that it is possible to include
-other Xt "Widgets" in the XEmacs window.  Also, XEmacs understands the
-standard Xt command-line arguments.
-
-XEmacs provides support for ToolTalk on systems that have it.
-
-XEmacs can ask questions using popup dialog boxes.  Any command executed from
-a menu will ask yes/no questions with dialog boxes, while commands executed
-via the keyboard will use the minibuffer.
-
-XEmacs has a built-in toolbar.  Four toolbars can actually be configured:
-top, bottom, left, and right toolbars.
-
-XEmacs has vertical and horizontal scrollbars.  Unlike in FSF 19 (which
-provides a primitive form of vertical scrollbar), these are true toolkit
-scrollbars.  A look-alike Motif scrollbar is provided for those who
-don't have Motif. (Even for those who do, the look-alike may be preferable
-as it is faster.)
-
-If you're running on a machine with audio hardware, you can specify sound 
-files for XEmacs to play instead of the default X beep.  See the documentation
-of the function load-sound-file and the variable sound-alist.
-
-An XEmacs frame can be placed within an "external client widget" managed by
-another application.  This allows an application to use an XEmacs frame as its
-text pane rather than the standard Text widget that is provided with Motif or
-Athena.  XEmacs supports Motif applications, generic Xt (e.g. Athena)
-applications, and raw Xlib applications.
-
-Here are some more specifics about the XEmacs implementation:
-
-*** The Input Model
--------------------
-
-The fundamental unit of input is an "event" instead of a character.  An
-event is a new data type that contains several pieces of information.
-There are several kinds of event, and corresponding accessor and utility
-functions.  We tried to abstract them so that they would apply equally
-well to a number of window systems.
-
-NOTE: All timestamps are measured as milliseconds since Emacs started.
-
- key_press_event	
-    event_channel	A token representing which keyboard generated it.
-			For this kind of event, this is a console object.
-    timestamp		When it happened
-    key			What keysym this is; a character or a symbol.
-			If it is a character, it will be a printing
-			ASCII character.
-    modifiers		Bucky-bits on that key: control, meta, etc.
-			For most keys, Shift is not a bit; that is implicit
-			in the keyboard layout.
-
- button_press_event
- button_release_event
-    event_channel	A token representing which mouse generated it.
-			For this kind of event, this is a frame object.
-    timestamp		When it happened
-    button		What button went down or up.
-    modifiers		Bucky-bits on that button: shift, control, meta, etc.
-    x, y		Where it was at the button-state-change (in pixels).
-
- pointer_motion_event
-    event_channel	A token representing which mouse generated it.
-			For this kind of event, this is a frame object.
-    timestamp		When it happened
-    x, y		Where it was after it moved (in pixels).
-    modifiers		Bucky-bits down when the motion was detected.
-			(Possibly not all window systems will provide this?)
-
- process_event
-    timestamp		When it happened
-    process		the emacs "process" object in question
-
- timeout_event
-    timestamp		Now (really, when the timeout was signaled)
-    interval_id		The ID returned when the associated call to
-			add_timeout_cb() was made
-	------ the rest of the fields are filled in by Emacs -----
-    id_number		The Emacs timeout ID for this timeout (more
-			than one timeout event can have the same value
-			here, since Emacs timeouts, as opposed to
-			add_timeout_cb() timeouts, can resignal
-			themselves)
-    function		An elisp function to call when this timeout is
-			processed.
-    object		The object passed to that function.
-
- eval_event
-    timestamp		When it happened
-    function		An elisp function to call with this event object.
-    object		Anything.
-			This kind of event is used internally; sometimes the
-			window system interface would like to inform emacs of
-			some user action (such as focusing on another frame)
-			but needs that to happen synchronously with the other
-			user input, like keypresses.  This is useful when
-			events are reported through callbacks rather
-			than in the standard event stream.
-
- misc_user_event
-    timestamp		When it happened
-    function		An elisp function to call with this event object.
-    object		Anything.
-			This is similar to an eval_event, except that it is
-			generated by user actions: selections in the
-			menubar or scrollbar actions.  It is a "command"
-			event, like key and mouse presses (and unlike mouse
-			motion, process output, and enter and leave window
-			hooks).  In many ways, eval_events are not the same
-			as keypresses or misc_user_events.
-
- magic_event
-			No user-serviceable parts within.  This is for things
-			like KeymapNotify and ExposeRegion events and so on
-			that emacs itself doesn't care about, but which it
-			must do something with for proper interaction with
-			the window system.
-
-			Magic_events are handled somewhat asynchronously, just
-			like subprocess filters.  However, occasionally a 
-			magic_event needs to be handled synchronously; in that
-			case, the asynchronous handling of the magic_event will
-			push an eval_event back onto the queue, which will be 
-			handled synchronously later.  This is one of the
-			reasons why eval_events exist; I'm not entirely happy
-			with this aspect of this event model.
-
-
-The function `next-event' blocks and returns one of the above-described 
-event objects.  The function `dispatch-event' takes an event and processes
-it in the appropriate way.
-
-For a process-event, dispatch-event calls the process's handler; for a
-mouse-motion event, the mouse-motion-handler hook is called, and so on.
-For magic-events, dispatch-event does window-system-dependent things,
-including calling some non-window-system-dependent hooks: map-frame-hook,
-unmap-frame-hook, mouse-enter-frame-hook, and mouse-leave-frame-hook.
-
-The function `next-command-event' calls `next-event' until it gets a key or
-button from the user (that is, not a process, motion, timeout, or magic
-event).  If it gets an event that is not a key or button, it calls
-`dispatch-event' on it immediately and reads another one.  The
-next-command-event function could be implemented in Emacs Lisp, though it
-isn't.  Generally one should call `next-command-event' instead of
-`next-event'.
-
-read-char calls next-command-event; if it doesn't get an event that can be
-converted to an ASCII character, it signals an error.  Otherwise it returns
-an integer.
-
-The variable `last-command-char' always contains an integer, or nil (if the
-last read event has no ASCII equivalent, as when it is a mouse-click or a
-non-ASCII character chord.)
-
-The new variable `last-command-event' holds an event object, that could be
-a non-ASCII character, a button click, a menu selection, etc.
-
-The variable `unread-command-char' no longer exists, and has been replaced
-by `unread-command-events'.  With the new event model, it is incorrect for
-code to do (setq unread-command-char (read-char)), because all user-input
-can't be represented as ASCII characters.  *** This is an incompatible 
-change.  Code which sets `unread-command-char' must be updated to use the
-combination of `next-command-event' and `unread-command-events' instead.
-
-The functions `this-command-keys' and `recent-keys' return a vector of
-event objects, instead of a string of ASCII characters.  *** This also
-is an incompatible change.
-
-Almost nothing happens at interrupt level; the SIGIO handler simply sets a
-flag, and later, the X event queue is scanned for KeyPress events which map
-to ^G.  All redisplay happens in the main thread of the process.
-
-
-*** Keymaps
------------
-
-Instead of keymaps being alists or obarrays, they are a new primary data
-type.  The only user access to the contents of a keymap is through the
-existing keymap-manipulation functions, and a new function, map-keymap.
-This means that existing code that manipulates keymaps may need to 
-be changed.
-
-One of our goals with the new input and keymap code was to make more
-character combinations available for binding, besides just ASCII and
-function keys.  We want to be able bind different commands to Control-a 
-and Control-Shift-a; we also want it to be possible for the keys Control-h
-and Backspace (and Control-M and Return, and Control-I and Tab, etc) to
-be distinct.
-
-One of the most common complaints that new Emacs users have is that backspace
-is help.  The answer is to play around with the keyboard-translate-table, or
-be lucky enough to have a system administrator who has done this for you
-already; but if it were possible to bind backspace and C-h to different
-things, then (under a window manager at least) both backspace and delete
-would delete a character, and ^H would be help.  There's no need to deal 
-with xmodmap, kbd-translate-table, etc.
-
-Here are some more examples: suppose you want to bind one function to Tab, 
-and another to Control-Tab.  This can't be done if Tab and Control-I are the
-same thing.  What about control keys that have no ASCII equivalent, like
-Control-< ?  One might want that to be bound to set-mark-at-point-min.  We
-want M-C-Backspace to be kill-backward-sexp.  But we want M-Backspace to be
-kill-backward-word.  Again, this can't be done if Backspace and C-h are
-indistinguishable.
-
-The user represents keys as a string of ASCII characters (when possible and
-convenient), or as a vector of event objects, or as a vector of "key 
-description lists", that looks like (control a), or (control meta delete) 
-or (shift f1).  The order of the modifier-names is not significant, so
-(meta control x) and (control meta x) are the same.
-
-`define-key' knows how to take any of the above representations and store them
-into a keymap.  When Emacs wants to return a key sequence (this-command-keys,
-recent-keys, keyboard-macros, and read-key-sequence, for example) it returns
-a vector of event objects.  Keyboard macros can also be represented as ASCII
-strings or as vectors of key description lists.  
-
-This is an incompatible change: code which calls `this-command-keys',
-`recent-keys', `read-key-sequence', or manipulates keyboard-macros probably
-needs to be changed so that it no longer assumes that the returned value is a
-string.
-
-Control-Shift-a is specified as (control A), not (control shift a), since A
-is a two-case character.  But for keys that don't have an upper case
-version, like F1, Backspace, and Escape, you use the (shift backspace) syntax.
-
-See the doc string for our version of define-key, reproduced below in the
-`Changed Functions' section.  Note that when the KEYS argument is a string,
-it has the same semantics as the v18 define-key.
-
-
-*** Xt Integration
-------------------
-
-The heart of the event loop is implemented in terms of the Xt event functions
-(specifically XtAppProcessEvent), and uses Xt's concept of timeouts and
-file-descriptor callbacks, eliminating a large amount of system-dependent code
-(Xt does it for you.)
-
-If Emacs is compiled with support for X, it uses the Xt event loop even when
-Emacs is not running on an X display (the Xt event loop supports this).  This
-makes it possible to run Emacs on a dumb TTY, and later connect it to one or
-more X servers.  It should also be possible to later connect an existing Emacs
-process to additional TTY's, although this code is still experimental.  (Our
-intent at this point is not to have an Emacs that is being used by multiple
-people at the same time: it is to make it possible for someone to go home, log
-in on a dialup line, and connect to the same Emacs process that is running
-under X in their office without having to recreate their buffer state and so
-on.)
-
-If Emacs is not compiled with support for X, then it instead uses more general
-code, something like what v18 does; but this way of doing things is a lot more
-modular.
-
-(Linking Emacs with Xt seems to only add about 300k to the executable size,
-compared with an Emacs linked with Xlib only.)
-
-
-*** Region Highlighting
------------------------
-
-If the variable `zmacs-regions' is true, then the region between point and
-mark will be highlighted when "active".  Those commands which push a mark
-(such as C-SPC, and C-x C-x) make the region become "active" and thus
-highlighted.  Most commands (all non-motion commands, basically) cause it to
-become non-highlighted (non-"active").  Commands that operate on the region
-(such as C-w, C-x C-l, etc.) only work if the region is in the highlighted
-state.
-
-zmacs-activate-region-hook and zmacs-deactivate-region-hook are run at the
-appropriate times; under X, zmacs-activate-region-hook makes the X selection
-be the region between point and mark, thus doing two things at once: making
-the region and the X selection be the same; and making the region highlight
-in the same way as the X selection.
-
-If `zmacs-regions' is true, then the `mark-marker' command returns nil unless
-the region is currently in the active (highlighted) state.  With an argument
-of t, this returns the mark (if there is one) regardless of the active-region
-state.  You should *generally* not use the mark unless the region is active,
-if the user has expressed a preference for the active-region model.  Watch
-out!  Moving this marker changes the mark position.  If you set the marker not
-to point anywhere, the buffer will have no mark.
-
-In this way, the primary selection is a fairly transitory entity; but
-when something is copied to the kill ring, it is made the Clipboard
-selection.  It is also stored into CUT_BUFFER0, for compatibility with
-X applications that don't understand selections (like Emacs18).
-
-Compatibility note: if you have code which uses (mark) or (mark-marker),
-then you need to either: change those calls to (mark t) or (mark-marker t);
-or simply bind `zmacs-regions' to nil around the call to mark or mark-marker.
-This is probably the best solution, since it will work in Emacs 18 as well.
-
-
-*** Menubars and Dialog Boxes
------------------------------
-
-Here is an example of a menubar definition:
-
-(defvar default-menubar
-  '(("File"     ["Open File..."         find-file               t]
-                ["Save Buffer"          save-buffer             t]
-                ["Save Buffer As..."    write-file              t]
-                ["Revert Buffer"        revert-buffer           t]
-                "-----"
-                ["Print Buffer"         lpr-buffer              t]
-                "-----"
-                ["Delete Frame"         delete-frame            t]
-                ["Kill Buffer..."       kill-buffer             t]
-                ["Exit Emacs"           save-buffers-kill-emacs t]
-                )
-    ("Edit"     ["Undo"                 advertised-undo         t]
-                ["Cut"                  kill-primary-selection  t]
-                ["Copy"                 copy-primary-selection  t]
-                ["Paste"                yank-clipboard-selection t]
-                ["Clear"                delete-primary-selection t]
-                )
-    ...))
-
-The first element of each menu item is the string to print on the menu.
-
-The second element is the callback function; if it is a symbol, it is
-invoked with `call-interactively.'  If it is a list, it is invoked with
-`eval'.  
-
-If the second element is a symbol, then the menu also displays the key that
-is bound to that command (if any).
-
-The third element of the menu items determines whether the item is selectable.
-It may be t, nil, or a form to evaluate.  Also, a hook is run just before a
-menu is exposed, which can be used to change the value of these slots. 
-For example, there is a hook that makes the "undo" menu item be selectable
-only in the cases when `advertised-undo' would not signal an error.  
-
-Menus may have other menus nested within them; they will cascade.
-
-There are utility functions for adding items to menus, deleting items,
-disabling them, etc.
-
-The function `popup-menu' takes a menu description and pops it up.  
-
-The function `popup-dialog-box' takes a dialog-box description and pops 
-it up.  Dialog box descriptions look a lot like menu descriptions.
-
-The menubar, menu, and dialog-box code is implemented as a library, 
-with an interface which hides the toolkit that implements it.  
-
-
-*** Isearch Changes
--------------------
-
-Isearch has been reimplemented in a different way, adding some new features,
-and causing a few incompatible changes.
-
- -  the old isearch-*-char variables are no longer supported.  In the old
-    system, one could make ^A mean "repeat the search" by doing something
-    like (setq search-repeat-char ?C-a).  In the new system, this is 
-    accomplished with 
-
-       (define-key isearch-mode-map "\C-a" 'isearch-repeat-forward)
-
- -  The advantage of using the normal keymap mechanism for this is that you
-    can bind more than one key to an isearch command: for example, both C-a
-    and C-s could do the same thing inside isearch mode.  You can also bind
-    multi-key sequences inside of isearch mode, and bind non-ASCII keys.
-    For example, to use the F1 key to terminate a search:
-
-       (define-key isearch-mode-map 'f1 'isearch-exit)
-
-    or to make ``C-c C-c'' terminate a search:
-
-       (define-key isearch-mode-map "\C-c\C-c" 'isearch-exit)
-
- -  If isearch is behaving case-insensitively (the default) and you type an
-    upper case character, then the search will become case-sensitive.  This
-    can be disabled by setting `search-caps-disable-folding' to nil.
-
- -  There is a history ring of the strings previously searched for; typing
-    M-p or M-n while searching will cycle through this ring.  Typing M-TAB
-    will do completion across the set of items in the history ring.
-
- -  The ESC key is no longer used to terminate an incremental search.  The
-    RET key should be used instead.  This change is necessary for it to be
-    possible to bind "meta" characters to isearch commands.
-
-
-*** Startup Code Changes
-------------------------
-
-The initial X frame is mapped before the user's .emacs file is executed.
-Without this, there is no way for the user to see any error messages
-generated by their .emacs file, any windows created by the .emacs file
-don't show up, and the copyleft notice isn't shown.
-
-The default values for load-path, exec-path, lock-directory, and
-Info-directory-list are not (necessarily) built into Emacs, but are
-computed at startup time.  
-
-First, Emacs looks at the directory in which its executable file resides:
-
-  o  If that directory contains subdirectories named "lisp" and "lib-src",
-     then those directories are used as the lisp library and exec directory.
-
-  o  If the parent of the directory in which the emacs executable is located
-     contains "lisp" and "lib-src" subdirectories, then those are used.
-
-  o  If ../lib/xemacs-<version> (starting from the directory in which the
-     emacs executable is located) contains a "lisp" subdirectory and either
-     a "lib-src" subdirectory or a <configuration-name> subdirectory, then
-     those are used.
-
-  o  If the emacs executable that was run is a symbolic link, then the link
-     is chased, and the resultant directory is checked as above.
-
-(Actually, it doesn't just look for "lisp/", it looks for "lisp/prim/",
-which reduces the chances of a false positive.)
-
-If the lisp directory contains subdirectories, they are added to the default
-load-path as well.  If the site-lisp directory exists and contains
-subdirectories, they are then added.  Subdirectories whose names begin with
-a dot or a hyphen are not added to the load-path.
-
-These heuristics fail if the Emacs binary was copied from the main Emacs
-tree to some other directory, and links for the lisp directory were not put
-in.  This isn't much of a restriction: either make there be subdirectories
-(or symbolic links) of the directory of the emacs executable, or make the
-"installed" emacs executable be a symbolic link to an executable in a more
-appropriate directory structure.  For example, this setup works:
-
-    /usr/local/xemacs/xemacs*           ; The executable.
-    /usr/local/xemacs/lisp/             ; The associated directories.
-    /usr/local/xemacs/etc/              ; Any of the files in this list
-    /usr/local/xemacs/lock/             ; could be symbolic links as well.
-    /usr/local/xemacs/info/
-
-As does this:
-
-    /usr/local/bin/xemacs -> ../xemacs/src/xemacs-19.14 ; A link...
-    /usr/local/xemacs/src/xemacs-19.14*                 ; The executable,
-    /usr/local/xemacs/lisp/                             ; and the rest of
-    /usr/local/xemacs/etc/                              ; the source tree
-    /usr/local/xemacs/lock/
-    /usr/local/xemacs/info/
-
-This configuration might be used for a multi-architecture installation; assume
-that $LOCAL refers to a directory which contains only files specific to a 
-particular architecture (i.e., executables) and $SHARED refers to those files 
-which are not machine specific (i.e., lisp code and documentation.)
-
-    $LOCAL/bin/xemacs@ -> $LOCAL/xemacs-19.14/xemacs*
-    $LOCAL/xemacs-19.14/lisp@ -> $SHARED/xemacs-19.14/lisp/
-    $LOCAL/xemacs-19.14/etc@  -> $SHARED/xemacs-19.14/etc/
-    $LOCAL/xemacs-19.14/info@ -> $SHARED/xemacs-19.14/info/
-
-The following would also work, but the above is probably more attractive:
-
-    $LOCAL/bin/xemacs*
-    $LOCAL/bin/lisp@ -> $SHARED/xemacs-19.14/lisp/
-    $LOCAL/bin/etc@  -> $SHARED/xemacs-19.14/etc/
-    $LOCAL/bin/info@ -> $SHARED/xemacs-19.14/info/
-
-If Emacs can't find the requisite directories, it writes a message like this
-(or some appropriate subset of it) to stderr:
-
-  WARNING:
-  couldn't find an obvious default for load-path, exec-directory, and
-  lock-directory, and there were no defaults specified in paths.h when
-  Emacs was built.  Perhaps some directories don't exist, or the Emacs
-  executable, /cadillac-th/jwz/somewhere/xemacs is in a strange place?
-
-  Without both exec-directory and load-path, Emacs will be very broken.
-  Consider making a symbolic link from /cadillac-th/jwz/somewhere/etc
-  to wherever the appropriate Emacs etc/ directory is, and from
-  /cadillac-th/jwz/somewhere/lisp/ to wherever the appropriate Emacs
-  lisp library is.
-
-  Without lock-directory set, file locking won't work.  Consider
-  creating /cadillac-th/jwz/somewhere/lock as a directory or symbolic
-  link for use as the lock directory.
-
-The default installation tree is the following:
-
-    /usr/local/bin/b2m                          ;
-                   ctags                        ; executables that
-                   emacsclient                  ; should be in
-                   etags                        ; user's path
-                   xemacs -> xemacs-<version>   ;
-                   xemacs                       ;
-    /usr/local/lib/xemacs/site-lisp
-    /usr/local/lib/xemacs/lock
-    /usr/local/lib/xemacs-<version>/etc         ; architecture ind. files
-    /usr/local/lib/xemacs-<version>/info
-    /usr/local/lib/xemacs-<version>/lisp
-    /usr/local/lib/xemacs-<version>/<configuration>  ; binaries emacs may run
-
-
-*** X Resources
----------------
-
-(Note: This section is copied verbatim from the XEmacs Reference Manual.)
-
-   The Emacs resources are generally set per-frame. Each Emacs frame
-can have its own name or the same name as another, depending on the
-name passed to the `make-frame' function.
-
-   You can specify resources for all frames with the syntax:
-
-     Emacs*parameter: value
-
-or
-
-     Emacs*EmacsFrame.parameter:value
-
-You can specify resources for a particular frame with the syntax:
-
-     Emacs*FRAME-NAME.parameter: value
-
-
-**** Geometry Resources
------------------------
-
-   To make the default size of all Emacs frames be 80 columns by 55
-lines, do this:
-
-     Emacs*EmacsFrame.geometry: 80x55
-
-To set the geometry of a particular frame named `fred', do this:
-
-     Emacs*fred.geometry: 80x55
-
-Important! Do not use the following syntax:
-
-     Emacs*geometry: 80x55
-
-You should never use `*geometry' with any X application. It does not
-say "make the geometry of Emacs be 80 columns by 55 lines."  It really
-says, "make Emacs and all subwindows thereof be 80x55 in whatever units
-they care to measure in."  In particular, that is both telling the
-Emacs text pane to be 80x55 in characters, and telling the menubar pane
-to be 80x55 pixels, which is surely not what you want.
-
-   As a special case, this geometry specification also works (and sets
-the default size of all Emacs frames to 80 columns by 55 lines):
-
-     Emacs.geometry: 80x55
-
-since that is the syntax used with most other applications (since most
-other applications have only one top-level window, unlike Emacs).  In
-general, however, the top-level shell (the unmapped ApplicationShell
-widget named `Emacs' that is the parent of the shell widgets that
-actually manage the individual frames) does not have any interesting
-resources on it, and you should set the resources on the frames instead.
-
-   The `-geometry' command-line argument sets only the geometry of the
-initial frame created by Emacs.
-
-   A more complete explanation of geometry-handling is
-
-   * The `-geometry' command-line option sets the `Emacs.geometry'
-     resource, that is, the geometry of the ApplicationShell.
-
-   * For the first frame created, the size of the frame is taken from
-     the ApplicationShell if it is specified, otherwise from the
-     geometry of the frame.
-
-   * For subsequent frames, the order is reversed: First the frame, and
-     then the ApplicationShell.
-
-   * For the first frame created, the position of the frame is taken
-     from the ApplicationShell (`Emacs.geometry') if it is specified,
-     otherwise from the geometry of the frame.
-
-   * For subsequent frames, the position is taken only from the frame,
-     and never from the ApplicationShell.
-
-   This is rather complicated, but it does seem to provide the most
-intuitive behavior with respect to the default sizes and positions of
-frames created in various ways.
-
-
-**** Iconic Resources
----------------------
-
-   Analogous to `-geometry', the `-iconic' command-line option sets the
-iconic flag of the ApplicationShell (`Emacs.iconic') and always applies
-to the first frame created regardless of its name.  However, it is
-possible to set the iconic flag on particular frames (by name) by using
-the `Emacs*FRAME-NAME.iconic' resource.
-
-
-**** Resource List
-------------------
-
-   Emacs frames accept the following resources:
-
-`geometry' (class `Geometry'): string
-     Initial geometry for the frame.  *Note Geometry Resources:: for a
-     complete discussion of how this works.
-
-`iconic' (class `Iconic'): boolean
-     Whether this frame should appear in the iconified state.
-
-`internalBorderWidth' (class `InternalBorderWidth'): int
-     How many blank pixels to leave between the text and the edge of the
-     window.
-
-`interline' (class `Interline'): int
-     How many pixels to leave between each line (may not be
-     implemented).
-
-`menubar' (class `Menubar'): boolean
-     Whether newly-created frames should initially have a menubar.  Set
-     to true by default.
-
-`initiallyUnmapped' (class `InitiallyUnmapped'): boolean
-     Whether XEmacs should leave the initial frame unmapped when it
-     starts up.  This is useful if you are starting XEmacs as a server
-     (e.g. in conjunction with gnuserv or the external client widget).
-     You can also control this with the `-unmapped' command-line option.
-
-`barCursor' (class `BarColor'): boolean
-     Whether the cursor should be displayed as a bar, or the
-     traditional box.
-
-`textPointer' (class `Cursor'): cursor-name
-     The cursor to use when the mouse is over text.  This resource is
-     used to initialize the variable `x-pointer-shape'.
-
-`selectionPointer' (class `Cursor'): cursor-name
-     The cursor to use when the mouse is over a selectable text region
-     (an extent with the `highlight' property; for example, an Info
-     cross-reference).  This resource is used to initialize the variable
-     `x-selection-pointer-shape'.
-
-`spacePointer' (class `Cursor'): cursor-name
-     The cursor to use when the mouse is over a blank space in a buffer
-     (that is, after the end of a line or after the end-of-file).  This
-     resource is used to initialize the variable
-     `x-nontext-pointer-shape'.
-
-`modeLinePointer' (class `Cursor'): cursor-name
-     The cursor to use when the mouse is over a mode line.  This
-     resource is used to initialize the variable `x-mode-pointer-shape'.
-
-`gcPointer' (class `Cursor'): cursor-name
-     The cursor to display when a garbage-collection is in progress.
-     This resource is used to initialize the variable
-     `x-gc-pointer-shape'.
-
-`scrollbarPointer' (class `Cursor'): cursor-name
-     The cursor to use when the mouse is over the scrollbar.  This
-     resource is used to initialize the variable
-     `x-scrollbar-pointer-shape'.
-
-`pointerColor' (class `Foreground'): color-name
-`pointerBackground' (class `Background'): color-name
-     The foreground and background colors of the mouse cursor.  These
-     resources are used to initialize the variables
-     `x-pointer-foreground-color' and `x-pointer-background-color'.
-
-`scrollBarWidth' (class `ScrollBarWidth'): integer
-     How wide the vertical scrollbars should be, in pixels; 0 means no
-     vertical scrollbars.  You can also use a resource specification of
-     the form `*scrollbar.width', or the usual toolkit scrollbar
-     resources: `*XmScrollBar.width' (Motif), `*XlwScrollBar.width'
-     (Lucid), or `*Scrollbar.thickness' (Athena).  We don't recommend
-     that you use the toolkit resources, though, because they're
-     dependent on how exactly your particular build of XEmacs was
-     configured.
-
-`scrollBarHeight' (class `ScrollBarHeight'): integer
-     How high the horizontal scrollbars should be, in pixels; 0 means no
-     horizontal scrollbars.  You can also use a resource specification
-     of the form `*scrollbar.height', or the usual toolkit scrollbar
-     resources: `*XmScrollBar.height' (Motif), `*XlwScrollBar.height'
-     (Lucid), or `*Scrollbar.thickness' (Athena).  We don't recommend
-     that you use the toolkit resources, though, because they're
-     dependent on how exactly your particular build of XEmacs was
-     configured.
-
-`scrollBarPlacement' (class `ScrollBarPlacement'): string
-     Where the horizontal and vertical scrollbars should be positioned.
-     This should be one of the four strings `bottom-left',
-     `bottom-right', `top-left', and `top-right'.  Default is
-     `bottom-right' for the Motif and Lucid scrollbars and
-     `bottom-left' for the Athena scrollbars.
-
-`topToolBarHeight' (class `TopToolBarHeight'): integer
-`bottomToolBarHeight' (class `BottomToolBarHeight'): integer
-`leftToolBarWidth' (class `LeftToolBarWidth'): integer
-`rightToolBarWidth' (class `RightToolBarWidth'): integer
-     Height and width of the four possible toolbars.
-
-`topToolBarShadowColor' (class `TopToolBarShadowColor'): color-name
-`bottomToolBarShadowColor' (class `BottomToolBarShadowColor'): color-name
-     Color of the top and bottom shadows for the toolbars.  NOTE: These
-     resources do *not* have anything to do with the top and bottom
-     toolbars (i.e. the toolbars at the top and bottom of the frame)!
-     Rather, they affect the top and bottom shadows around the edges of
-     all four kinds of toolbars.
-
-`topToolBarShadowPixmap' (class `TopToolBarShadowPixmap'): pixmap-name
-`bottomToolBarShadowPixmap' (class `BottomToolBarShadowPixmap'): pixmap-name
-     Pixmap of the top and bottom shadows for the toolbars.  If set,
-     these resources override the corresponding color resources. NOTE:
-     These resources do *not* have anything to do with the top and
-     bottom toolbars (i.e. the toolbars at the top and bottom of the
-     frame)!  Rather, they affect the top and bottom shadows around the
-     edges of all four kinds of toolbars.
-
-`toolBarShadowThickness' (class `ToolBarShadowThickness'): integer
-     Thickness of the shadows around the toolbars, in pixels.
-
-`visualBell' (class `VisualBell'): boolean
-     Whether XEmacs should flash the screen rather than making an
-     audible beep.
-
-`bellVolume' (class `BellVolume'): integer
-     Volume of the audible beep.
-
-`useBackingStore' (class `UseBackingStore'): boolean
-     Whether XEmacs should set the backing-store attribute of the X
-     windows it creates.  This increases the memory usage of the X
-     server but decreases the amount of X traffic necessary to update
-     the screen, and is useful when the connection to the X server goes
-     over a low-bandwidth line such as a modem connection.
-
-
-**** Face Resources
--------------------
-
-   The attributes of faces are also per-frame. They can be specified as:
-
-     Emacs.FACE_NAME.parameter: value
-
-     (*do not* use `Emacs*FACE_NAME...')
-
-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.
-
-`text-cursor'
-     This is the face that the cursor is 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)'.
-
-
-**** 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
-in 19.9, 19.10, 19.12, and 19.13) 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.14,
-the exact widget hierarchy is as follows:
-
-    INVOCATION-NAME           "shell"              "container"     FRAME-NAME
-    x-emacs-application-class "TopLevelEmacsShell" "EmacsManager" "EmacsFrame"
-
-(for normal frames)
-
-or
-
-    INVOCATION-NAME           "shell"               "container"     FRAME-NAME
-    x-emacs-application-class "TransientEmacsShell" "EmacsManager" "EmacsFrame"
-
-(for popup/dialog-box frames)
-
-where INVOCATION-NAME is the terminal component of the name of the
-XEmacs executable (usually `xemacs'), and `x-emacs-application-class'
-is generally `Emacs'.
-
-
-**** 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 Motif-lookalike menu widgets,
-then one way to specify the font of the menubar would be
-
-     Emacs*menubar*font: *-courier-medium-r-*-*-*-120-*-*-*-*-*-*
-
-   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.
-
-
-*** Source Code Highlighting
-----------------------------
-
-It's possible to have your buffers "decorated" with fonts or colors
-indicating syntactic structures (such as strings, comments, function names,
-"reserved words", etc.).  In XEmacs, the preferred way to do this is with
-font-lock-mode; activate it by adding the following code to your .emacs file:
-
-        (add-hook 'emacs-lisp-mode-hook 'turn-on-font-lock)
-        (add-hook 'c-mode-hook          'turn-on-font-lock)
-        (add-hook 'c++-mode-hook        'turn-on-font-lock)
-        (add-hook 'dired-mode-hook      'turn-on-font-lock)
-        ...etc...
-
-To customize it, see the descriptions of the function `font-lock-mode' and
-the variables `font-lock-keywords', `c-font-lock-keywords', etc.
-
-There exist several other source code highlighting packages, but font-lock
-does one thing that most others don't do: highlights as you type new text;
-and one thing that no others do: bases part of its decoration on the
-syntax table of the major mode.  Font-lock has C-level support to do this
-efficiently, so it should also be significantly faster than the others.
-
-If there's something that another highlighting package does that you can't
-make font-lock do, let us know.  We would prefer to consolidate all of the
-desired functionality into one package rather than ship several different
-packages which do essentially the same thing in different ways.
-
-
-** Differences Between XEmacs and Emacs 18
-==========================================
-
-Auto-configure support has been added, so it should be fairly easy to compile
-XEmacs on different systems.  If you have any problems or feedback about
-compiling on your system, please let us know.
-
-We have reimplemented the basic input model in a more general way; instead of
-X input being a special-case of the normal ASCII input stream, XEmacs has a
-concept of "input events", and ASCII characters are a subset of that.  The
-events that XEmacs knows about are not X events, but are a generalization of
-them, so that XEmacs can eventually be ported to different window systems.
-
-We have reimplemented keymaps so that sequences of events can be stored into
-them instead of just ASCII codes; it is possible to, for example, bind
-different commands to each of the chords Control-h, Control-H, Backspace,
-Control-Backspace, and Super-Shift-Backspace.  Key bindings, function key
-bindings, and mouse bindings live in the same keymaps.
-
-Input and display of all ISO-8859-1 characters is supported.
-
-You can have multiple X windows ("frames" in XEmacs terminology).
-
-XEmacs has objects called "extents" and "faces", which are roughly
-analogous to Epoch's "buttons," "zones," and "styles."  An extent is a
-region of text (a start position and an end position) and a face is a
-collection of textual attributes like fonts and colors.  Every extent
-is displayed in some "face", so changing the properties of a face
-immediately updates the display of all associated extents.  Faces can
-be frame-local: you can have a region of text which displays with
-completely different attributes when its buffer is viewed from a
-different X window.
-
-The display attributes of faces may be specified either in lisp or through
-the X resource manager.
-
-Pixmaps of arbitrary size can be embedded in a buffer.
-
-Variable width fonts work.
-
-The height of a line is the height of the tallest font on that line, instead
-of all lines having the same height.
-
-XEmacs uses the MIT "Xt" toolkit instead of raw Xlib calls, which
-makes it be a more well-behaved X citizen (and also improves
-portability).  A result of this is that it is possible to include
-other Xt "Widgets" in the XEmacs window.  Also, XEmacs understands the
-standard Xt command-line arguments.
-
-XEmacs understands the X11 "Selection" mechanism; it's possible to define
-and customize selection converter functions and new selection types from 
-Emacs Lisp, without having to recompile XEmacs.
-
-XEmacs provides support for ToolTalk on systems that have it.
-
-XEmacs supports the Zmacs/Lispm style of region highlighting, where the
-region between the point and mark is highlighted when in its "active" state.
-
-XEmacs has a menubar, whose contents are customizable from emacs-lisp.
-This menubar looks Motif-ish, but does not require Motif.  If you already
-own Motif, however, you can configure XEmacs to use a *real* Motif menubar
-instead.
-
-XEmacs can ask questions using popup dialog boxes.  Any command executed from
-a menu will ask yes/no questions with dialog boxes, while commands executed
-via the keyboard will use the minibuffer.
-
-XEmacs has vertical and horizontal scrollbars.
-
-The initial load-path is computed at run-time, instead of at compile-time.
-This means that if you move the XEmacs executable and associated directories
-to somewhere else, you don't have to recompile anything.
-
-You can specify what the title of the XEmacs windows and icons should be
-with the variables `frame-title-format' and `frame-icon-title-format',
-which have the same syntax as `mode-line-format'.
-
-XEmacs now supports floating-point numbers.
-
-XEmacs now knows about timers directly, instead of them being simulated by
-a subprocess.
-
-XEmacs understands truenames, and can be configured to notice when you are
-visiting two names of the same file.  See the variables find-file-use-truenames
-and find-file-compare-truenames.
-
-If you're running on a machine with audio hardware, you can specify sound 
-files for XEmacs to play instead of the default X beep.  See the documentation
-of the function load-sound-file and the variable sound-alist.
-
-An XEmacs frame can be placed within an "external client widget" managed by
-another application.  This allows an application to use an XEmacs frame as its
-text pane rather than the standard Text widget that is provided with Motif or
-Athena.  XEmacs supports Motif applications, generic Xt (e.g. Athena)
-applications, and raw Xlib applications.
-
-Random changes to the emacs-lisp library: (some of this was not written by
-us, but is included because it's free software and we think it's good stuff)
-
-  - there is a new optimizing byte-compiler
-  - there is a new abbrev-based mail-alias mechanism
-  - the -*- line can contain local-variable settings
-  - there is a new TAGS package
-  - there is a new VI-emulation mode (viper)
-  - there is a new implementation of Dired
-  - there is a new implementation of Isearch
-  - the VM package for reading mail is provided
-  - the W3 package for browsing the World Wide Web hypertext information
-    system is provided
-  - the Hyperbole package, a programmable information management and
-    hypertext system
-  - the OO-Browser package, a multi-language object-oriented browser
-
-There are many more specifics in the "Miscellaneous Changes" section, below.
-
-The online Emacs Manual and Emacs-Lisp Manual are now both relatively
-up-to-date.