diff man/xemacs-faq.texi @ 54:05472e90ae02 r19-16-pre2

Import from CVS: tag r19-16-pre2
author cvs
date Mon, 13 Aug 2007 08:57:55 +0200
parents 6a22abad6937
children 131b0175ea99
line wrap: on
line diff
--- a/man/xemacs-faq.texi	Mon Aug 13 08:57:25 2007 +0200
+++ b/man/xemacs-faq.texi	Mon Aug 13 08:57:55 2007 +0200
@@ -8,12 +8,13 @@
 @titlepage
 @title XEmacs FAQ
 @subtitle Frequently asked questions about XEmacs
-@subtitle Last Modified:  1997/01/16
+@subtitle Last Modified:  1997-07-17
 @sp 1
 @author Tony Rossini <arossini@@stat.sc.edu>
-@author Ben Wing <wing@@netcom.com>
+@author Ben Wing <wing@@666.com>
 @author Chuck Thompson <cthomp@@cs.uiuc.edu>
 @author Steve Baur <steve@@miranova.com>
+@author Andreas Kaempf <andreas@@sccon.com>
 @page
 @end titlepage
 
@@ -31,7 +32,7 @@
 FITNESS FOR A PARTICULAR PURPOSE.
 
 If you have a Web browser, the official hypertext version is at
-<URL:http://www.miranova.com/~steve/xemacs-faq.html> and also at
+<URL:http://www.sccon.com/~andreas/xemacs-faq.html> and also at
 <URL:http://www.xemacs.org/faq/xemacs-faq.html>.  This version is much
 nicer than the unofficial hypertext versions that are archived at
 Utrecht, Oxford, Smart Pages, and other FAQ archives.
@@ -68,9 +69,12 @@
 Steven L. Baur <steve@@altair.xemacs.org>.  It was converted back to
 texinfo by Hrvoje Niksic <hniksic@@srce.hr>.
 
-This version was edited and updated by Andreas Kaempf
-<andreas@@sccon.com>.
-
+Since Steve Baur is so busy putting out multiple versions of XEmacs I
+have taken on the task of maintaining the FAQ.  I use XEmacs on a daily
+basis and I wanted to give something back to the community that has made
+XEmacs possible.  If you notice any errors or items which should be
+added or amended to this FAQ please send email to Andreas Kaempf
+<andreas@@sccon.com>. Include @samp{XEmacs FAQ} on the Subject: line.
 
 @menu
 Introduction:
@@ -79,10 +83,10 @@
 * Q1.0.3::      Where can I find it?
 * Q1.0.4::      Why Another Version of Emacs?
 * Q1.0.5::      Why Haven't XEmacs and GNU Emacs Merged?
-* Q1.0.6::      Where can I get help?
+* Q1.0.6::      Where can I get help?  
 * Q1.0.7::      Where is the mailing list archived?
 * Q1.0.8::      How do you pronounce XEmacs?
-* Q1.0.9::      What does XEmacs look like?
+* Q1.0.9::      What does XEmacs look like? 
 * Q1.0.10::     Is there a port of XEmacs to Microsoft ('95 or NT)?
 * Q1.0.11::     Is there a port of XEmacs to the Macintosh?
 * Q1.0.12::     Is there a port of XEmacs to NextStep?
@@ -96,17 +100,17 @@
 
 Credits:
 * Q1.2.1::      Who wrote XEmacs?
-* Q1.2.2::      Who contributed to this version of the FAQ?
-* Q1.2.3::      Who contributed to the FAQ in the past?
+* Q1.2.2::      Who contributed to this version of the FAQ? 
+* Q1.2.3::      Who contributed to the FAQ in the past? 
 
 Internationalization:
-* Q1.3.1::      What is the status of XEmacs v20?
+* Q1.3.1::      What is the status of XEmacs v20? 
 * Q1.3.2::      What is the status of Asian-language support, aka @var{mule}?
 * Q1.3.3::      How do I type non-ASCII characters?
 * Q1.3.4::      Can XEmacs messages come out in a different language?
 * Q1.3.5::      Please explain the various input methods in MULE/XEmacs 20.0
 * Q1.3.6::      How do I portably code for MULE/XEmacs 20.0?
-* Q1.3.7::      How about Cyrillic Modes?
+* Q1.3.7::      How about Cyrillic Modes? 
 
 Getting Started:
 * Q1.4.1::      What is a @file{.emacs} and is there a sample one?
@@ -115,7 +119,7 @@
 * Q1.4.4::      May I see an example of a useful XEmacs Lisp function?
 * Q1.4.5::      And how do I bind it to a key?
 * Q1.4.6::      What's the difference between a macro and a function?
-* Q1.4.7::      Why options saved with 19.13 don't work with 19.14 or 20.0?
+* Q1.4.7::      Why options saved with 19.13 don't work with 19.14 or later?
 @end menu
 
 @node Q1.0.1, Q1.0.2, Introduction, Introduction
@@ -130,12 +134,21 @@
 @node Q1.0.2, Q1.0.3, Q1.0.1, Introduction
 @section What is the current version of XEmacs?
 
-The current version is 19.15, released in March, 1997.
-
-It has been decided that XEmacs 19.15 will be the final release of v19.
-XEmacs 19.15 is scheduled for release in late March.  After a brief
-period of further testing, XEmacs v20.1 will be released shortly after
-that.
+The current stable version of XEmacs is 20.2, released in May, 1997.
+The next feature release will XEmacs 20.3.
+
+XEmacs 19.15 was the last release of v19, released in March, 1997.
+
+To help users who are not yet ready to move to XEmacs 20, we run a
+patch-page with official bugfixes for 19.15 at:
+
+@example
+<URL:http://www.xemacs.org/xemacs-19.15-patches/patch-page.html>
+@end example
+
+The page is maintained by Vinnie Shelton @code{<acs@@acm.org>}.  These
+fixes will be integrated to a XEmacs and released as 19.16, which would
+serve as stable XEmacs until 20.x settles completely.
 
 @node Q1.0.3, Q1.0.4, Q1.0.2, Introduction
 @section Where can I find it?
@@ -182,7 +195,8 @@
 Better Motif compliance.
 
 @item
-Some internationalization support (full MULE support starting with 20.0).
+Some internationalization support (including full MULE support, if
+compiled with it.)
 
 @item
 Variable-width fonts.
@@ -235,25 +249,17 @@
 
 Try reading this FAQ, examining the regular GNU Emacs FAQ (which can be
 found with the Emacs 19 distribution) as well as at
-@example
-<URL:http://www.eecs.nwu.edu/emacs/faq/>
-@end example
-and reading the Usenet group comp.emacs.xemacs.
+<URL:http://www.eecs.nwu.edu/emacs/faq/> and reading the Usenet group 
+comp.emacs.xemacs.
 
 If that does not help, try posting your question to comp.emacs.xemacs.
 Please @strong{do not} post XEmacs related questions to gnu.emacs.help.
 
 If you cannot post or read Usenet news, there is a corresponding mailing
 list which is available.  It can be subscribed to by sending a message
-with a subject of @samp{subscribe} to
-@example
-<xemacs-request@@xemacs.org>
-@end example
-for subscription information and
-@example
-<xemacs@@xemacs.org>
-@end example
-to send messages to the list.
+with a subject of @samp{subscribe} to <xemacs-request@@xemacs.org>
+for subscription information and <xemacs@@xemacs.org> to send messages 
+to the list.
 
 To cancel a subscription, you @strong{must} use the xemacs-request
 address.  Send a message with a subject of @samp{unsubscribe} to be
@@ -276,26 +282,34 @@
 @section What does XEmacs look like?
 
 Screen snapshots are available in the WWW version of the FAQ.
+@example
+<URL:http://www.xemacs.org/faq/xemacs-faq.html>
+@end example
 
 @node Q1.0.10, Q1.0.11, Q1.0.9, Introduction
 @section Is there a port of XEmacs to Microsoft ('95 or NT)?
 
+Altrasoft is actively seeking corporate and government sponsors to help
+fund a fully native port of XEmacs to Windows 95 and NT using full-time,
+senior-level staff working under a professionally managed project
+structure.  See <URL:http://www.altrasoft.com/> for more details or
+contact Altrasoft directly at 1-888-ALTSOFT.
+
+A private effort is being put forth by David Hobley 
+<URL:http://www.angelfire.com/wa/hobley>. 
+
+He can be reached at the following email addresses: 
+@example
+<davidh@@wr.com.au> (home)
+@end example
+
+@example
+<david_hobley@@optusvision.com.au> (work)
+@end example
+ 
 The closest is @dfn{Win-Emacs}, which is based on Lucid Emacs 19.6.
 Available from <URL:http://www.pearlsoft.com/>.
 
-There are some people actively working on a NT port of v20.1: David
-Hobley started the port.  Marc Paquette
-@example
-<marcpa@@cam.org>
-@end example
-has also became part of this effort.
-
-Email the beta list
-@example
-<xemacs-beta@@xemacs.org>
-@end example
-if you are interested in helping.
-
 There's a port of GNU Emacs (not XEmacs) at
 @example
 <URL:http://www.cs.washington.edu/homes/voelker/ntemacs.html>.
@@ -344,7 +358,7 @@
 month.  Preexisting questions that have been changed are marked as such.
 Brand new questions are tagged.
 
-All submissions are welcome.  E-mail submissions to
+All submissions are welcome.  E-mail submissions to Andreas Kaempf
 <andreas@@sccon.com>.
 
 Please make sure that @samp{XEmacs FAQ} appears on the Subject: line.
@@ -361,7 +375,7 @@
 @section How do I become a Beta Tester?
 
 Send an email message to <xemacs-beta-request@@xemacs.org> with a
-subject line of @samp{subscribe}.  Fill out and return the questionaire
+subject line of @samp{subscribe}.  Fill out and return the questionnaire
 you get back, and you will receive the password to get at the current
 beta.
 
@@ -445,11 +459,8 @@
 @itemize @bullet
 @item Steven L Baur <steve@@miranova.com>
 
-@item Darrell Kindred <dkindred@@cmu.edu>
-
-@item David Moore <dmoore@@ucsd.edu>
-
-@item Justin Sheehy <dworkin@@ccs.neu.edu>
+@item Hrvoje Niksic <hniksic@@srce.hr>
+
 @end itemize
 
 @node Q1.2.3, Q1.3.1, Q1.2.2, Introduction
@@ -463,6 +474,8 @@
 
 @item Richard Caley <rjc@@cogsci.ed.ac.uk>
 
+@item Richard Cognot <cognot@@ensg.u-nancy.fr>
+
 @item William G. Dubuque <wgd@@martigny.ai.mit.edu>
 
 @item Eric Eide <eeide@@cs.utah.edu>
@@ -473,24 +486,32 @@
 
 @item Marty Hall <hall@@aplcenmp.apl.jhu.edu>
 
+@item Darrell Kindred <dkindred@@cmu.edu>
+
+@item David Moore <dmoore@@ucsd.edu>
+
 @item Arup Mukherjee <arup+@@cmu.edu>
 
 @item Juergen Nickelsen <nickel@@prz.tu-berlin.de>
 
 @item Kevin R. Powell <powell@@csl.ncsa.uiuc.edu>
 
+@item Justin Sheehy <dworkin@@ccs.neu.edu>
+
 @item Stig <stig@@hackvan.com>
+
+@item Aki Vehtari <Aki.Vehtari@@hut.fi>
 @end itemize
 
 @node Q1.3.1, Q1.3.2, Q1.2.3, Introduction
 @section What is the status of XEmacs v20?
 
 XEmacs v20 is the version of XEmacs that includes MULE (Asian-language)
-support.  XEmacs 20.0 was released in February 1997.  When compiled
-without MULE support 20.0 is currently very similar to 19.15 (except for
-some changes to the byte-code format, some new primitive types including
-@code{char}, @code{char-table}, and @code{range-table}) and equally
-stable.
+support.  XEmacs 20.0 was released in February 1997, followed by XEmacs
+20.2 in May.  When compiled without MULE support 20.2 is currently very
+similar to 19.15 (except for some changes to the byte-code format, some
+new primitive types including @code{char}, @code{char-table}, and
+@code{range-table}) and equally stable.
 
 @node Q1.3.2, Q1.3.3, Q1.3.1, Introduction
 @section What is the status of Asian-language support, aka MULE?
@@ -561,8 +582,7 @@
 It translates ASCII inputs to Kana/PinYin/Hangul characters.
 
 @item Kana/PinYin/Hangul to Kanji transfer layer.
-It is
-interface layer for network Kana-Kanji server (Wnn and Sj3).
+It is interface layer for network Kana-Kanji server (Wnn and Sj3).
 @end enumerate
 
 These input methods are modal, namely there are mode, alphabet mode and
@@ -577,7 +597,7 @@
 @end quotation
 
 @node Q1.3.6, Q1.3.7, Q1.3.5, Introduction
-@section How do I portably code for MULE/XEmacs 20.0?
+@section How do I portably code for MULE/XEmacs 20?
 
 MORIOKA Tomohiko <morioka@@jaist.ac.jp> writes:
 
@@ -635,7 +655,7 @@
 <URL:ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs/>.  This is a
 modification to Valery Alexeev's <ava@@math.jhu.ed> @file{russian.el}
 which can be obtained from 
-<URL:ftp://tut.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/packages/russian.el.Z>.
+<URL:ftp://ftp.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/packages/russian.el.Z>.
 @end quotation
 
 Dima Barsky <d.barsky@@ee.surrey.ac.uk> writes:
@@ -703,9 +723,8 @@
       (setq there (point))
       (setq string (buffer-substring here there)))
     (while (>= count 1)
-      (progn
-	(insert string)
-	(setq count (1- count))))))
+      (insert string)
+      (decf count))))
 @end lisp
 
 The best way to see what is going on here is to let XEmacs tell you.
@@ -728,13 +747,16 @@
 
 Or interactively, @kbd{M-x global-set-key} and follow the prompts.
 
-Jari Aalto has written a guide to Emacs keys binding, available at
-<URL:ftp://cs.uta.fi/pub/ssjaaa/ema-keys.gui>.
+You can also view Jari Aalto's <jaalto@@tre.ntc.nokia.com> file:
+
+@example
+<URL:ftp://cs.uta.fi/pub/ssjaaa/ema-keys.html>
+@end example
 
 @node Q1.4.6, Q1.4.7, Q1.4.5, Introduction
 @section What's the difference between a macro and a function?
 
-Quoting from the Lisp Reference (a.k.a @dfn{lispref}) Manual:
+Quoting from the Lisp Reference (a.k.a @dfn{Lispref}) Manual:
 
 @dfn{Macros} enable you to define new control constructs and other
 language features.  A macro is defined much like a function, but instead
@@ -747,8 +769,12 @@
 therefore construct an expansion containing these argument expressions
 or parts of them.
 
+Do not confuse the two terms with @dfn{keyboard macros}, which are
+another matter, entirely.  A keyboard macro is a key bound to several
+other keys.  Refer to manual for details.
+
 @node Q1.4.7,  , Q1.4.6, Introduction
-@section How come options saved with 19.13 don't work with 19.14 or 20.0?
+@section How come options saved with 19.13 don't work with 19.14 or later?
 
 There's a problem with options of the form:
 
@@ -758,9 +784,9 @@
 @end lisp
 
 saved by a 19.13 XEmacs that causes a 19.14 XEmacs grief.  You must
-delete these options.  19.14 and later no longer write the options
-directly to @file{.emacs} which should allow us to deal with version
-incompatibilities better in the future.
+delete these options.  XEmacs 19.14 and later no longer write the
+options directly to @file{.emacs} which should allow us to deal with
+version incompatibilities better in the future.
 
 Options saved under XEmacs 19.13 are protected by code that specifically
 requires a version 19 XEmacs.  This won't be a problem unless you're
@@ -774,6 +800,7 @@
                 (>= emacs-minor-version 12))
            (>= emacs-major-version 20)))
  ...
+ ))
 @end lisp
 
 @node Installation, Customization, Introduction, Top
@@ -784,19 +811,20 @@
 
 @menu
 Installation:
-* Q2.0.1::      Running XEmacs without installing.
-* Q2.0.2::      XEmacs is too big.
+* Q2.0.1::      Running XEmacs without installing. 
+* Q2.0.2::      XEmacs is too big. 
 * Q2.0.3::      Compiling XEmacs with Netaudio.
 * Q2.0.4::      Problems with Linux and ncurses.
 * Q2.0.5::      Do I need X11 to run XEmacs?
 * Q2.0.6::      I'm having strange crashes.  What do I do?
 * Q2.0.7::      Libraries in non-standard locations.
 * Q2.0.8::      can't resolve symbol _h_errno
-* Q2.0.9::      Where do I find external libraries?
+* Q2.0.9::      Where do I find external libraries? 
 * Q2.0.10::     After I run configure I find a coredump, is something wrong?
 * Q2.0.11::     XEmacs can't resolve host names.
-* Q2.0.12::     Why can't I strip XEmacs?
+* Q2.0.12::     Why can't I strip XEmacs? 
 * Q2.0.13::     Can't link XEmacs on Solaris with Gcc.
+* Q2.0.14::     Make on HP/UX 9 fails after linking temacs 
 
 Trouble Shooting:
 * Q2.1.1::      XEmacs just crashed on me!
@@ -809,7 +837,7 @@
 * Q2.1.8::      got (wrong-type-argument color-instance-p nil)!
 * Q2.1.9::      XEmacs causes my OpenWindows 3.0 server to crash.
 * Q2.1.10::     Warnings from incorrect key modifiers.
-* Q2.1.11::     @samp{wrong type argument: bufferp, "......"}.
+* Q2.1.11::     [This question intentionally left blank]
 * Q2.1.12::     Regular Expression Problems on DEC OSF1.
 * Q2.1.13::     HP/UX 10.10 and @code{create_process} failure
 * Q2.1.14::     @kbd{C-g} doesn't work for me.  Is it broken?
@@ -821,6 +849,7 @@
 * Q2.1.20::     @samp{Symbol's function definition is void: hkey-help-show.}
 * Q2.1.21::     Every so often the XEmacs frame freezes.
 * Q2.1.22::     XEmacs seems to take a really long time to do some things.
+* Q2.1.23::     Movemail on Linux does not work for XEmacs 19.15 and later.
 @end menu
 
 @node Q2.0.1, Q2.0.2, Installation, Installation
@@ -837,11 +866,11 @@
 A good method is to make a shell alias for xemacs:
 
 @example
-alias xemacs=/i/xemacs-19.14/src/xemacs
+alias xemacs=/i/xemacs-20.2/src/xemacs
 @end example
 
 (You will obviously use whatever directory you downloaded the source
-tree to instead of @file{/i/xemacs-19.14}).
+tree to instead of @file{/i/xemacs-20.2}).
 
 This will let you run XEmacs without massive copying.
 
@@ -1015,6 +1044,11 @@
 remember as well.
 @end quotation
 
+@quotation
+XEmacs 20.3 will unbundle the lisp hierarchy and allow the installer
+to choose exactly how much support code gets installed.
+@end quotation
+
 @node Q2.0.3, Q2.0.4, Q2.0.2, Installation
 @section Compiling XEmacs with Netaudio.
 
@@ -1048,14 +1082,14 @@
 @section Problems with Linux and ncurses.
 
 On Linux 1.3.98 with termcap 2.0.8 and the ncurses that came with libc
-5.2.18, xemacs 20.0b20 is unable to open a tty device:
+5.2.18, XEmacs 20.0b20 is unable to open a tty device:
 
 @example
 src/xemacs -nw -q
 Initialization error: Terminal type `xterm' undefined (or can't access database?)
 @end example
 
-Ben Wing <ben@@666.com&gt writes:
+Ben Wing <ben@@666.com> writes:
 
 @quotation
 Your ncurses configuration is messed up.  Your /usr/lib/terminfo is a
@@ -1148,11 +1182,10 @@
 All external libraries used by XEmacs can be found at the XEmacs FTP
 site <URL:ftp://ftp.xemacs.org/pub/aux/>.
 
-The canonical locations are as follows:
+The canonical locations (at the time of this writing) are as follows:
 
 @table @asis
 @item JPEG
-<URL:ftp://ftp.netcom.com/pub/tg/tgl/uunet/>, mirrored at
 <URL:ftp://ftp.uu.net/graphics/jpeg/>.  Version 6a is current.
 
 @item XPM
@@ -1183,7 +1216,7 @@
 @end table
 
 @node Q2.0.10, Q2.0.11, Q2.0.9, Installation
-@section After I run configure I find a coredump, is something wrong?
+@section After I run configure I find a core dump, is something wrong?
 
 Not necessarily.  If you have GNU sed 3.0 you should downgrade it to
 2.05.  From the @file{README} at prep.ai.mit.edu:
@@ -1199,7 +1232,7 @@
 @end quotation
 
 It has also been observed that the vfork test on Solaris will leave a
-coredump.
+core dump.
 
 @node Q2.0.11, Q2.0.12, Q2.0.10, Installation
 @section XEmacs doesn't resolve hostnames.
@@ -1254,19 +1287,13 @@
 
 @enumerate
 @item
-[ configure; make ]
-
-@item
-cd src
+[ ./configure; make ]
 
 @item
-rm xemacs
+rm src/xemacs
 
 @item
-strip temacs
-
-@item
-cd ..
+strip src/temacs
 
 @item
 make
@@ -1275,11 +1302,11 @@
 cp src/xemacs /usr/local/bin/xemacs
 
 @item
-cp lib-src/DOC-19.14-XEmacs /usr/local/lib/xemacs-19.14/i586-unknown-linuxaout
+cp lib-src/DOC-19.15-XEmacs /usr/local/lib/xemacs-19.15/i586-unknown-linuxaout
 @end enumerate
 @end quotation
 
-@node Q2.0.13, Q2.1.1, Q2.0.12, Installation
+@node Q2.0.13, Q2.0.14, Q2.0.12, Installation
 @section Problems linking with Gcc on Solaris
 
 There are known difficulties linking with Gnu ld on Solaris.  A typical
@@ -1298,13 +1325,33 @@
 to ld.  Future releases of XEmacs will try to do this automatically.
 @end quotation
 
-@node Q2.1.1, Q2.1.2, Q2.0.13, Installation
+@node Q2.0.14, Q2.1.1, Q2.0.13, Installation
+@section Make on HP/UX 9 fails after linking temacs
+
+Problem when building xemacs-19.15 on hpux 9:
+
+Richard Cognot <cognot@@ensg.u-nancy.fr> writes:
+
+@quotation
+make on hpux fails after linking temacs with a message:
+
+@example
+"make: don't know how to make .y."
+@end example
+
+Solution: This is a problem with HP make revision 70.X.  Either use GNU
+make, or install PHCO_6552, which will bring make to revision
+72.24.1.17.
+@end quotation
+
+
+@node Q2.1.1, Q2.1.2, Q2.0.14, Installation
 @section Help!  XEmacs just crashed on me!
 
 First of all, don't panic.  Whenever XEmacs crashes, it tries extremely
-hard to auto-save all of your files before dying. (The main time that
+hard to auto-save all of your files before dying.  (The main time that
 this will not happen is if the machine physically lost power or if you
-killed the XEmacs process using @code{kill -9}). The next time you try
+killed the XEmacs process using @code{kill -9}).  The next time you try
 to edit those files, you will be informed that a more recent auto-save
 file exists.  You can use @kbd{M-x recover-file} to retrieve the
 auto-saved version of the file.
@@ -1417,7 +1464,7 @@
 set the environment variable @var{XKEYSYMDB} to the location of the
 @file{XKeysymDB} file on your system or to the location of the one
 included with XEmacs which should be at
-@file{<xemacs_root_directory>/lib/xemacs-19.14/etc/XKeysymDB}.
+@file{<xemacs_root_directory>/lib/xemacs-19.15/etc/XKeysymDB}.
 
 @item
 The binary is finding the XKeysymDB but it is out-of-date on your system
@@ -1465,12 +1512,10 @@
 @node Q2.1.6, Q2.1.7, Q2.1.5, Installation
 @section XEmacs just locked up my Linux X server!
 
-Help! XEmacs just locked up my X server on my Linux box!
-
 There have been several reports of the X server locking up under Linux.
 In all reported cases removing speedo and scaled fonts from the font
 path corrected the problem.  This can be done with the command
-'@code{xset}.
+@code{xset}.
 
 It is possible that using a font server may also solve the problem.
 
@@ -1571,18 +1616,9 @@
 @end example
 
 @node Q2.1.11, Q2.1.12, Q2.1.10, Installation
-@section @samp{wrong type argument: bufferp, "......"}.
-
-I'm using XEmacs 19.13 on Solaris 2.5. I'm having problem using the
-bookmark. When I try to set a bookmark, I always get the following error
-message:
-
-@lisp
-wrong type argument: bufferp, "......"
-@end lisp
-
-You are using the wrong version of @code{set-text-properties}.  Please
-use the one given with Q5.1.3 (@xref{Q5.1.3}).
+@section [This question intentionally left blank]
+
+Obsolete question, left blank to avoid renumbering.
 
 @node Q2.1.12, Q2.1.13, Q2.1.11, Installation
 @section Problems with Regular Expressions on DEC OSF1.
@@ -1787,11 +1823,11 @@
 use the narrowing-down process described above.
 
 @item
-If you compiled 19.14 with @samp{--debug} (or by default in 19.15), you
-will get a Lisp backtrace output when XEmacs crashes, so you'll have
-something useful.  If you're in 19.13, you could try doing @code{call
-debug_backtrace()}---sometimes this works even after a fatal signal has
-been received.
+If you compiled 19.14 with @samp{--debug} (or by default in later
+versions), you will get a Lisp backtrace output when XEmacs crashes, so
+you'll have something useful.  If you're in 19.13, you could try doing
+@code{call debug_backtrace()}---sometimes this works even after a fatal
+signal has been received.
 @end enumerate
 @end itemize
 @end quotation
@@ -1867,10 +1903,21 @@
 @node Q2.1.17, Q2.1.18, Q2.1.16, Installation
 @section @samp{Marker does not point anywhere}
 
-This is a problem with line-number-mode in XEmacs 19.14, and affects a
-large number of other packages.  If you see this error message, turn off
+As with other errors, set @code{debug-on-error} to @code{t} to get the
+backtrace when the error occurs.  Specifically, two problems have been
+reported (and fixed).
+
+@enumerate
+@item
+A problem with line-number-mode in XEmacs 19.14 affected a large number
+of other packages.  If you see this error message, turn off
 line-number-mode.
 
+@item
+A problem with some early versions of Gnus 5.4 caused this error.
+Upgrade your Gnus.
+@end enumerate
+
 @node Q2.1.18, Q2.1.19, Q2.1.17, Installation
 @section 19.14 hangs on HP/UX 10.10.
 
@@ -1915,7 +1962,7 @@
 @item
 A more serious problem I had discovered in the meantime, that is the
 fact that subprocess handling was seriously broken: subprocesses
-e.g. started by AUCTeX for TeX compilation of a buffer would
+e.g. started by AUC TeX for TeX compilation of a buffer would
 @emph{hang}.  Actually they would wait forever for emacs to read the
 socket which connects stdout...
 @end enumerate
@@ -1952,7 +1999,7 @@
 This problem has been fixed in 19.15, and was due to a not easily
 reproducible race condition.
 
-@node Q2.1.22,  , Q2.1.21, Installation
+@node Q2.1.22, Q2.1.23, Q2.1.21, Installation
 @section XEmacs seems to take a really long time to do some things
 
 David Moore <dmoore@@ucsd.edu> writes:
@@ -1970,12 +2017,12 @@
 gdb /path/to/xemacs/xemacs ####
 @end example
 
-Where #### is the process id of your xemacs, instead of specifying the
-core.  When gdb attaches, the xemacs will stop [1] and you can type
-`where' in gdb to get a stack trace as usual.  To get things moving
-again, you can just type `quit' in gdb.  It'll tell you the program is
-running and ask if you want to quit anyways.  Say 'y' and it'll quit and
-have your emacs continue from where it was at.
+Where @code{####} is the process id of your xemacs, instead of
+specifying the core.  When gdb attaches, the xemacs will stop [1] and
+you can type `where' in gdb to get a stack trace as usual.  To get
+things moving again, you can just type `quit' in gdb.  It'll tell you
+the program is running and ask if you want to quit anyways.  Say 'y' and
+it'll quit and have your emacs continue from where it was at.
 
 2) Lisp level:
 
@@ -1987,6 +2034,25 @@
 some other strange cases.
 @end quotation
 
+@node Q2.1.23,  , Q2.1.22, Installation
+@section  Movemail on Linux doe snot work for XEmacs 19.15 and later. 
+
+Movemail used to work fine in 19.14 but has stopped working in 19.15
+and 20.x.  I am using Linux.
+
+Steven L Baur <steve@@miranova.com> writes:
+
+@quotation
+Movemail on Linux used to default to using flock file locking.  With
+19.15 and later versions it now defaults to using @code{.lock} file
+locking.  If this is not appropriate for your system, edit src/s/linux.h
+and uncomment the line that reads:
+
+@example
+#define MAIL_USE_FLOCK
+@end example
+@end quotation
+
 @node Customization, Subsystems, Installation, Top
 @chapter Customization and Options
 
@@ -1995,20 +2061,20 @@
 
 @menu
 Customization---Emacs Lisp and @file{.emacs}:
-* Q3.0.1::      What version of Emacs am I running?
+* Q3.0.1::      What version of Emacs am I running? 
 * Q3.0.2::      How do I evaluate Elisp expressions?
 * Q3.0.3::      @code{(setq tab-width 6)} behaves oddly.
 * Q3.0.4::      How can I add directories to the @code{load-path}?
 * Q3.0.5::      How to check if a lisp function is defined?
 * Q3.0.6::      Can I force the output of @code{(face-list)} to a buffer?
-* Q3.0.7::      Font selections don't get saved after @code{Save Options}.
+* Q3.0.7::      Font selections don't get saved after @code{Save Options}. 
 * Q3.0.8::      How do I make a single minibuffer frame?
 
 X Window System & Resources:
 * Q3.1.1::      Where is a list of X resources?
 * Q3.1.2::      How can I detect a color display?
 * Q3.1.3::      @code{(set-screen-width)} worked in 19.6, but not in 19.13?
-* Q3.1.4::      Specifiying @code{Emacs*EmacsScreen.geometry} in @file{.emacs} does not work in 19.13?
+* Q3.1.4::      Specifiying @code{Emacs*EmacsScreen.geometry} in @file{.emacs} does not work in 19.15?
 * Q3.1.5::      How can I get the icon to just say @samp{XEmacs}?
 * Q3.1.6::      How can I have the window title area display the full path?
 * Q3.1.7::      @samp{xemacs -name junk} doesn't work?
@@ -2018,18 +2084,18 @@
 * Q3.2.1::      How can I set color options from @file{.emacs}?
 * Q3.2.2::      How do I set the text, menu and modeline fonts?
 * Q3.2.3::      How can I set the colors when highlighting a region?
-* Q3.2.4::      How can I limit color map usage?
+* Q3.2.4::      How can I limit color map usage? 
 * Q3.2.5::      My tty supports color, but XEmacs doesn't use them.
 
 The Modeline:
 * Q3.3.1::      How can I make the modeline go away?
 * Q3.3.2::      How do you have XEmacs display the line number in the modeline?
 * Q3.3.3::      How do I get XEmacs to put the time of day on the modeline?
-* Q3.3.4::      How do I turn off current chapter from AUC-TeX modeline?
+* Q3.3.4::      How do I turn off current chapter from AUC TeX modeline?
 * Q3.3.5::      How can one change the modeline color based on the mode used?
 
 3.4 Multiple Device Support:
-* Q3.4.1::      How do I open a frame on another screen of my multi-headed display?
+* Q3.4.1::      How do I open a frame on another screen of my multi-headed display?  
 * Q3.4.2::      Can I really connect to a running XEmacs after calling up over a modem?  How?
 
 3.5 The Keyboard:
@@ -2038,7 +2104,7 @@
 * Q3.5.3::      How do I bind C-. and C-; to scroll one line up and down?
 * Q3.5.4::      Globally binding @kbd{Delete}?
 * Q3.5.5::      Scrolling one line at a time.
-* Q3.5.6::      How to map @kbd{Help} key alone on Sun type4 keyboard?
+* Q3.5.6::      How to map @kbd{Help} key alone on Sun type4 keyboard? 
 * Q3.5.7::      How can you type in special characters in XEmacs?
 * Q3.5.8::      Why does @code{(global-set-key [delete-forward] 'delete-char)} complain?
 * Q3.5.9::      How do I make the Delete key delete forward?
@@ -2073,7 +2139,7 @@
 * Q3.9.4::      How can I get automatic horizontal scrolling?
 
 Text Selections:
-* Q3.10.1::     How can I turn off or change highlighted selections?
+* Q3.10.1::     How can I turn off or change highlighted selections? 
 * Q3.10.2::     How do I get that typing on an active region removes it?
 * Q3.10.3::     Can I turn off the highlight during isearch?
 * Q3.10.4::     How do I turn off highlighting after @kbd{C-x C-p} (mark-page)?
@@ -2087,9 +2153,9 @@
 using?
 
 To determine if you are currently running GNU Emacs 18, GNU Emacs 19,
-XEmacs 19, or Epoch, and use appropriate code, check out the example
-given in @file{etc/sample.emacs}.  There are other nifty things in there
-as well!
+XEmacs 19, XEmacs 20, or Epoch, and use appropriate code, check out the
+example given in @file{etc/sample.emacs}.  There are other nifty things
+in there as well!
 
 For all new code, all you really need to do is:
 
@@ -2104,14 +2170,10 @@
 with @kbd{C-j} after the expression.  How do I do it from another
 buffer?
 
-Use the following code:
-
-@lisp
-(put 'eval-expression 'disabled nil)
-@end lisp
-
-This sets it so that hitting @kbd{M-:} lets you type a single expression
-to be evaluated.  This line can also be put into your @file{.emacs}.
+Press @kbd{M-:} (the default binding of @code{eval-expression}), and
+enter the expression to the minibuffer.  In XEmacs prior to 19.15
+@code{eval-expression} used to be a disabled command by default.  If
+this is the case, upgrade your XEmacs.
 
 @node Q3.0.3, Q3.0.4, Q3.0.2, Customization
 @section @code{(setq tab-width 6)} behaves oddly.
@@ -2132,14 +2194,12 @@
 @lisp
 ;;; Add things at the beginning of the load-path, do not add
 ;;; duplicate directories:
-(if (null (member "bar" load-path))
-    (setq load-path (cons "bar" load-path)))
-
-(if (null (member "foo" load-path))
-    (setq load-path (cons "foo" load-path)))
+(pushnew "bar" load-path :test 'equal)
+
+(pushnew "foo" load-path :test 'equal)
 
 ;;; Add things at the end, unconditionally
-(setq load-path (append load-path '("foo" "bar")))
+(setq load-path (nconc load-path '("foo" "bar")))
 @end lisp
 
 keith (k.p.) hanlan <keithh@@nortel.ca> writes:
@@ -2149,7 +2209,7 @@
 @file{expand-file-name} like this:
 
 @lisp
-(setq load-path (cons (expand-file-name "~keithh/.emacsdir") load-path))
+(push (expand-file-name "~keithh/.emacsdir") load-path)
 @end lisp
 @end quotation
 
@@ -2187,8 +2247,14 @@
 Evaluate the expression in the @samp{*scratch*} buffer with point after
 the rightmost paren and typing @kbd{C-j}.
 
+If the minibuffer smallness is the only problem you encounter, you can
+simply press @kbd{C-h l} to get the former minibuffer contents in a
+buffer.
+
 @node Q3.0.7, Q3.0.8, Q3.0.6, Customization
-@section Font selections don't get saved after @code{Save Options}.
+@section Font selections in don't get saved after @code{Save Options}.
+
+For XEmacs 19.14 and previous:
 
 John Mann <mannj@@ll.mit.edu> writes:
 
@@ -2199,6 +2265,14 @@
 when you save options.
 @end quotation
 
+For XEmacs 19.15 and later:
+
+Implement the above as well as set the following in your @file{.emacs} 
+
+@lisp
+(setq options-save-faces t)
+@end lisp
+
 @node Q3.0.8, Q3.1.1, Q3.0.7, Customization
 @section How do I get a single minibuffer frame?
 
@@ -2269,10 +2343,10 @@
 @end lisp
 
 @node Q3.1.4, Q3.1.5, Q3.1.3, Customization
-@section Specifiying @code{Emacs*EmacsScreen.geometry} in @file{.emacs} does not work in 19.13?
+@section Specifiying @code{Emacs*EmacsScreen.geometry} in @file{.emacs} does not work in 19.15?
 
 In XEmacs 19.11 I specified @code{Emacs*EmacsScreen.geometry} in
-my @file{.emacs} but this does not work in XEmacs 19.13.
+my @file{.emacs} but this does not work in XEmacs 19.15.
 
 We have switched from using the term @dfn{screen} to using the term
 @dfn{frame}.
@@ -2432,9 +2506,6 @@
 @code{font}.  With Motif it may be necessary to use @code{fontList}
 instead of @code{font}.
 
-Suggestions on improving the answer to this question would be
-appreciated.
-
 @node Q3.2.3, Q3.2.4, Q3.2.2, Customization
 @section How can I set the colors when highlighting a region?
 
@@ -2462,7 +2533,7 @@
 I'm using Netscape (or another color grabber like XEmacs);
 is there anyway to limit the number of available colors in the color map?
 
-XEmacs 19.13 doesn't have such a mechanism (unlike netscape, or other
+XEmacs 19.13 didn't have such a mechanism (unlike netscape, or other
 color-hogs).  One solution is to start XEmacs prior to netscape, since
 this will prevent Netscape from grabbing all colors (but Netscape will
 complain).  You can use the flags for Netscape, like -mono, -ncols <#>
@@ -2523,12 +2594,12 @@
 @end lisp
 
 @node Q3.3.4, Q3.3.5, Q3.3.3, Customization
-@section How do I turn off current chapter from AUC-TeX modeline?
-
-With AUC-TeX, fast typing is hard because the current chapter, section
+@section How do I turn off current chapter from AUC TeX modeline?
+
+With AUC TeX, fast typing is hard because the current chapter, section
 etc. are given in the modeline.  How can I turn this off?
 
-It's not auc-tex, it comes from @code{func-menu} in @file{func-menu.el}.
+It's not AUC TeX, it comes from @code{func-menu} in @file{func-menu.el}.
 Add this code to your @file{.emacs} to turn it off:
 
 @lisp
@@ -2563,8 +2634,8 @@
 
 @lisp
 (add-hook 'lisp-mode-hook 
-        '(lambda () (set-face-background 'modeline "red" (current-buffer))
-                    (set-face-foreground 'modeline "yellow" (current-buffer))))
+          (lambda ()
+            (set-face-background 'modeline "red" (current-buffer))))
 @end lisp
 
 Then, when editing a Lisp file (i.e. when in Lisp mode), the modeline
@@ -2595,25 +2666,28 @@
 current mode.
 @end itemize
 
-This works in 19.14 as well, but there are additional modeline faces,
+This works in 19.15 as well, but there are additional modeline faces,
 @code{modeline-buffer-id}, @code{modeline-mousable}, and
 @code{modeline-mousable-minor-mode}, which you may want to customize.
 
 @node Q3.4.1, Q3.4.2, Q3.3.5, Customization
 @section How do I open a frame on another screen of my multi-headed display?
 
-The support for this has been revamped for 19.14.  Use the command
+The support for this was revamped for 19.14.  Use the command
 @kbd{M-x make-frame-on-display}.  This command is also on the File menu
 in the menubar.
 
-XEmacs 19.14 also has the command @code{make-frame-on-tty} which will
-establish a connection to any tty-like device.
+XEmacs 19.14 and later also have the command @code{make-frame-on-tty}
+which will establish a connection to any tty-like device.  Opening the
+TTY devices should be left to @code{gnuclient}, though.
 
 @node Q3.4.2, Q3.5.1, Q3.4.1, Customization
 @section Can I really connect to a running XEmacs after calling up over a modem?  How?
 
 If you're not running at least XEmacs 19.14, you can't.  Otherwise check
-out the @code{gnuattach} program supplied with XEmacs.
+out the @code{gnuattach} program supplied with XEmacs.  Starting with
+XEmacs 20.3, @code{gnuattach} and @code{gnudoit} functionality will be
+provided by @code{gnuclient}.
 
 @node Q3.5.1, Q3.5.2, Q3.4.2, Customization
 @section How can I bind complex functions (or macros) to keys?
@@ -2634,21 +2708,21 @@
 the call in a 'lambda form:
 
 @lisp
-(define-key global-map [f18]
-  (function (lambda () (interactive) (x-insert-selection t nil))))
+(global-set-key [f18]
+                (lambda () (interactive) (x-insert-selection t nil)))
 @end lisp
 
 This binds the f18 key to a @dfn{generic} functional object.  The
 interactive spec is required because only interactive functions can be
-bound to keys.  Also take a look at the doc for @code{function}.
+bound to keys.
 
 For the FAQ example you could use:
 
 @lisp
 (global-set-key [(control ?.)]
-		(function (lambda () (interactive) (scroll-up 1))))
+		(lambda () (interactive) (scroll-up 1)))
 (global-set-key [(control ?;)]
-	        (function (lambda () (interactive) (scroll-up -1))))
+	        (lambda () (interactive) (scroll-up -1)))
 @end lisp
 
 This is fine if you only need a few functions within the lambda body.
@@ -2664,6 +2738,8 @@
 (setq next-line-add-newlines nil)
 @end lisp
 
+This has been the default setting in XEmacs for some time.
+
 @node Q3.5.3, Q3.5.4, Q3.5.2, Customization
 @section How do I bind C-. and C-; to scroll one line up and down?
 
@@ -2679,8 +2755,8 @@
   (interactive)
   (scroll-down 1))
 
-(global-set-key [(control ?.)]   'scroll-up-one-line)        ; C-.
-(global-set-key [(control ?;)]   'scroll-down-one-line)      ; C-;
+(global-set-key [(control ?.)] 'scroll-up-one-line)        ; C-.
+(global-set-key [(control ?;)] 'scroll-down-one-line)      ; C-;
 @end lisp
 
 The key point is that you can only bind simple functions to keys; you
@@ -2694,11 +2770,11 @@
 than the default.  How does one do this?
 
 @lisp
-(defun Foo ()
+(defun foo ()
   (interactive)
-    (message "You hit DELETE"))
-
-(global-set-key 'delete 'Foo)
+  (message "You hit DELETE"))
+
+(global-set-key 'delete 'foo)
 @end lisp
 
 However, some modes explicitly bind @kbd{Delete}, so you would need to
@@ -2729,11 +2805,10 @@
   (interactive "p")
   (scroll-down (or arg 1)))
 
-(global-set-key 'up 'scroll-one-line-up)
-(global-set-key 'down  'scroll-one-line-down)
+(global-set-key [up]   'scroll-one-line-up)
+(global-set-key [down] 'scroll-one-line-down)
 @end lisp
 
-
 The following will also work but will affect more than just the cursor
 keys (i.e. @kbd{C-n} and @kbd{C-p}):
 
@@ -2750,7 +2825,7 @@
 (global-set-key [help] 'help-command)  		;; Help
 @end lisp
 
-The following works in XEmacs 19.13 with the addition of shift:
+The following works in XEmacs 19.15 with the addition of shift:
 
 @lisp
 (global-set-key [(shift help)] 'help-command)  		;; Help
@@ -2773,7 +2848,8 @@
 One way is to use the package @samp{x-compose}.  Then you can use
 sequences like @kbd{Compose " a} to get ä, etc.
 
-Another way is to use the iso8859-1 package.
+Another way is to use the iso-ascii package, provided in XEmacs 19.15
+and later.
 
 @node Q3.5.8, Q3.5.9, Q3.5.7, Customization
 @section Why does @code{(global-set-key [delete-forward] 'delete-char)} complain?
@@ -2802,12 +2878,16 @@
 @node Q3.5.9, Q3.5.10, Q3.5.8, Customization
 @section How do I make the Delete key delete forward?
 
-Use the @file{delbackspace} package:
+Use the @file{delbs} package:
 
 @lisp
-(load-library "delbackspace")
+(require 'delbs)
 @end lisp
 
+This will give you the functions @code{delbs-enable-delete-forward} to
+set things up, and @code{delbs-disable-delete-forward} to revert to
+``normal'' behavior.
+
 Also @xref{Q3.5.4}.
 
 @node Q3.5.10, Q3.6.1, Q3.5.9, Customization
@@ -2822,7 +2902,7 @@
 
 @quotation
 One thing about the sticky modifiers is that if you move the mouse out
-of the frame and back in, it cancels all currently "stuck" modifiers.
+of the frame and back in, it cancels all currently ``stuck'' modifiers.
 @end quotation
 
 @node Q3.6.1, Q3.6.2, Q3.5.10, Customization
@@ -2882,13 +2962,12 @@
 use @code{define-key} or @code{global-set-key}.
 
 @lisp
-(defun Mouse-Set-Point-and-Select (event)
+(defun mouse-set-point-and-select (event)
   "Sets the point at the mouse location, then marks following form"
   (interactive "@@e")
   (mouse-set-point event)
-  (mark-sexp 1)
-  )
-(define-key global-map 'button2 'Mouse-Set-Point-and-Select)
+  (mark-sexp 1))
+(define-key global-map [button2] 'mouse-set-point-and-select)
 @end lisp
 
 @node Q3.7.2, Q3.7.3, Q3.7.1, Customization
@@ -2919,16 +2998,10 @@
 @node Q3.7.4, Q3.7.5, Q3.7.3, Customization
 @section How can I get a list of buffers when I hit mouse button 3?
 
-The following code will actually replace the default popup on button3:
+The following code will replace the default popup on button3:
 
 @lisp
-(defun cw-build-buffers ()
-  "Popup buffer menu."
-  (interactive "@@")
-  (run-hooks 'activate-menubar-hook)
-  (popup-menu (car (find-menu-item current-menubar '("Buffers")))))
-
-(define-key global-map [(button3)] 'cw-build-buffers)
+(global-set-key [button3] 'popup-buffer-menu)
 @end lisp
 
 @node Q3.7.5, Q3.7.6, Q3.7.4, Customization
@@ -3066,11 +3139,11 @@
 Try something like:
 
 @lisp
-(global-set-key [(control x) T]
-		'(lambda () (interactive)
-		   (set-specifier default-toolbar-visible-p 
-				  (not (specifier-instance
-					default-toolbar-visible-p)))))
+(defun my-toggle-toolbar ()
+  (interactive)
+  (set-specifier default-toolbar-visible-p
+                 (not (specifier-instance default-toolbar-visible-p))))
+(global-set-key "\C-xT" 'my-toggle-toolbar)
 @end lisp
 
 There are redisplay bugs in 19.14 that may make the preceding result in
@@ -3095,7 +3168,7 @@
 function:
 
 @lisp
-(set-specifier scrollbar-width (cons (selected-frame) 0))
+(set-specifier scrollbar-width 0 (selected-frame))
 @end lisp
 
 You can actually turn the scrollbars on at any level you want by
@@ -3103,13 +3176,13 @@
 turn the scrollbars off only in a single buffer:
 
 @lisp
-(set-specifier scrollbar-width (cons (current-buffer) 0))
+(set-specifier scrollbar-width 0 (current-buffer))
 @end lisp
 
-Starting with 19.14 you can use the more logical form:
+In XEmacs versions prior to 19.14, you had to use the hairier construct:
 
 @lisp
-(set-specifier scrollbar-width 0 (selected-frame))
+(set-specifier scrollbar-width (cons (selected-frame) 0))
 @end lisp
 
 @node Q3.9.2, Q3.9.3, Q3.9.1, Customization
@@ -3185,7 +3258,7 @@
 (setq zmacs-regions nil)
 @end lisp
 
-To change the face for selection, look at @code{Options->Edit Faces} on
+To change the face for selection, look at @code{Options->Customize} on
 the menubar.
 
 @node Q3.10.2, Q3.10.3, Q3.10.1, Customization
@@ -3288,9 +3361,10 @@
 Web browsing with W3:
 * Q4.1.1::      What is W3?
 * Q4.1.2::      How do I run W3 from behind a firewall?
+* Q4.1.3::      Is it true that W3 supports style sheets and tables?
 
 Reading Netnews and Mail with Gnus:
-* Q4.2.1::      GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, argh!
+* Q4.2.1::      GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus,argh! 
 * Q4.2.2::      [This question intentionally left blank]
 * Q4.2.3::      How do I make Gnus stay within a single frame?
 * Q4.2.4::      How do I customize the From: line?
@@ -3303,7 +3377,7 @@
 * Q4.3.5::      Where do I find pstogif (required by tm)?
 
 Sparcworks, EOS, and WorkShop:
-* Q4.4.1::      What is SPARCworks, EOS, and WorkShop
+* Q4.4.1::      What is SPARCworks, EOS, and WorkShop 
 
 Energize:
 * Q4.5.1::      What is/was Energize?
@@ -3312,10 +3386,11 @@
 * Q4.6.1::      What is Infodock?
 
 Other Unbundled Packages:
-* Q4.7.1::      What is AucTeX?  Where do you get it?
+* Q4.7.1::      What is AUC TeX?  Where do you get it?
 * Q4.7.2::      Are there any Emacs Lisp Spreadsheets?
-* Q4.7.3::      Byte compiling AucTeX on XEmacs 19.14
-* Q4.7.4::      Problems installing AucTeX
+* Q4.7.3::      Byte compiling AUC TeX on XEmacs 19.14
+* Q4.7.4::      Problems installing AUC TeX
+* Q4.7.5::      Is there a reason for an Emacs package not to be included in XEmacs?
 @end menu
 
 @node Q4.0.1, Q4.0.2, Subsystems, Subsystems
@@ -3341,9 +3416,6 @@
 Also see the Mail Filtering FAQ at:
 <URL:http://www.cis.ohio-state.edu/hypertext/faq/usenet/mail/filtering-faq/faq.html>.
 
-Another possibility is to check out Gnus 5.  Gnus 5 has mail splitting
-capability, and can use VM as a mail reading backend.
-
 @node Q4.0.3, Q4.0.4, Q4.0.2, Subsystems
 @section How can I get VM to automatically check for new mail?
 
@@ -3384,18 +3456,9 @@
 @node Q4.0.7, Q4.0.8, Q4.0.6, Subsystems
 @section Is there a mailing list or FAQ for VM?
 
-There is no archived FAQ for VM.
-
-Kyle Jones <kyle_jones@@wonderworks.com> writes:
-
-@quotation
-No, I'm too atavistic to write one.  For some reason I'd rather just
-answer the questions myself.  I guess it serves a purpose in that the VM
-user community knows that I'm still alive, despite the 9 months since
-the last release.
-@end quotation
-
-VM has its own newsgroup gnu.emacs.vm.info.
+A FAQ for VM exists at <URL:http://www.cyberpass.net/~gorkab/vmfaq.htm>. 
+
+VM has its own newsgroups gnu.emacs.vm.info and gnu.emacs.vm.bug.
 
 @node Q4.0.8, Q4.0.9, Q4.0.7, Subsystems
 @section Remote Mailreading with VM.
@@ -3438,7 +3501,7 @@
 @node Q4.0.9, Q4.0.10, Q4.0.8, Subsystems
 @section rmail or VM gets an error incorporating new mail.
 
->From the XEmacs PROBLEMS file:
+Quoting the XEmacs PROBLEMS file:
 
 @quotation
 rmail and VM get new mail from @file{/usr/spool/mail/$USER} using a
@@ -3556,16 +3619,28 @@
 It has a home web page at
 <URL:http://www.cs.indiana.edu/elisp/w3/docs.html>.
 
-@node Q4.1.2, Q4.2.1, Q4.1.1, Subsystems
+@node Q4.1.2, Q4.1.3, Q4.1.1, Subsystems
 @section How do I run W3 from behind a firewall?
 
 There is a long, well-written, detailed section in the W3 manual that
 describes how to do this.  Look in the section entitled "Firewalls".
 
-@node Q4.2.1, Q4.2.2, Q4.1.2, Subsystems
+@node Q4.1.3, Q4.2.1, Q4.1.2, Subsystems
+@section Is it true that W3 supports style sheets and tables?
+
+Yes, and much more.  W3, as distributed with the latest XEmacs is a
+full-featured web browser.
+
+@node Q4.2.1, Q4.2.2, Q4.1.3, Subsystems
 @section GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Mamey Sapote Gnus, argh!
 
-Please see <URL:http://www.ccs.neu.edu/software/gnus/> for details.
+The Gnus numbering issues are not meant for mere mortals to know them.
+If you feel you @emph{must} enter the muddy waters of Gnus, visit the
+excellent FAQ, maintained by Justin Sheehy, at:
+
+@example
+<URL:http://www.ccs.neu.edu/software/gnus/>
+@end example
 
 @node Q4.2.2, Q4.2.3, Q4.2.1, Subsystems
 @section This question intentionally left blank.
@@ -3575,25 +3650,17 @@
 @node Q4.2.3, Q4.2.4, Q4.2.2, Subsystems
 @section How do I make Gnus stay within a single frame?
 
-When starting Gnus from the toolbar it is automatically put into a new
-frame.  Gnus not being frame-aware code, has no provision to disable
-this feature.  If you feel this is a problem here are some workarounds:
-
-@enumerate
-@item
-Don't start Gnus from the toolbar, use @kbd{M-x gnus}.  This is what I
-do.
-
-@item
-Redefine the function called by the toolbar:
+The toolbar code to start Gnus opens the new frame---and it's a feature
+rather than a bug.  If you don't like it, but would still like to click
+on the seemly icon, use the following code:
 
 @lisp
 (defun toolbar-news ()
-  "Run Gnus in the frame it was started from."
-  (interactive)
   (gnus))
 @end lisp
-@end enumerate
+
+It will redefine the callback function of the icon to just call
+@code{gnus}, without all the fancy frame stuff.
 
 @node Q4.2.4, Q4.3.1, Q4.2.3, Subsystems
 @section How do I customize the From: line?
@@ -3635,6 +3702,8 @@
 support.  When appropriate a message will be decoded in place in an
 XEmacs buffer.
 
+TM now comes as a package with XEmacs 19.15 and XEmacs 20.0.
+
 TM was written by MORIOKA Tomohiko <morioka@@jaist.ac.jp> and KOBAYASHI
 Shuhei <shuhei-k@@jaist.ac.jp>.  It is based on the work of UMEDA
 Masanobu <umerin@@mse.kyutech.ac.jp>, the original writer of GNUS.
@@ -3722,7 +3791,7 @@
 tools such as TeamWare (for configuration management), MakeTool, etc.
 @end quotation
 
-See <URL:http://www.sun.com/sunsoft/Developer-products/products.html>
+See <URL:http://www.sun.com/sunsoft/Developer-products/>
 for more info.
 
 EOS stands for "Era on SPARCworks", but I don't know what Era stands
@@ -3923,10 +3992,11 @@
 step-by-step installation instructions.
 
 @node Q4.7.1, Q4.7.2, Q4.6.1, Subsystems
-@section What is AucTeX?  Where do you get it?
-
-AucTeX is a package written by Per Abrahamsen <abraham@@dina.kvl.dk>.
-The following information is from the @file{README} and website.
+@section What is AUC TeX?  Where do you get it?
+
+AUC TeX is a package written by Per Abrahamsen <abraham@@dina.kvl.dk>.
+Starting with XEmacs 19.15, AUC TeX is bundled with XEmacs.  The
+following information is from the @file{README} and website.
 
 AUC TeX is an extensible package that supports writing and formatting
 TeX files for most variants of GNU Emacs. Many different macro packages
@@ -3948,7 +4018,7 @@
 <URL:ftp://cs.nyu.edu/pub/local/fox/dismal/>.
 
 @node Q4.7.3, Q4.7.4, Q4.7.2, Subsystems
-@section Byte compiling AucTeX on XEmacs 19.14.
+@section Byte compiling AUC TeX on XEmacs 19.14.
 
 Georges Brun-Cottan <bruncott@@dormeur.inria.fr> writes:
 
@@ -3960,26 +4030,26 @@
 @end example
 @end quotation
 
-@node Q4.7.4,  , Q4.7.3, Subsystems
-@section Problems installing AucTeX.
+@node Q4.7.4, Q4.7.5, Q4.7.3, Subsystems
+@section Problems installing AUC TeX.
 
 Jan Vroonhof <vroonhof@@math.ethz.ch> writes:
 
 @quotation
-AucTeX works fine on both stock Emacs and XEmacs has been doing so for a
-very very long time. This is mostly due to the work of Per Abrahamsen
+AUC TeX works fine on both stock Emacs and XEmacs has been doing so for
+a very very long time. This is mostly due to the work of Per Abrahamsen
 <abraham@@dina.kvl.dk> (clap clap) in particular his @file{easymenu}
 package.  Which leads to what is probably the problem...
 @end quotation
 
-Most problems with AucTeX are one of two things:
+Most problems with AUC TeX are one of two things:
 
 @itemize @bullet
 @item
 The TeX-lisp-directory in @file{tex-site.el} and the makefile don't
 match.
 
-Fix: make sure you configure AucTeX properly @strong{before} installing.
+Fix: make sure you configure AUC TeX properly @strong{before} installing.
 
 @item
 You have an old version of easymenu.el in your path.
@@ -3988,6 +4058,46 @@
 @strong{only} finds the one that came with XEmacs.
 @end itemize
 
+
+@node Q4.7.5,  , Q4.7.4, Subsystems
+@section Is there a reason for an Emacs package not to be included in XEmacs?
+
+The reason for an Emacs package not to be included in XEmacs is
+usually one or more of the following:
+
+@enumerate
+@item
+The package has not been ported to XEmacs.  This will typically happen
+when it uses GNU-Emacs-specific features, which make it fail under
+XEmacs.
+
+Porting a package to XEmacs can range from a trivial amount of change to
+a partial or full rewrite.  Fortunately, the authors of modern packages
+usually choose to support both Emacsen themselves.
+
+@item
+The package has been decided not to be appropriate for XEmacs.  It may
+have an equivalent or better replacement within XEmacs, in which case
+the developers may choose not to burden themselves with supporting an
+additional package.
+
+Each package bundled with XEmacs means more work for the maintainers,
+whether they want it or not.  If you are ready to take over the
+maintainence responsibilities for the package you port, be sure to say
+so -- we will more likely include it.
+
+@item
+The package simply hasn't been noted by the XEmacs development.  If
+that's the case, the messages like yours are very useful for attracting
+our attention.
+
+@item
+The package was noted by the developers, but they simply haven't yet
+gotten around to including/porting it.  Wait for the next release or,
+even better, offer your help.  It will be gladly accepted and
+appreciated.
+@end enumerate
+
 @node Miscellaneous, Current Events, Subsystems, Top
 @chapter The Miscellaneous Stuff
 
@@ -4006,8 +4116,8 @@
 * Q5.0.7::      Telnet from shell filters too much.
 * Q5.0.8::      Why does edt emulation not work?
 * Q5.0.9::      How can I emulate VI and use it as my default mode?
-* Q5.0.10::     What is @samp{Omit} minor mode?
-* Q5.0.11::     Filladapt doesn't work in 19.13?
+* Q5.0.10::     [This question intentionally left blank] 
+* Q5.0.11::     Filladapt doesn't work in 19.15? 
 * Q5.0.12::     How do I disable gnuserv from opening a new frame?
 * Q5.0.13::     How do I start gnuserv so that each subsequent XEmacs is a client?
 * Q5.0.14::     Strange things are happening in Shell Mode.
@@ -4020,9 +4130,13 @@
 Emacs Lisp Programming Techniques:
 * Q5.1.1::      The difference in key sequences between XEmacs and GNU Emacs?
 * Q5.1.2::      Can I generate "fake" keyboard events?
-* Q5.1.3::      How can I visit several marked files at once in dired?
-* Q5.1.4::      In 19.13, why do I get @samp{set-text-something} lisp errors with Gnus and AUC-TeX?
-* Q5.1.5::      How do I put a glyph as annotation in a buffer?
+* Q5.1.3::      Could you explain @code{read-kbd-macro} in more detail?
+* Q5.1.4::      What is the performance hit of @code{let}?
+* Q5.1.5::      What is the recommended use of @code{setq}?
+* Q5.1.6::      What is the typical misuse of @code{setq} ?
+* Q5.1.7::      I like the the @code{do} form of cl, does it slow things down?
+* Q5.1.8::      I like recursion, does it slow things down?
+* Q5.1.9::      How do I put a glyph as annotation in a buffer?
 
 Sound:
 * Q5.2.1::      How do I turn off the sound?
@@ -4086,14 +4200,23 @@
 @node Q5.0.3, Q5.0.4, Q5.0.2, Miscellaneous
 @section How do I get @samp{More} Syntax Highlighting on by default?
 
-For C, C++, and Lisp, you can add the following to your @file{.emacs}:
+Use the following code in your @file{.emacs}:
 
 @lisp
-(setq c-font-lock-keywords c-font-lock-keywords-2)
-(setq c++-font-lock-keywords c++-font-lock-keywords-2)
-(setq lisp-font-lock-keywords lisp-font-lock-keywords-2)
+(setq-default font-lock-maximum-decoration t)
 @end lisp
 
+In versions of XEmacs prior to 19.14, you had to use a kludgy solution
+like this:
+
+@lisp
+(setq c-font-lock-keywords c-font-lock-keywords-2
+      c++-font-lock-keywords c++-font-lock-keywords-2
+      lisp-font-lock-keywords lisp-font-lock-keywords-2)
+@end lisp
+
+It will work for C, C++ and Lisp.
+
 @node Q5.0.4, Q5.0.5, Q5.0.3, Miscellaneous
 @section How can I enable auto-indent?
 
@@ -4109,10 +4232,13 @@
 @lisp
 (require 'filladapt)
 (add-hook 'text-mode-hook    'turn-on-filladapt-mode)
-(add-hook 'message-mode-hook 'turn-on-filladapt-mode)
-;;; and so forth ...
+;;; and others ...
 @end lisp
 
+Note that well-behaving text-lookalike modes will run
+@code{text-mode-hook} by default (e.g. that's what Message does).  For
+the nasty ones, you'll have to provide the @code{add-hook}s yourself.
+
 Please note that the @code{fa-extras} package is no longer useful.
 
 @node Q5.0.5, Q5.0.6, Q5.0.4, Miscellaneous
@@ -4140,17 +4266,17 @@
 
 @lisp
 (setq initial-major-mode
-      (function (lambda ()
+      (lambda ()
         (text-mode)
-        (turn-on-auto-fill))))
+        (turn-on-auto-fill)))
 @end lisp
 
 Note that after your init file is loaded, if
-@code{inhibit-startup-message} is null (the default) and the startup
-buffer is @code{*scratch*} then the startup message will be inserted
-into @code{*scratch*}; it will be removed after a timeout by erasing the
-entire @code{*scratch*} buffer. Keep in mind this default usage of
-@code{*scratch*} if you desire any prior manipulation of
+@code{inhibit-startup-message} is @code{nil} (the default) and the
+startup buffer is @code{*scratch*} then the startup message will be
+inserted into @code{*scratch*}; it will be removed after a timeout by
+erasing the entire @code{*scratch*} buffer.  Keep in mind this default
+usage of @code{*scratch*} if you desire any prior manipulation of
 @code{*scratch*} from within your Emacs init file. In particular,
 anything you insert into @code{*scratch*} from your init file will be
 later erased. Also, if you change the mode of the @code{*scratch*}
@@ -4193,14 +4319,14 @@
 this, add the following line to your @file{.emacs}:
 
 @lisp
-(load "tpu-edt")
+(tpu-edt)
 @end lisp
 
 If you don't want it to replace @kbd{C-h} with an edt-style help menu
 add this as well:
 
 @lisp
-(global-set-key '(control h) 'help-for-help)
+(global-set-key [(control h)] 'help-for-help)
 @end lisp
 
 @node Q5.0.9, Q5.0.10, Q5.0.8, Miscellaneous
@@ -4221,42 +4347,14 @@
 @end quotation
 
 @node Q5.0.10, Q5.0.11, Q5.0.9, Miscellaneous
-@section What is @code{Omit} minor mode?
-
-I have no idea where this is coming from, but ever since I moved from
-19.9 to 19.13 I have started seeing that all of my buffers will get a
-minor mode called @code{Omit}.  I have no idea how it got there nor do I
-know what it does.  What is it?
-
-It's part of dired.  In dired, you can type M-o to get Omit mode and
-that will ignore uninteresting files (checkpoint files and backups, for
-example).  You get Omit in the modeline everywhere because the variable
-@code{dired-omit-files-p} is globally set to some non-nil value.  If you
-want this functionality, it's probably best to use a hook:
-
-@lisp
-(add-hook 'dired-after-readin-hook '(lambda () (dired-omit-toggle)))
-@end lisp
-
-Alternatively, since it seems odd to toggle the omit state with every
-readin, since readin can happen many times in a Dired buffer, you can
-try this hook to correct the @code{Omit} problem:
-
-@lisp
-(add-hook 'dired-mode-hook
-  (function (lambda ()
-      ;; `dired-omit-files-p' is made buffer-local by "dired-x.el", but
-      ;; maybe not soon enough.
-            (make-local-variable 'dired-omit-files-p)
-            (setq dired-omit-files-p t))))
-@end lisp
-
-This is only run once, when the Dired buffer is created.
-
+@section [This question intentionally left blank]
+
+Obsolete question, left blank to avoid renumbering
+   
 @node Q5.0.11, Q5.0.12, Q5.0.10, Miscellaneous
-@section Filladapt doesn't work in 19.13?
-
-Filladapt 2.x is included in 19.13+.  In it filladapt is now a minor
+@section Filladapt doesn't work in 19.15
+
+Filladapt 2.x is included in 19.15.  In it filladapt is now a minor
 mode and minor modes are traditionally off by default.  The following
 added to your @file{.emacs} will turn it on for all buffers:
 
@@ -4376,7 +4474,7 @@
 
 @quotation
 The standard TeX modes leave much to be desired, and are somewhat
-leniently maintained.  Serious TeX users use AucTeX (@xref{Q4.7.1}).
+leniently maintained.  Serious TeX users use AUC TeX (@xref{Q4.7.1}).
 @end quotation
 
 @node Q5.1.1, Q5.1.2, Q5.0.19, Miscellaneous
@@ -4390,27 +4488,34 @@
 today.  XEmacs is instead optimized for X events.  This causes an
 incompatibility in the way key sequences are specified, but both Emacs
 and XEmacs will accept a key sequence as a vector of lists of modifiers
-that ends with a key, e.g., to bind M-C-a, you would say [(meta control
-a)] in both Emacsen.  XEmacs has an abbreviated form for a single key,
-just (meta control a).  Emacs has an abbreviated form for the Control
-and the Meta modifiers to string-characters (the ASCII characters), as
-in "\M-\C-a".  XEmacs users need to be aware that the abbreviated form
-works only for one-character key sequences, while Emacs users need to be
-aware that the string-character is rather limited.  Specifically, the
-string-character can accomodate only 256 different values, 128 of which
-have the Meta modifier and 128 of which have not.  In each of these
-blocks, only 32 characters have the Control modifier.  Whereas [(meta
-control A)] differs from [(meta control a)] because the case differs,
-"\M-\C-a" and "\M-\C-A" do not.  Programmers are advised to use the full
-common form, both because it is more readable and less error-prone, and
-because it is supported by both Emacsen.
+that ends with a key, e.g., to bind @kbd{M-C-a}, you would say
+@code{[(meta control a)]} in both Emacsen.  XEmacs has an abbreviated
+form for a single key, just (meta control a).  Emacs has an abbreviated
+form for the Control and the Meta modifiers to string-characters (the
+ASCII characters), as in @samp{\M-\C-a}.  XEmacs users need to be aware
+that the abbreviated form works only for one-character key sequences,
+while Emacs users need to be aware that the string-character is rather
+limited.  Specifically, the string-character can accomodate only 256
+different values, 128 of which have the Meta modifier and 128 of which
+have not.  In each of these blocks, only 32 characters have the Control
+modifier.  Whereas @code{[(meta control A)]} differs from @code{[(meta
+control a)]} because the case differs, @samp{\M-\C-a} and @samp{\M-\C-A}
+do not.  Programmers are advised to use the full common form, both
+because it is more readable and less error-prone, and because it is
+supported by both Emacsen.
 @end quotation
 
+Another (even safer) way to be sure of the key-sequences is to use the
+@code{read-kbd-macro} function, which takes a string like @samp{C-c
+<up>}, and converts it to the internal key representation of the Emacs
+you use.  The function is available both on XEmacs and GNU Emacs.
+
 @node Q5.1.2, Q5.1.3, Q5.1.1, Miscellaneous
 @section Can I generate "fake" keyboard events?
 
-I wonder if there is an interactive function that can generate "fake"
-keyboard events.  This way, I could simply map them inside XEmacs.
+I wonder if there is an interactive function that can generate
+@dfn{fake} keyboard events.  This way, I could simply map them inside
+XEmacs.
 
 This seems to work:
 
@@ -4420,116 +4525,291 @@
   (dispatch-event (character-to-event ch)))
 
 ;;  Backspace and Delete stuff
-(global-set-key '(backspace)
-                '(lambda () (interactive) (cg--generate-char-event 127)))
-(global-set-key '(unknown_keysym_0x4)
-                '(lambda () (interactive) (cg--generate-char-event 4)))
+(global-set-key [backspace]
+                (lambda () (interactive) (cg--generate-char-event 127)))
+(global-set-key [unknown_keysym_0x4]
+                (lambda () (interactive) (cg--generate-char-event 4)))
 @end lisp
 
 @node Q5.1.3, Q5.1.4, Q5.1.2, Miscellaneous
-@section How can I visit several marked files at once in dired?
-
-You can put this in your @file{.emacs} and then @kbd{F} will find marked
-files:
+@section Could you explain @code{read-kbd-macro} in more detail?
+
+The @code{read-kbd-macro} function returns the internal Emacs
+representation of a human-readable string (which is its argument).
+Thus:
 
 @lisp
-(add-hook
- 'dired-load-hook
- (function (lambda ()
-	     (define-key dired-mode-map "F"
-	       (function
-		(lambda () (interactive)
-		  (mapcar 'find-file
-			  (dired-mark-get-files))))))))
+(read-kbd-macro "C-c C-a")
+     @result{} [(control ?c) (control ?a)]
+
+(read-kbd-macro "C-c C-. <up>")
+     @result{} [(control ?c) (control ?.) up]
 @end lisp
 
-Aki Vehtari <Aki.Vehtari@@hut.fi> writes:
+In GNU Emacs the same forms will be evaluated to what GNU Emacs
+understands internally---the sequences @code{"\C-x\C-c"} and @code{[3
+67108910 up]}, respectively.
+
+The exact @dfn{human-readable} syntax is defined in the docstring of
+@code{edmacro-mode}.  I'll repeat it here, for completeness.
 
 @quotation
-You can also use @file{dired-x.el} (Sebastian Kremer's Extra DIRED). It
-defines F and makes other improvements too.  See @file{dired/dired-x.el}
-in the XEmacs distribution.
-
-In your @file{~/.emacs}, add:
-
-@lisp
-(setq dired-load-hook '(lambda () (load "dired-x")))
-@end lisp
+Format of keyboard macros during editing:
+
+Text is divided into @dfn{words} separated by whitespace.  Except for
+the words described below, the characters of each word go directly as
+characters of the macro.  The whitespace that separates words is
+ignored.  Whitespace in the macro must be written explicitly, as in
+@kbd{foo SPC bar RET}.
+
+@itemize @bullet
+@item
+The special words @kbd{RET}, @kbd{SPC}, @kbd{TAB}, @kbd{DEL}, @kbd{LFD},
+@kbd{ESC}, and @kbd{NUL} represent special control characters.  The
+words must be written in uppercase.
+
+@item
+A word in angle brackets, e.g., @code{<return>}, @code{<down>}, or
+@code{<f1>}, represents a function key.  (Note that in the standard
+configuration, the function key @code{<return>} and the control key
+@kbd{RET} are synonymous.)  You can use angle brackets on the words
+@kbd{RET}, @kbd{SPC}, etc., but they are not required there.
+
+@item
+Keys can be written by their @sc{ascii} code, using a backslash followed
+by up to six octal digits.  This is the only way to represent keys with
+codes above \377.
+
+@item
+One or more prefixes @kbd{M-} (meta), @kbd{C-} (control), @kbd{S-}
+(shift), @kbd{A-} (alt), @kbd{H-} (hyper), and @kbd{s-} (super) may
+precede a character or key notation.  For function keys, the prefixes
+may go inside or outside of the brackets: @code{C-<down>} @equiv{}
+@code{<C-down>}.  The prefixes may be written in any order: @kbd{M-C-x}
+@equiv{} @kbd{C-M-x}.
+
+Prefixes are not allowed on multi-key words, e.g., @kbd{C-abc}, except
+that the Meta prefix is allowed on a sequence of digits and optional
+minus sign: @kbd{M--123} @equiv{} @kbd{M-- M-1 M-2 M-3}.
+
+@item
+The @code{^} notation for control characters also works: @kbd{^M}
+@equiv{} @kbd{C-m}.
+
+@item
+Double angle brackets enclose command names: @code{<<next-line>>} is
+shorthand for @kbd{M-x next-line RET}.
+
+@item
+Finally, @code{REM} or @code{;;} causes the rest of the line to be
+ignored as a comment.
+@end itemize
+
+Any word may be prefixed by a multiplier in the form of a decimal number
+and @code{*}: @code{3*<right>} @equiv{} @code{<right> <right> <right>},
+and @code{10*foo} @equiv{} @code{foofoofoofoofoofoofoofoofoofoo}.
+
+Multiple text keys can normally be strung together to form a word, but
+you may need to add whitespace if the word would look like one of the
+above notations: @code{; ; ;} is a keyboard macro with three semicolons,
+but @code{;;;} is a comment.  Likewise, @code{\ 1 2 3} is four keys but
+@code{\123} is a single key written in octal, and @code{< right >} is
+seven keys but @code{<right>} is a single function key.  When in doubt,
+use whitespace.
 @end quotation
 
 @node Q5.1.4, Q5.1.5, Q5.1.3, Miscellaneous
-@section In 19.13, why do I get @samp{set-text-something} lisp errors with Gnus and AUC-TeX?
-
-The real problem is out of date software.  Upgrade to later versions of
-Gnus and AUC-TeX where this problem doesn't exist.
-
-The problem lies with the needs for an Emacs function,
-@code{set-text-properties}, which generally isn't required by XEmacs.
-The solutions include adding the following code to your @file{.emacs}:
+@section What is the performance hit of @code{let}?
+
+In most cases, not noticable.  Besides, there's no avoiding
+@code{let}---you have to bind your local variables, after all.  Some
+pose a question whether to nest @code{let}s, or use one @code{let} per
+function.  I think because of clarity and maintenance (and possible
+future implementation), @code{let}-s should be used (nested) in a way to
+provide the clearest code.
+
+@node Q5.1.5, Q5.1.6, Q5.1.4, Miscellaneous
+@section What is the recommended use of @code{setq}?
+
+@itemize @bullet
+@item Global variables
+
+You will typically @code{defvar} your global variable to a default
+value, and use @code{setq} to set it later.
+
+It is never a good practice to @code{setq} user variables (like
+@code{case-fold-search}, etc.), as it ignores the user's choice
+unconditionally.  Note that @code{defvar} doesn't change the value of a
+variable if it was bound previously.  If you wish to change a
+user-variable temporarily, use @code{let}:
+
+@lisp
+(let ((case-fold-search nil))
+  ...       ; code with searches that must be case-sensitive
+  ...)
+@end lisp
+
+You will notice the user-variables by their docstrings beginning with an
+asterisk (a convention).
+
+@item Local variables
+
+Bind them with @code{let}, which will unbind them (or restore their
+previous value, if they were bound) after exiting from the @code{let}
+form.  Change the value of local variables with @code{setq} or whatever
+you like (e.g. @code{incf}, @code{setf} and such).  The @code{let} form
+can even return one of its local variables.
+
+Typical usage:
 
 @lisp
-(fset 'set-text-properties (symbol-function 'ignore))
+;; iterate through the elements of the list returned by
+;; `hairy-function-that-returns-list'
+(let ((l (hairy-function-that-returns-list)))
+  (while l
+    ... do something with (car l) ...
+    (setq l (cdr l))))
 @end lisp
 
-or 
+Another typical usage includes building a value simply to work with it.
 
 @lisp
-(defadvice set-text-properties (around ignore-strings activate)
-  "Ignore strings."
-  (or (stringp (ad-get-arg 3))
-      ad-do-it))
+;; Build the mode keymap out of the key-translation-alist
+(let ((inbox (file-truename (expand-file-name box)))
+      (i 0))
+  ... code dealing with inbox ...
+  inbox)
+@end lisp
+
+This piece of code uses the local variable @code{inbox}, which becomes
+unbound (or regains old value) after exiting the form.  The form also
+returns the value of @code{inbox}, which can be reused, for instance:
+
+@lisp
+(setq foo-processed-inbox
+      (let .....))
 @end lisp
-
-The best is probably the canonical solution (posted by C.Thompson, on
-10/17/95):
+@end itemize
+
+@node Q5.1.6, Q5.1.7, Q5.1.5, Miscellaneous
+@section What is the typical misuse of @code{setq} ?
+
+A typical misuse is probably @code{setq}ing a variable that was meant to
+be local.  Such a variable will remain bound forever, never to be
+garbage-collected.  For example, the code doing:
+
+@lisp
+(defun my-function (whatever)
+  (setq a nil)
+  ... build a large list ...
+  ... and exit ...)
+@end lisp
+
+does a bad thing, as @code{a} will keep consuming memory, never to be
+unbound.  The correct thing is to do it like this:
 
 @lisp
-(defun set-text-properties (start end props &optional buffer)
-  "You should NEVER use this function.  It is ideologically blasphemous.
-It is provided only to ease porting of broken FSF Emacs programs."
-  (if (stringp buffer) nil
-    (map-extents 
-     #'(lambda (extent ignored)
-	 (remove-text-properties
-	  start end (list (extent-property extent 'text-prop) nil)
-	  buffer))
-     buffer start end nil nil 'text-prop)
-    (add-text-properties start end props buffer)))
+(defun my-function (whatever)
+  (let (a)             ; default initialization is to nil
+    ... build a large list ...
+    ... and exit, unbinding `a' in the process  ...)
 @end lisp
 
-@node Q5.1.5, Q5.2.1, Q5.1.4, Miscellaneous
-@section How do I put a glyph as annotation in a buffer?
-
-Thomas Feuster <feuster@@tp4.physik.uni-giessen.de> writes:
+Not only is this prettier syntactically, but it makes it possible for
+Emacs to garbage-collect the objects which @code{a} used to reference.
+
+Note that even global variables should not be @code{setq}ed without
+@code{defvar}ing them first, because the byte-compiler issues warnings.
+The reason for the warning is the following:
+
+@lisp
+(defun flurgoze nil)          ; ok, global internal variable
+...
+
+(setq flurghoze t)      ; ops!  a typo, but semantically correct.
+                        ; however, the byte-compiler warns.
+
+While compiling toplevel forms:
+  ** assignment to free variable flurghoze
+@end lisp
+
+@node Q5.1.7, Q5.1.8, Q5.1.6, Miscellaneous
+@section I like the the @code{do} form of cl, does it slow things down?
+
+It shouldn't.  Here is what Dave Gillespie has to say about cl.el
+performance:
 
 @quotation
-@lisp
-(let ((image-glyph (make-glyph-internal)))
-(seems to be unavoidable to do 'make-glyph-internal')
-@end lisp
-
-Now for viewing files:
+Many of the advanced features of this package, such as @code{defun*},
+@code{loop}, and @code{setf}, are implemented as Lisp macros.  In
+byte-compiled code, these complex notations will be expanded into
+equivalent Lisp code which is simple and efficient.  For example, the
+forms
 
 @lisp
-(set-glyph-image image-glyph view-graph-file-buf))
+(incf i n)
+(push x (car p))
 @end lisp
 
-For viewing already loaded buffers:
+are expanded at compile-time to the Lisp forms
 
 @lisp
-(setq image-glyph (make-glyph 
-                   (vector view-graph-file-format :data 
-		           (buffer-substring 
-			   (point-min) 
-		       	   (point-max)))))
+(setq i (+ i n))
+(setcar p (cons x (car p)))
 @end lisp
 
-The thing I couldn't figure out is how to make XEmacs guess the format
-from the contents - like it does for files. So it's a real pain to
-extract the format from the extensions of the file-name...
+which are the most efficient ways of doing these respective operations
+in Lisp.  Thus, there is no performance penalty for using the more
+readable @code{incf} and @code{push} forms in your compiled code.
+
+@emph{Interpreted} code, on the other hand, must expand these macros
+every time they are executed.  For this reason it is strongly
+recommended that code making heavy use of macros be compiled.  (The
+features labelled @dfn{Special Form} instead of @dfn{Function} in this
+manual are macros.)  A loop using @code{incf} a hundred times will
+execute considerably faster if compiled, and will also garbage-collect
+less because the macro expansion will not have to be generated, used,
+and thrown away a hundred times.
+
+You can find out how a macro expands by using the @code{cl-prettyexpand}
+function.
 @end quotation
 
-@node Q5.2.1, Q5.2.2, Q5.1.5, Miscellaneous
+@node Q5.1.8, Q5.1.9, Q5.1.7, Miscellaneous
+@section I like recursion, does it slow things down?
+
+Yes.  Emacs byte-compiler cannot do much to optimize recursion.  But
+think well whether this is a real concern in Emacs.  Much of the Emacs
+slowness comes from internal mechanisms such as redisplay, or from the
+fact that it is an interpreter.
+
+Please try not to make your code much uglier to gain a very small speed
+gain.  It's not usually worth it.
+
+@node Q5.1.9, Q5.2.1, Q5.1.8, Miscellaneous
+@section How do I put a glyph as annotation in a buffer?
+
+Here is a solution that will insert the glyph annotation at the
+beginning of buffer:
+
+@lisp
+(make-annotation (make-glyph '([FORMAT :file FILE]
+                               [string :data "fallback-text"]))
+                 (point-min)
+                 'text
+                 (current-buffer))
+@end lisp
+
+Replace @samp{FORMAT} with an unquoted symbol representing the format of 
+the image (e.g. @code{xpm}, @code{xbm}, @code{gif}, @code{jpeg}, etc.)
+Instead of @samp{FILE}, use the image file name
+(e.g. @file{/usr/local/lib/xemacs-20.2/etc/recycle.xpm}).
+
+You can turn this to a function (that optionally prompts you for a file
+name), and inserts the glyph at @code{(point)} instead of
+@code{(point-min)}.
+
+@node Q5.2.1, Q5.2.2, Q5.1.9, Miscellaneous
 @section How do I turn off the sound?
 
 Add the following line to your @file{.emacs}:
@@ -4539,6 +4819,9 @@
 (setq sound-alist nil)
 @end lisp
 
+That will make your XEmacs totally silent -- even the default ding sound 
+(TTY beep on TTY-s) will be gone.
+
 @node Q5.2.2, Q5.2.3, Q5.2.1, Miscellaneous
 @section How do I get funky sounds instead of a boring beep?
 
@@ -4549,7 +4832,7 @@
 (load-default-sounds)
 @end lisp
 
-The sound support in XEmacs 19.14 is greatly improved over previous
+The sound support in XEmacs 19.14 was greatly improved over previous
 versions.
 
 @node Q5.2.3, Q5.2.4, Q5.2.2, Miscellaneous
@@ -4612,11 +4895,6 @@
 than previous versions.  This may prove useful if you need to customize
 any indent-functions.
 
-NB: I would have thought with the passage of time this would be the
-standard version by now, but that appears not to be the case.  The
-version of filladapt included with 19.14 is last dated 1993, and does
-not have a version number.
-
 @node Q5.3.2, Q5.3.3, Q5.3.1, Miscellaneous
 @section Fontifying hang when editing a postscript file.
 
@@ -4689,20 +4967,64 @@
 @node Q5.3.7, Q5.3.8, Q5.3.6, Miscellaneous
 @section Can I have the end of the buffer delimited in some way?
 
-Say, with: [END]?
-
-Use this:
+Say, with: @samp{[END]}?
+
+Try this:
+
+@lisp
+(let ((ext (make-extent (point-min) (point-max))))
+  (set-extent-property ext 'start-closed t)
+  (set-extent-property ext 'end-closed t)
+  (set-extent-property ext 'detachable nil)  
+  (set-extent-end-glyph ext (make-glyph [string :data "[END]"])))
+@end lisp
+
+Since this is XEmacs, you can specify an icon to be shown on
+window-system devices.  To do so, change the @code{make-glyph} call to
+something like this:
+
+@lisp
+(make-glyph '([xpm :file "~/something.xpm"]
+              [string :data "[END]"]))
+@end lisp
+
+You can inline the @sc{xpm} definition yourself by specifying
+@code{:data} instead of @code{:file}.  Here is such a full-featured
+version that works on both X and TTY devices:
 
 @lisp
-(make-annotation "[END]" (point-max) 'text (current-buffer))
+(let ((ext (make-extent (point-min) (point-max))))
+  (set-extent-property ext 'start-closed t)
+  (set-extent-property ext 'end-closed t)
+  (set-extent-property ext 'detachable nil)  
+  (set-extent-end-glyph ext (make-glyph '([xpm :data "\
+/* XPM */
+static char* eye = @{
+\"20 11 7 2\",
+\"__ c None\"
+\"_` c #7f7f7f\",
+\"_a c #fefefe\",
+\"_b c #7f0000\",
+\"_c c #fefe00\",
+\"_d c #fe0000\",
+\"_e c #bfbfbf\",
+\"___________`_`_`___b_b_b_b_________`____\", 
+\"_________`_`_`___b_c_c_c_b_b____________\", 
+\"_____`_`_`_e___b_b_c_c_c___b___b_______`\", 
+\"___`_`_e_a___b_b_d___b___b___b___b______\", 
+\"_`_`_e_a_e___b_b_d_b___b___b___b___b____\", 
+\"_`_`_a_e_a___b_b_d___b___b___b___b___b__\", 
+\"_`_`_e_a_e___b_b_d_b___b___b___b___b_b__\", 
+\"___`_`_e_a___b_b_b_d_c___b___b___d_b____\", 
+\"_____`_`_e_e___b_b_b_d_c___b_b_d_b______\", 
+\"_`_____`_`_`_`___b_b_b_d_d_d_d_b________\", 
+\"___`_____`_`_`_`___b_b_b_b_b_b__________\", 
+@} ;"]
+                                          [string :data "[END]"]))))
 @end lisp
 
-Note that you might want to put this in a hook.  Since
-@code{make-annotation} is not defined by default, you might also need:
-
-@lisp
-(require 'annotations)
-@end lisp
+Note that you might want to make this a function, and put it to a hook.
+We leave that as an excercise for the reader.
 
 @node Q5.3.8, Q5.3.9, Q5.3.7, Miscellaneous
 @section How do I insert today's date into a buffer?
@@ -4731,6 +5053,11 @@
 read this question/answer again.
 @end quotation
 
+Newsflash: this restriction has been lifted, starting with XEmacs 20.3,
+which is currently in beta.  Hrvoje Niksic <hniksic@@srce.hr> will
+appreciate it if you download a beta, try out whether abbreviations work 
+like you expect them to, and let him know.
+
 @node Q5.3.10, Q5.3.11, Q5.3.9, Miscellaneous
 @section How can I get those oh-so-neat X-Face lines?
 
@@ -4776,9 +5103,9 @@
   (save-excursion 
     (goto-char (point-min))
     (search-forward mail-header-separator)
-    (beginning-of-line nil)
+    (beginning-of-line)
     (insert "X-Face:")
-    (insert-file "~/.face")))
+    (insert-file-contents "~/.face")))
 
 (add-hook 'mail-setup-hook 'mail-insert-x-face)
 @end lisp
@@ -4911,24 +5238,41 @@
 various FAQ FTP sites, as this file is surely out of date.
 
 @menu
-* Q6.0.1::      What is new in 19.15?
+* Q6.0.1::      What is new in 20.2?
+* Q6.0.2::      What is new in 20.3?
 * Q6.0.3::      Procedural changes in XEmacs development.
 @end menu
 
-@node Q6.0.1, Q6.0.3, Current Events, Current Events
-@section What is new in 19.15?
-
-The biggest changes in 19.15 include integration of TM (a MIME package
-for VM and Gnus), EFS (the next generation of ange-ftp) and AUC TeX (the
-Emacs subsystem that includes a major mode for editing TeX and LaTeX,
-and a lot of other stuff).  Many bugs from 19.14 have been fixed for
-this release.
-
-XEmacs 20.0 (which includes full Asian-language support aka MULE) has
-been released, but is still considered unstable.  This work is being
-supported by Sun Microsystems.
-
-@node Q6.0.3,  , Q6.0.1, Current Events
+@node Q6.0.1, Q6.0.2, Current Events, Current Events
+@section What is new in 20.2?
+
+The biggest changes in 20.2 include intergration of EFS (the next
+generation of ange-ftp) and AUC Tex (the Emacs subsystem that includes a
+major mode for editing Tex and LaTeX, and a lot of other stuff).  Many
+bugs from 20.0 have been fixed for this release.  20.2 also contains a
+new system for customizing XEmacs options, invoked via @kbd{M-x
+customize}.
+
+XEmacs 20.2 is the development release (20.0 was beta), and is no longer
+considered unstable.
+
+@node Q6.0.2, Q6.0.3, Q6.0.1, Current Events
+@section What is new in 20.3?
+
+XEmacs release 20.3 is planned for autumn 1997.  It will likely contain
+a much smaller amount of code for basic functionality, with all the
+popular Lisp packages being available in the form of easy-to-install
+add-ons.
+
+Other input methods (such as skk) will be made available for Mule, as
+well as more user-level documentation.
+
+Many new features are planned, such as multiple TTY frames, support for
+Autoconf 2, synches with Emacs 20.1, and more; much of this is already
+running in various beta versions.  Ask at
+@code{<xemacs-beta-request@@xemacs.org>} for more details.
+
+@node Q6.0.3,  , Q6.0.2, Current Events
 @section Procedural changes in XEmacs development.
 
 @enumerate
@@ -4945,11 +5289,13 @@
 decided that intermediate versions will be made available in source only
 form for the truly interested.
 
-XEmacs 19.15 is the end of the road for version 19 XEmacs.  The next
-release after 19.15 will be XEmacs 20.1.
+No further XEmacs 19 feature releases are planned.  XEmacs 19.16 will
+consist of 19.15 plus the collected bugfixes, and will probably be the
+final version of XEmacs 19.
 
 @item
 As of December 1996, Steve Baur <steve@@altair.xemacs.org> has become
 the lead maintainer of XEmacs.
+@end enumerate
 
 @bye