changeset 49600:23a1cea22d13

Trailing whitespace deleted.
author Juanma Barranquero <lekktu@gmail.com>
date Tue, 04 Feb 2003 14:56:31 +0000
parents 5ade352e8d1c
children 006884128916
files ChangeLog FTP INSTALL Makefile.in README admin/alloc-colors.c admin/build-configs admin/emacs-pretesters admin/make-emacs admin/nt/README-ftp-server admin/revdiff configure.in etc/COOKIES etc/ChangeLog etc/DEBUG etc/JOKES etc/LEDIT etc/LINUX-GNU etc/LPF etc/MAILINGLISTS etc/MH-E-NEWS etc/ONEWS etc/ONEWS.1 etc/ONEWS.2 etc/ONEWS.4 etc/ORDERS.EUROPE etc/ORDERS.JAPAN etc/OTHER.EMACSES etc/PROBLEMS etc/SERVICE etc/TERMS etc/TODO etc/TUTORIAL etc/TUTORIAL.cs etc/TUTORIAL.de etc/TUTORIAL.fr etc/TUTORIAL.ja etc/TUTORIAL.nl etc/TUTORIAL.pl etc/TUTORIAL.ru etc/TUTORIAL.sk etc/TUTORIAL.sl etc/TUTORIAL.sv etc/TUTORIAL.th etc/WHY-FREE etc/Xkeymap.txt etc/calccard.tex etc/condom.1 etc/cs-refcard.tex etc/cs-survival.tex etc/de-refcard.tex etc/edt-user.doc etc/emacs.1 etc/emacs.bash etc/fr-drdref.tex etc/fr-refcard.tex etc/fr-survival.tex etc/future-bug etc/gnu.xpm etc/gnus-tut.txt etc/ledit.l etc/ms-7bkermit etc/pl-refcard.tex etc/refcard.tex etc/rgb.txt etc/sk-refcard.tex etc/sk-survival.tex etc/survival.tex etc/tasks.texi etc/termcap.src etc/vipcard.tex etc/viperCard.tex install-sh leim/ChangeLog leim/Makefile.in leim/makefile.nt leim/makefile.w32-in leim/quail/cyril-jis.el leim/quail/cyrillic.el leim/quail/ethiopic.el leim/quail/greek.el leim/quail/hangul.el leim/quail/hangul3.el leim/quail/hanja.el leim/quail/hebrew.el leim/quail/japanese.el leim/quail/latin-alt.el leim/quail/latin-ltx.el leim/quail/latin-pre.el leim/quail/lrt.el leim/quail/thai.el leim/quail/tibetan.el leim/quail/vntelex.el lib-src/ChangeLog lib-src/b2m.pl lib-src/ebrowse.c lib-src/emacstool.c lib-src/make-docfile.c lib-src/makefile.nt lib-src/movemail.c lib-src/ntlib.c lib-src/pop.c lib-src/profile.c lib-src/rcs-checkin lib-src/update-game-score.c lib-src/yow.c lispintro/INSTALL lispintro/Makefile.old lispintro/README lispintro/configure lispintro/install-sh lispintro/texinfo.tex lispref/Makefile.in lispref/README lispref/abbrevs.texi lispref/advice.texi lispref/anti.texi lispref/backups.texi lispref/buffers.texi lispref/calendar.texi lispref/commands.texi lispref/compile.texi lispref/configure lispref/control.texi lispref/customize.texi lispref/debugging.texi lispref/display.texi lispref/edebug.texi lispref/elisp-covers.texi lispref/elisp.texi lispref/errors.texi lispref/eval.texi lispref/files.texi lispref/frames.texi lispref/front-cover-1.texi lispref/functions.texi lispref/gpl.texi lispref/hash.texi lispref/help.texi lispref/hooks.texi lispref/index.perm lispref/intro.texi lispref/keymaps.texi lispref/lists.texi lispref/loading.texi lispref/locals.texi lispref/macros.texi lispref/maps.texi lispref/markers.texi lispref/minibuf.texi lispref/modes.texi lispref/nonascii.texi lispref/numbers.texi lispref/objects.texi lispref/permute-index lispref/positions.texi lispref/processes.texi lispref/searching.texi lispref/sequences.texi lispref/streams.texi lispref/strings.texi lispref/symbols.texi lispref/syntax.texi lispref/text.texi lispref/tindex.pl lispref/tips.texi lispref/two-volume-cross-refs.txt lispref/two.el lispref/variables.texi lispref/vol1.texi lispref/vol2.texi lispref/windows.texi lwlib/ChangeLog lwlib/lwlib-Xaw.c lwlib/lwlib-Xaw.h lwlib/lwlib-Xlw.c lwlib/lwlib-Xm.c lwlib/lwlib-Xm.h lwlib/lwlib-utils.c lwlib/lwlib.c lwlib/lwlib.h lwlib/xlwmenu.c mac/ChangeLog mac/INSTALL mac/inc/config.h mac/inc/m-mac.h mac/make-package mac/makefile.MPW mac/src/chdir.c make-dist man/ChangeLog man/Makefile.in man/ack.texi man/ada-mode.texi man/basic.texi man/buffers.texi man/building.texi man/calc.texi man/calendar.texi man/cc-mode.texi man/cl.texi man/cmdargs.texi man/commands.texi man/custom.texi man/dired-x.texi man/display.texi man/ebrowse.texi man/emacs-mime.texi man/emacs.texi man/entering.texi man/eshell.texi man/eudc.texi man/files.texi man/fixit.texi man/forms.texi man/frames.texi man/glossary.texi man/gnus-faq.texi man/gnus.texi man/idlwave.texi man/indent.texi man/killing.texi man/macos.texi man/maintaining.texi man/mark.texi man/message.texi man/mh-e.texi man/misc.texi man/msdog.texi man/mule.texi man/pcl-cvs.texi man/programs.texi man/reftex.texi man/rmail.texi man/sc.texi man/screen.texi man/texinfo.tex man/text.texi man/tramp.texi man/trouble.texi man/vip.texi man/viper.texi man/widget.texi man/xresources.texi msdos/ChangeLog msdos/mainmake msdos/mainmake.v2 nt/INSTALL nt/addpm.c nt/addsection.c nt/cmdproxy.c nt/config.nt nt/ddeclient.c nt/gmake.defs nt/inc/sys/time.h nt/makefile.def nt/makefile.nt nt/makefile.w32-in nt/nmake.defs nt/preprep.c oldXMenu/Activate.c oldXMenu/AddPane.c oldXMenu/AddSel.c oldXMenu/ChgSel.c oldXMenu/Create.c oldXMenu/DelPane.c oldXMenu/DelSel.c oldXMenu/Destroy.c oldXMenu/FindPane.c oldXMenu/InsPane.c oldXMenu/InsSel.c oldXMenu/Internal.c oldXMenu/Locate.c oldXMenu/Post.c oldXMenu/README oldXMenu/Recomp.c oldXMenu/SetSel.c oldXMenu/X10.h oldXMenu/XCrAssoc.c oldXMenu/XDestAssoc.c oldXMenu/XLookAssoc.c oldXMenu/XMakeAssoc.c oldXMenu/XMenu.h oldXMenu/XMenuInt.h oldXMenu/insque.c src/.gdbinit src/ChangeLog.3 src/ChangeLog.4 src/ChangeLog.5 src/ChangeLog.6 src/ChangeLog.7 src/ChangeLog.8 src/ChangeLog.9 src/abbrev.c src/alloc.c src/alloca.s src/atimer.c src/atimer.h src/blockinput.h src/buffer.c src/buffer.h src/callint.c src/callproc.c src/casetab.c src/category.c src/category.h src/ccl.c src/ccl.h src/charset.c src/cm.c src/coding.c src/composite.c src/composite.h src/config.in src/dired.c src/dispextern.h src/dispnew.c src/doc.c src/ecrt0.c src/editfns.c src/eval.c src/filelock.c src/floatfns.c src/fontset.h src/frame.c src/frame.h src/gmalloc.c src/gtkutil.c src/gtkutil.h src/hftctl.c src/indent.h src/insdel.c src/keyboard.c src/keyboard.h src/lread.c src/m/7300.h src/m/alliant-2800.h src/m/alliant.h src/m/alliant1.h src/m/alliant4.h src/m/alpha.h src/m/altos.h src/m/amdahl.h src/m/amdx86-64.h src/m/apollo.h src/m/att3b.h src/m/celerity.h src/m/convex.h src/m/cydra5.h src/m/delta88k.h src/m/dpx2.h src/m/dual.h src/m/elxsi.h src/m/gould-np1.h src/m/gould.h src/m/hp800.h src/m/hp9000s300.h src/m/i860.h src/m/ibm370aix.h src/m/ibmps2-aix.h src/m/ibmrs6000.h src/m/ibmrt-aix.h src/m/ibmrt.h src/m/ibms390.h src/m/intel386.h src/m/irist.h src/m/is386.h src/m/isi-ov.h src/m/masscomp.h src/m/mega68.h src/m/mg1.h src/m/mips-siemens.h src/m/mips.h src/m/mips4.h src/m/news-risc.h src/m/news.h src/m/nh3000.h src/m/nh4000.h src/m/ns16000.h src/m/ns32000.h src/m/nu.h src/m/orion.h src/m/orion105.h src/m/plexus.h src/m/pmax.h src/m/powermac.h src/m/powerpcle.h src/m/pyramid.h src/m/sequent-ptx.h src/m/sequent.h src/m/sparc.h src/m/sps7.h src/m/sr2k.h src/m/stride.h src/m/sun1.h src/m/sun2.h src/m/sun3-68881.h src/m/sun3-fpa.h src/m/sun3-soft.h src/m/sun3.h src/m/sun386.h src/m/symmetry.h src/m/tad68k.h src/m/tahoe.h src/m/tandem-s2.h src/m/targon31.h src/m/tek4300.h src/m/tekxd88.h src/m/template.h src/m/tower32.h src/m/tower32v3.h src/m/ustation.h src/m/vax.h src/m/wicat.h src/m/windowsnt.h src/m/xps100.h src/mac.c src/macmenu.c src/macros.c src/macterm.c src/macterm.h src/marker.c src/msdos.c src/print.c src/process.c src/puresize.h src/ralloc.c src/regex.c src/region-cache.c src/region-cache.h src/s/386bsd.h src/s/aix4-1.h src/s/bsd4-1.h src/s/cygwin.h src/s/darwin.h src/s/freebsd.h src/s/hiuxmpp.h src/s/hiuxwe2.h src/s/hpux8.h src/s/irix5-0.h src/s/irix5-2.h src/s/ms-w32.h src/s/netbsd.h src/s/ptx.h src/s/sco4.h src/s/sco5.h src/s/template.h src/s/umax.h src/s/vms.h src/scroll.c src/search.c src/sunfns.c src/syntax.c src/syntax.h src/sysdep.c src/syssignal.h src/systime.h src/systty.h src/syswait.h src/term.c src/termhooks.h src/tparam.c src/undo.c src/unexaix.c src/unexalpha.c src/unexconvex.c src/unexec.c src/unexenix.c src/unexhp9k800.c src/unexmacosx.c src/unexnext.c src/unexsni.c src/unexsunos4.c src/unexw32.c src/vm-limit.c src/w32.c src/w32.h src/w32bdf.c src/w32bdf.h src/w32console.c src/w32fns.c src/w32inevt.c src/w32inevt.h src/w32menu.c src/w32proc.c src/w32reg.c src/w32term.h src/w32xfns.c src/widget.c src/widgetprv.h src/window.c src/window.h src/xdisp.c src/xfaces.c src/xfns.c src/xmenu.c src/xterm.c src/xterm.h update-subdirs
diffstat 499 files changed, 7189 insertions(+), 7189 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue Feb 04 13:30:45 2003 +0000
+++ b/ChangeLog	Tue Feb 04 14:56:31 2003 +0000
@@ -1932,7 +1932,7 @@
 
 	* make-dist: Make links for files under lisp/language.
 
-1997-02-20  Kenichi Handa <handa@etl.go.jp>
+1997-02-20  Kenichi Handa  <handa@etl.go.jp>
 
 	* update-subdirs: Exclude the directory "language" from subdirs.
 
@@ -2114,7 +2114,7 @@
 	* config.sub: Use `pc', not `unknown', when canonicalizing
 	the vendor for ...86.
 
-1996-07-15  David Mosberger-Tang <davidm@AZStarNet.com>
+1996-07-15  David Mosberger-Tang  <davidm@AZStarNet.com>
 
 	* configure.in: Check for termios.h header.
 
@@ -3029,7 +3029,7 @@
 	* configure.in (arm-acorn-riscix1.1*, arm-acorn-riscix1.2*):
 	riscix.h renamed to acorn.h.
 
-1994-09-21  Michael Ben-Gershon (mybg@cs.huji.ac.il)
+1994-09-21  Michael Ben-Gershon  (mybg@cs.huji.ac.il)
 
 	* configure.in (arm-acorn-riscix1.1*, arm-acorn-riscix1.2*):
 	New configurations.
--- a/FTP	Tue Feb 04 13:30:45 2003 +0000
+++ b/FTP	Tue Feb 04 14:56:31 2003 +0000
@@ -42,7 +42,7 @@
 
 Descriptions of GNU software are available at
 	http://www.gnu.org/software/software.html
- and in the Free Software Directory at 
+ and in the Free Software Directory at
         http://www.gnu.org/directory/index.html
 
 * Alternative Internet FTP Sources
@@ -57,7 +57,7 @@
 
 
 California - mirrors.kernel.org/gnu, http://mirrors.kernel.org/gnu
-California - gatekeeper.dec.com/pub/GNU/ 
+California - gatekeeper.dec.com/pub/GNU/
 California - ftp.keystealth.org/pub/gnu/
 Illinois - uiarchive.cso.uiuc.edu/pub/ftp/ftp.gnu.org/gnu/
 Indiana - ftp.in-span.net/pub/mirrors/ftp.gnu.org/
@@ -116,7 +116,7 @@
 Japan - mirrors.hbi.co.jp/gnu/
 Japan - ftp.ayamura.org/pub/gnu/
 Korea - cair-archive.kaist.ac.kr/pub/gnu/ (Internet address 143.248.186.3)
-Korea - ftpmirror.hanyang.ac.kr/GNU/ 
+Korea - ftpmirror.hanyang.ac.kr/GNU/
 Korea - ftp.linux.sarang.net/mirror/gnu/gnu/ (also mirrors alpha.gnu.org/gnu/ at ../alpha/)
 Korea - ftp.xgate.co.kr/pub/mirror/gnu/
 Saudi Arabia - ftp.isu.net.sa/pub/gnu/
@@ -173,7 +173,7 @@
 Sweden - ftp.chl.chalmers.se/pub/gnu/
 Switzerland - sunsite.cnlab-switch.ch/mirror/gnu/
 Ukraine - mirddin.farlep.net/pub/GNU/
-United Kingdom - ftp.mcc.ac.uk/pub/gnu/ 
+United Kingdom - ftp.mcc.ac.uk/pub/gnu/
 United Kingdom - ftp.mirror.ac.uk/sites/ftp.gnu.org/pub/gnu/
 United Kingdom - ftp.warwick.ac.uk/pub/gnu/ (Internet address 137.205.192.13)
 United Kingdom - ftp.hands.com/ftp.gnu.org/
--- a/INSTALL	Tue Feb 04 13:30:45 2003 +0000
+++ b/INSTALL	Tue Feb 04 14:56:31 2003 +0000
@@ -59,7 +59,7 @@
      with some non-default options), always clean the source
      directories before running `configure' again:
 
-		make distclean 
+		make distclean
 		./configure
 
   5. Invoke the `make' program:
@@ -127,10 +127,10 @@
 Here's the list of these optional libraries, and the URLs where they
 can be found:
 
-  . libXaw3d for fancy 3D-style 
+  . libXaw3d for fancy 3D-style
       scroll bars:    ftp://ftp.x.org/contrib/widgets/Xaw3d/
   . libxpm for XPM:   ftp://ftp.x.org/contrib/libraries/
-		      Get version 3.4k or later, which lets Emacs 
+		      Get version 3.4k or later, which lets Emacs
 		      use its own color allocation functions.
   . libpng for PNG:   ftp://www.libpng.org/pub/png/
   . libz (for PNG):   http://www.info-zip.org/pub/infozip/zlib/
@@ -138,7 +138,7 @@
                       Get version 6b -- 6a is reported to fail in
                       Emacs.
   . libtiff for TIFF: http://www.libtiff.org/
-  . libungif for GIF: 
+  . libungif for GIF:
       http://prtr-13.ucsc.edu/~badger/software/libungif/index.shtml
       Ensure you get version 4.1.0b1 or higher of libungif -- a bug in
       4.1.0 can crash Emacs.
@@ -226,7 +226,7 @@
 insufficient, you will get an error in the command `temacs -batch -l
 loadup dump', found in `./src/Makefile.in', or possibly when
 running the final dumped Emacs.
- 
+
 Building Emacs requires about 140 MB of disk space (including the
 Emacs sources) Once installed, Emacs occupies about 77 MB in the file
 system where it is installed; this includes the executable files, Lisp
@@ -582,7 +582,7 @@
 	We create the following subdirectories under `libexecdir':
 	- `emacs/VERSION/CONFIGURATION-NAME', containing executable
 		programs used by Emacs that users are not expected to run
-		themselves.  
+		themselves.
 	`VERSION' is the number of the Emacs version you are installing,
 	and `CONFIGURATION-NAME' is the argument you gave to the
 	`configure' program to identify the architecture and operating
--- a/Makefile.in	Tue Feb 04 13:30:45 2003 +0000
+++ b/Makefile.in	Tue Feb 04 14:56:31 2003 +0000
@@ -34,14 +34,14 @@
 #      with them.
 #
 #      Delete `.dvi' files here if they are not part of the distribution.
-# 
+#
 # make distclean
 #      Delete all files from the current directory that are created by
 #      configuring or building the program.  If you have unpacked the
 #      source and built the program without creating any other files,
 #      `make distclean' should leave only the files that were in the
 #      distribution.
-# 
+#
 # make maintainer-clean
 #      Delete everything from the current directory that can be
 #      reconstructed with this Makefile.  This typically includes
@@ -171,7 +171,7 @@
 # building.  This is only used during the process of
 # compiling Emacs, to help Emacs find its lisp files
 # before they've been installed in their final location.
-# It's usually identical to lisppath, except that 
+# It's usually identical to lisppath, except that
 # it does not include locallisppath, and the
 # entry for the directory containing the installed lisp
 # files has been replaced with ../lisp.  This should be a
@@ -236,7 +236,7 @@
 COPYDESTS = ${etcdir} ${lispdir}
 
 # Set to FRC to force running autoconf and autoheader
-MAINT = 
+MAINT =
 
 all: ${SUBDIR} leim
 
@@ -579,7 +579,7 @@
 ###      record the configuration.  Also preserve files that could be made
 ###      by building, but normally aren't because the distribution comes
 ###      with them.
-### 
+###
 ###      Delete `.dvi' files here if they are not part of the distribution.
 clean: FRC
 	(cd src;      $(MAKE) $(MFLAGS) clean)
@@ -618,7 +618,7 @@
 ###      reconstructed with this Makefile.  This typically includes
 ###      everything deleted by distclean, plus more: C source files
 ###      produced by Bison, tags tables, info files, and so on.
-### 
+###
 ###      One exception, however: `make maintainer-clean' should not delete
 ###      `configure' even if `configure' can be remade using a rule in the
 ###      Makefile.  More generally, `make maintainer-clean' should not delete
--- a/README	Tue Feb 04 13:30:45 2003 +0000
+++ b/README	Tue Feb 04 14:56:31 2003 +0000
@@ -53,10 +53,10 @@
 There are several subdirectories:
 
 `src'       holds the C code for Emacs (the Emacs Lisp interpreter and
-            its primitives, the redisplay code, and some basic editing 
+            its primitives, the redisplay code, and some basic editing
             functions).
 `lisp'      holds the Emacs Lisp code for Emacs (most everything else).
-`leim'      holds the library of Emacs input methods, Lisp code and 
+`leim'      holds the library of Emacs input methods, Lisp code and
             auxiliary data files required to type international characters
             which can't be directly produced by your keyboard.
 `lib-src'   holds the source code for some utility programs for use by or
--- a/admin/alloc-colors.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/admin/alloc-colors.c	Tue Feb 04 14:56:31 2003 +0000
@@ -60,7 +60,7 @@
       case 'n':
 	ncolors = atoi (optarg);
 	break;
-	
+
       case '?':
 	usage (argv[0]);
       }
@@ -98,7 +98,7 @@
 	      ++nallocated;
 	    }
 	}
-      
+
       ++color.red;
       ++color.green;
       ++color.blue;
--- a/admin/build-configs	Tue Feb 04 13:30:45 2003 +0000
+++ b/admin/build-configs	Tue Feb 04 14:56:31 2003 +0000
@@ -80,14 +80,14 @@
     unlink "config.cache";
 
     $rc = system ("$root/configure $configure_options >>$log 2>&1");
-    if ($rc != 0) 
+    if ($rc != 0)
       {
 	print "configure failed\n";
 	exit 1;
       }
 
     $rc = system ("make-emacs --all $make_options >>$log 2>&1");
-    if ($rc != 0) 
+    if ($rc != 0)
       {
 	print "Make failed\n";
 	exit 1;
--- a/admin/emacs-pretesters	Tue Feb 04 13:30:45 2003 +0000
+++ b/admin/emacs-pretesters	Tue Feb 04 14:56:31 2003 +0000
@@ -173,7 +173,7 @@
 
 By printing the remaining elements of args, you can see the argument
 values.  Here's how to print the first argument:
-  
+
    p args[1]
    pr
 
@@ -194,7 +194,7 @@
     cd src
     gdb emacs
     b xmenu.c:1209
-    r -q 
+    r -q
 
 Then type C-x 5 2 to create a new frame, and it hits the breakpoint:
 
@@ -207,9 +207,9 @@
     $2 = (struct frame *) 0x3f0800
     (gdb) p *$
     $3 = {
-      size = 536871989, 
-      next = 0x366240, 
-      name = 809661752, 
+      size = 536871989,
+      next = 0x366240,
+      name = 809661752,
       [...]
     }
     (gdb) p $3->name
@@ -258,7 +258,7 @@
   XVECTOR (recent_keys)->contents[recent_keys_index] = c;
 
 So we define a GDB command `xvector-elts', so the last 10 keystrokes
-are printed by 
+are printed by
 
     xvector-elts recent_keys recent_keys_index 10
 
@@ -270,7 +270,7 @@
     xvector
     set $foo = $
     while $i < $arg2
-    p $foo->contents[$arg1-($i++)] 
+    p $foo->contents[$arg1-($i++)]
     pr
     end
     document xvector-elts
@@ -339,7 +339,7 @@
 
 # Giving --cache-file=/dev/null disables caching, for debugging configure.
 
-or more simply, 
+or more simply,
 
 rm config.cache
 ./configure
--- a/admin/make-emacs	Tue Feb 04 13:30:45 2003 +0000
+++ b/admin/make-emacs	Tue Feb 04 14:56:31 2003 +0000
@@ -111,7 +111,7 @@
 
 system ("$make clean versionclean") if $all;
 
-if ($wall) 
+if ($wall)
   {
     $warn = "-Wall";
   }
@@ -125,14 +125,14 @@
 $defs = "$defs -DGC_CHECK_MARKED_OBJECTS=1" if $check_marked;
 $defs = "$defs -DENABLE_CHECKING=1" if $enable_checking;
 
-if ($profile) 
+if ($profile)
   {
     $opts = "-pg";
     $defs = "$defs -DPROFILING=1";
   }
 else
   {
-    if ($use_stabs) 
+    if ($use_stabs)
       {
 	$opts = "-gstabs";
       }
--- a/admin/nt/README-ftp-server	Tue Feb 04 13:30:45 2003 +0000
+++ b/admin/nt/README-ftp-server	Tue Feb 04 14:56:31 2003 +0000
@@ -4,7 +4,7 @@
 			      Version 20.7
 
 			     June 13, 2000
-		
+
   This directory contains source and precompiled distributions for GNU
   Emacs on Windows NT and Windows 95/98/2000.  This port is a part of
   the standard GNU Emacs distribution from the Free Software Foundation;
@@ -116,7 +116,7 @@
 * Unpacking distributions
 
   Programs for handling the distribution file formats can be found in
-  the utilities directory: 
+  the utilities directory:
 
     ftp://ftp.gnu.org/gnu/windows/emacs/utilities
 
--- a/admin/revdiff	Tue Feb 04 13:30:45 2003 +0000
+++ b/admin/revdiff	Tue Feb 04 14:56:31 2003 +0000
@@ -21,11 +21,11 @@
 
 use File::Basename;
 
-if (@ARGV < 3) 
+if (@ARGV < 3)
 {
   print <<USAGE;
 revdiff FILE OLD NEW
-    
+
 Get a diff of FILE between revisions OLD and NEW.  Store the
 diff in a file named FILE-OLD-NEW.diff.
 
@@ -48,7 +48,7 @@
 $file = shift @ARGV;
 $old  = shift @ARGV;
 
-sub diffit 
+sub diffit
 {
   my ($old, $new) = @_;
   print "cvs diff -r$old -r$new $file >$file-$old-$new.diff\n";
@@ -64,9 +64,9 @@
   die "Can't find $entries" unless -f $entries;
   open (IN, "<$entries") or die "Cannot open $entries";
   my $rev;
-  while ($line = <IN>) 
+  while ($line = <IN>)
     {
-      if ($line =~ m,/$base/([^/]+),) 
+      if ($line =~ m,/$base/([^/]+),)
 	{
 	  $rev = $1;
 	  break;
@@ -81,7 +81,7 @@
   {
     $old = current_revision ($file);
   }
-elsif ($old =~ /^-(\d+)$/) 
+elsif ($old =~ /^-(\d+)$/)
   {
     my $offset = $1;
     $old = current_revision ($file);
@@ -90,15 +90,15 @@
     $old = sprintf ("%d.%d", $1, $minor);
   }
 
-while (@ARGV) 
+while (@ARGV)
   {
     my $new = shift @ARGV;
     if ($new =~ /^[+]\d+$/)
       {
 	my $n = $new;
-	for ($i = 0; $i < $n; ++$i) 
+	for ($i = 0; $i < $n; ++$i)
 	  {
-	    unless ($old =~ /(.*)\.(\d+)$/) 
+	    unless ($old =~ /(.*)\.(\d+)$/)
 	      {
 		die "Internal error";
 	      }
@@ -107,13 +107,13 @@
 	    diffit ($old, $new);
 	    $old = $new;
 	  }
-      } 
-    elsif ($new =~ /^[-]\d+$/) 
+      }
+    elsif ($new =~ /^[-]\d+$/)
       {
 	my $n = - $new;
-	for ($i = 0; $i < $n; ++$i) 
+	for ($i = 0; $i < $n; ++$i)
 	  {
-	    unless ($old =~ /(.*)\.(\d+)$/) 
+	    unless ($old =~ /(.*)\.(\d+)$/)
 	      {
 		die "Internal error";
 	      }
@@ -123,7 +123,7 @@
 	    $old = $new;
 	  }
       }
-    else 
+    else
       {
 	diffit ($old, $new);
 	$old = $new;
--- a/configure.in	Tue Feb 04 13:30:45 2003 +0000
+++ b/configure.in	Tue Feb 04 14:56:31 2003 +0000
@@ -77,7 +77,7 @@
 dnl added later on when we find the path of X, and it's best to
 dnl keep them together visually.
 AC_ARG_WITH(x-toolkit,
-[  --with-x-toolkit=KIT    use an X toolkit 
+[  --with-x-toolkit=KIT    use an X toolkit
                               (KIT = yes/lucid/athena/motif/gtk/no)],
 [	  case "${withval}" in
 	    y | ye | yes )	val=athena ;;
@@ -1068,7 +1068,7 @@
       *-xenix* )		opsys=xenix ;;
       *-linux-gnu* )		opsys=gnu-linux ;;
       *-sco3.2v4* )		opsys=sco4 ; NON_GNU_CPP=/lib/cpp  ;;
-      *-sco3.2v5* )		opsys=sco5 
+      *-sco3.2v5* )		opsys=sco5
 				NON_GNU_CPP=/lib/cpp
 				# Prevent -belf from being passed to $CPP.
 				# /lib/cpp does not accept it.
@@ -1112,7 +1112,7 @@
 
   ## AMD x86-64 Linux-based GNU system
   x86_64-*-linux-gnu* )
-    machine=amdx86-64 opsys=gnu-linux 
+    machine=amdx86-64 opsys=gnu-linux
   ;;
 
   * )
@@ -1333,7 +1333,7 @@
 
 #ifndef LD_SWITCH_X_SITE_AUX
 #define LD_SWITCH_X_SITE_AUX
-#endif  
+#endif
 
 configure___ ld_switch_system=LD_SWITCH_SYSTEM
 configure___ ld_switch_machine=LD_SWITCH_MACHINE
@@ -1447,7 +1447,7 @@
   [AC_TRY_COMPILE([#include <termios.h>], [speed_t x = 1;],
     emacs_cv_speed_t=yes, emacs_cv_speed_t=no)])
 if test $emacs_cv_speed_t = yes; then
-  AC_DEFINE(HAVE_SPEED_T, 1, 
+  AC_DEFINE(HAVE_SPEED_T, 1,
   	   [Define to 1 if `speed_t' is declared by <termios.h>.])
 fi
 
@@ -1469,7 +1469,7 @@
 fi
 
 AC_CACHE_CHECK(for struct exception, emacs_cv_struct_exception,
-AC_TRY_COMPILE([#include <math.h>], 
+AC_TRY_COMPILE([#include <math.h>],
 [static struct exception x; x.arg1 = x.arg2 = x.retval; x.name = ""; x.type = 1;],
   emacs_cv_struct_exception=yes, emacs_cv_struct_exception=no))
 HAVE_EXCEPTION=$emacs_cv_struct_exception
@@ -1498,7 +1498,7 @@
 dnl the compiler groks `extern inline'.
 dnl AC_C_INLINE
 AC_CACHE_CHECK([for void * support], emacs_cv_void_star,
-  [AC_TRY_COMPILE(, [void * foo;], 
+  [AC_TRY_COMPILE(, [void * foo;],
                    emacs_cv_void_star=yes, emacs_cv_void_star=no)])
 if test $emacs_cv_void_star = yes; then
   AC_DEFINE(POINTER_TYPE, void)
@@ -1599,7 +1599,7 @@
 case ${HAVE_X11} in
   yes ) HAVE_MENUS=yes ;;
 esac
-  
+
 if test "${opsys}" = "hpux9"; then
   case "${x_libraries}" in
     *X11R4* )
@@ -1827,7 +1827,7 @@
         else
             $1_CFLAGS=""
             $1_LIBS=""
-            ## If we have a custom action on failure, don't print errors, but 
+            ## If we have a custom action on failure, don't print errors, but
             ## do set a variable so people can do so.
             $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
             ifelse([$4], ,echo $$1_PKG_ERRORS,)
@@ -1978,7 +1978,7 @@
     if test ${HAVE_LIBXP} = yes; then
       AC_DEFINE(HAVE_LIBXP, 1,
 		[Define to 1 if you have the Xp library (-lXp).])
-    fi	
+    fi
   fi
 fi
 
@@ -1996,7 +1996,7 @@
     fi
   fi
 fi
-  
+
 dnl Use toolkit scroll bars if configured for GTK or X toolkit and either
 dnl using Motif or Xaw3d is available, and unless
 dnl --with-toolkit-scroll-bars=no was specified.
@@ -2055,7 +2055,7 @@
     AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm libary (-lXpm).])
   fi
 fi
-  
+
 ### Use -ljpeg if available, unless `--with-jpeg=no'.
 HAVE_JPEG=no
 if test "${HAVE_X11}" = "yes"; then
@@ -2072,13 +2072,13 @@
     AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])],
         [#include <jpeglib.h>
 	 version=JPEG_LIB_VERSION
-],    
+],
         AC_DEFINE(HAVE_JPEG),
         [AC_MSG_WARN([libjpeg found, but not version 6b or later])
         HAVE_JPEG=no])
   fi
 fi
-  
+
 ### Use -lpng if available, unless `--with-png=no'.
 HAVE_PNG=no
 if test "${HAVE_X11}" = "yes"; then
@@ -2091,7 +2091,7 @@
     AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).])
   fi
 fi
-  
+
 ### Use -ltiff if available, unless `--with-tiff=no'.
 HAVE_TIFF=no
 if test "${HAVE_X11}" = "yes"; then
@@ -2107,7 +2107,7 @@
     AC_DEFINE(HAVE_TIFF, 1, [Define to 1 if you have the tiff library (-ltiff).])
   fi
 fi
-  
+
 ### Use -lgif if available, unless `--with-gif=no'.
 HAVE_GIF=no
 if test "${HAVE_X11}" = "yes"; then
@@ -2158,7 +2158,7 @@
     esac
   fi
 fi
-  
+
 # If netdb.h doesn't declare h_errno, we must declare it by hand.
 AC_CACHE_CHECK(whether netdb declares h_errno,
 	       emacs_cv_netdb_declares_h_errno,
@@ -2588,7 +2588,7 @@
 
 
 /* No code in Emacs #includes config.h twice, but some bits of code
-   intended to work with other packages as well (like gmalloc.c) 
+   intended to work with other packages as well (like gmalloc.c)
    think they can include it as many times as they like.  */
 #ifndef EMACS_CONFIG_H
 #define EMACS_CONFIG_H
@@ -2812,7 +2812,7 @@
 #ifdef __GNUC__
 #  ifndef GC_SETJMP_WORKS
   /* GC_SETJMP_WORKS is nearly always appropriate for GCC --
-     see NON_SAVING_SETJMP in the target descriptions.  */   
+     see NON_SAVING_SETJMP in the target descriptions.  */
   /* Exceptions (see NON_SAVING_SETJMP in target description) are ns32k,
      SCO5 non-ELF (but Emacs specifies ELF) and SVR3 on x86.
      Fixme: Deal with ns32k, SVR3.  */
@@ -2835,7 +2835,7 @@
 
 #endif /* EMACS_CONFIG_H */
 
-/* 
+/*
 Local Variables:
 mode: c
 End:
--- a/etc/COOKIES	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/COOKIES	Tue Feb 04 14:56:31 2003 +0000
@@ -14,8 +14,8 @@
 thinking the cost would be $15 to $25.  It turned out
 to be $200!
 
-Therefore, this person is giving the recipe to anyone 
-and everyone she knows (and doesn't know) so that 
+Therefore, this person is giving the recipe to anyone
+and everyone she knows (and doesn't know) so that
 someone can get use of her $200.  Anyway, just keep
 passing it on.
 
@@ -27,7 +27,7 @@
 			2 tsp. vanilla
 
 Mis together in
-separate bowl:		4 cups flour 
+separate bowl:		4 cups flour
 			5 cups oatmeal (put small
  amounts of oatmeal in blender until it turns to
  powder.  Measure out 5 cups of oatmeal and only
@@ -45,7 +45,7 @@
 Add:			3 cups chopped nuts (any kind)
 
 Bake on greased cookie sheet (make golf ball sized balls) and
-bake about two inches apart.  Bake at 350 degrees for 8 - 10 
+bake about two inches apart.  Bake at 350 degrees for 8 - 10
 minutes. DO NOT OVERBAKE.  Makes 112.
 
 From: ucdavis!lll-lcc!hplabs!parcvax!bane@ucbvax.berkeley.edu (John R. Bane)
@@ -56,14 +56,14 @@
 dollar (I would like to suggest this to the net, but I think there is
 some netiquette rule against asking for money - or is that only money
 for oneself?) to help defray the cost (it's not much, but if EVERYone
-who took the recipe sent you a dollar, it would help). 
+who took the recipe sent you a dollar, it would help).
 
-Here also is another cookie recipe which I'm very fond of. 
+Here also is another cookie recipe which I'm very fond of.
 
 Makes 6-8 dozen
 Bake at 375 degrees for ~10 min.
 
-Cream together: 
+Cream together:
 
 1 cup shortening (I use Weight Watcher's Reduced Calorie Margarine!)
 1/4 cup peanut butter (I recommend the non-sugared kind)
@@ -104,7 +104,7 @@
 
 Chocolate Chip Cookies - Glamorous, crunchy, rich with chocolate bits & nuts.
 
-Also known as "Toll House" Cookies ... from Kenneth and Ruth Wakefield's 
+Also known as "Toll House" Cookies ... from Kenneth and Ruth Wakefield's
 charming New England Toll House on the outskirts of Whitman, Massachusetts.
 These cookies were first introduced to American homemakers in 1939 through
 our series of radio talks on "Famous Foods From Famous Eating Places."
--- a/etc/ChangeLog	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/ChangeLog	Tue Feb 04 14:56:31 2003 +0000
@@ -386,7 +386,7 @@
 
 	* ps-prin0.ps: Changed comment version (6.0).
 
-2000-08-24  Wlodzimierz Bzyl <matwb@univ.gda.pl>
+2000-08-24  Wlodzimierz Bzyl  <matwb@univ.gda.pl>
 
 	* survival.tex: New file.
 
--- a/etc/DEBUG	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/DEBUG	Tue Feb 04 14:56:31 2003 +0000
@@ -115,7 +115,7 @@
     cd src
     gdb emacs
     b xmenu.c:1296
-    r -q 
+    r -q
 
 Then type C-x 5 2 to create a new frame, and it hits the breakpoint:
 
@@ -128,9 +128,9 @@
     $2 = (struct frame *) 0x3f0800
     (gdb) p *$
     $3 = {
-      size = 536871989, 
-      next = 0x366240, 
-      name = 809661752, 
+      size = 536871989,
+      next = 0x366240,
+      name = 809661752,
       [...]
     }
     (gdb) p $3->name
@@ -177,7 +177,7 @@
   XVECTOR (recent_keys)->contents[recent_keys_index] = c;
 
 So we define a GDB command `xvector-elts', so the last 10 keystrokes
-are printed by 
+are printed by
 
     xvector-elts recent_keys recent_keys_index 10
 
@@ -189,7 +189,7 @@
     xvector
     set $foo = $
     while $i < $arg2
-    p $foo->contents[$arg1-($i++)] 
+    p $foo->contents[$arg1-($i++)]
     pr
     end
     document xvector-elts
@@ -217,7 +217,7 @@
 
 By printing the remaining elements of args, you can see the argument
 values.  Here's how to print the first argument:
-  
+
    p args[1]
    pr
 
@@ -230,7 +230,7 @@
 
 and, assuming that "xtype" says that args[0] is a symbol:
 
-   xsymbol 
+   xsymbol
 
 ** Debugging what happens while preloading and dumping Emacs
 
@@ -450,7 +450,7 @@
 helpful to set the `DEBUGSOURCES' and `DEBUG_FILE' environment
 variables, so that one can see what LessTif was doing at this point.
 For instance
-  
+
   export DEBUGSOURCES="RowColumn.c:MenuShell.c:MenuUtil.c"
   export DEBUG_FILE=/usr/tmp/LESSTIF_TRACE
   emacs &
--- a/etc/JOKES	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/JOKES	Tue Feb 04 14:56:31 2003 +0000
@@ -20,7 +20,7 @@
 Q:  What do you call a computer filled with air?
 A:  Gnumatic.
 
-Q:  What do you call a novice hacker who keeps pestering you 
+Q:  What do you call a novice hacker who keeps pestering you
     with foolish questions?
 A:  A gnuisance.
 
@@ -100,7 +100,7 @@
 ?
 bye
 ?
-hello? 
+hello?
 ?
 eat flaming death
 ?
@@ -173,12 +173,12 @@
 Even a
 Master of
 Arts
-Comes 
+Comes
 Simpler
 
 Emacs
 Manuals
-Are 
+Are
 Cryptic and
 Surreal
 
@@ -206,13 +206,13 @@
 Computer
 Storage
 
-Even 
-My 
+Even
+My
 Aunt
 Crashes the
 System
 
-Eradication of 
+Eradication of
 Memory
 Accomplished with
 Complete
@@ -312,7 +312,7 @@
 Communist
 Subversion
 
-Extensibility and 
+Extensibility and
 Modifiability
 Aggravate
 Confirmed
@@ -384,9 +384,9 @@
 Comes
 Simpler
 
-Erasing 
+Erasing
 Minds
-Allows 
+Allows
 Complete
 Submission
 
@@ -402,7 +402,7 @@
 Considered
 Sine que non
 
-Emacs 
+Emacs
 Makers
 Are
 Crazy
@@ -463,14 +463,14 @@
 
 Evenings,
 Mornings,
-And a 
+And a
 Couple of
 Saturdays
 
 (In reference to the odd hours that went into the creation of my
 implementation).
 
--- 
+--
 
 	Warren Montgomery
 	ihnss!warren
@@ -493,10 +493,10 @@
 Pleeeeeeeze!!!  Nice try on the meaning of EMACS.  I believe the
 correct acronym is:
 
-Emacs 
+Emacs
 Makes
-All 
-Computing 
+All
+Computing
 Simple
 
 Thank you, and Good Night
@@ -514,7 +514,7 @@
 > More recursive acronyms, anyone?
 Many people have also seen FINE Is Not Emacs, but the one that has
 character is THief Isn't Even Fine.
--- 
+--
 ## Bill Stewart, AT&T Bell Labs, Holmdel NJ 1-201-949-0705 ihnp4!ho95c!wcs
 
 Path: mit-eddie!think!harvard!bbnccv!bbncca!linus!decvax!mcnc!ncsu!uvacs!edison!ta2
@@ -526,13 +526,13 @@
 Apparently-To: emacs-netnews-distribution@mit-prep
 
 > GNU = Gnu's Not UNIX. There is also MINCE, for Mince Is Not a Complete Emacs.
-> 
+>
 > More recursive acronyms, anyone?
-> 
+>
 
 For the DEC-system-10/20: FINE - Fine Is Not Emacs.....
 
--- 
+--
 ...............
 tom allebrandi 2, general electric aco, charlottesville, va
 {decvax,duke}!mcnc!ncsu!uvacs!edison!ta2
@@ -613,10 +613,10 @@
 Emacs: My Alternative Computer Story
 Emacs Made Almost Completely Screwed
        (by extensive use of M-x global-unset-key)
-Emacs Macht Alle Computer Schoen 
+Emacs Macht Alle Computer Schoen
        (deutsch)  (=Emacs makes all computers beautiful)
 Each Mail A Continued Surprise
-Every Mode Acknowledges Customized Strokes 
+Every Mode Acknowledges Customized Strokes
        (keystrokes, of course :-)
 Eating Memory And Cycle-Sucking
 Everyday Material Almost Compiled Successfully
--- a/etc/LEDIT	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/LEDIT	Tue Feb 04 14:56:31 2003 +0000
@@ -17,7 +17,7 @@
 
      cc leditcfns.c
 
-   - Edit ledit.l, changing the line beginning "(cfasl" to 
+   - Edit ledit.l, changing the line beginning "(cfasl" to
      have the right pathname for the cfns file you compiled in
      the last step.
 
@@ -69,7 +69,7 @@
 I have tried the 2 window method (shell in lower window, lisp code in
 upper), and have found it a little awkward.  It does have certain
 advantages, but most of the time, I get be fine using M-C-D to save a
-defun for lisp, and C-X Z to jump back to LISP.  C-E RETURN from lisp 
+defun for lisp, and C-X Z to jump back to LISP.  C-E RETURN from lisp
 is also mnemonic for getting back to gnumacs.
 
 I hope this helps somewhat.
--- a/etc/LINUX-GNU	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/LINUX-GNU	Tue Feb 04 14:56:31 2003 +0000
@@ -124,7 +124,7 @@
 
 However, it is not enough just to talk about freedom; we must also
 make sure people know the reasons it is worth listening to what we
-say.  
+say.
 
 Long explanations such as our philosophical articles are one way of
 informing the public, but you may not want to spend so much time on
--- a/etc/LPF	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/LPF	Tue Feb 04 14:56:31 2003 +0000
@@ -62,7 +62,7 @@
     P.O.Box 9171
     Cambridge, Massachusetts 02139
 
-(Outside the US, please send a check in US dollars on a bank 
+(Outside the US, please send a check in US dollars on a bank
 having a US correspondent bank, to save us check cashing fees.)
 
 Your name:
--- a/etc/MAILINGLISTS	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/MAILINGLISTS	Tue Feb 04 14:56:31 2003 +0000
@@ -331,7 +331,7 @@
 program bugs'.
 
 * help-gnustep-request@gnu.org to subscribe to help-gnustep
-** gnUSENET newsgroup: gnu.gnustep.help	
+** gnUSENET newsgroup: gnu.gnustep.help
 ** Send contributions to: help-gnustep@gnu.org
 ** FAQ-URL: none known
 ** FAQ-Archive-name: none known
@@ -344,7 +344,7 @@
 See section '* General Information about help-* lists'.
 
 * discuss-gnustep-request@gnu.org to subscribe to discuss-gnustep
-** gnUSENET newsgroup: gnu.gnustep.discuss	
+** gnUSENET newsgroup: gnu.gnustep.discuss
 ** Send contributions to: discuss-gnustep@gnu.org
 ** FAQ-URL: none known
 ** FAQ-Archive-name: none known
@@ -411,7 +411,7 @@
 ** gnUSENET newsgroup: NONE
 ** Send contributions to: discuss-gnu-electric@gnu.org
 
-This list is the place for user discussion of Gnu Electric, a 
+This list is the place for user discussion of Gnu Electric, a
 sophisticated electrical CAD system that can handle many forms of
 circuit design.  Please send bug reports to bug-gnu-electric@gnu.org
 (see next entry).
@@ -583,7 +583,7 @@
 ** NCURSES bug reports to: bug-ncurses@gnu.org
 
 This list distributes, to the active maintainers of ncurses
-(a free implementation of the Unix curses API) bug reports and fixes 
+(a free implementation of the Unix curses API) bug reports and fixes
 for, and suggestions for improvements in ncurses.  Users can also
 subscribe to this list.
 
@@ -977,7 +977,7 @@
 
 This list distributes, to the active maintainers of zebra (a GPLed
 program to manage TCP/IP based routing protocols), bug reports, bug fixes,
-and suggestions for improvements to zebra.  User discussion of zebra 
+and suggestions for improvements to zebra.  User discussion of zebra
 also occurs here.
 
 There are no other GNU mailing lists or gnUSENET newsgroups for zebra.
@@ -1337,7 +1337,7 @@
 
 This list is unmoderated.
 
-* gpc-request@gnu.de to subscribe to gpc 
+* gpc-request@gnu.de to subscribe to gpc
 ** gnUSENET newsgroup: None at present.
 ** Send contributions to: gpc@gnu.de
 
--- a/etc/MH-E-NEWS	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/MH-E-NEWS	Tue Feb 04 14:56:31 2003 +0000
@@ -372,7 +372,7 @@
 *** Speedbar
 
 There is now support for the speedbar. Try "M-x speedbar" (closes SF
-#503727). 
+#503727).
 
 Press the middle mouse button on the `+' icons to open a folder,
 middle mouse button on a folder name to open the folder. Folders with
@@ -453,7 +453,7 @@
 
 It has also been observed that if you don't see the faces, you might
 have to do this (for unknown reasons):
-    
+
     mv /usr/local/include/compface.h /usr/include/
 
 *** Graphical Smileys
@@ -639,7 +639,7 @@
 "M-q (fill-paragraph)" now fills quoted paragraphs (for example,
 starting with "> ") correctly (closes SF #489927).
 
-*** mh-next-undeleted-msg, mh-previous-undeleted-msg 
+*** mh-next-undeleted-msg, mh-previous-undeleted-msg
 
 If there are no more undeleted messages the point remains at its
 original position and a message is produced (closes SF #494304).
@@ -853,7 +853,7 @@
 moves to the next message (respecting the direction you are moving
 through the folder).
 
-The threading commands "T u (mh-next-unseen-subject-thread)", 
+The threading commands "T u (mh-next-unseen-subject-thread)",
 "T t (mh-toggle-subject-thread)", "T s (mh-narrow-to-subject-thread)",
 and "T k (mh-delete-subject-thread)" have been added. These functions
 do not offer threading in the true sense of the word, but do allow
--- a/etc/ONEWS	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/ONEWS	Tue Feb 04 14:56:31 2003 +0000
@@ -908,7 +908,7 @@
 highlighting based not only on what's visible in the buffer, but on
 other data structures.
 
-**** Old packages like `expire-kill' will no longer work.  
+**** Old packages like `expire-kill' will no longer work.
 
 **** `C-c C-l' in the group buffer no longer switches to a different
 buffer, but instead lists killed groups in the group buffer.
@@ -917,7 +917,7 @@
 
 **** The look of all buffers can be changed by setting format-like
 variables.
- 
+
 **** Local spool and several NNTP servers can be used at once.
 
 **** Groups can be combined into virtual groups.
@@ -1006,7 +1006,7 @@
 
 *** Starting a new branch.
 
-If you try to lock a version that is not the latest on its branch, 
+If you try to lock a version that is not the latest on its branch,
 VC asks for confirmation in the minibuffer.  If you say no, it offers
 to lock the latest version instead.
 
@@ -1029,7 +1029,7 @@
 *** RCS customization.
 
 There is a new variable vc-consult-headers.  If it is t (the default),
-VC searches for RCS headers in working files (like `$Id: ONEWS,v 1.6 2002/01/12 15:36:53 pj Exp $') and
+VC searches for RCS headers in working files (like `$Id: ONEWS,v 1.7 2002/08/21 00:18:46 rms Exp $') and
 determines the state of the file from them, not from the master file.
 This is fast and more reliable when you use branches.  (The variable
 was already present in Emacs 19.29, but didn't get mentioned in the
@@ -1058,7 +1058,7 @@
 
 *** New sexp diary entry type
 
-Reminders that apply in the days leading up to an event. 
+Reminders that apply in the days leading up to an event.
 
 ** The CC-mode package now provides the default C and C++ modes.
 See the manual for documentation of its features.
@@ -1225,16 +1225,16 @@
 longer necessary to explicitly load tpu-edt.  All you need to do to
 turn on tpu-edt is run the tpu-edt function.  Here's how to run
 tpu-edt instead of loading the file:
-  
+
   Running Emacs:   Type      emacs -f tpu-edt
                     not      emacs -l tpu-edt
 
   Within Emacs:    Type      M-x tpu-edt <ret>
                     not      M-x load-library <ret> tpu-edt <ret>
-  
+
   In .emacs:       Use       (tpu-edt)
                    not       (load "tpu-edt")
-  
+
 The default name of the tpu-edt X key definition file has changed from
 ~/.tpu-gnu-keys to ~/.tpu-keys.  If you don't rename the file yourself,
 tpu-edt will offer to rename it the first time you invoke it under
@@ -1250,20 +1250,20 @@
 colors before changing to the colors you have specified.  To avoid
 this, the EMACSCOLORS environment variable exists.  It shall be
 defined as a string with the following elements:
-  
+
     set EMACSCOLORS=fb;fb
-  
+
 The first set of "fb" defines the initial foreground and background
 colors using standard dos color numbers (0=black,.., 7=white).
 If specified, the second set of "fb" defines the colors which are
 restored when you leave emacs.
-  
+
 *** The new SUSPEND environment variable can now be set as the shell to
 use when suspending emacs.  This can be used to override the stupid
 limitation on the environment of sub-shells in MS-DOS (they are just
 large enough to hold the currently defined variables, not leaving
 room for more); to overcome this limitation, add this to autoexec.bat:
-  
+
     set SUSPEND=%COMSPEC% /E:2000
 
 ** The escape character can now be displayed on X frames.  Try
@@ -1616,7 +1616,7 @@
 *** You can use this menu to change the face of the region.
 You can also set the face of the region with the new M-g command.
 
-*** The menu also includes commands for indenting the region, 
+*** The menu also includes commands for indenting the region,
 which locally changes the values of left-margin and fill-column that
 are used.
 
@@ -1770,7 +1770,7 @@
 
 *** It now works to set bookmarks in Info nodes.
 
-*** Bookmarks can have annotations; type "C-h m" after doing 
+*** Bookmarks can have annotations; type "C-h m" after doing
 "M-x list-bookmarks", for more information on annotations.
 
 *** The bookmark-jump popup menu function is now `bookmark-menu-jump', for
@@ -1816,7 +1816,7 @@
 message displays during long re-indention.  This is a new feature
 which prints percentage complete messages at specified intervals.
 
-** Makefile mode changes. 
+** Makefile mode changes.
 
 *** The electric keys are not enabled by default.
 
@@ -2382,7 +2382,7 @@
 function, an encoding function, a flag that indicates whether the
 encoding function modifies the buffer, and a mode function.
 
-FROM-FN is called to decode files in that format; it gets two args, BEGIN 
+FROM-FN is called to decode files in that format; it gets two args, BEGIN
         and END, and can make any modifications it likes, returning the new
         end position.  It must make sure that the beginning of the file no
 	longer matches REGEXP, or else it will get called again.
@@ -2763,7 +2763,7 @@
 (current-left-margin), which return the proper values to use for the
 current line.
 
-**** There are new functions for dealing with margins: 
+**** There are new functions for dealing with margins:
 
 ***** Set-left-margin and set-right-margin (set the value for a region
 and re-fill).  These functions take three arguments: two to specify
@@ -2803,7 +2803,7 @@
 
 **** Filling and auto-fill are disabled if justification is `none'.
 
-**** The auto-fill-function is now called regardless of whether 
+**** The auto-fill-function is now called regardless of whether
 the fill-column has been exceeded; the function can determine on its
 own whether filling (or justification) is necessary.
 
@@ -3291,7 +3291,7 @@
 comint-completion-fignore.  The default value is nil, but some
 people prefer ("~" "#" "%").
 
-*** The function `comint-watch-for-password-prompt' can be used to 
+*** The function `comint-watch-for-password-prompt' can be used to
 suppress echoing when a subprocess asks for a password.  To use it,
 do this:
 
@@ -3429,7 +3429,7 @@
 
 If, for example, you wanted to change this style:
 
-int foo (int i) 
+int foo (int i)
 {
     switch (i) {
     case 1:
@@ -3443,7 +3443,7 @@
 
 into this:
 
-int foo (int i) 
+int foo (int i)
 {
     switch (i) {
       case 1:
@@ -3694,7 +3694,7 @@
 
 ** If you specify an explicit title for a new frame when you create it,
 the title is used as the resource name when looking up X resources to
-control the shape of that frame.  If you don't specify the frame title, 
+control the shape of that frame.  If you don't specify the frame title,
 the value of x-resource-name is used, as before.
 
 ** The frame parameter user-position, if non-nil, says that the user
@@ -3801,7 +3801,7 @@
 
 ** Overlays can have the `invisible' property.
 
-** The function insert-file-contents now takes an optional fifth 
+** The function insert-file-contents now takes an optional fifth
 argument called REPLACE.  If this is t, it means to replace the
 contents of the buffer (actually, just the accessible portion)
 with the contents of the file.
@@ -3912,7 +3912,7 @@
 and inhibit handling of the file name.  Here is how to do it:
 
 (let ((inhibit-file-name-handlers
-       (cons 'ange-ftp-file-handler 
+       (cons 'ange-ftp-file-handler
              (and (eq inhibit-file-name-operation operation)
                       inhibit-file-name-handlers)))
       (inhibit-file-name-operation operation))
@@ -4114,7 +4114,7 @@
 ** M-TAB in Text mode now runs the command ispell-complete-word
 which performs completion using the spelling dictionary.
 
-The spelling correction submenu now includes this command 
+The spelling correction submenu now includes this command
 and another command which completes a word fragment (that is,
 it doesn't assume that the text to be completed starts at the
 beginning of a word.
@@ -4617,11 +4617,11 @@
 
 * Changes in version 19.17.
 
-** When Emacs displays a list of completions in a buffer, 
+** When Emacs displays a list of completions in a buffer,
 you can select a completion by clicking mouse button 2
 on that completion.
 
-** Use the command `list-faces-display' to display a list of 
+** Use the command `list-faces-display' to display a list of
 all the currently defined faces, showing what they look like.
 
 ** Menu bar items from local maps now come after the usual items.
@@ -4636,8 +4636,8 @@
 
 ** Dunnet, an adventure game, is now available.
 
-** Several major modes now have their own menu bar items, 
-including Dired, Rmail, and Sendmail.  We would like to add 
+** Several major modes now have their own menu bar items,
+including Dired, Rmail, and Sendmail.  We would like to add
 suitable menu bar items to other major modes.
 
 ** The key binding C-x a C-h has been eliminated.
@@ -4821,7 +4821,7 @@
 
 ** The Edit entry in the menu bar has a new alternative:
 "Choose Next Paste".  It gives you a menu showing the various
-strings in the kill ring; click on one to select it as the text 
+strings in the kill ring; click on one to select it as the text
 to be yanked ("pasted") the next time you yank.
 
 ** If you enable Transient Mark mode and set `mark-even-if-inactive' to
@@ -5151,7 +5151,7 @@
 ** You can quit while Emacs is waiting to read or write files.
 
 ** The arrow keys now have default bindings to move in the appropriate
-directions. 
+directions.
 
 ** You can suppress next-line's habit of inserting a newline when
 called at the end of a buffer by setting next-line-add-newlines to nil
@@ -5378,7 +5378,7 @@
 whether to save a particular buffer.  In addition to `y' or `n', you
 can answer `!' to save all the remaining buffers, `.' to save this
 buffer but not save any others, ESC to stop saving and exit the
-command, and C-h to get help.  These options are analogous to those 
+command, and C-h to get help.  These options are analogous to those
 of `query-replace'.
 
 ** M-x make-symbolic-link does not expand its first argument.
@@ -5594,7 +5594,7 @@
 
 *** The old TeX mode bindings of M-{ and M-} have been moved to C-c {
 and C-c }.  (These commands are `up-list' and `tex-insert-braces';
-they are the TeX equivalents of M-( and M-).)  This is because M-{ 
+they are the TeX equivalents of M-( and M-).)  This is because M-{
 and M-} are now globally defined commands.
 
 *** Changes in Mail mode.
@@ -5872,11 +5872,11 @@
 *** There is a new major mode for editing binary files: Hexl mode.
 To use it, use M-x hexl-find-file instead of C-x C-f to visit the file.
 This command converts the file's contents to hexadecimal and lets you
-edit the translation.  When you save the file, it is converted 
+edit the translation.  When you save the file, it is converted
 automatically back to binary.
 
 You can also use M-x hexl-mode to translate an existing buffer into hex.
-Do this if you have already visited a binary file.  
+Do this if you have already visited a binary file.
 
 Hexl mode has a few other commands:
 
@@ -6070,7 +6070,7 @@
 *** Shell mode has been completely replaced.
 The basic idea is the same, but there are new commands available in
 this mode.
-      
+
 TAB now completes the file name before point in the shell buffer.
 To get a list of all possible completions, type M-?.
 
@@ -6082,8 +6082,8 @@
 When you find the command you wanted, you can edit it, or just
 resubmit it by typing RET.
 
-You can also use M-r and M-s to search for (respectively) earlier or 
-later inputs starting with a given string.  First type the string, 
+You can also use M-r and M-s to search for (respectively) earlier or
+later inputs starting with a given string.  First type the string,
 then type M-r to yank a previous input from the history which starts
 with that string.  You can repeat M-r to find successively earlier
 inputs starting with the same string.  You can start moving in the
@@ -6110,9 +6110,9 @@
 M-x send-invisible reads a line of text without echoing it, and
 sends it to the shell.
 
-If you accidentally suspend your process, use M-x comint-continue-subjob 
+If you accidentally suspend your process, use M-x comint-continue-subjob
 to continue it.
-         
+
 *** There is now a convenient way to enable flow control on terminals
 where you can't win without it.  Suppose you want to do this on
 VT-100 and H19 terminals; put the following in your `.emacs' file:
--- a/etc/ONEWS.1	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/ONEWS.1	Tue Feb 04 14:56:31 2003 +0000
@@ -330,7 +330,7 @@
  the string, it is used unchanged.
 
  One way this feature can be used is to fix bad keyboard
- designes.  For example, on some terminals, Delete is 
+ designes.  For example, on some terminals, Delete is
  Shift-Underscore.  Since Delete is a more useful character
  than Underscore, it is an improvement to make the unshifted
  character Delete and the shifted one Underscore.  This can
@@ -553,7 +553,7 @@
  C-h a now runs the new function command-apropos rather than
  apropos, and shows only symbols with definitions as commands.
 
-* M-x shell sends the command 
+* M-x shell sends the command
     if (-f ~/.emacs_NAME)source ~/.emacs_NAME
  invisibly to the shell when it starts.  Here NAME
  is replaced by the name of shell used,
@@ -955,7 +955,7 @@
 
  To exit the debugger and return to top level, type `q'.
 
- In the debugger, you can evaluate Lisp expressions by 
+ In the debugger, you can evaluate Lisp expressions by
  typing `e'.  This is equivalent to `M-ESC'.
 
  When the debugger is entered due to an error, that is
@@ -1053,7 +1053,7 @@
  or more asterisks) and text lines (all other lines).
  The number of asterisks in a heading line are its level;
  the subheadings of a heading line are all following heading
- lines at higher levels, until but not including the next 
+ lines at higher levels, until but not including the next
  heading line at the same or a lower level, regardless
  of intervening text lines.
 
@@ -1066,7 +1066,7 @@
 
   All editing commands treat hidden outline-mode lines
  as part of the preceding visible line.
- 
+
 * C-x C-z runs save-buffers-kill-emacs
  offers to save each file buffer, then exits.
 
--- a/etc/ONEWS.2	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/ONEWS.2	Tue Feb 04 14:56:31 2003 +0000
@@ -482,7 +482,7 @@
 
 The functions `forward-to-word', `backward-to-word',
 `upcase-char', `mark-beginning-of-buffer' and `mark-end-of-buffer'
-have been removed.  Their definitions can be found in file 
+have been removed.  Their definitions can be found in file
 lisp/unused.el if you need them.
 
 Upward Compatible Lisp Programming Changes in Emacs 17
@@ -882,7 +882,7 @@
 is checked for validity.  The close paren must be the kind
 of close-paren that the open-paren says it should match.
 Otherwise, a warning message is printed.  close-paren immediately
-preceded by quoting backslash syntax character is not matched. 
+preceded by quoting backslash syntax character is not matched.
 
 This feature was originally written by shane@mit-ajax.
 
@@ -1286,7 +1286,7 @@
 
 Old functions `read-minibuffer', `eval-minibuffer', `read-string' all
 take second optional string argument which is initial contents of
-minibuffer. 
+minibuffer.
 
 * minibuffer variable names changed (names of keymaps)
 
--- a/etc/ONEWS.4	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/ONEWS.4	Tue Feb 04 14:56:31 2003 +0000
@@ -50,7 +50,7 @@
 information.  You can use the variables undo-threshold
 and undo-high-threshold to control how much.
 
-* There is no longer a maximum screen height or width. 
+* There is no longer a maximum screen height or width.
 
 Changes in version 18.52.
 
--- a/etc/ORDERS.EUROPE	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/ORDERS.EUROPE	Tue Feb 04 14:56:31 2003 +0000
@@ -111,7 +111,7 @@
 Tax and Shipping Costs
 
                 + ______ BEF   For addresses in Belgium: add 21% sales tax
-                               or give tax exempt number.  
+                               or give tax exempt number.
                 + ______ BEF   Shipping fee for other E.U. countries:
   			       150 BEF extra for addresses outside Belgium.
                                For shipments to Italy, please add an
@@ -120,8 +120,8 @@
   			       500 BEF.
                 + ______ BEF   Donation to Free Software Foundation
 
-	          ======	
-            TOTAL ______ BEF    
+	          ======
+            TOTAL ______ BEF
 
 
 Note: The shipping fee for foreign destinations covers registered
@@ -197,7 +197,7 @@
 
 For orders from outside Belgium:
 
-You are responsible for paying all taxes.  If you refuse to pay the     
-applicable taxes of your country, the shipper will return the order.    
+You are responsible for paying all taxes.  If you refuse to pay the
+applicable taxes of your country, the shipper will return the order.
 
 Bank P.C. : 000-1699992-67     V.A.T. : B.E-586.981.246       HRG : 181.641
--- a/etc/ORDERS.JAPAN	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/ORDERS.JAPAN	Tue Feb 04 14:56:31 2003 +0000
@@ -27,17 +27,17 @@
   organization is ultimately paying (while supplies last).
 
   Source Code CD-ROM November '93 Edition,         Y3,000 ________ __________
-  Version 3 (last with X11R5), if an individual 
+  Version 3 (last with X11R5), if an individual
   is ultimately paying (while supplies last).
 
   Subscription to next four editions of the      Y125,000 ________ __________
   Compiler Tools Binaries CD-ROMs.
 
   Subscription to next four editions of the      Y125,000 ________ __________
-  Source Code CD-ROMs. 
+  Source Code CD-ROMs.
 
 * GNU Software for MS-DOS and MS-Windows          Y20,000 ________ __________
-  (CD-ROM and book) if a corporation or other 
+  (CD-ROM and book) if a corporation or other
   organization is ultimately paying.
 
 * GNU Software for MS-DOS and MS-Windows	   Y5,000 ________ __________
@@ -197,7 +197,7 @@
 the Japanese edition of the March 1998 GNU's Bulletin.  If you do not have a
 copy of the Japanese edition of the GNU's Bulletin, please contact the FSF.
 
-Richard Stallman regrets that he cannot autograph items ordered by mail. 
+Richard Stallman regrets that he cannot autograph items ordered by mail.
 If time permits, he will autograph items at speaking engagements.
 
 All sales are final.
--- a/etc/OTHER.EMACSES	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/OTHER.EMACSES	Tue Feb 04 14:56:31 2003 +0000
@@ -496,7 +496,7 @@
   extract-rectangle and delete-extract-rectangle
     these functions return the text of a rectangle
     as a list of strings.  They are for use in writing
-    other functions that operate on rectangles.   
+    other functions that operate on rectangles.
 
 *** Keyboard Macros
 
@@ -903,7 +903,7 @@
 and Emacs functions, or between Lisp variables and Emacs variables.
 The Lisp and the editor are integrated.  A Lisp function defined
 with defun is callable as an editor command if you put an
-interactive calling spec in it; for example, 
+interactive calling spec in it; for example,
   (defun forward-character (n)
     (interactive "p")
     (goto-char (+ (point) n)))
--- a/etc/PROBLEMS	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/PROBLEMS	Tue Feb 04 14:56:31 2003 +0000
@@ -57,7 +57,7 @@
 --- lisp/un-define.el	6 Mar 2001 22:41:38 -0000	1.30
 +++ lisp/un-define.el	19 Apr 2002 18:34:26 -0000
 @@ -610,13 +624,21 @@ by calling post-read-conversion and pre-
- 
+
   (mapcar
    (lambda (x)
 -    (mapcar
@@ -221,17 +221,17 @@
    * If not debugging, assert does nothing.
    */
 ! #define assert(x)	((void)0);
-  
+
   #else /* debugging enabled */
-  
+
 --- 41,47 ----
   /*
    * If not debugging, assert does nothing.
    */
 ! #define assert(x)	((void)0)
-  
+
   #else /* debugging enabled */
-  
+
 
 
 * Improving performance with slow X connections
@@ -882,7 +882,7 @@
 
 An example of such an error is:
 
-  x-complement-fontset-spec: "Wrong type argument: stringp, nil" 
+  x-complement-fontset-spec: "Wrong type argument: stringp, nil"
 
 This can be another symptom of stale *.elc files in your classpath.
 The following command will print any duplicate Lisp files that are
@@ -975,7 +975,7 @@
 
 Changing Alt_L to Meta_L fixes it:
 % xmodmap -e 'keysym Alt_L = Meta_L Alt_L'
-% xmodmap -e 'keysym Alt_R = Meta_R Alt_R'  
+% xmodmap -e 'keysym Alt_R = Meta_R Alt_R'
 
 * Error "conflicting types for `initstate'" compiling with GCC on Irix 6.
 
@@ -1050,7 +1050,7 @@
 
 
 * Emacs crashes on Irix 6.5 on the SGI R10K, when compiled with GCC.
-  
+
 This seems to be fixed in GCC 2.95.
 
 * Emacs crashes in utmpname on Irix 5.3.
@@ -1075,7 +1075,7 @@
 You can fix this by editing the file:
 
 	/usr/openwin/lib/locale/iso8859-15/Compose
-	
+
 Near the bottom there is a line that reads:
 
 	Ctrl<t> <quotedbl> <Y>                  : "\276"        threequarters
@@ -1111,8 +1111,8 @@
 When the display is set to an Exceed X-server and fonts are specified
 (either explicitly with the -fn option or implicitly with X resources)
 then the fonts may appear "too tall".  The actual character sizes are
-correct but there is too much vertical spacing between rows,  which 
-gives the appearance of "double spacing".  
+correct but there is too much vertical spacing between rows,  which
+gives the appearance of "double spacing".
 
 To prevent this, turn off the Exceed's "automatic font substitution"
 feature (in the font part of the configuration window).
@@ -1230,7 +1230,7 @@
 
 The VM mail package, which is not part of Emacs, sometimes does
   (standard-display-european t)
-That should be changed to 
+That should be changed to
   (standard-display-european 1 t)
 
 * Installing Emacs gets an error running `install-info'.
@@ -1808,8 +1808,8 @@
 We suspect the crucial patch is one of these, but we don't know
 for certain.
 
-        103093-03: [README] SunOS 5.5: kernel patch (2140557 bytes) 
-        102832-01: [README] OpenWindows 3.5: Xview Jumbo Patch (4181613 bytes) 
+        103093-03: [README] SunOS 5.5: kernel patch (2140557 bytes)
+        102832-01: [README] OpenWindows 3.5: Xview Jumbo Patch (4181613 bytes)
 	103242-04: [README] SunOS 5.5: linker patch (595363 bytes)
 
 (One user reports that the bug was fixed by those patches together
@@ -1901,7 +1901,7 @@
 Definitions" to make them defined.
 
 * On SunOS, you get linker errors
-   ld: Undefined symbol 
+   ld: Undefined symbol
       _get_wmShellWidgetClass
       _get_applicationShellWidgetClass
 
@@ -2061,7 +2061,7 @@
 Also make sure that the `/etc/host.conf' files contains the following
 lines:
 
-    order hosts, bind 
+    order hosts, bind
     multi on
 
 Any changes, permanent and temporary, to the host name should be
@@ -2290,12 +2290,12 @@
 * display-time causes kernel problems on ISC systems.
 
 Under Interactive Unix versions 3.0.1 and 4.0 (and probably other
-versions), display-time causes the loss of large numbers of STREVENT 
+versions), display-time causes the loss of large numbers of STREVENT
 cells.  Eventually the kernel's supply of these cells is exhausted.
-This makes emacs and the whole system run slow, and can make other 
+This makes emacs and the whole system run slow, and can make other
 processes die, in particular pcnfsd.
-	
-Other emacs functions that communicate with remote processes may have 
+
+Other emacs functions that communicate with remote processes may have
 the same problem.  Display-time seems to be far the worst.
 
 The only known fix: Don't run display-time.
@@ -2367,7 +2367,7 @@
 
     if ($?EMACS) then
         if ($EMACS == "t") then
-            unset edit 
+            unset edit
             stty  -icrnl -onlcr -echo susp ^Z
         endif
     endif
@@ -2658,7 +2658,7 @@
 
 * On a Sun running SunOS 4.1.1, you get this error message from GNU ld:
 
-    /lib/libc.a(_Q_sub.o): Undefined symbol __Q_get_rp_rd referenced from text segment 
+    /lib/libc.a(_Q_sub.o): Undefined symbol __Q_get_rp_rd referenced from text segment
 
 The problem is in the Sun shared C library, not in GNU ld.
 
@@ -2680,18 +2680,18 @@
 christos@theory.tn.cornell.edu says:
 
 The problem is that in your .cshrc you have something that tries to
-execute `tty`. If you are not running the shell on a real tty then 
-tty will print "not a tty". Csh expects one word in some places, 
+execute `tty`. If you are not running the shell on a real tty then
+tty will print "not a tty". Csh expects one word in some places,
 but tty is giving it back 3.
 
 The solution is to add a pair of quotes around `tty` to make it a single
-word: 
-
-if (`tty` == "/dev/console") 
+word:
+
+if (`tty` == "/dev/console")
 
 should be changed to:
 
-if ("`tty`" == "/dev/console") 
+if ("`tty`" == "/dev/console")
 
 Even better, move things that set up terminal sections out of .cshrc
 and into .login.
@@ -2711,7 +2711,7 @@
 
 If the error message says that a symbol such as `f68881_used' or
 `ffpa_used' or `start_float' is undefined, this probably indicates
-that you have compiled some libraries, such as the X libraries, 
+that you have compiled some libraries, such as the X libraries,
 with a floating point option other than the default.
 
 It's not terribly hard to make this work with small changes in
@@ -2737,7 +2737,7 @@
 * M-x shell persistently reports "Process shell exited abnormally with code 1".
 
 This happened on Suns as a result of what is said to be a bug in Sunos
-version 4.0.x.  The only fix was to reboot the machine. 
+version 4.0.x.  The only fix was to reboot the machine.
 
 * Programs running under terminal emulator do not recognize `emacs'
   terminal type.
@@ -2767,7 +2767,7 @@
 However, that has the disadvantage of turning off interrupts, so that
 you are unable to quit out of a Lisp program by typing C-g.
 
-The easy way to do this is to put 
+The easy way to do this is to put
 
   (setq x-sigio-bug t)
 
--- a/etc/SERVICE	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/SERVICE	Tue Feb 04 14:56:31 2003 +0000
@@ -195,7 +195,7 @@
 Updated:  2001-05-11
 ^_
 Don Barry, Ph.D.       <don@astro.cornell.edu>
-Ithaca, NY          
+Ithaca, NY
 
 Astrophysicist with extensive and varied hacker background.  Substantial
 expertise in mathematical modeling, instrument interface, low-level and
@@ -845,16 +845,16 @@
  +46 31 50 79 00 voice
  +46 31 50 79 39 fax
  http://www.netg.se
- 
+
 NetGuide Scandinavia AB is a company that does consultant jobs and holds
 courses in the fields of Unix software, TCP/IP networking and Internet
 applications. The people behind NetGuide Scandinavia AB have many years of
 general Unix experience, both as system administrators and as
 programmers, and also extensive experience in maintaining the GNU
 programs; in administration as well as finding and fixing bugs.
- 
+
 Services offered:
- 
+
  - Installation and customizing GNU and other free software.  We will
    make free software as easy to install and use as shrink wrapped
    programs.
@@ -869,7 +869,7 @@
  - Support on Internet service software, especially the free
  - Support on GNU/Linux.
  - Freeware based courses in Unix usage, C, C++, or any GNU tools
- 
+
  Rates: For courses, contact us for a quote,
  For consulting, $60-120/hour, depending on contract length.
 
@@ -918,26 +918,26 @@
 
 Phone: +46-21-144831
 E-mail: <jonas@gnu.org>
-    
+
 I offer support for most GNU software including the GNU
 Hurd and also do system administration on GNU systems.
 I can do free software development and have a good
 understanding of automake, autoconf, flex, bison, guile,
 texinfo and much more. Rates around USD$100.
-    
+
 Updated: 2001-05-09
 ^_
   Peter Olsen
   P.O. Box 410
   Simpsonville, MD 21150
- 
+
   <p@sigmaxi.org>
- 
+
   What I do:  Mathematical modeling and model building using Gnu
           and other Free Software.  Scientific and engineering
           analysis, modeling, and programming in FORTRAN, C, LISP,
           and Java.  Statistical analysis.  Emacs customization.
- 
+
   Examples of my previous work:
                1. I built the model used predict the
           amount of work required to clean up the Exxon Valdez oil
@@ -947,24 +947,24 @@
                2. I built a model applying commercial capital
           investment standards to a Federal Agency budget, helped
           support $250 Million budget increase.
- 
+
   Credo:  Engineering is the art of applying a professional
           knowledge of mathematics and the physical sciences to
           improve the quality of life.
- 
+
   Rates:  $135/hour (+ travel and expenses) on site,
            $95/hour remote access.
- 
+
   Notes:  1. Visiting Lecturer for Society for Industrial and Applied
           Mathematics:  Will speak without fee about Valdez model
           (or other work) to Educational and not-for-profit
           organizations (plus most-economical travel and living
           expenses or travel or living arrangements in kind).
- 
+
           2. I do not accept offers which pose the danger
           of conflict of interest with any present or former client
           or employer.
- 
+
 
 Updated: 2000-12-13
 ^_
@@ -1012,33 +1012,33 @@
 
 Updated:  2001-05-09
 ^_
-Quoll Systems Pty Ltd, see http://quoll.com.au 
+Quoll Systems Pty Ltd, see http://quoll.com.au
 8 Brown St, Fannie Bay, Darwin, NT, Australia.
-Phone: +61 8 8941 7150 Fax: +61 8 8941 7151 Mobile: 0409 691 399 
+Phone: +61 8 8941 7150 Fax: +61 8 8941 7151 Mobile: 0409 691 399
 e-mail: <pjm@gnu.org> or <info@quoll.com.au>
- 
+
 QS is a small (4 full-time staff + 15 part-timers) which does a variety
 of things in the *IX, technical computing area including:
- 
+
  	   o Systems development/maintainence (in most programming languages)
  	   o Training (GNU/Linux, FreeBSD, OpenBSD, Apache, Perl, ...)
  	   o Consulting in areas such as security, reliability,
- 
+
 Recent projects have included wind turbine generator control, water
 quality databases, remote area satelliate communications, Apache Web
 serving, ISP configurations, *nix training. Staff have provided some
 small contributions to the GNU and BSD projects over the years. We
-also have a bit of expertise in the embedded(inside people) systems 
-area in addition to the standard building work. 
+also have a bit of expertise in the embedded(inside people) systems
+area in addition to the standard building work.
 
-We can provide local (i.e. southern hemisphere/south east asia) support 
+We can provide local (i.e. southern hemisphere/south east asia) support
 for most of the vast range of free software systems including: GNU/Linux,
 FreeBSD, OpenBSD , OpenSSH, Sendmail, various compilers and networking
 tools. Remote support can also be arranged.
 
-Rates: vary depending on the work, period and staff provided but let 
+Rates: vary depending on the work, period and staff provided but let
        us pick 100$US/hr as a starting point for senior staff.
- 
+
 Updated: 2000-12-13
 ^_
 Red Hat, Inc.
@@ -1049,7 +1049,7 @@
 +1 408 542 9600 voice
 +1 408 542 9699 fax
 
-GNUPro Tools 
+GNUPro Tools
 Red Hat provides supported and maintained versions of gcc, g++, gdb
 with GUI, GNU linker and GNU macro assembler.  In addition, Red Hat
 provides these GNU software development tools for well over many
@@ -1130,9 +1130,9 @@
 http://www.sra.co.jp/wingnut/service.html
 http://osb.sra.co.jp/WingnutSupport/
 
-We provide GNU software support at a reasonable charge, 
-aiming to promote the sound growth of free software and to 
-create a new culture in the software world. 
+We provide GNU software support at a reasonable charge,
+aiming to promote the sound growth of free software and to
+create a new culture in the software world.
 
 News:
 
@@ -1142,21 +1142,21 @@
 
 What we provide is:
 
-   1. Research and development of GNU software. 
-   2. Development, porting, and customization of GNU software itself. 
-   3. Helping people who are willing to port and provide GNU software 
-      to their customers, but are unable to do so due to  a lack of resources. 
-   4. Providing a variety of educational and training services including 
-      how to port or to customize. 
-   5. The result of the work will become free software covered under the 
+   1. Research and development of GNU software.
+   2. Development, porting, and customization of GNU software itself.
+   3. Helping people who are willing to port and provide GNU software
+      to their customers, but are unable to do so due to  a lack of resources.
+   4. Providing a variety of educational and training services including
+      how to port or to customize.
+   5. The result of the work will become free software covered under the
       GNU licenses (GPL or LGPL), so it will be possible not only to share
-      the results with others but to eliminate unnecessary investment also. 
-   6. Passing the result to the program package maintainers (if needed). 
-   7. Also, making contributions to FSF (Free Software Foundation, Inc.) 
+      the results with others but to eliminate unnecessary investment also.
+   6. Passing the result to the program package maintainers (if needed).
+   7. Also, making contributions to FSF (Free Software Foundation, Inc.)
       which is the organization that develops and distributes GNU software
-      worldwide. 
+      worldwide.
 
-   Furthermore, we provide services *native to Japan*, that is, 
+   Furthermore, we provide services *native to Japan*, that is,
    services for Japanese-speaking people --- receiving inquiries and
    answering in Japanese.
 
@@ -1255,13 +1255,13 @@
 Fax +44 (0) 1273 20 11 68
 http://www.swingdigital.com
 
-Swing Digital actively supports the development of the GNU.FREE 
-Internet Voting system. Through this support we have gained the 
-unique expertise to support, install and run GUN.FREE-based Internet 
-votes. We are also available in a consultancy basis to offer advice 
+Swing Digital actively supports the development of the GNU.FREE
+Internet Voting system. Through this support we have gained the
+unique expertise to support, install and run GUN.FREE-based Internet
+votes. We are also available in a consultancy basis to offer advice
 for organisations wishing to run GNU.FREE themselves.
 
-Our consultancy fees start at 900 Euro (550 UK pounds) per day. We 
+Our consultancy fees start at 900 Euro (550 UK pounds) per day. We
 are also able to securely host Internet Votes, prices on application.
 
 Updated: 2001-07-23
--- a/etc/TERMS	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/TERMS	Tue Feb 04 14:56:31 2003 +0000
@@ -54,7 +54,7 @@
 	to use this even though the Unix termcap does not accept it
 	because programs other than Emacs probably won't look for `rp'
 	anyway.
-	
+
 `cs'    set scroll region.  Takes two parameters, the vertical
 	positions of the first line to include in the scroll region
 	and the last line to include in the scroll region.
@@ -196,12 +196,12 @@
 	sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m,
 
 #
-# AT&T 386 color console 
+# AT&T 386 color console
 #
 AT386|at386|386AT|386at|at/386 console,
 	colors#8, ncv#3, pairs#64,
 	is2=\E[0;10;39m,
-	op=\E[0m, 
+	op=\E[0m,
 	setb=\E[%?%p1%{0}%=%t40m
                 %e%p1%{1}%=%t44m
                 %e%p1%{2}%=%t42m
--- a/etc/TODO	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/TODO	Tue Feb 04 14:56:31 2003 +0000
@@ -172,7 +172,7 @@
 
 * Add a feature to Info similar to "info --apropos SUBJECT".
 
-* Add support for SVG (Scalable Vector Graphics) rendering to 
+* Add support for SVG (Scalable Vector Graphics) rendering to
   Emacs.
 
 * Allow unknown image types to be rendered via an external program
--- a/etc/TUTORIAL	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/TUTORIAL	Tue Feb 04 14:56:31 2003 +0000
@@ -65,7 +65,7 @@
 but it's more efficient to keep your hands in the standard position
 and use the commands C-p, C-b, C-f, and C-n.  These characters
 are equivalent to the four arrow keys, like this:
- 
+
 			  Previous line, C-p
 				  :
 				  :
@@ -198,7 +198,7 @@
 because you type the argument before the command it applies to.
 
 For instance, C-u 8 C-f moves forward eight characters.
-	
+
 >> Try using C-n or C-p with a numeric argument, to move the cursor
    to a line near this one with just one command.
 
@@ -749,7 +749,7 @@
 
 The part of the mode line inside the parentheses is to tell you what
 editing modes you are in.  The default mode is Fundamental which is
-what you are using now.  It is an example of a "major mode".  
+what you are using now.  It is an example of a "major mode".
 
 Emacs has many different major modes.  Some of them are meant for
 editing different languages and/or kinds of text, such as Lisp mode,
--- a/etc/TUTORIAL.cs	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/TUTORIAL.cs	Tue Feb 04 14:56:31 2003 +0000
@@ -64,7 +64,7 @@
 kurzor na obrazovce o jeden øádek nebo sloupec v daném smìru.
 Zde je tabulka znázoròující smìr posuvu kurzoru vyvolaný tìmito ètyømi
 pøíkazy:
- 
+
 			  Pøedchozí øádek, C-p
 				  :
 				  :
@@ -769,7 +769,7 @@
    C-x f.
 
 Jestli¾e provedete zmìny uprostøed odstavce, Auto Fill mód jej
-nepøeformátuje. 
+nepøeformátuje.
 Pro pøeformátování odstavce stisknìte M-q (META-q) s kurzorem uvnitø
 odstavce.
 
@@ -795,7 +795,7 @@
 a èeká, a¾ mu zadáte, co chcete hledat.  <RET> hledání ukonèí.
 
 >> Nyní zahajte hledání stiskem C-s.  POMALU, písmeno po písmenu, pi¹te
-   slovo 'kurzor'.  Po ka¾dém písmenu si v¹imnìte, co se dìje s kurzorem.  
+   slovo 'kurzor'.  Po ka¾dém písmenu si v¹imnìte, co se dìje s kurzorem.
    Teï jste vyhledali "kurzor" poprvé.
 >> Stisknìte C-s znovu, abyste nalezli dal¹í výskyt "kurzor".
 >> Nyní ètyøikrát stisknìte <Delete> a pozorujte, jak se kurzor
--- a/etc/TUTORIAL.de	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/TUTORIAL.de	Tue Feb 04 14:56:31 2003 +0000
@@ -266,7 +266,7 @@
 >> Versuchen Sie, C-n oder C-p mit einem numerischen Argument zu
    verwenden und bewegen Sie den Cursor mit nur einem Befehl ungefähr
    hierher.
-	
+
 Wie gesagt, die meisten Befehle verwenden das numerische Argument als
 Wiederholungszähler, jedoch nicht alle.  Einige davon, die allerdings
 noch nicht besprochen wurden, benützen es als Flag (`Flagge'), d.h.,
--- a/etc/TUTORIAL.fr	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/TUTORIAL.fr	Tue Feb 04 14:56:31 2003 +0000
@@ -47,9 +47,9 @@
 	C-v	Avance d'un écran
 	M-v	Recule d'un écran
 	C-l     Efface l'écran et réaffiche tout le texte autour du
-                curseur, qui est placé au milieu de l'écran 
+                curseur, qui est placé au milieu de l'écran
                 (il s'agit de CTRL-L, pas de CTRL-1).
-		
+
 
 >> Notez le texte situé à côté du curseur, puis faites C-l.
    Recherchez l'emplacement du curseur et vous remarquerez que
@@ -66,7 +66,7 @@
 du curseur, mais il est plus efficace de garder vos mains dans la même
 position et d'utiliser les commandes C-p, C-b, C-f, et C-n.  Ces
 combinaisons sont équivalentes aux quatre touches du curseur :
- 
+
 			  Ligne précédente, C-p
 				  :
 				  :
@@ -76,20 +76,20 @@
 			  Ligne suivante, C-n
 
 >> Déplacez le curseur sur la ligne située au milieu de ce schéma en
-   utilisant C-n ou C-p. Puis, faites C-l pour placer le schéma au 
+   utilisant C-n ou C-p. Puis, faites C-l pour placer le schéma au
    centre de l'écran.
 
 Si vous connaissez un peu l'anglais, vous aurez sûrement constaté
 qu'il était facile de se rappeler que P signifiait Previous
 (précédent), N Next (suivant), B Backward (en arrière) et F Forward
-(vers l'avant). 
+(vers l'avant).
 
 >> Faites quelques C-n pour amener le curseur sur cette ligne.
 
 >> Déplacez-vous le long de la ligne avec des C-f, puis au-dessus avec
    des C-p. Notez ce que fait C-p lorsque le curseur est au milieu de
    la ligne.
-  
+
 
 Chaque ligne de texte se termine par un caractère Newline, qui sert à
 la séparer de la ligne suivante. La dernière ligne de votre fichier
@@ -102,7 +102,7 @@
 
 C-f peut passer au-dessus d'un Newline, tout comme C-b.
 
->> Faites encore quelques C-b afin de bien sentir où est le curseur. 
+>> Faites encore quelques C-b afin de bien sentir où est le curseur.
    Puis, faites des C-f pour revenir à la fin de la ligne.
    Enfin, faites quelques C-f supplémentaires pour passer à la ligne
    suivante.
@@ -153,7 +153,7 @@
 Pour paraphraser, le curseur apparaît à l'écran à l'endroit où le
 point est situé dans le texte.
 
-Voici un résumé des opérations de déplacements simples du curseur, 
+Voici un résumé des opérations de déplacements simples du curseur,
 ainsi que les commandes de déplacement par mots et par phrases.
 
 	C-f	Avance d'un caractère
@@ -171,7 +171,7 @@
 	M-a	Va au début de la phrase
 	M-e	Va à la fin de la phrase
 
->> Essayez toutes ces commandes plusieurs fois afin de vous entraîner. 
+>> Essayez toutes ces commandes plusieurs fois afin de vous entraîner.
    Ce sont celles qui sont utilisées le plus souvent.
 
 M-< (Meta inférieur à) et M-> (Meta supérieur à) sont deux autres
@@ -188,7 +188,7 @@
 
 >> Faites M-> afin de vous déplacer à la fin du didacticiel.
    Puis, faites plusieurs fois M-v pour revenir ici.
- 
+
 Vous pouvez également déplacer le curseur à l'aide des touches de
 curseur, si votre terminal en dispose. Nous vous conseillons
 d'apprendre à utiliser C-b, C-f, C-n et C-p pour trois raisons. Tout
@@ -213,7 +213,7 @@
 avant la commande sur laquelle il s'applique.
 
 C-u 8 C-f, par exemple, avance le curseur de huit caractères.
-	
+
 >> Utilisez C-n ou C-p avec un paramètre numérique afin de déplacer,
    en une seule commande, le curseur sur une ligne proche de celle-ci.
 
@@ -244,7 +244,7 @@
 >> Cliquez avec le bouton du milieu en haut de la zone mise en
    évidence dans la barre de défilement. Cela devrait déplacer le
    texte jusqu'à une position dépendant de la hauteur où vous avez
-   cliqué. 
+   cliqué.
 
 >> Déplacez la souris de bas en haut tout en maintenant son bouton du
    milieu pressé. Vous constaterez que le texte défile vers le haut et
@@ -262,7 +262,7 @@
 début d'une commande que vous ne souhaitez pas terminer.
 
 >> Faites C-u 100 pour former un paramètre numérique de 100, puis
-   tapez C-g. 
+   tapez C-g.
    Faites maintenant C-f. Le déplacement ne sera que d'un caractère
    car vous avez annulé le paramètre avec C-g.
 
@@ -284,16 +284,16 @@
 réponse à la question. Si vous ne voulez pas exécuter la commande
 désactivée, il suffit normalement de répondre « n ».
 
->> Faites C-x C-l (qui est une commande désactivée), 
+>> Faites C-x C-l (qui est une commande désactivée),
    puis répondez n à la question.
 
 * FENÊTRES
 ----------
 
 Emacs peut avoir plusieurs fenêtres, chacune affichant son propre
-texte. Nous expliquerons plus tard comment utiliser plusieurs fenêtres ; 
+texte. Nous expliquerons plus tard comment utiliser plusieurs fenêtres ;
 pour l'instant, nous expliquerons comment se débarrasser des
-fenêtres supplémentaires pour revenir à une édition mono-fenêtre. 
+fenêtres supplémentaires pour revenir à une édition mono-fenêtre.
 C'est très simple :
 
 	C-x 1	Une seule fenêtre (i.e., supprime toutes les autres)
@@ -339,7 +339,7 @@
 Plus généralement, <Delback> efface le caractère situé immédiatement
 avant la position courante du curseur.
 
->> Tapez quelques caractères puis effacez-les en faisant plusieurs 
+>> Tapez quelques caractères puis effacez-les en faisant plusieurs
    fois <Delback>. Ne vous inquiétez pas de modifier ce fichier ; vous
    ne modifierez pas le didacticiel principal mais uniquement votre
    copie personnelle de celui-ci.
@@ -363,7 +363,7 @@
 dans la largeur de l'écran, elle s'affichera avec une ligne de
 continuation.
 
->> Placez le curseur au début d'une ligne et faites <Delback>. 
+>> Placez le curseur au début d'une ligne et faites <Delback>.
    Cela fusionne cette ligne avec la ligne précédente.
 
 >> Faites <Entrée> pour remettre le Newline que vous avez supprimé.
@@ -429,7 +429,7 @@
 
 Vous pouvez ramener le texte supprimé à la place qu'il occupait ou à
 n'importe quel autre emplacement du texte. Vous pouvez récupérer
-plusieurs fois ce texte afin d'en créer plusieurs copies. 
+plusieurs fois ce texte afin d'en créer plusieurs copies.
 
 La commande de récupération est C-y.  Elle réinsère le dernier texte
 supprimé à la position courante du curseur.
@@ -464,10 +464,10 @@
 
 >> Supprimez une ligne, déplacez vous et supprimez une autre ligne.
    Puis, faites C-y pour récupérer cette dernière.
-   Faites alors M-y et elle sera remplacée par la première ligne détruite.  
+   Faites alors M-y et elle sera remplacée par la première ligne détruite.
    Faites d'autres M-y et notez ce que vous obtenez, continuez jusqu'à
    ce que la seconde ligne supprimée réapparaisse, et faites-en encore
-   quelques-uns de plus. 
+   quelques-uns de plus.
    Si vous le souhaitez, vous pouvez essayer de passer des paramètres
    positifs et négatifs à M-y.
 
@@ -533,7 +533,7 @@
 Une particularité de la commande permettant de trouver un fichier est
 que vous devez donner le nom du fichier voulu. On dit que la commande
 « lit un paramètre à partir du terminal » (ici, le paramètre est le
-nom du fichier). Après avoir fait la commande 
+nom du fichier). Après avoir fait la commande
 
 	C-x C-f   Trouve un fichier
 
@@ -572,7 +572,7 @@
    Cela devrait écrire "Wrote ...TUTORIAL.fr" en bas de l'écran.
 
 REMARQUE : Sur certains systèmes, C-x C-s gèlera l'écran et vous ne
-verrez plus rien se produire dans Emacs.  Cela indique qu'une 
+verrez plus rien se produire dans Emacs.  Cela indique qu'une
 « fonctionnalité » du système d'exploitation, appelée « contrôle de flux »,
 a intercepté le C-s et ne lui permet pas de parvenir à Emacs. Pour
 décoincer l'écran, faites C-q puis consultez la section « Spontaneous
@@ -603,7 +603,7 @@
 
 Emacs stocke le texte de chaque fichier dans un objet appelé « tampon ».
 Trouver un fichier crée un nouveau tampon dans Emacs. Pour voir la
-liste des tampons existants dans votre session Emacs, faites 
+liste des tampons existants dans votre session Emacs, faites
 
 	C-x C-b   Liste des tampons
 
@@ -623,7 +623,7 @@
 commande C-x b en lui passant le nom du tampon.
 
 >> Faites C-x b truc <Entrée> pour revenir au tampon "truc", qui
-   contient le texte du fichier "truc". 
+   contient le texte du fichier "truc".
    Puis, faites C-x b TUTORIAL <Entrée> pour revenir à ce didacticiel.
 
 La plupart du temps, le nom d'un tampon est le même que celui du
@@ -639,7 +639,7 @@
 messages apparus dans la ligne d'état pendant votre session Emacs.
 
 >> Faites C-x C-b *Messages* <Entrée> pour visualiser le tampon des
-   messages.  
+   messages.
    Puis, faites C-x b TUTORIAL <Entrée> pour revenir à ce didacticiel.
 
 Si vous modifiez le texte d'un fichier, puis que vous chargez un autre
@@ -656,11 +656,11 @@
 C-x s vous demande confirmation pour savoir s'il doit sauvegarder
 chaque tampon contenant des modifications non encore sauvegardées. Il
 vous demande, pour chacun de ces tampons, s'il doit le sauvegarder ou
-non. 
+non.
 
 >> Insérez une ligne de texte et faites C-x s.
    Cela devrait vous demander si vous souhaitez sauvegarder le tampon
-   nommé TUTORIAL.fr. Répondez par l'affirmative en tapant « y ». 
+   nommé TUTORIAL.fr. Répondez par l'affirmative en tapant « y ».
 
 
 * EXTENSION DU JEU DE COMMANDES
@@ -852,7 +852,7 @@
 désactive : on dit que la commande « fait basculer le mode ».
 
 >> Faites M-x auto fill mode<Entrée> puis insérez une ligne de
-   plusieurs « azer »  jusqu'à ce qu'elle se divise en deux lignes. 
+   plusieurs « azer »  jusqu'à ce qu'elle se divise en deux lignes.
    Vous devez mettre des espaces entre eux car le mode Auto Fill ne
    coupe les lignes que sur les espaces.
 
@@ -865,9 +865,9 @@
    caractères. Remettez la marge à 70 en refaisant C-x f.
 
 Si vous faites des modifications au milieu d'un paragraphe, le mode
-Auto Fill ne reformatera pas ce paragraphe.  
+Auto Fill ne reformatera pas ce paragraphe.
 Pour cela, faites M-q (META-q) lorsque le curseur est placé dans ce
-paragraphe. 
+paragraphe.
 
 >> Placez le curseur dans le paragraphe précédent et faites M-q.
 
@@ -948,7 +948,7 @@
 
 >> Placez le curseur sur cette ligne et faites C-u 0 C-l (CTRL-L, pas
    CTRL-1).
-   
+
 >> Faites maintenant C-x 2 pour diviser l'écran en deux
    fenêtres. Toutes les deux affichent ce didacticiel et le curseur
    reste dans celle du haut.
@@ -1115,11 +1115,11 @@
 		lire les manuels en ligne des paquetages installés sur
 		votre système. Faites m emacs <Entrée> pour lire le
 		manuel d'Emacs. Si vous n'avez jamais utilisé Info
-		auparavant, tapez ? et Emacs vous fera faire une visite 
+		auparavant, tapez ? et Emacs vous fera faire une visite
 		guidée des fonctionnalités du mode Info. Lorsque vous
 		en aurez fini avec ce didacticiel, le manuel Info
 		d'Emacs devrait être votre source de documentation
-		essentielle. 
+		essentielle.
 
 
 * FONCTIONNALITÉS SUPPLÉMENTAIRES
@@ -1170,7 +1170,7 @@
 Cette version du didacticiel, comme GNU Emacs, est placée sous
 copyright, et vous pouvez en distribuer des copies sous certaines
 conditions :
- 
+
 Copyright (c) 1985, 1996, 2001, 2002 Free Software Foundation
 
    Chacun peut créer ou distribuer des copies de ce document tel qu'il
--- a/etc/TUTORIAL.ja	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/TUTORIAL.ja	Tue Feb 04 14:56:31 2003 +0000
@@ -1,9 +1,9 @@
 $B$"$J$?$,8=:_8+$F$$$k$N$O(B Emacs $BF~Lg%,%$%I$G$9!#%U%!%$%k:G8e$r;2>H$N$3$H!#(B
 Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation.
 
-Emacs $B$N%3%^%s%I$rF~NO$9$k$K$O!"0lHL$K%3%s%H%m!<%k%-!<!J%-!<%H%C%W$K(B 
-CONTROL $B$H$+(B CTRL $B$H$+(B CTL $B$H=q$$$F$"$k!K$d%a%?%-!<!J%-!<%H%C%W$K(B META 
-$B$H$+(B ALT $B$H$+(B EDIT $B$H=q$$$F$"$k!K$r;H$$$^$9!#$=$3$G!"(BCONTROL $B$H$+(B META 
+Emacs $B$N%3%^%s%I$rF~NO$9$k$K$O!"0lHL$K%3%s%H%m!<%k%-!<!J%-!<%H%C%W$K(B
+CONTROL $B$H$+(B CTRL $B$H$+(B CTL $B$H=q$$$F$"$k!K$d%a%?%-!<!J%-!<%H%C%W$K(B META
+$B$H$+(B ALT $B$H$+(B EDIT $B$H=q$$$F$"$k!K$r;H$$$^$9!#$=$3$G!"(BCONTROL $B$H$+(B META
 $B$H$+$r=q$/Be$o$j$K!"<!$N$h$&$J5-K!$r;H$&$3$H$K$7$^$9!#(B
 
  C-<$BJ8;z(B>   $B%3%s%H%m!<%k%-!<$r2!$7$?$^$^!"(B<$BJ8;z(B>$B%-!<$r2!$7$^$9!#Nc$($P!"(B
@@ -68,7 +68,7 @@
                                     :
                                $B<!$N9T!$(BC-n
 
->> C-n $B$H(B C-p $B$G%+!<%=%k$r>e?^$N??Cf$N9T$KF0$+$7$F2<$5$$!#$=$l$+$i(B C-l 
+>> C-n $B$H(B C-p $B$G%+!<%=%k$r>e?^$N??Cf$N9T$KF0$+$7$F2<$5$$!#$=$l$+$i(B C-l
    $B$r%?%$%W$7$F?^$NA4BN$,2hLLCf1{$K$/$k$h$&$K$7$F$_$^$7$g$&!#(B
 
 
@@ -218,7 +218,7 @@
 $B!v(B Emacs $B$,%O%s%0$7$?;~!JF0$+$J$/$J$C$?;~!K(B
 ==========================================
 
-$B$b$7(B Emacs $B$,%3%^%s%I$KH?1~$7$J$/$J$C$?$i!"(BC-g $B$r%?%$%W$9$k$3$H$G(BEmacs 
+$B$b$7(B Emacs $B$,%3%^%s%I$KH?1~$7$J$/$J$C$?$i!"(BC-g $B$r%?%$%W$9$k$3$H$G(BEmacs
 $B$r0BA4$K;_$a$k$3$H$,$G$-$^$9!#(BC-g $B$G$H$F$b;~4V$N$+$+$k%3%^%s%I$r;_$a$k(B
 $B$3$H$,$G$-$^$9!#(B
 
@@ -281,9 +281,9 @@
 $BJ8;z!J(BA, 7, * $BEy!K$rJ8>O$G$"$k$H$_$J$9$N$G!"$=$l$i$O$=$N$^$^A^F~$5$l$^(B
 $B$9!#(B<Return>$B!J2~9T%-!<!K$r%?%$%W$9$l$P2~9TJ8;z$,A^F~$5$l$^$9!#(B
 
-$BD>A0$KF~NO$7$?J8;z$r:o=|$9$k$K$O!"(B<Delback> $B$r%?%$%W$7$^$9!#(B<Delback> 
+$BD>A0$KF~NO$7$?J8;z$r:o=|$9$k$K$O!"(B<Delback> $B$r%?%$%W$7$^$9!#(B<Delback>
 $B$O!"(BEmacs $B0J30$G!":G8e$K%?%$%W$7$?J8;z$r:o=|$9$k$?$a$K;H$&%-!<%\!<%I>e(B
-$B$N%-!<$G$9!#DL>o$O!"(B <Return> $B%-!<$N>eJ}$K$"$kBg$-$a$N%-!<$G!"(B 
+$B$N%-!<$G$9!#DL>o$O!"(B <Return> $B%-!<$N>eJ}$K$"$kBg$-$a$N%-!<$G!"(B
 "Delete" $B$H$+(B "Del" $B$H$+(B "Backspace" $B$H=q$$$"$j$^$9!#(B
 
 $B$b$7!"$=$N$=$l$,(B "Backspace" $B$H=q$$$F$"$k$J$i!"$=$l$,(B <Delback> $B%-!<$G$9!#(B
@@ -391,7 +391,7 @@
 
 $B2a5n$K>C5n$7$?J8>O$r:FF~$7$?$$$N$K!"JL$NJ8>O$r$=$N8e>C5n$7$?;~$O$I$&$9(B
 $B$l$P$h$$$G$7$g$&!)(B C-y $B$O:G8e$K>C5n$7$?$b$N$r:FF~$7$^$9!#$G$b$=$l$G$h(B
-$B$j0JA0$K>C5n$7$?J8>O$,$J$/$J$k$o$1$G$O$"$j$^$;$s!#$=$&$$$&J8>O$O(B M-y 
+$B$j0JA0$K>C5n$7$?J8>O$,$J$/$J$k$o$1$G$O$"$j$^$;$s!#$=$&$$$&J8>O$O(B M-y
 $B$G:FF~$G$-$^$9!#(BC-y $B$G:G8e$K>C5n$7$?J8>O$r:FF~$7$?D>8e$K(BM-y $B$r%?%$%W$9(B
 $B$k$H!"$=$N:FF~$5$l$?J8>O$O$=$l0JA0$K>C5n$7$?$b$N$KJQ99$5$l$^$9!#2?EY$b(B
 $BB3$1$F(B M-y $B$r%?%$%W$9$k$H!"$5$i$KA0$K>C5n$7$?J8>O$r8F$SLa$;$^$9!#K>$_(B
@@ -427,7 +427,7 @@
 C-_ $B$b<h$j>C$7!J(Bundo$B!K$r9T$J$&%3%^%s%I$G$9!#5!G=$O!"(BC-x u $B$HF1$8$G$9$,!"(B
 $BB3$1$F2?EY$b%?%$%W$9$k>l9g$O$h$jJXMx$G$9!#(BC-_ $B$NLdBj$O!"%-!<%\!<%I$K$h$C(B
 $B$F$O$I$&$d$C$F%?%$%W$9$k$N$+J,$j$E$i$$;v$G$9!#$@$+$i(B C-x u $B$,$"$k$N$G(B
-$B$9!#C<Kv$K$h$C$F$O!"%3%s%H%m!<%k%-!<$r2!$7$?$^$^(B / $B$r%?%$%W$9$k$H(B C-_ 
+$B$9!#C<Kv$K$h$C$F$O!"%3%s%H%m!<%k%-!<$r2!$7$?$^$^(B / $B$r%?%$%W$9$k$H(B C-_
 $B$r%?%$%W$7$?$3$H$K$J$j$^$9!#(B
 
 C-_ $B$d(B C-x u $B$O?tCM0z?t$r7+$jJV$72s?t$H2r<a$7$^$9!#(B
@@ -496,10 +496,10 @@
 >> C-x C-s $B$H%?%$%W$7$F$3$NF~Lg%,%$%I$N%3%T!<$r%;!<%V$7$F2<$5$$!#(B
    $B2hLL:G2<CJ$K(B "Wrote ...TUTORIAL.ja" $B$HI=<($5$l$^$9!#(B
 
-$BCm0U!'%7%9%F%`$K$h$C$F$O(B C-x C-s $B$H%?%$%W$9$k$H2hLL$,F0$+$J$/$J$j(B 
+$BCm0U!'%7%9%F%`$K$h$C$F$O(B C-x C-s $B$H%?%$%W$9$k$H2hLL$,F0$+$J$/$J$j(B
 Emacs $B$,I=<($7$h$&$H$9$k$b$N$,2?$b2hLL$K=P$J$/$J$j$^$9!#$3$l$O!"%U%m!<(B
 $B%3%s%H%m!<%k$H8F$P$l$k#O#S$N5!G=$,(B C-s $B$rB*$(!"(BEmacs $B$KEO$5$J$$$h$&$K(B
-$B$7$F$$$k$N$G$9!#$3$l$r2r=|$9$k$K$O(B C-q $B$r%?%$%W$7$^$9!#$=$l$+$i(B Emacs 
+$B$7$F$$$k$N$G$9!#$3$l$r2r=|$9$k$K$O(B C-q $B$r%?%$%W$7$^$9!#$=$l$+$i(B Emacs
 $B%^%K%e%"%k$N(B "Spontaneous Entry to Incremental Search ($BCN$i$L4V$K%$%s(B
 $B%/%j%a%s%?%k%5!<%A$K$J$k(B)" $B$N@a$rFI$s$G$/$@$5$$!#$3$N$d$C$+$$$J#O#S$N(B
 $B5!G=$K$I$&BP=h$9$l$PNI$$$+$,:\$C$F$$$^$9!#(B
@@ -524,7 +524,7 @@
    $B2?$+J8>O$rF~$l!"JT=8$7!"(BC-x C-s $B$G(B "foo" $B$r%;!<%V$7$F2<$5$$!#(B
    $B:G8e$K(B C-x C-f TUTORIAL.ja <Retrun> $B$H%?%$%W$7(B
    $BF~Lg%,%$%I$KLa$j$^$7$g$&!#(B
-   
+
 Emacs $B$O%U%!%$%k$NFbMF$r%P%C%U%!!J(Bbuffer$B!K$H8F$P$l$k$b$N$NCf$K3JG<$7$F(B
 $B$$$^$9!#%U%!%$%k$r3+$/$H?7$7$$%P%C%U%!$,$G$-$^$9!#(BEmacs $B$,8=:_;}$C$F$$(B
 $B$k%P%C%U%!$N%j%9%H$r8+$k$K$O!"<!$N$h$&$K%?%$%W$7$^$9!#(B
@@ -555,7 +555,7 @@
 $B%9%H$O>o$K3F%P%C%U%!$NL>A0$rI=<($7$^$9!#(B
 
 $B$"$J$?$,(B Emacs $B$N%&%#%s%I%&$G8+$kJ8>O$O$I$l$b!"$$$:$l$+$N%P%C%U%!$N0l(B
-$BIt$G$9!#%P%C%U%!$K$h$C$F$OBP1~$9$k%U%!%$%k$,L5$$$b$N$b$"$j$^$9!#Nc$($P(B 
+$BIt$G$9!#%P%C%U%!$K$h$C$F$OBP1~$9$k%U%!%$%k$,L5$$$b$N$b$"$j$^$9!#Nc$($P(B
 "*Buffer List*" $B$H$$$&L>A0$N%P%C%U%!$K$O%U%!%$%k$,$"$j$^$;$s!#$3$N%P%C(B
 $B%U%!$O$"$J$?$,(B C-x C-b $B$G:n$C$?%P%C%U%!%j%9%H$rJ];}$7$F$$$k%P%C%U%!$G(B
 $B$9!#(B"*Messages*" $B$H$$$&%P%C%U%!$b%U%!%$%k$r;}$A$^$;$s!#$3$N%P%C%U%!$O!"(B
@@ -604,7 +604,7 @@
 C-z $B$O!V0l;~E*$K!W(B Emacs $B$rH4$1$k%3%^%s%I$G$9!#$^$?F1$8(B Emacs $B%;%C%7%g(B
 $B%s$KLa$k$3$H$,$G$-$^$9!#(B
 
-$B$=$l$,$G$-$k%7%9%F%`>e$J$i!"(BC-z $B$O(B Emacs $B$r!VCfCG!W$5$;$^$9!#$D$^$j(B 
+$B$=$l$,$G$-$k%7%9%F%`>e$J$i!"(BC-z $B$O(B Emacs $B$r!VCfCG!W$5$;$^$9!#$D$^$j(B
 Emacs $B$r=*N;$9$k$3$H$J$/!"%3%^%s%I%7%'%k$KLa$k$3$H$,$G$-$^$9!#BgJ}$NI8(B
 $B=`E*$J%7%'%k$J$i!"(B`fg' $B%3%^%s%I$b$7$/$O(B `%emacs' $B$K$h$C$F(B Emacs $B$r:F3+(B
 $B$G$-$^$9!#(B
@@ -615,9 +615,9 @@
 $B$G!"%7%'%k%3%^%s%I$N(B `exit' $B$,$=$N%5%V%7%'%k$+$i(B Emacs $B$KLa$kIaDL$N$d(B
 $B$jJ}$G$9!#(B
 
-C-x C-c $B$O%m%0%"%&%H$7$h$&$H;W$&;~$K;H$&$b$N$G$9!#%a!<%k%D!<%k!J(Bmail 
-$B%3%^%s%IEy!K$d$=$NB>$NMM!9$J%"%W%j%1!<%7%g%s%W%m%0%i%`$,5/F0$7$?(B Emacs 
-$B$+$iH4$1=P$k>l9g$K;H$&$N$b@5$7$$$d$jJ}$G$9!#$3$l$i$N%W%m%0%i%`$O(B Emacs 
+C-x C-c $B$O%m%0%"%&%H$7$h$&$H;W$&;~$K;H$&$b$N$G$9!#%a!<%k%D!<%k!J(Bmail
+$B%3%^%s%IEy!K$d$=$NB>$NMM!9$J%"%W%j%1!<%7%g%s%W%m%0%i%`$,5/F0$7$?(B Emacs
+$B$+$iH4$1=P$k>l9g$K;H$&$N$b@5$7$$$d$jJ}$G$9!#$3$l$i$N%W%m%0%i%`$O(B Emacs
 $B$NCfCG$K$I$&BP=h$7$FNI$$$+CN$i$J$$$G$7$g$&$+$i!#$7$+$7$J$,$i!"IaDL$N>l(B
 $B9g$O!"%m%0%"%&%H$7$h$&$H$7$J$$8B$j$O(B Emacs $B$r=*N;$5$;$k$h$j$O(B C-z $B$GCf(B
 $BCG$5$;$kJ}$,NI$$$G$7$g$&!#(B
@@ -629,7 +629,7 @@
 	C-x C-b   $B%P%C%U%!$N%j%9%H%"%C%W(B
 	C-x C-c   Emacs $B$r=*N;(B
 	C-x 1     $B%&%#%s%I%&$r#1$D$K$9$k!J$D$^$jB>$N%&%#%s%I%&$rA4It>C$9!K(B
-	C-x u	  $B<h$j>C$7(B	
+	C-x u	  $B<h$j>C$7(B
 
 $BL>A0$K$h$k3HD%%3%^%s%I$K$O!"$"$^$j;H$o$J$$$b$N$d!"FCDj$N%b!<%I$G$7$+;H(B
 $B$o$J$$$b$N$,$"$j$^$9!#$?$H$($P(B replace-string $B$G$9$,!"$3$l$OJ8;zNs$rCV(B
@@ -646,7 +646,7 @@
 >> $B%+!<%=%k$r$3$3$+$i#29T2<$N6u9T$K0\F0$5$;$F2<$5$$!#(B
    M-x repl s<Return>changed<Return>Altered<Return> $B$H%?%$%W$7$^$7$g$&!#(B
 
-   $B$3$N9T$,$I$&JQ$o$k$+(B(changed)$B8+$^$7$g$&!#$"$J$?$O%+!<%=%k0J9_A4It$N(B 
+   $B$3$N9T$,$I$&JQ$o$k$+(B(changed)$B8+$^$7$g$&!#$"$J$?$O%+!<%=%k0J9_A4It$N(B
    c-h-a-n-g-e-d $B$H$$$&8l$r(B "altered" $B$KJQ$($?$N$G$9!#(B
 
 
@@ -687,22 +687,22 @@
 
 $B%U%!%$%kL>$K$D$$$F$O$b$&J,$C$F$$$^$9$M!#$=$l$O$"$J$?$,3+$$$?%U%!%$%k$G(B
 $B$9!#(B-NN%-- $B$OJ8>OCf$N8=:_0LCV$r<($7$F$$$^$9!#J8>O$N(B NN% $B$,2hLL:G>eCJ$h(B
-$B$jA0$K$"$k$H$$$&$3$H$G$9!#$b$7J8>O$N:G=i$N9T$,2hLL$K$"$k;~$K$O(B --00%-- 
-$B$NBe$j$K(B --Top-- $B$HI=<($7$^$9!#$b$7J8>O$N:G8e$N9T$,2hLL$K$"$k;~$K$O(B 
+$B$jA0$K$"$k$H$$$&$3$H$G$9!#$b$7J8>O$N:G=i$N9T$,2hLL$K$"$k;~$K$O(B --00%--
+$B$NBe$j$K(B --Top-- $B$HI=<($7$^$9!#$b$7J8>O$N:G8e$N9T$,2hLL$K$"$k;~$K$O(B
 --Bot-- $B$HI=<($7$^$9!#$b$72hLL$KA4It<}$^$C$F$7$^$&$h$&$JC;$$J8>O$r8+$F(B
 $B$$$k$H$-$K$O(B --All-- $B$HI=<($7$^$9!#(B
 
 L $B$H$=$l$KB3$/?t;z$O8=:_$N9THV9f$r<($7$F$$$^$9!#(B
 
 $B@hF,6a$/$N@10u$O!"$"$J$?$,J8>O$rJQ99$7$?$3$H$r<($7$F$$$^$9!#%U%!%$%k$r(B
-$B3+$$$?D>8e$d!"%;!<%V$7$?D>8e$O!"$=$NItJ,$K$O@10u$NBe$o$j$K%@%C%7%e(B `-' 
+$B3+$$$?D>8e$d!"%;!<%V$7$?D>8e$O!"$=$NItJ,$K$O@10u$NBe$o$j$K%@%C%7%e(B `-'
 $B$,I=<($5$l$^$9!#(B
 
-$B3g8L$K0O$^$l$?ItJ,$O$I$s$JJT=8%b!<%I$K$$$k$+$r<($7$^$9!#%G%U%)%k%H$O(B 
+$B3g8L$K0O$^$l$?ItJ,$O$I$s$JJT=8%b!<%I$K$$$k$+$r<($7$^$9!#%G%U%)%k%H$O(B
 "Fundamental" $B$H$$$&%b!<%I!"$3$l$,8=:_$N%b!<%I$G$9!#$3$l$O!V%a%8%c!<%b!<(B
 $B%I!J(Bmajor mode$B!K!W$N0lNc$G$9!#(B
 
-Emacs $B$K$OB?$/$N<oN`$N%a%8%c!<%b!<%I$,$"$j$^$9!#(BLisp mode $B$d(BText mode 
+Emacs $B$K$OB?$/$N<oN`$N%a%8%c!<%b!<%I$,$"$j$^$9!#(BLisp mode $B$d(BText mode
 $B$N$h$&$K!"$I$s$J%W%m%0%i%`8@8l$d$I$s$J<oN`$NJ8>O$rJT=8Cf$+$r0UL#$9$k$b(B
 $B$N$b$"$j$^$9!#$$$D$G$bI,$:$$$:$l$+$N%a%8%c!<%b!<%I$N>uBV$K$J$C$F$$$^$9!#(B
 $B$I$N%a%8%c!<%b!<%I$K$$$k$N$+$O!"%b!<%I%i%$%s$N8=:_$O(B "Fundamental" $B$H(B
@@ -813,7 +813,7 @@
 
 $B%$%s%/%j%a%s%?%k8!:w$NESCf$G(B <Delback> $B$rBG$D$H8!:wJ8;zNsCf$N#1HV:G8e(B
 $B$NJ8;z$,>C$($^$9!#$=$7$F!"%+!<%=%k$O!"A02s$N0LCV$KLa$j$^$9!#$?$H$($P!"(B
-"c" $B$H%?%$%W$7$F:G=i$N(B "c" $B$rC5$7$^$9!#$=$l$+$i(B "u" $B$rBG$D$H:G=i$N(B"cu" 
+"c" $B$H%?%$%W$7$F:G=i$N(B "c" $B$rC5$7$^$9!#$=$l$+$i(B "u" $B$rBG$D$H:G=i$N(B"cu"
 $B$N>l=j$K%+!<%=%k$,F0$-$^$9!#$=$3$G(B <Delback> $B$rBG$D$H(B "u" $B$r8!:wJ8;zNs(B
 $B$+$i>C$7$F!"%+!<%9%k$O:G=i$K(B "c" $B$,8=$l$?>l=j$KLa$j$^$9!#(B
 
@@ -828,7 +828,7 @@
 Emacs $B$NAGE($J5!G=$N0l$D$H$7$F!"0l$D$N2hLL$KF1;~$K$$$/$D$b$N%&%#%s%I%&(B
 $B$rI=<($9$k$3$H$,$G$-$^$9!#(B
 
->> $B%+!<%=%k$r$3$N9T$K;}$C$F$-$F(B C-u 0 C-l $B$H%?%$%W$7$F2<$5$$!J:G8e$N$O(B 
+>> $B%+!<%=%k$r$3$N9T$K;}$C$F$-$F(B C-u 0 C-l $B$H%?%$%W$7$F2<$5$$!J:G8e$N$O(B
    CONTROL-L $B$G$9$h!"(BCONTROL-1 $B$8$c$"$j$^$;$s!K!#(B
 
 >> $B$=$l$+$i(B C-x 2 $B$G2hLL$r#2$D$N%&%#%s%I%&$KJ,3d$7$^$7$g$&!#$I$A$i$N%&%#(B
@@ -906,7 +906,7 @@
 
 $B$3$NF~Lg%,%$%I$G$O(B Emacs $B$r;H$$;O$a$k$N$K==J,$J>pJs$rDs6!$7$?$D$b$j$G(B
 $B$9!#(BEmacs $B$K$O$"$^$j$K$bB?$/$N5!G=$,$"$k$N$G!"$3$3$G$9$Y$F$r@bL@$9$k$N(B
-$B$OL5M}$G$9!#Lr$KN)$D5!G=$r$b$C$HB?$/3X$S$?$$$H;W$&?M$N$?$a$K$O!"(BEmacs 
+$B$OL5M}$G$9!#Lr$KN)$D5!G=$r$b$C$HB?$/3X$S$?$$$H;W$&?M$N$?$a$K$O!"(BEmacs
 $B$N%3%^%s%I$N@bL@$rFI$`$?$a$N%3%^%s%I$,$"$j$^$9!#$3$l$i$N!V%X%k%W!W%3%^(B
 $B%s%I$O3'(B Control-h $BJ8;z!J%X%k%WJ8;z$H8F$S$^$9!K$G;O$^$j$^$9!#(B
 
@@ -917,7 +917,7 @@
 
 $B!J%5%$%H$K$h$C$F$O(B C-h $BJ8;z$N0UL#$rJQ99$7$F$$$k$+$b$7$l$^$;$s!#%f!<%6(B
 $BA40w$KBP$9$kAm3gE*$J<jCJ$H$7$F$=$s$J$3$H$r$9$k$Y$-$G$O$"$j$^$;$s!#$=$&(B
-$B$$$&>l9g$O%7%9%F%`4IM}<T$KJ86g$r8@$$$^$7$g$&!#$^!"$H$b$+$/!"$b$7(B C-h 
+$B$$$&>l9g$O%7%9%F%`4IM}<T$KJ86g$r8@$$$^$7$g$&!#$^!"$H$b$+$/!"$b$7(B C-h
 $B$,2hLL$N2<$NJ}$K%X%k%W$N%a%C%;!<%8$r=P$5$J$1$l$P!"(BF1 $B%-!<$+(B M-x help
 <Return> $B$r;n$7$F$_$F2<$5$$!#!K(B
 
@@ -930,7 +930,7 @@
 
 	C-p runs the command previous-line
 
-$B$3$l$O!V%U%!%s%/%7%g%s$NL>A0!W$rI=<($7$?$N$G$9!#%U%!%s%/%7%g%sL>$O<g$K(B 
+$B$3$l$O!V%U%!%s%/%7%g%s$NL>A0!W$rI=<($7$?$N$G$9!#%U%!%s%/%7%g%sL>$O<g$K(B
 Emacs $B$r%+%9%?%^%$%:$7$?$j3HD%$7$?$j$9$k$N$K;H$o$l$^$9!#$7$+$7!"%U%!%s(B
 $B%/%7%g%sL>$O$=$N%3%^%s%I$,2?$r$9$k$b$N$J$N$+$,J,$k$h$&$KIU$1$i$l$^$9$N(B
 $B$G!"4JC1$J@bL@$H$7$F$b$=$N$^$^Lr$KN)$A$^$9!#0lEY3X$s$@%3%^%s%I$K$D$$$F(B
@@ -981,8 +981,8 @@
    C-h i	$B%*%s%i%$%s%^%K%e%"%k!J(BInfo$B!K$rFI$`!#$3$N%3%^%s%I$r;H$&(B
 		$B$H!"$"$J$?$O(B `*info*' $B$H$$$&L>$NFC<l$J%P%C%U%!$K0\$5$l(B
 		$B$^$9!#$=$3$G!"%7%9%F%`$K%$%s%9%H!<%k$5$l$F$$$k%Q%C%1!<(B
-		$B%8$N%*%s%i%$%s%^%K%e%"%k$,FI$a$^$9!#(B m emacs <Return> 
-		$B$H%?%$%W$9$l$P(B Emacs $B$N%^%K%e%"%k$,FI$a$^$9!#$b$7(B Info 
+		$B%8$N%*%s%i%$%s%^%K%e%"%k$,FI$a$^$9!#(B m emacs <Return>
+		$B$H%?%$%W$9$l$P(B Emacs $B$N%^%K%e%"%k$,FI$a$^$9!#$b$7(B Info
 		$B$r;H$&$N$,=i$a$F$J$i!"(B? $B$H%?%$%W$7$^$7$g$&!#(BInfo $B%b!<(B
 		$B%I$N%,%$%I%D%"!<$,;O$^$j$^$9!#$3$NF~Lg%,%$%I$rFI$_=*$((B
 		$B$?8e$O!"(BEmacs $B$N(B Info $B%^%K%e%"%k$r$"$J$?$N65K\$K$7$F2<(B
@@ -992,7 +992,7 @@
 $B!v$b$C$HB?$/$N5!G=(B
 ==================
 
-$BK\$N%^%K%e%"%k$G$"$m$&$H%*%s%i%$%s%^%K%e%"%k!J(BHelp $B%a%K%e!<$r;H$&$+(B 
+$BK\$N%^%K%e%"%k$G$"$m$&$H%*%s%i%$%s%^%K%e%"%k!J(BHelp $B%a%K%e!<$r;H$&$+(B
 F10 h r$B!K$G$"$m$&$H!"$=$l$rFI$a$P(B Emacs $B$K$D$$$F$b$C$HB?$/$r3X$Y$^$9!#(B
 $B$"$J$?$,FC$K$*5$$K>$$9$G$"$m$&5!G=$K!"%?%$%W?t$r8:$i$7$F$/$l$kJd40(B
 $B!J(Bcompletion$B!K$H!"%U%!%$%k$N07$$$rC1=c2=$7$F$/$l$k%G%#%l%/%H%jJT=8(B
@@ -1030,7 +1030,7 @@
 $B$3$NJ8=q$O(B Emacs Ver.21 $BIUB0$N1Q8lHG$NF~Lg%,%$%I$rF|K\8l$KK]Lu$7$?$b$N(B
 $B$G$9!#$=$N:]!"(BEmacs Ver. 20 $BImB0$NF|K\8lHGF~Lg%,%$%I$r%Y!<%9$K$7$^$7$?!#(B
 Emacs Ver. 20 $BImB0$NF|K\8lHGF~Lg%,%$%I$O!"(BMule $BIUB0$NF|K\8l%,%$%I$r;2(B
-$B9M$K$7$?$b$N$G!"$=$N85$O(B SANETO Takanori $B;a$,F|K\8l(B MicroEmacs(kemacs) 
+$B9M$K$7$?$b$N$G!"$=$N85$O(B SANETO Takanori $B;a$,F|K\8l(B MicroEmacs(kemacs)
 $BF~LgJT$H$7$FK]Lu$5$l!"$=$l$rNkLZM5?.;a(B <hironobu@sra.co.jp> $B$,(B
 Nemacs/Mule $BMQ$KJQ99!"$5$i$K5HEDLP<y;a$,=$@5$5$l$?$b$N$G$9!#$3$l$i$NJ}!9(B
 $B$K?<$/46<U$7$^$9!#(B
--- a/etc/TUTORIAL.nl	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/TUTORIAL.nl	Tue Feb 04 14:56:31 2003 +0000
@@ -180,7 +180,7 @@
 
 >> Type nu M-> om naar het eind van het bestand te springen.
    Gebruik daarna M-v om hier weer terug te komen.
-   
+
 Als je toetsenbord pijltjestoetsen heeft kan je ook die gebruiken om de
 cursor te verplaatsen.  We raden je aan om C-b, C-f, C-n en C-p op zijn
 minst te leren, om drie redenen.  Ten eerste werken ze op alle
@@ -877,7 +877,7 @@
    om de cursor naar het andere venster te verplaatsen.
 
 >> Verschuif de tekst in het onderste venster, m.b.v. C-v en M-v.
-   Zorg ervoor dat je deze uitleg in het bovenste venster leest.  
+   Zorg ervoor dat je deze uitleg in het bovenste venster leest.
 
 >> Type weer C-x o om de cursor weer in het bovenste venster
    te zetten.  De cursor staat weer precies op de plaats waar
--- a/etc/TUTORIAL.pl	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/TUTORIAL.pl	Tue Feb 04 14:56:31 2003 +0000
@@ -1,5 +1,5 @@
-Czytasz w³a¶nie krótki samouczek Emacsa. Copyright (c) 1985, 2001 
-Free Software Foundation, Inc. Szczegó³y na koñcu pliku. 
+Czytasz w³a¶nie krótki samouczek Emacsa. Copyright (c) 1985, 2001
+Free Software Foundation, Inc. Szczegó³y na koñcu pliku.
 
 Polecenia Emacsa wymagaj± na ogó³ wci¶niêcia klawisza CONTROL (oznaczanego
 czasami Ctrl lub CTL) lub klawisza META (oznaczanego czasami EDIT
@@ -7,7 +7,7 @@
 
 C-<znak> oznacza przytrzymanie klawisza CONTROL przy naciskaniu
 	klawisza <znak>. Na przyk³ad C-f bêdzie odpowiada³o
-	naci¶niêciu f przy wci¶niêtym klawiszu CONTROL.  
+	naci¶niêciu f przy wci¶niêtym klawiszu CONTROL.
 M-<znak> oznacza przytrzymanie klawisza META lub ALT przy naciskaniu
 	klawisza <znak>. Zamiast tego mo¿na nacisn±æ i pu¶ciæ klawisz
 	ESC, a potem nacisn±æ klawisz <znak>.
@@ -69,7 +69,7 @@
 
                  Poprzednia linia, C-p
                  (ang. previous line)
-                         : 
+                         :
                          :
     Do ty³u, C-b .... Kursor .... Do przodu, C-f
              (ang. back) : (ang. forward)
@@ -155,7 +155,7 @@
 	M-f Do przodu o s³owo
 	M-b Do ty³u o s³owo
 
-	C-n Nastêpna linia	
+	C-n Nastêpna linia
 	C-p Poprzednia linia
 
 	C-a Pocz±tek linii
@@ -328,7 +328,7 @@
 
 >> Sprawd¼ to teraz: wstaw kilka znaków, po czym usuñ je, kilka razy
    naciskaj±c <Delback>. Nie martw siê, ¿e zmieniasz w ten sposób
-   niniejszy plik, w istocie nie zmieniasz g³ównego pliku samouczka. 
+   niniejszy plik, w istocie nie zmieniasz g³ównego pliku samouczka.
    Pracujesz teraz na jego kopii.
 
 Gdy linia tekstu staje siê zbyt d³uga, by zmie¶ciæ siê w jednym
@@ -344,8 +344,8 @@
    mie¶ci³a siê na ekranie; linia kontynuacji zniknie.
 
 Znak nowej linii mo¿na skasowaæ tak jak ka¿dy inny znak. Usuniêcie znaku
-nowej linii miêdzy dwiema liniami spowoduje ich po³±czenie. Je¶li powsta³a 
-w wyniku tego linia tekstu jest zbyt d³uga, by zmie¶ciæ siê na szeroko¶æ 
+nowej linii miêdzy dwiema liniami spowoduje ich po³±czenie. Je¶li powsta³a
+w wyniku tego linia tekstu jest zbyt d³uga, by zmie¶ciæ siê na szeroko¶æ
 ekranu, to zostanie wy¶wietlona z lini± kontynuacji.
 
 >> Przesuñ kursor na pocz±tek linii i naci¶nij <Delback>. Bie¿±ca
@@ -354,8 +354,8 @@
 >> Naci¶nij <Return>, by z powrotem wstawiæ znak nowej linii, który
    skasowa³e¶.
 
-Jak ju¿ wiesz, wiêkszo¶æ poleceñ Emacsa mo¿na wywo³aæ z parametrem 
-liczby powtórzeñ; dotyczy to tak¿e znaków tekstu. Argument liczbowy 
+Jak ju¿ wiesz, wiêkszo¶æ poleceñ Emacsa mo¿na wywo³aæ z parametrem
+liczby powtórzeñ; dotyczy to tak¿e znaków tekstu. Argument liczbowy
 powoduje wstawienie znaku odpowiadaj±c± mu liczbê razy.
 
 >> Wypróbuj to teraz -- naci¶nij C-u 8 *, a uzyskasz ********.
@@ -768,7 +768,7 @@
 --:** TUTORIAL (Fundamental)--L670--58%----------------
 
 Linia ta podaje u¿yteczne informacje o stanie Emacsa i tekstu, który
-edytujesz. 
+edytujesz.
 
 Wiesz ju¿, jakie jest znaczenie nazwy: oznacza ona plik,
 który odwiedzi³e¶. --NN%-- informuje o bie¿±cej pozycji wewn±trz
@@ -1097,7 +1097,7 @@
 		Dla niektórych poleceñ Apropos wypisze jedno- lub
 		dwuznakowe sekwencje, które wywo³uj± te polecenia.
 
->> Napisz C-h a file<Return>. 
+>> Napisz C-h a file<Return>.
 
 Zobaczysz listê wszystkich poleceñ,
 dostêpnych za pomoc± M-x, które maja s³owo "file" w swojej nazwie.
--- a/etc/TUTORIAL.ru	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/TUTORIAL.ru	Tue Feb 04 14:56:31 2003 +0000
@@ -61,7 +61,7 @@
 C-p, C-b, C-f É C-n.  ëÁÖÄÁÑ ÉÚ ÜÔÉÈ ËÏÍÁÎÄ ÐÅÒÅÄ×ÉÇÁÅÔ ËÕÒÓÏÒ ÎÁ ÏÄÎÕ
 ÓÔÒÏËÕ ÉÌÉ ËÏÌÏÎËÕ ÎÁ ÜËÒÁÎÅ × ÏÐÒÅÄÅÌÅÎÎÏÍ ÎÁÐÒÁ×ÌÅÎÉÉ. üÔÁ ÔÁÂÌÉÃÁ
 ÐÏËÁÚÙ×ÁÅÔ ÞÅÔÙÒÅ ËÏÍÁÎÄÙ É ÞÅÔÙÒÅ ÎÁÐÒÁ×ÌÅÎÉÑ ÉÈ Ä×ÉÖÅÎÉÑ:
- 
+
 			  ðÒÅÄÙÄÕÝÁÑ ÓÔÒÏËÁ, C-p
 				  :
 				  :
@@ -196,7 +196,7 @@
 ×ÙÐÏÌÎÅÎÉÑ ËÏÍÁÎÄÙ.
 
 îÁÐÒÉÍÅÒ, C-u 8 C-f ÐÅÒÅÍÅÓÔÉÔ ËÕÒÓÏÒ ÎÁ ×ÏÓÅÍØ ÓÉÍ×ÏÌÏ× ×ÐÅÒÅÄ.
-	
+
 >> ðÏÐÒÏÂÕÊÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ C-n ÉÌÉ C-p Ó ÃÉÆÒÏ×ÙÍ ÁÒÇÕÍÅÎÔÏÍ, ÞÔÏÂÙ
    ÐÅÒÅÍÅÓÔÉÔØ ËÕÒÓÏÒ ÎÁ ÓÔÒÏËÕ ÒÑÄÏÍ Ó ÜÔÏÊ ËÏÍÁÎÄÏÊ.
 
@@ -204,7 +204,7 @@
 ÎÅËÏÔÏÒÙÅ ËÏÍÁÎÄÙ ÉÓÐÏÌØÚÕÀÔ ÅÇÏ ÄÒÕÇÉÍ ÓÐÏÓÏÂÏÍ. îÅËÏÔÏÒÙÅ ËÏÍÁÎÄÙ (ÎÏ ÎÉ
 ÏÄÎÁ ÉÚ ÎÉÈ ÎÅ ÂÙÌÁ ÅÝÅ ÉÚÕÞÅÎÁ ÚÄÅÓØ) ÉÓÐÏÌØÚÕÀÔ ÅÇÏ ËÁË ÆÌÁÇ -- ÎÁÌÉÞÉÅ
 ÐÒÅÆÉËÓÎÏÇÏ ÁÒÇÕÍÅÎÔÁ ×ÎÅ ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÅÇÏ ÚÎÁÞÅÎÉÑ, ÉÚÍÅÎÑÅÔ ÐÏ×ÅÄÅÎÉÅ
-ËÏÍÁÎÄÙ. 
+ËÏÍÁÎÄÙ.
 
 äÒÕÇÉÍ ×ÉÄÏÍ ÉÓËÌÀÞÅÎÉÊ Ñ×ÌÑÀÔÓÑ ËÌÀÞÉ C-v É M-v. ðÒÉ ÐÏÌÕÞÅÎÉÉ ÞÉÓÌÏ×ÏÇÏ
 ÁÒÇÕÍÅÎÔÁ, ÏÎÉ ÐÒÏËÒÕÞÉ×ÁÀÔ ÜËÒÁÎ ××ÅÒÈ ÉÌÉ ×ÎÉÚ ÎÁ ÕËÁÚÁÎÎÏÅ ÞÉÓÌÏ ÓÔÒÏË,
@@ -246,7 +246,7 @@
 ÐÏÔÏÍÕ ÞÔÏ ×Ù ÎÅ ÏÔÐÕÓËÁÅÔÅ ËÎÏÐËÕ CONTROL ÍÅÖÄÕ ÎÁÖÁÔÉÑÍÉ.
 
 
-* åóìé EMACS úá÷éó 
+* åóìé EMACS úá÷éó
 ------------------
 
 åÓÌÉ Emacs ÐÅÒÅÓÔÁÌ ÒÅÁÇÉÒÏ×ÁÔØ ÎÁ ×ÁÛÉ ËÏÍÁÎÄÙ, ×Ù ÍÏÖÅÔÅ ÏÓÔÁÎÏ×ÉÔØ ÜÔÏ
@@ -572,7 +572,7 @@
 >> óÏÚÄÁÊÔÅ ÆÁÊÌ Ó ÉÍÅÎÅÍ "foo" ÎÁÂÉÒÁÑ C-x C-f foo <Return>.
    ÷ÓÔÁ×ØÔÅ ËÁËÏÊ-ÎÉÂÕÄØ ÔÅËÓÔ, ÏÔÒÅÄÁËÔÉÒÕÊÔÅ ÅÇÏ, É ÓÏÈÒÁÎÉÔÅ "foo"
    ÎÁÂÒÁ× C-x C-s.
-   îÁËÏÎÅÃ, ÎÁÂÅÒÉÔÅ C-x C-f TUTORIAL.ru <Return> 
+   îÁËÏÎÅÃ, ÎÁÂÅÒÉÔÅ C-x C-f TUTORIAL.ru <Return>
    ÞÔÏÂÙ ×ÅÒÎÕÔØÓÑ ÎÁÚÁÄ Ë ÕÞÅÂÎÉËÕ.
 
 Emacs ÓÏÈÒÁÎÑÅÔ ÔÅËÓÔ ËÁÖÄÏÇÏ ÆÁÊÌÁ ×ÎÕÔÒÉ × ÏÂßÅËÔÅ ÎÁÚÙ×ÁÅÍÙÊ "ÂÕÆÅÒ"
@@ -610,14 +610,14 @@
    ïÔ×ÅÔØÔÅ ÎÁ ×ÏÐÒÏÓ ÄÁ ÎÁÂÒÁ× "y".
 
 
-* òáóûéòåîîùê îáâïò ëïíáîä 
+* òáóûéòåîîùê îáâïò ëïíáîä
 --------------------------
 
 õ Emacs ÏÞÅÎØ ÍÎÏÇÏ ËÏÍÁÎÄ, ÏÎÉ ÍÏÇÕÔ ÂÙÔØ ÎÁÚÎÁÞÅÎÙ ÎÁ ×ÓÅ control- É meta-
 ÓÉÍ×ÏÌÙ. Emacs ÏÂÈÏÄÉÔ ÜÔÏ, ÉÓÐÏÌØÚÕÑ  X-ËÏÍÁÎÄÕ (eXtend). åÓÔØ Ä×Å
 ×ÏÚÍÏÖÎÏÓÔÉ:
 
-	C-x	óÉÍ×ÏÌ ÒÁÓÛÉÒÅÎÉÑ (Character eXtend). 
+	C-x	óÉÍ×ÏÌ ÒÁÓÛÉÒÅÎÉÑ (Character eXtend).
                 úÁ ÎÉÍ ÓÌÅÄÕÅÍ ÏÄÉÎ ÓÉÍ×ÏÌ.
 	M-x	éÍÅÎÏ×ÁÎÎÙÅ ÒÁÓÛÉÒÅÎÎÙÅ ËÏÍÁÎÄÙ (Named command eXtend).
                 úÁ ÎÉÍ ÓÌÅÄÕÅÔ ÉÍÑ ËÏÍÁÎÄÙ.
@@ -752,7 +752,7 @@
 îÅ ×ÏÌÎÕÊÔÅÓØ, ÎÉ ÏÄÎÁ ÉÚ ×ÙÕÞÅÎÎÙÈ ×ÁÍÉ ËÏÍÁÎÄ Emacs ÎÅ ÉÚÍÅÎÉÌÁÓØ. îÏ ×Ù
 ÍÏÖÉÔÅ ÚÁÍÅÔÉÔØ, ÞÔÏ M-f É M-b ÔÅÐÅÒØ ÒÁÚÌÉÞÁÔØ ÁÐÏÓÔÒÏÆÙ ËÁË ÞÁÓÔÉ ÓÌÏ×Á.
 òÁÎÅÅ, × ÂÁÚÏ×ÏÍ ÒÅÖÉÍÅ (Fundamental mode), M-f É M-b ÐÏÎÉÍÁÌÉ ÁÐÏÓÔÒÏÆÙ
-ËÁË ÒÁÚÄÅÌÉÔÅÌÉ ÓÌÏ×. 
+ËÁË ÒÁÚÄÅÌÉÔÅÌÉ ÓÌÏ×.
 
 ïÓÎÏ×ÎÏÊ ÒÅÖÉÍ ÏÂÙÞÎÏ ÄÅÌÁÅÔ ÎÅÂÏÌØÛÉÅ ÉÚÍÅÎÅÎÉÑ, ÔÁËÉÅ ËÁË: ÂÏÌØÛÉÎÓÔ×Ï
 ËÏÍÁÎÄ ÄÅÌÁÀÔ "ÔÕ ÖÅ ÒÁÂÏÔÕ" × ËÁÖÄÏÍ ÉÚ ÒÅÖÉÍÏ×, ÎÏ ÉÈ ÒÁÂÏÔÁ ÏÔÌÉÞÁÅÔÓÑ
@@ -793,7 +793,7 @@
 
 >> ÷×ÅÄÉÔÅ C-x f Ó ÁÒÇÕÍÅÎÔÏÍ 20. (C-u 2 0 C-x f). úÁÔÅÍ ××ÅÄÉÔÅ
    ËÁËÏÊ-ÎÉÂÕÄØ ÔÅËÓÔ, É ÐÏÓÍÏÔÒÉÔÅ ËÁË Emacs ÚÁÐÏÌÎÑÅÔ ÓÔÒÏËÉ ÐÏ 20
-   ÓÉÍ×ÏÌÏ× × ËÁÖÄÏÊ. ÷ÅÒÎÉÔÅ ÚÎÁÞÅÎÉÅ ÇÒÁÎÉÃÙ 70 ÎÁÚÁÄ, 
+   ÓÉÍ×ÏÌÏ× × ËÁÖÄÏÊ. ÷ÅÒÎÉÔÅ ÚÎÁÞÅÎÉÅ ÇÒÁÎÉÃÙ 70 ÎÁÚÁÄ,
    ÓÎÏ×Á ÉÓÐÏÌØÚÕÑ C-x f.
 
 åÓÌÉ ×Ù ÓÄÅÌÁÌÉ ÉÚÍÅÎÅÎÉÑ × ÓÅÒÅÄÉÎÅ ÐÁÒÁÇÒÁÆÁ, Á×ÔÏÚÁÐÏÌÎÅÎÉÅ ÎÅ ÐÅÒÅÓÔÒÏÉÔ
@@ -818,12 +818,12 @@
 ÎÕÖÎÏ ÐÒÏÂÏ×ÁÔØ ÐÒÑÍÏ ÓÅÊÞÁÓ.
 
 ëÏÇÄÁ ×Ù ÎÁÖÍÅÔÅ C-s ×Ù Õ×ÉÄÉÔÅ ÓÔÒÏËÕ "I-search", ÐÏÑ×É×ÛÕÀÓÑ × ÏÂÌÁÓÔÉ ÜÈÏ.
-÷ÁÍ ÓÏÏÂÝÁÅÔÓÑ ÞÔÏ Emacs ÖÄÅÔ ××ÏÄÁ ÓÌÏ×Á, ËÏÔÏÒÏÅ ×Ù ÈÏÔÉÔÅ ÎÁÊÔÉ. 
+÷ÁÍ ÓÏÏÂÝÁÅÔÓÑ ÞÔÏ Emacs ÖÄÅÔ ××ÏÄÁ ÓÌÏ×Á, ËÏÔÏÒÏÅ ×Ù ÈÏÔÉÔÅ ÎÁÊÔÉ.
 <Return> ÚÁ×ÅÒÛÁÅÔ ÐÏÉÓË.
 
 >> ôÅÐÅÒØ, ÎÁÖÍÉÔÅ C-s ÄÌÑ ÎÁÞÁÌÁ ÐÏÉÓËÁ. íÅÄÌÅÎÎÏ, ÏÄÎÕ ÂÕË×Õ ÚÁ ÏÄÉÎ ÒÁÚ,
    ÎÁÂÉÒÁÊÔÅ ÓÌÏ×Ï 'ËÕÒÓÏÒ', ÏÓÔÁÎÁ×ÌÉ×ÁÑÓØ ÐÏÓÌÅ ËÁÖÄÏÊ ××ÅÄÅÎÎÏÊ ÂÕË×Ù É
-   ÚÁÍÅÞÁÑ ÞÔÏ ÐÒÏÉÓÈÏÄÉÔ Ó ËÕÒÓÏÒÏÍ. 
+   ÚÁÍÅÞÁÑ ÞÔÏ ÐÒÏÉÓÈÏÄÉÔ Ó ËÕÒÓÏÒÏÍ.
    óÅÊÞÁÓ ×Ù ÎÁÛÌÉ ÐÅÒ×ÏÅ ×ÈÏÖÄÅÎÉÅ ÓÌÏ×Á "ËÕÒÓÏÒ".
 >> îÁÖÍÉÔÅ C-s ÓÎÏ×Á, ÞÔÏÂÙ ÎÁÊÔÉ ÓÌÅÄÕÀÝÅÅ ×ÈÏÖÄÅÎÉÅ ÓÌÏ×Á "ËÕÒÓÏÒ".
 >> ôÅÐÅÒØ ÎÁÖÍÉÔÅ <Delete> ÞÅÔÙÒÅ ÒÁÚÁ É ÐÒÏÓÌÅÄÉÔÅ ÚÁ ÐÅÒÅÍÅÝÅÎÉÑÍÉ ËÕÒÓÏÒÁ.
@@ -846,7 +846,7 @@
 ÞÔÏ ÐÏÓÌÅÄÎÉÊ ÓÉÍ×ÏÌ × ÉÓËÏÍÏÊ ÓÔÒÏËÅ ÕÄÁÌÉÌÓÑ, É ÐÏÉÓË ×ÅÒÎÕÌÓÑ Ë ÐÒÅÄÙÄÕÝÅÍÕ
 ÎÁÊÄÅÎÎÏÍÕ ÍÅÓÔÕ. îÁÐÒÉÍÅÒ, ÐÒÅÄÐÏÌÏÖÉÍ, ÞÔÏ ×Ù ÎÁÂÒÁÌÉ "c", ÐÏÉÓË ÐÅÒÅÊÄÅÔ Ë
 ÐÅÒ×ÏÍÕ ×ÈÏÖÄÅÎÉÀ ÓÉÍ×ÏÌÁ "c". ôÅÐÅÒØ ÅÓÌÉ ×Ù ÎÁÂÅÒÅÔÅ "u", ËÕÒÓÏÒ ÐÅÒÅÊÄÅÔ Ë
-ÐÅÒ×ÏÍÕ ×ÈÏÖÄÅÎÉÀ "cu". îÁÖÁÔÉÅ <Delete> ÕÄÁÌÉÔ ÓÉÍ×ÏÌ "u" ÉÈ ÓÔÒÏËÉ ÐÏÉÓËÁ, É 
+ÐÅÒ×ÏÍÕ ×ÈÏÖÄÅÎÉÀ "cu". îÁÖÁÔÉÅ <Delete> ÕÄÁÌÉÔ ÓÉÍ×ÏÌ "u" ÉÈ ÓÔÒÏËÉ ÐÏÉÓËÁ, É
 ËÕÒÓÏÒ ×ÅÒÎÅÔÓÑ Ë ÐÅÒ×ÏÍÕ ×ÈÏÖÄÅÎÉÀ "c".
 
 åÓÌÉ ×Ù ×Ï ×ÒÅÍÑ ÐÏÉÓËÁ ××ÅÄÅÔÅ control- ÉÌÉ meta- ÓÉÍ×ÏÌ (ÚÁ ÎÅËÏÔÏÒÙÍÉ
@@ -875,7 +875,7 @@
    (ÅÓÌÉ Õ ×ÁÓ ÎÅÔ ÎÁÓÔÏÑÝÅÊ ËÎÏÐËÉ META (Alt), ÎÁÖÍÉÔÅ ESC C-v.)
 
 >> îÁÖÍÉÔÅ C-x o ("o" ÏÔ ÓÌÏ×Á "other" - ÄÒÕÇÏÅ) ÄÌÑ ÐÅÒÅÍÅÝÅÎÉÑ ËÕÒÓÏÒÁ ×
-   ÎÉÖÎÅÅ ÏËÎÏ. 
+   ÎÉÖÎÅÅ ÏËÎÏ.
 >> éÓÐÏÌØÚÕÊÔÅ C-v É M-v × ÎÉÖÎÅÍ ÏËÎÅ ÞÔÏ ÐÒÏËÒÕÞÉ×ÁÔØ ÅÇÏ.
    ðÒÏÄÏÌÖÉÔÅ ÞÔÅÎÉÅ ÜÔÉÈ ÉÎÓÔÒÕËÃÉÊ × ×ÅÒÈÎÅÍ ÏËÎÅ.
 
@@ -907,7 +907,7 @@
 (åÓÌÉ ×Ù ÎÁÖÁÌÉ C-x 1 × ÎÉÖÎÅÍ ÏËÎÅ, ÔÏ ×Ù ÉÚÂÁ×ÉÌÉÓØ ÏÔ ×ÅÒÈÎÅÇÏ. ðÏÎÉÍÁÊÔÅ
 ÜÔÕ ËÏÍÁÎÄÕ ËÁË "ïÓÔÁ×ÉÔØ ÔÏÌØËÏ ÏÄÎÏ ÏËÎÏ, ÔÏ × ËÏÔÏÒÏÍ Ñ ÓÅÊÞÁÓ ÎÁÈÏÖÕÓØ").
 
-÷ÁÍ ÎÅ ÎÕÖÎÏ ÏÔÏÂÒÁÖÁÔØ ÏÄÉÎ É ÔÏÔ ÖÅ ÂÕÆÅÒ × ÏÂÏÉÈ ÏËÎÁÈ. åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ 
+÷ÁÍ ÎÅ ÎÕÖÎÏ ÏÔÏÂÒÁÖÁÔØ ÏÄÉÎ É ÔÏÔ ÖÅ ÂÕÆÅÒ × ÏÂÏÉÈ ÏËÎÁÈ. åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ
 C-x C-f ÞÔÏÂÙ ÏÔËÒÙÔØ ÆÁÊÌ × ÏÄÎÏÍ ÏËÎÅ, ÄÒÕÇÏÅ ÏÓÔÁÎÅÔÓÑ ÂÅÚ ÉÚÍÅÎÅÎÉÑ. ÷Ù
 ÍÏÖÅÔÅ ÏÔËÒÙ×ÁÔØ ÆÁÊÌÙ × ËÁÖÄÏÍ ÏËÎÅ ÎÅÚÁ×ÉÓÉÍÏ.
 
@@ -1004,7 +1004,7 @@
 
    C-h a	Hyper Apropos. ÷×ÅÄÉÔÅ ËÌÀÞÅ×ÏÅ ÓÌÏ×Ï É Emacs ÐÏËÁÖÅÔ ×ÁÍ
                 ÓÐÉÓÏË ×ÓÅÈ ÆÕÎËÃÉÊ É ÐÅÒÅÍÅÎÎÙÈ, ÉÍÅÎÁ ËÏÔÏÒÙÈ ÓÏÄÅÒÖÁÔ ÜÔÏ
-                ÓÌÏ×Ï. ëÏÍÁÎÄÙ, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÂÙÔØ ×ÙÚ×ÁÎÙ ÞÅÒÅÚ Meta-x, 
+                ÓÌÏ×Ï. ëÏÍÁÎÄÙ, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÂÙÔØ ×ÙÚ×ÁÎÙ ÞÅÒÅÚ Meta-x,
                 ÂÕÄÕÔ ÏÔÍÅÞÅÎÙ Ú×ÅÚÄÏÞËÏÊ ÓÌÅ×Á.
 
 >> îÁÂÅÒÉÔÅ C-h a file<Return>.
@@ -1049,7 +1049,7 @@
 -------
 
 üÔÏÔ ÕÞÅÂÎÉË ÐÒÏÉÚÏÛÅÌ ÉÚ ÄÌÉÎÎÏÊ ÓÅÒÉÉ ÕÞÅÂÎÉËÏ× Emacs, ÎÁÞÁÔÏÊ Ó ÏÄÎÁÖÄÙ
-ÎÁÐÉÓÁÎÎÏÇÏ by Stuart Cracraft ÄÌÑ ÏÒÉÇÉÎÁÌØÎÏÇÏ Emacs. 
+ÎÁÐÉÓÁÎÎÏÇÏ by Stuart Cracraft ÄÌÑ ÏÒÉÇÉÎÁÌØÎÏÇÏ Emacs.
 
 üÔÁ ×ÅÒÓÉÑ ÕÞÅÂÎÉËÁ, ËÁË É GNU Emacs, ÚÁÝÉÝÅÎÁ ÐÒÁ×ÁÍÉ ËÏÐÉÒÏ×ÁÎÉÑ
 (copyrighted), É ÐÒÉÈÏÄÉÔ Ó ÏÇÒÁÎÉÞÅÎÉÑÍÉ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ ËÏÐÉÊ ÓÏ
@@ -1075,6 +1075,6 @@
 ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ!
 
 // ÚÁÍÅÞÁÎÉÑ, ÉÓÐÒÁ×ÌÅÎÉÑ ÏÛÉÂÏË Ó ÎÅÔÅÒÐÅÎÉÅÍ ÖÄÕ ÐÏ ÁÄÒÅÓÕ ottalex@beep.ru
-// Alex Ott. 
+// Alex Ott.
 // âÏÌØÛÏÅ ÓÐÁÓÉÂÏ ÷ÌÁÄÉÍÉÒÕ âÏÒÍÏÔÏ×Õ, ÎÁ ÂÁÚÅ ÐÅÒÅ×ÏÄÁ ËÏÔÏÒÏÇÏ ÂÙÌ ÓÄÅÌÁÎ
 // ÜÔÏÔ ÐÅÒÅ×ÏÄ
--- a/etc/TUTORIAL.sk	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/TUTORIAL.sk	Tue Feb 04 14:56:31 2003 +0000
@@ -65,7 +65,7 @@
 kurzor na obrazovke o jeden riadok alebo ståpec v danom smere.
 Tu je tabuµka znázoròujúca smer posunu kurzoru vyvolaný týmito ¹tyrmi
 príkazmi:
- 
+
 			Predchádzajúci riadok, C-p
 				  :
 				  :
@@ -415,7 +415,7 @@
 
 >> Stlaète C-y.  Potom posuòte kurzor o niekoµko riadkov ni¾¹ie a stlaète
    C-y znovu.  Teraz vidíte, ako je mo¾né kopírova» text.
-   
+
 Èo keï máte nejaký text, ktorý by ste radi vhodili spä» a potom zru¹íte
 nieèo iného?  C-y by vlo¾ilo posledný zru¹ený text.  Ale predchádzajúci
 text ni je stratený.  Mô¾ete ho získa» spä» pou¾itím príkazu M-y.  Potom,
@@ -833,7 +833,7 @@
 a èaká, kým mu zadáte, èo chcete hµada».  <RET> hµadanie ukonèí.
 
 >> Teraz zaènite hµadanie stlaèením C-s.  POMALY, písmeno po písmene, pí¹te
-   slovo 'kurzor'.  Po ka¾dom písmene si v¹imnite, èo sa deje s kurzorom.  
+   slovo 'kurzor'.  Po ka¾dom písmene si v¹imnite, èo sa deje s kurzorom.
    Teraz ste vyhµadali "kurzor" prvý krát.
 >> Stlaète C-s znova, aby ste na¹li ïal¹í výskyt slova "kurzor".
 >> Teraz ¹tyri krát stlaète <Delback> a pozerajte, ako sa kurzor
--- a/etc/TUTORIAL.sl	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/TUTORIAL.sl	Tue Feb 04 14:56:31 2003 +0000
@@ -14,7 +14,7 @@
  	  pritisnemo tipko <chr>. Tipko ESC bomo oznaèevali z <ESC>.
 
 Pomembno: Emacs zapustimo z ukazom C-x C-c (dva znaka).
-V uèbeniku so vaje, s katerimi preskusite nove ukaze. Oznaèujeta jih 
+V uèbeniku so vaje, s katerimi preskusite nove ukaze. Oznaèujeta jih
 znaka ,>>` ob levem robu. Zgled:
 <<Blank lines inserted here by startup of help-with-tutorial>>
 [Sredina strani je iz didaktiènih razlogov prazna. Besedilo se nadaljuje spodaj]
@@ -129,7 +129,7 @@
 
 Ste opazili paralelo med C-f in C-b na eni strani ter M-f in M-b na
 drugi? V Emacsu se dostikrat ukazi Meta nana¹ajo na operacije nad
-enotami jezika (besede, stavki, odstavki), medtem ko se ukazi Control 
+enotami jezika (besede, stavki, odstavki), medtem ko se ukazi Control
 nana¹ajo na operacije, neodvisne od zvrsti besedila (znaki, vrstice
 ipd.).
 
@@ -372,8 +372,8 @@
 Èrka ,d` je iz angle¹ke besede ,delete` (pobrisati), èrka ,k` pa iz
 besede ,kill` (pobiti). Ste opazili, da <Delback> in C-d na eni, ter
 M-<Delback> in M-d na drugi strani nadaljujeta paralelo, ki sta jo zaèela
-C-f in M-f (<Delback> pravzaprav ni kontrolni znak, kar pa naj nas ne 
-moti).  C-k in M-k sta v enakem sorodu s C-e in M-e: prvi deluje na 
+C-f in M-f (<Delback> pravzaprav ni kontrolni znak, kar pa naj nas ne
+moti).  C-k in M-k sta v enakem sorodu s C-e in M-e: prvi deluje na
 vrstice, drugi na stavke.
 
 Obstaja tudi splo¹en postopek za brisanje kateregakoli dela delovnega
@@ -494,7 +494,7 @@
 Da bi bile spremembe v besedilu trajne, morate besedilo shraniti v
 datoteko. V nasprotnem primeru jih boste za vedno izgubili tisti hip,
 ko boste zapustili Emacs. Besedilo postavimo v datoteko tako, da
-na disku ,,poi¹èemo`` (angl. find) datoteko, preden zaènemo tipkati 
+na disku ,,poi¹èemo`` (angl. find) datoteko, preden zaènemo tipkati
 (pravimo tudi, da ,,obi¹èemo`` datoteko).
 
 Poiskati datoteko pomeni, da v Emacsu vidimo vsebino datoteke. To je
@@ -646,7 +646,7 @@
 * RAZ©IRJEN NABOR UKAZOV
 ------------------------
 
-©e mnogo, mnogo je ukazov Emacsa, ki bi zaslu¾ili, da jih obesimo na 
+©e mnogo, mnogo je ukazov Emacsa, ki bi zaslu¾ili, da jih obesimo na
 razne kontrolne in meta znake. Emacs se temu izogne z ukazom X (iz angl.
 eXtend - raz¹iriti), ki uvede ukaz iz raz¹irjenega nabora. Dveh vrst je:
 
@@ -705,7 +705,7 @@
 zamenjati, in niz, s katerim bi radi zamenjali prvega. Vsakega posebej
 vnesete in zakljuèite s pritiskom na tipko Return.
 
->> Premaknite kazalèek na prazno vrstico dve vrstici pod to, zatem 
+>> Premaknite kazalèek na prazno vrstico dve vrstici pod to, zatem
    vtipkajte M-x repl s<Return>zamenjala<Return>spremenila<Return>.
 
    Opazite, kako se je ta vrstica zamenjala? Vse besede
@@ -729,7 +729,7 @@
 shranjeno besedilo tako, da normalno poi¹èete datoteko (pravo ime
 datoteke, ne ime avtomatièno shranjene datoteke), zatem pa vtipkate M-x
 recover file<Return>. Ko vas vpra¹a za potrditev, vtipkajte yes<Return>
-za nadaljevanje in povrnitev avtomatièno shranjenenih podatkov. 
+za nadaljevanje in povrnitev avtomatièno shranjenenih podatkov.
 
 
 * ODZIVNO PODROÈJE
@@ -947,14 +947,14 @@
 Seveda ni nujno, da obe okni ka¾eta isto delovno podroèje. Èe v enem
 oknu izvedete C-x C-f in poi¹èete novo datoteko, se vsebina drugega
 okna ne spremeni. V vsakem oknu lahko neodvisno obdelujete drugo
-datoteko. 
+datoteko.
 
 Pa ¹e ena pot, kako v dveh oknih prika¾ete dve razlièni datoteki:
 
 >> Vtipkajte C-x 4 C-f, in na pozivnik vtipkajte ime ene va¹ih
    datotek. Konèajte z <Return>. Odpre se ¹e eno okno in izbrana
    datoteka se pojavi v drugem oknu. Tudi kazalèek se preseli v drugo
-   okno. 
+   okno.
 
 >> Vtipkajte C-x o, da se vrnete nazaj v zgornje okno, in C-x 1, da
    zaprete spodnje okno.
@@ -1025,12 +1025,12 @@
 z njenim imenom. Ko ste opravili, vtipkajte C-x 1, da se znebite okna
 z pomoèjo. Tega seveda ni potrebno napraviti takoj, ampak lahko
 urejate, medtem ko imate odprto okno s pomoèjo, in ga zaprete, ko ste
-konèali. 
+konèali.
 
 Sledi ¹e nekaj uporabnih mo¾nosti, ki jih ponuja pomoè:
 
    C-h f	Opi¹i funkcijo. Kot argument morate podati ime
-		funkcije. 
+		funkcije.
 
 >> Poskusite C-h f previous-line<Return>.
    To izpi¹e vse podatke, ki jih ima Emacs o funkciji, ki izvede ukaz C-p.
@@ -1050,14 +1050,14 @@
 To odpre novo okno, v katerem so vsa dolga imena ukazov, ki vsebujejo
 ,,file`` v imenu. Izvedete jih lahko z M-x. Pri nekaterih se izpi¹e
 tudi kratek ukaz, npr. C-x C-f ali C-x C-w pri ukazih find-file in
-write-file. 
+write-file.
 
 >> Pritisnite C-M-v, da se sprehajate po oknu s pomoèjo. Poskusite
-   nekajkrat. 
+   nekajkrat.
 
 >> Vtipkajte C-x 1, da zaprete okno s pomoèjo.
 
-   C-h i         Priroèniki z navodili za uporabo (tkim. datoteke 
+   C-h i         Priroèniki z navodili za uporabo (tkim. datoteke
 		 "info"). Ta ukaz vas prestavi v posebno delovno
 		 podroèje, imenovano "info". V njem lahko prebirate
 		 priroènike za programe, ki so name¹èeni v sistemu. Z
@@ -1097,8 +1097,8 @@
 -----------
 
 Zapomnite si, da Emacs zapustite z ukazom C-x C-c. Èe bi radi samo
-zaèasno skoèili v ukazno lupino in se kasneje vrnili v Emacs, pa 
-storite to z ukazom C-z. 
+zaèasno skoèili v ukazno lupino in se kasneje vrnili v Emacs, pa
+storite to z ukazom C-z.
 
 Ta uèbenik je napisan z namenom, da bi bil razumljiv vsem novincem v
 Emacsu. Èe se vam kaj ne zdi jasno napisano, ne valite krivde nase -
@@ -1122,7 +1122,7 @@
    avtorstvu in to dovoljenje, ter da distributer dovoljuje prejemniku
    nadaljnje raz¹irjanje pod pogoji, navedenimi v tem dovoljenju.
 
-   Pod pogoji iz prej¹njega odstavka je dovoljeno raz¹irjati 
+   Pod pogoji iz prej¹njega odstavka je dovoljeno raz¹irjati
    spremenjene verzije tega spisa ali njegovih delov, èe je jasno
    oznaèeno, kdo je nazadnje vnesel spremembe.
 
--- a/etc/TUTORIAL.sv	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/TUTORIAL.sv	Tue Feb 04 14:56:31 2003 +0000
@@ -62,7 +62,7 @@
 skärmen. Här visas dessa fyra kommandon och i vilken riktning de
 flyttar markören:
 
- 
+
 			 Föregående rad, C-p
                                   :
                                   :
@@ -361,7 +361,7 @@
 
         C-k          raderar från markören till slutet av raden
         M-k          raderar till slutet av stycket
-        
+
 Lägg märke till att <Delete> och C-d kontra M-<Delete> och M-d följer
 mönstret som började med C-f och M-f. (<Delete> är inte precis
 ett kontrolltecken men låt oss inte bry oss om det.) C-k och M-k
@@ -444,7 +444,7 @@
    M-y och se vad du får. Fortsätt med detta tills du får tillbaka den
    första raden igen och sedan några gånger till. Om du vill kan du
    prova med positiva och negativa argument till M-y.
- 
+
 
 * ÅNGRA
 -------
@@ -797,7 +797,7 @@
    att använda C-x f en gång till.
 
 Om du gör förändringar mitt i en rad så kommer inte sidoläget Auto
-Fill att kunna omformattera raderna för dig. 
+Fill att kunna omformattera raderna för dig.
 För att göra detta kan du trycka M-q med markören inne i det avsnittet
 du önskar att omformatera.
 
@@ -885,7 +885,7 @@
 >> Skriv C-x o (o för other) för att flytta markören till det
    nedre fönstret.
 
->> Använd C-v och M-v i det nedre fönstret för att flytta upp 
+>> Använd C-v och M-v i det nedre fönstret för att flytta upp
    och ned i texten. Fortsätt att läsa den här texten i det övre
    fönstret.
 
--- a/etc/TUTORIAL.th	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/TUTORIAL.th	Tue Feb 04 14:56:31 2003 +0000
@@ -1,967 +1,967 @@
-,TJ'G9(B0,TET(B1,T"(B0,TJT(B1,T7(B0,T8Tl(B1 ,T>(B.,TH(B. 2528 ,Tb4B:(B0,TCT(B10,TIQ(B1,T7?(B0,TCU(B1,T+M?(B0,T5l(B1,TaG(B0,TCl(B1,T?RG(B0,T9l(B1,T`4(B0,T*Q(B1,T9(B (Free Software
-Foundation, Inc); ,T!(B0,TCX(B1,T3R(B0,THV(B1,T!IR`(B0,T'Wh(B1,TM9d"5M9(B0,T7i(B1,TRB:7(B. 
-0,T7h(B1,TR9!S(B0,TEQ(B1,T'(B0,THV(B1,T!IR(B0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1 (Emacs tutorial) ,TM(B0,TBYh(B1,Tc9"3P(B0,T9Ui(B1.
+,TJ'G90ET1"0JT1708Tl1(B ,T>(B.,TH(B. 2528 ,Tb4B:0CT10IQ17?0CU1+M?05l1aG0Cl1?RG09l1`40*Q19(B (Free Software
+Foundation, Inc); ,T!0CX13R0HV1!IR`0'Wh1M9d"5M907i1RB:7(B.
+0,T7h1R9!S0EQ1'0HV1!IR0$Yh10AW1M!RCc0*i10MU1aA!0Jl1(B (Emacs tutorial) ,TM0BYh1c9"3P09Ui1(B.
 
-,Tb4B(B0,T7Qh(B1,TGd;$S(B0,TJQh(B1,T'"M'(B0,TMU(B1,TaA!(B0,TJl(B1 (Emacs) ,T(Pc(B0,T*i(B10,T$Yh(B10,T!Q(B1,T:(B0,T;Xh(B1,TA(B CONTROL (,T:R'$(B0,TCQi(B1,T'MR(`(B0,T;g(B1,T9(B0,T;Xh(B1,TA(B0,T7Uh(B10,TAU(B1
-0,TJQ(B1,T-(B0,TEQ(B1,T!I(B0,T3l(B1 CTRL ,TK(B0,TCW(B1,TM(B CTL) ,TK(B0,TCW(B1,TM(B 0,T;Xh(B1,TA(B META (,T:R'$(B0,TCQi(B1,T'MR(`(B0,T;g(B1,T9(B0,T;Xh(B1,TA(B0,T7Uh(B10,TAU(B10,TJQ(B1,T-(B0,TEQ(B1,T!I(B0,T3l(B1 EDIT ,TK(B0,TCW(B1,TM(B 
-ALT). ,Ta79(B0,T7Uh(B1,T(Pc(B0,T*i(B1,T$S`(B0,T5g(B1,TAc9!RCM(B0,T8T(B1,T:RB(B, ,T`CR(Pc(B0,T*i(B10,T5Q(B1,TG(B0,TBh(B1,TM(B0,T4Q(B1,T'(B0,T5h(B1,TMd;(B0,T9Ui(B1:
+,Tb4B07Qh1Gd;$S0JQh1'"M'0MU1aA!0Jl1(B (Emacs) ,T(Pc0*i10$Yh10!Q1:0;Xh1A(B CONTROL (,T:R'$0CQi1'MR(`0;g190;Xh1A07Uh10AU1(B
+0,TJQ1-0EQ1!I03l1(B CTRL ,TK0CW1M(B CTL) ,TK0CW1M(B 0,T;Xh1A(B META (,T:R'$0CQi1'MR(`0;g190;Xh1A07Uh10AU10JQ1-0EQ1!I03l1(B EDIT ,TK0CW1M(B
+ALT). ,Ta7907Uh1(Pc0*i1$S`05g1Ac9!RCM08T1:RB(B, ,T`CR(Pc0*i105Q1G0Bh1M04Q1'05h1Md;09Ui1(B:
 
- C-<chr>  ,TKARB(B0,T6V(B1,T'c(B0,TKi(B1,T!4(B0,T;Xh(B1,TA(B CONTROL ,TaEP(B0,T;Xh(B1,TA(B0,TMQ(B1,T!IC(B <chr> ,T>(B0,TCi(B1,TMA(B0,T!Q(B1,T9(B.
-	  0,T4Q(B1,T'(B0,T9Qi(B1,T9(B C-f ,T(PKARB(B0,T6V(B1,T'c(B0,TKi(B1,T!4(B0,T;Xh(B1,TA(B CONTROL ,TaEP(B0,T;Xh(B1,TA(B f ,T>(B0,TCi(B1,TMA(B0,T!Q(B1,T9(B.
- M-<chr>  ,TKARB(B0,T6V(B1,T'c(B0,TKi(B1,T!4(B0,T;Xh(B1,TA(B META ,TK(B0,TCW(B1,TM(B EDIT ,TK(B0,TCW(B1,TM(B ALT ,TaEP(B0,T;Xh(B1,TA(B0,TMQ(B1,T!IC(B <chr>
-	  ,T>(B0,TCi(B1,TMA(B0,T!Q(B1,T9(B. ,Tc9!C(B0,T3U(B10,T7Uh(B1,Td(B0,TAh(B10,TAU(B10,T;Xh(B1,TA(B META, EDIT ,TK(B0,TCW(B1,TM(B ALT ,Tc(B0,TKi(B1,T!4(B0,T;Xh(B1,TA(B
-	  ESC ,Ta(B0,TEi(B1,TG;(B0,TEh(B1,TMB(B, ,Ta(B0,TEi(B1,TG!4(B0,T;Xh(B1,TA(B <chr>. ,T`CRc(B0,T*i(B10,TJQ(B1,T-(B0,TEQ(B1,T!I(B0,T3l(B1 <ESC> ,Ta79(B0,T;Xh(B1,TA(B ESC.
+ C-<chr>  ,TKARB06V1'c0Ki1!40;Xh1A(B CONTROL ,TaEP0;Xh1A0MQ1!IC(B <chr> ,T>0Ci1MA0!Q19(B.
+	  0,T4Q1'09Qi19(B C-f ,T(PKARB06V1'c0Ki1!40;Xh1A(B CONTROL ,TaEP0;Xh1A(B f ,T>0Ci1MA0!Q19(B.
+ M-<chr>  ,TKARB06V1'c0Ki1!40;Xh1A(B META ,TK0CW1M(B EDIT ,TK0CW1M(B ALT ,TaEP0;Xh1A0MQ1!IC(B <chr>
+	  ,T>0Ci1MA0!Q19(B. ,Tc9!C03U107Uh1d0Ah10AU10;Xh1A(B META, EDIT ,TK0CW1M(B ALT ,Tc0Ki1!40;Xh1A(B
+	  ESC ,Ta0Ei1G;0Eh1MB(B, ,Ta0Ei1G!40;Xh1A(B <chr>. ,T`CRc0*i10JQ1-0EQ1!I03l1(B <ESC> ,Ta790;Xh1A(B ESC.
 
-,TKARB`K(B0,T5X(B1: ,Tc9!C(B0,T3U(B10,T7Uh(B10,T5i(B1,TM'!RC`(B0,TET(B1,T!c(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1, ,Tc(B0,TKi(B1,T!4(B0,T;Xh(B1,TA(B C-x C-c. (,TJM'(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B.) 
-0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B ">>" 0,T7Uh(B1,T;CR!/M(B0,TBYh(B1,T7R'"M:(B0,T+i(B1,TRB(B0,TAW(B1,TM`(B0,T;g(B1,T9!RCa9P9Sc(B0,TKi(B10,T7h(B1,TR9EM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B. 0,T5Q(B1,TGM(B0,TBh(B1,TR'`(B0,T*h(B1,T9(B:
+,TKARB`K05X1(B: ,Tc9!C03U107Uh105i1M'!RC`0ET1!c0*i10MU1aA!0Jl1(B, ,Tc0Ki1!40;Xh1A(B C-x C-c. (,TJM'05Q1G0MQ1!IC(B.)
+0,T5Q1G0MQ1!IC(B ">>" 0,T7Uh1;CR!/M0BYh17R'"M:0+i1RB0AW1M`0;g19!RCa9P9Sc0Ki107h1R9EM'c0*i1$S0JQh1'(B. 0,T5Q1GM0Bh1R'`0*h19(B:
 <<Blank lines inserted here by startup of help-with-tutorial>>
->>  ,T!4(B0,T;Xh(B1,TA(B C-v (0,T4Y(B1,TK(B0,T9i(B1,TR(M(B0,T6Q(B1,T4d;(B) ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'K(B0,T9i(B1,TR(M(B0,T6Q(B1,T4d;(B.
-	(,TEM'7S(B0,T4Y(B1,Tb4B!RC!4(B0,T;Xh(B1,TA(B CONTROL ,TaEP(B0,T;Xh(B1,TA(B0,TMQ(B1,T!IC(B v ,T>(B0,TCi(B1,TMA(B0,T!Q(B1,T9(B).
-	,T(R!(B0,T9Ui(B1,Td;(B, 0,T7h(B1,TR9$GC(PEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B0,T9Ui(B10,T4Y(B1,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9(B0,TMh(B1,TR9K(B0,T9i(B1,TR(M(B0,T9Ui(B1,T(:a(B0,TEi(B1,TG(B.
+>>  ,T!40;Xh1A(B C-v (0,T4Y1K09i1R(M06Q14d;(B) ,T`0>Wh1M07Uh1(P`$0EWh1M9d;0BQ1'K09i1R(M06Q14d;(B.
+	(,TEM'7S04Y1b4B!RC!40;Xh1A(B CONTROL ,TaEP0;Xh1A0MQ1!IC(B v ,T>0Ci1MA0!Q19(B).
+	,T(R!09Ui1d;(B, 0,T7h1R9$GC(PEM'c0*i1$S0JQh1'09Ui104Y1`0AWh1M07h1R90Mh1R9K09i1R(M09Ui1(:a0Ei1G(B.
 
-0,T7h(B1,TR9(P(B0,TJQ(B1,T'`!5`(B0,TKg(B1,T9d(B0,T4i(B10,TGh(B1,TRJM':CC(B0,T7Q(B1,T4"M'K(B0,T9i(B1,TR(M(B0,T7Uh(B1,Ta(B0,TEi(B1,TG(P(B0,TBQ(B1,T'$';CR!/c(B0,TKi(B1,T`(B0,TKg(B1,T9:9K(B0,T9i(B1,TR(M(B0,T6Q(B1,T4d;(B; 0,T9Uh(B1
-,T`(B0,T;g(B1,T9!RC(B0,T*h(B1,TGBc(B0,TKi(B10,T7h(B1,TR9JRARC6(B0,TMh(B1,TR9K(B0,T9i(B1,TR(Md(B0,T4i(B1,TM(B0,TBh(B1,TR'(B0,T5h(B1,TM`(B0,T9Wh(B1,TM'(B.
+0,T7h1R9(P0JQ1'`!5`0Kg19d04i10Gh1RJM':CC07Q14"M'K09i1R(M07Uh1a0Ei1G(P0BQ1'$';CR!/c0Ki1`0Kg19:9K09i1R(M06Q14d;(B; 0,T9Uh1(B
+,T`0;g19!RC0*h1GBc0Ki107h1R9JRARC60Mh1R9K09i1R(Md04i1M0Bh1R'05h1M`09Wh1M'(B.
 
-0,TJTh(B1,T'aC!(B0,T7Uh(B10,T7h(B1,TR9(S`(B0,T;g(B1,T9(B0,T5i(B1,TM'(B0,TCYi(B10,T$W(B1,TM!RC`$(B0,TEWh(B1,TM95SaK(B0,T9h(B1,T'd;ARc9(B0,T"i(B1,TM$GRA(B. ,T"3P(B0,T9Ui(B10,T7h(B1,TR97CR:(B
-0,TGT(B10,T8U(B1,T!RC`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'K(B0,T9i(B1,TR(M(B0,T6Q(B1,T4d;a(B0,TEi(B1,TG(B0,T4i(B1,TGB(B0,T;Xh(B1,TA(B C-v. ,Tc9!RC(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9!(B0,TEQ(B1,T:d;K(B0,T9Vh(B1,T'K(B0,T9i(B1,TR(M(B, ,T!4(B0,T;Xh(B1,TA(B
-M-v (,T!4(B0,T;Xh(B1,TA(B META ,TaEP(B0,T;Xh(B1,TA(B v, ,TK(B0,TCW(B1,TM!4(B0,T;Xh(B1,TA(B <ESC>v 0,T6i(B1,TR(B0,T7h(B1,TR9d(B0,TAh(B10,TAU(B10,T;Xh(B1,TA(B META, EDIT, ,TK(B0,TCW(B1,TM(B ALT).
+0,TJTh1'aC!07Uh107h1R9(S`0;g1905i1M'0CYi10$W1M!RC`$0EWh1M95SaK09h1'd;ARc90"i1M$GRA(B. ,T"3P09Ui107h1R97CR:(B
+0,TGT108U1!RC`$0EWh1M9d;0BQ1'K09i1R(M06Q14d;a0Ei1G04i1GB0;Xh1A(B C-v. ,Tc9!RC07Uh1(P`$0EWh1M9!0EQ1:d;K09Vh1'K09i1R(M(B, ,T!40;Xh1A(B
+M-v (,T!40;Xh1A(B META ,TaEP0;Xh1A(B v, ,TK0CW1M!40;Xh1A(B <ESC>v 0,T6i1R07h1R9d0Ah10AU10;Xh1A(B META, EDIT, ,TK0CW1M(B ALT).
 
->>  ,TEM'!4(B0,T;Xh(B1,TA(B M-v ,TaEP!4(B0,T;Xh(B1,TA(B C-v 0,T4Y(B1,T!RC7S'R9(B0,TJQ(B1,T!JM'JRA$(B0,TCQi(B1,T'(B.
+>>  ,TEM'!40;Xh1A(B M-v ,TaEP!40;Xh1A(B C-v 0,T4Y1!RC7S'R90JQ1!JM'JRA$0CQi1'(B.
 
 
-* ,TJ(B0,TCX(B1,T;(B
+* ,TJ0CX1;(B
 -----
 
-,T$S(B0,TJQh(B1,T'(B0,T5h(B1,TMd;(B0,T9Ui(B1,Tc(B0,T*i(B1,T`(B0,TAWh(B1,TM(B0,T5i(B1,TM'!RC(B0,T4Y(B1,TK(B0,T9i(B1,TR(M(B0,T5h(B1,TR'f(B:
+,T$S0JQh1'05h1Md;09Ui1c0*i1`0AWh1M05i1M'!RC04Y1K09i1R(M05h1R'f(B:
 
-	C-v	,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'K(B0,T9i(B1,TR(M(B0,T6Q(B1,T4d;K(B0,T9Vh(B1,T'K(B0,T9i(B1,TR(M(B
-	M-v	,T`$(B0,TEWh(B1,TM9!(B0,TEQ(B1,T:d;K(B0,T9Vh(B1,T'K(B0,T9i(B1,TR(M(B
-	C-l 	,TE:K(B0,T9i(B1,TR(M(B ,Ta(B0,TEi(B1,TGaJ4'<EK(B0,T9i(B1,TR(McK(B0,TAh(B1, ,T>(B0,TCi(B1,TMA(B0,T7Qi(B1,T'(B0,TBi(B1,TRB5SaK(B0,T9h(B1,T'"M'(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,TAU(B1
-		 ,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1 (cursor) ,T;CR!/M(B0,TBYh(B1,Td;aJ4'd(B0,TGi(B1,T!ER'(M(B.
-		 (,T$S(B0,TJQh(B1,T'(B0,T9Ui(B10,T$W(B1,TM(B CONTROL-L, ,Td(B0,TAh(B1,Tc(B0,T*h(B1 CONTROL-1.)
+	C-v	,T`$0EWh1M9d;0BQ1'K09i1R(M06Q14d;K09Vh1'K09i1R(M(B
+	M-v	,T`$0EWh1M9!0EQ1:d;K09Vh1'K09i1R(M(B
+	C-l 	,TE:K09i1R(M(B ,Ta0Ei1GaJ4'<EK09i1R(McK0Ah1(B, ,T>0Ci1MA07Qi1'0Bi1RB5SaK09h1'"M'0"i1M$GRA07Uh10AU1(B
+		 ,T`$M0Cl1`+M0Cl1(B (cursor) ,T;CR!/M0BYh1d;aJ4'd0Gi1!ER'(M(B.
+		 (,T$S0JQh1'09Ui10$W1M(B CONTROL-L, ,Td0Ah1c0*h1(B CONTROL-1.)
 
->> 0,TJQ(B1,T'`!55SaK(B0,T9h(B1,T'"M'`$M(B0,TCl(B1,T`+M(B0,TCl(B1, ,TaEP(B0,TJQ(B1,T'`!5(B0,T4Y(B10,TGh(B1,TR(B0,TAU(B10,T"i(B1,TM$GRAMPdCM(B0,TBYh(B1,Tc!(B0,TEi(B1,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1.
-   ,Ta(B0,TEi(B1,TG!4(B0,T;Xh(B1,TA(B C-l.
-   0,TJQ(B1,T'`!5(B0,T4Y(B1,T5SaK(B0,T9h(B1,T'"M'`$M(B0,TCl(B1,T`+M(B0,TCl(B10,TMU(B1,T!$(B0,TCQi(B1,T'(B ,T(P`(B0,TKg(B1,T9(B0,TGh(B1,TR(B0,TAU(B10,T"i(B1,TM$GRA`(B0,T4T(B1,TA;CR!/M(B0,TBYh(B1,Tc!(B0,TEi(B1,Tf(B 0,T!Q(B1,T:`$M(B0,TCl(B1,T`+M(B0,TCl(B1.
+>> 0,TJQ1'`!55SaK09h1'"M'`$M0Cl1`+M0Cl1(B, ,TaEP0JQ1'`!504Y10Gh1R0AU10"i1M$GRAMPdCM0BYh1c!0Ei1`$M0Cl1`+M0Cl1(B.
+   ,Ta0Ei1G!40;Xh1A(B C-l.
+   0,TJQ1'`!504Y15SaK09h1'"M'`$M0Cl1`+M0Cl10MU1!$0CQi1'(B ,T(P`0Kg190Gh1R0AU10"i1M$GRA`04T1A;CR!/M0BYh1c!0Ei1f(B 0,T!Q1:`$M0Cl1`+M0Cl1(B.
 
 
-* ,T!RC$G:(B0,T$X(B1,TA`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T`(B0,T:Wi(B1,TM'(B0,T5i(B1,T9(B
+* ,T!RC$G:0$X1A`$M0Cl1`+M0Cl1`0:Wi1M'05i19(B
 ------------------------
 
-,T!RC`$(B0,TEWh(B1,TM9K(B0,T9i(B1,TR(Md;AR(B0,T9Qi(B1,T9`(B0,T;g(B1,T9(B0,TJTh(B1,T'(S`(B0,T;g(B1,T9(B ,Ta(B0,T5h(B10,T7h(B1,TR9(P7SM(B0,TBh(B1,TR'dC(B0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T5i(B1,TM'!RC(P`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'(B
-,T5SaK(B0,T9h(B1,T'(B0,T7Uh(B10,T5i(B1,TM'!RC@RBc9(B0,T"i(B1,TM$GRA(B0,T7Uh(B1,T;CR!/M(B0,TBYh(B1,T:9K(B0,T9i(B1,TR(M(B?
+,T!RC`$0EWh1M9K09i1R(Md;AR09Qi19`0;g190JTh1'(S`0;g19(B ,Ta05h107h1R9(P7SM0Bh1R'dC06i1R07h1R905i1M'!RC(P`$0EWh1M9d;0BQ1'(B
+,T5SaK09h1'07Uh105i1M'!RC@RBc90"i1M$GRA07Uh1;CR!/M0BYh1:9K09i1R(M(B?
 
-0,TAU(B1,TKERB(B0,TGT(B10,T8U(B10,T7Uh(B1,TJRARC6(P7Sd(B0,T4i(B1. 0,TGT(B10,T8U(B10,T7Uh(B10,T>Wi(B1,T9(B0,T7Uh(B10,TJX(B1,T4(B0,T$W(B1,TM!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-p, C-b, C-f, ,TaEP(B C-n.
-,Ta(B0,T5h(B1,TEP$S(B0,TJQh(B1,T'(P`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;K(B0,T9Vh(B1,T':CC(B0,T7Q(B1,T4K(B0,TCW(B1,TMK(B0,T9Vh(B1,T'$M(B0,TEQ(B1,TA(B0,T9l(B1,Tc9(B0,T7T(B1,TH7R'c4(B0,T7T(B1,TH7R'K(B0,T9Vh(B1,T':9K(B0,T9i(B1,TR(M(B.
-0,T5h(B1,TMd;(B0,T9Ui(B1,T`(B0,T;g(B1,T95RCR'aJ4'$S(B0,TJQh(B1,T'(B0,T7Qi(B1,T'(B0,TJUh(B1 ,TaEP(B0,T7T(B1,TH7R'(B0,T7Uh(B1,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T`$(B0,TEWh(B1,TM9d;(B:
+0,TAU1KERB0GT108U107Uh1JRARC6(P7Sd04i1(B. 0,TGT108U107Uh10>Wi1907Uh10JX140$W1M!RCc0*i1$S0JQh1'(B C-p, C-b, C-f, ,TaEP(B C-n.
+,Ta05h1EP$S0JQh1'(P`$0EWh1M9`$M0Cl1`+M0Cl1d;K09Vh1':CC07Q14K0CW1MK09Vh1'$M0EQ1A09l1c907T1H7R'c407T1H7R'K09Vh1':9K09i1R(M(B.
+0,T5h1Md;09Ui1`0;g195RCR'aJ4'$S0JQh1'07Qi1'0JUh1(B ,TaEP07T1H7R'07Uh1`$M0Cl1`+M0Cl1`$0EWh1M9d;(B:
 
-			  ,T:CC(B0,T7Q(B1,T4(B0,T!h(B1,TM9K(B0,T9i(B1,TR(B, C-p
+			  ,T:CC07Q140!h1M9K09i1R(B, C-p
 				:
 				:
-   0,TBi(B1,TM9!(B0,TEQ(B1,T:(B, C-b  ....  ,T5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B10,T;Q(B1,T((B0,T(X(B10,T:Q(B1,T9(B  ....  0,T"i(B1,TR'K(B0,T9i(B1,TR(B, C-f
+   0,TBi1M9!0EQ1:(B, C-b  ....  ,T5SaK09h1'`$M0Cl1`+M0Cl10;Q1(0(X10:Q19(B  ....  0,T"i1R'K09i1R(B, C-f
 				:
 				:
-			  ,T:CC(B0,T7Q(B1,T4(B0,T6Q(B1,T4d;(B, C-n
+			  ,T:CC07Q1406Q14d;(B, C-n
 
->> ,T`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;(B0,T7Uh(B10,T!Vh(B1,T'!ER'"M'(B0,T<Q(B1,T'(B0,T"i(B1,TR':9b4Bc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-n ,TK(B0,TCW(B1,TM(B C-p. ,Ta(B0,TEi(B1,TG!4(B0,T;Xh(B1,TA(B
-   C-l ,T`(B0,T>Wh(B1,TMc(B0,TKi(B10,T<Q(B1,T';CR!/M(B0,TBYh(B1,T!ER'K(B0,T9i(B1,TR(M(B.
+>> ,T`$0EWh1M9`$M0Cl1`+M0Cl1d;07Uh10!Vh1'!ER'"M'0<Q1'0"i1R':9b4Bc0*i1$S0JQh1'(B C-n ,TK0CW1M(B C-p. ,Ta0Ei1G!40;Xh1A(B
+   C-l ,T`0>Wh1Mc0Ki10<Q1';CR!/M0BYh1!ER'K09i1R(M(B.
 
-0,T7h(B1,TR9MR((P(S$S(B0,TJQh(B1,T'd(B0,T4i(B10,T'h(B1,TRB(B0,T"Vi(B1,T9b4B(B0,TJQ(B1,T'`!5(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T7Uh(B1,Tc(B0,T*i(B1: p ,TJSK(B0,TCQ(B1,T:(B previous (0,T!h(B1,TM9K(B0,T9i(B1,TR(B), n
-,TJSK(B0,TCQ(B1,T:(B next (0,T6Q(B1,T4d;(B), b ,TJSK(B0,TCQ(B1,T:(B backward (0,TBi(B1,TM9!(B0,TEQ(B1,T:(B), ,TaEP(B f ,TJSK(B0,TCQ(B1,T:(B forward
-(0,T"i(B1,TR'K(B0,T9i(B1,TR(B). ,T`K(B0,TEh(B1,TR(B0,T9Ui(B10,T$W(B1,TM`(B0,T:Wi(B1,TM'(B0,T5i(B1,T9"M'$S(B0,TJQh(B1,T'c9!RC$G:(B0,T$X(B1,TA5SaK(B0,T9h(B1,T'"M'`$M(B0,TCl(B1,T`+M(B0,TCl(B1, ,TaEP(B0,T7h(B1,TR9(B
-,T(P(B0,T5i(B1,TM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'`K(B0,TEh(B1,TR(B0,T9Ui(B10,T:h(B1,TMB$(B0,TCQi(B1,T'(B, ,T)P(B0,T9Qi(B1,T9(B0,T(V(B1,T'`(B0,T;g(B1,T9!RC(B0,T4U(B10,T7Uh(B1,T(P(S$S(B0,TJQh(B1,T'`K(B0,TEh(B1,TR(B0,T9Ui(B1,Td(B0,TGi(B1.
+0,T7h1R9MR((P(S$S0JQh1'd04i10'h1RB0"Vi19b4B0JQ1'`!505Q1G0MQ1!IC07Uh1c0*i1(B: p ,TJSK0CQ1:(B previous (0,T!h1M9K09i1R(B), n
+,TJSK0CQ1:(B next (0,T6Q14d;(B), b ,TJSK0CQ1:(B backward (0,TBi1M9!0EQ1:(B), ,TaEP(B f ,TJSK0CQ1:(B forward
+(0,T"i1R'K09i1R(B). ,T`K0Eh1R09Ui10$W1M`0:Wi1M'05i19"M'$S0JQh1'c9!RC$G:0$X1A5SaK09h1'"M'`$M0Cl1`+M0Cl1(B, ,TaEP07h1R9(B
+,T(P05i1M'c0*i1$S0JQh1'`K0Eh1R09Ui10:h1MB$0CQi1'(B, ,T)P09Qi190(V1'`0;g19!RC04U107Uh1(P(S$S0JQh1'`K0Eh1R09Ui1d0Gi1(B.
 
->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-n 0,T4Y(B1,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,TE'AR(B0,TBQ(B1,T':CC(B0,T7Q(B1,T4(B0,T9Ui(B1.
+>> ,TEM'c0*i1$S0JQh1'(B C-n 0,T4Y1`0>Wh1M07Uh1(P`$0EWh1M9`$M0Cl1`+M0Cl1E'AR0BQ1':CC07Q1409Ui1(B.
 
->> ,TEM'`$(B0,TEWh(B1,TM9`(B0,T"i(B1,TRd;c9:CC(B0,T7Q(B1,T4b4Bc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-f ,TaEP`$(B0,TEWh(B1,TM9(B0,T"Vi(B1,T9(B0,T"i(B1,TR':9b4Bc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-p.
-   0,TJQ(B1,T'`!5(B0,T4Y(B10,TGh(B1,TR`(B0,T!T(B1,T4MPdC(B0,T"Vi(B1,T9(B0,T6i(B1,TRc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-p ,T`(B0,TAWh(B1,TM5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T;CR!/M(B0,TBYh(B10,T7Uh(B1,T5C'!ER'(B
-   ,T"M':CC(B0,T7Q(B1,T4(B.
+>> ,TEM'`$0EWh1M9`0"i1Rd;c9:CC07Q14b4Bc0*i1$S0JQh1'(B C-f ,TaEP`$0EWh1M90"Vi190"i1R':9b4Bc0*i1$S0JQh1'(B C-p.
+   0,TJQ1'`!504Y10Gh1R`0!T14MPdC0"Vi1906i1Rc0*i1$S0JQh1'(B C-p ,T`0AWh1M5SaK09h1'`$M0Cl1`+M0Cl1;CR!/M0BYh107Uh15C'!ER'(B
+   ,T"M':CC07Q14(B.
 
-,Ta(B0,T5h(B1,TEP:CC(B0,T7Q(B1,T4(B0,TJTi(B1,T9(B0,TJX(B1,T4(B0,T4i(B1,TGB(B0,TMQ(B1,T!"CP(B Newline, 0,T+Vh(B1,T'c(B0,T*i(B1,TaJ4'"M:`"5CPK(B0,TGh(B1,TR':CC(B0,T7Q(B1,T4(B. 0,T7Uh(B10,T7i(B1,TRB(B0,TJX(B1,T4"M'(B
-,Td?(B0,TEl(B10,T!g(B1,T(P(B0,TAU(B10,TMQ(B1,T!"CP(B Newline ,T`(B0,T*h(B1,T9(B0,T!Q(B1,T9(B (,Ta(B0,T5h(B1,TJSK(B0,TCQ(B1,T:(B0,TMU(B1,TaA!(B0,TJl(B1,Ta(B0,TEi(B1,TGd(B0,TAh(B1,T(S`(B0,T;g(B1,T9(B).
+,Ta05h1EP:CC07Q140JTi190JX1404i1GB0MQ1!"CP(B Newline, 0,T+Vh1'c0*i1aJ4'"M:`"5CPK0Gh1R':CC07Q14(B. 0,T7Uh107i1RB0JX14"M'(B
+,Td?0El10!g1(P0AU10MQ1!"CP(B Newline ,T`0*h190!Q19(B (,Ta05h1JSK0CQ1:0MU1aA!0Jl1a0Ei1Gd0Ah1(S`0;g19(B).
 
->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-b 0,T7Uh(B1,T5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M':CC(B0,T7Q(B1,T4(B0,T4Y(B1. ,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T(P`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B
-   0,T7i(B1,TRB(B0,TJX(B1,T4"M':CC(B0,T7Q(B1,T4(B0,T!h(B1,TM9K(B0,T9i(B1,TR(B. 0,T9Uh(B1,T`(B0,T;g(B1,T9`>CRP(B0,TGh(B1,TR`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td(B0,T4i(B1,T`$(B0,TEWh(B1,TM9(B0,T"i(B1,TRA(B0,TMQ(B1,T!"CP(B Newline ,Td;(B.
+>> ,TEM'c0*i1$S0JQh1'(B C-b 0,T7Uh15SaK09h1'`0CTh1A05i19"M':CC07Q1404Y1(B. ,T`$M0Cl1`+M0Cl1(P`$0EWh1M9d;0BQ1'5SaK09h1'(B
+   0,T7i1RB0JX14"M':CC07Q140!h1M9K09i1R(B. 0,T9Uh1`0;g19`>CRP0Gh1R`$M0Cl1`+M0Cl1d04i1`$0EWh1M90"i1RA0MQ1!"CP(B Newline ,Td;(B.
 
-,T$S(B0,TJQh(B1,T'(B C-f ,TJRARC6`$(B0,TEWh(B1,TM9(B0,T"i(B1,TRA(B0,TMQ(B1,T!"CP(B Newline ,Td(B0,T4i(B1,T`(B0,T*h(B1,T9`(B0,T4U(B1,TBG(B0,T!Q(B1,T:$S(B0,TJQh(B1,T'(B C-b.
+,T$S0JQh1'(B C-f ,TJRARC6`$0EWh1M90"i1RA0MQ1!"CP(B Newline ,Td04i1`0*h19`04U1BG0!Q1:$S0JQh1'(B C-b.
 
->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-b 0,T4Y(B10,TMU(B1,T!(B0,TJQ(B1,T!K(B0,T9h(B1,TMB(B, 0,T7h(B1,TR9(PJRARC6`(B0,T"i(B1,TRc(!RC`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td(B0,T4i(B10,T4U(B10,T"Vi(B1,T9(B.
-   ,Ta(B0,TEi(B1,TGEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-f ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7i(B1,TRB(B0,TJX(B1,T4"M':CC(B0,T7Q(B1,T4(B.
-   ,Ta(B0,TEi(B1,TGEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-f 0,TMU(B1,T!(B0,TJQ(B1,T!$(B0,TCQi(B1,T'`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T':CC(B0,T7Q(B1,T4(B0,T6Q(B1,T4d;(B.
+>> ,TEM'c0*i1$S0JQh1'(B C-b 0,T4Y10MU1!0JQ1!K09h1MB(B, 0,T7h1R9(PJRARC6`0"i1Rc(!RC`$0EWh1M9`$M0Cl1`+M0Cl1d04i104U10"Vi19(B.
+   ,Ta0Ei1GEM'c0*i1$S0JQh1'(B C-f ,T`0>Wh1M07Uh1(P`$0EWh1M9d;0BQ1'5SaK09h1'07i1RB0JX14"M':CC07Q14(B.
+   ,Ta0Ei1GEM'c0*i1$S0JQh1'(B C-f 0,TMU1!0JQ1!$0CQi1'`0>Wh1M07Uh1(P`$0EWh1M9d;0BQ1':CC07Q1406Q14d;(B.
 
-,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9`$(B0,TEWh(B1,TM9(B0,T<h(B1,TR95SaK(B0,T9h(B1,T':9(B0,TJX(B1,T4K(B0,TCW(B1,TM(B0,T7i(B1,TRB(B0,TJX(B1,T4"M'K(B0,T9i(B1,TR(M(B, 0,T"i(B1,TM$GRA(B0,T6Q(B1,T4(R!:CC(B0,T7Q(B1,T4(B0,T7Uh(B1,TM(B0,TBYh(B10,T7Uh(B1
-,T"M:(B0,T9Qi(B1,T9(P"(B0,TBQ(B1,T:`(B0,T"i(B1,TRAR;CR!/M(B0,TBYh(B1,T:9K(B0,T9i(B1,TR(M(B. 0,T9Uh(B1,T`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B ",T!RC`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B (scrolling)". 0,T9Uh(B1
-,T`(B0,T;g(B1,T9!RC7Sc(B0,TKi(B10,TMU(B1,TaA!(B0,TJl(B1,TJRARC6`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7Uh(B10,T5i(B1,TM'!RC:9(B0,T"i(B1,TM$GRAd(B0,T4i(B1,Tb4B(B
-,Td(B0,TAh(B1,T`$(B0,TEWh(B1,TM9MM!9M!K(B0,T9i(B1,TR(M(B.
+,T`0AWh1M07h1R9`$0EWh1M90<h1R95SaK09h1':90JX14K0CW1M07i1RB0JX14"M'K09i1R(M(B, 0,T"i1M$GRA06Q14(R!:CC07Q1407Uh1M0BYh107Uh1(B
+,T"M:09Qi19(P"0BQ1:`0"i1RAR;CR!/M0BYh1:9K09i1R(M(B. 0,T9Uh1`0CU1B!0Gh1R(B ",T!RC`$0EWh1M90Ai1G9(B (scrolling)". 0,T9Uh1(B
+,T`0;g19!RC7Sc0Ki10MU1aA!0Jl1JRARC6`$0EWh1M9`$M0Cl1`+M0Cl1d;0BQ1'5SaK09h1'07Uh105i1M'!RC:90"i1M$GRAd04i1b4B(B
+,Td0Ah1`$0EWh1M9MM!9M!K09i1R(M(B.
 
->> ,TEM'`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,TE'MM!d;9M!K(B0,T9i(B1,TR(Mb4Bc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-n, ,Ta(B0,TEi(B1,TG(B0,T4Y(B10,TGh(B1,TR(B0,TAU(B1,TMPdC`(B0,T!T(B1,T4(B0,T"Vi(B1,T9(B.
+>> ,TEM'`$0EWh1M9`$M0Cl1`+M0Cl1E'MM!d;9M!K09i1R(Mb4Bc0*i1$S0JQh1'(B C-n, ,Ta0Ei1G04Y10Gh1R0AU1MPdC`0!T140"Vi19(B.
 
-0,T6i(B1,TR`$(B0,TEWh(B1,TM9(B0,T7U(B1,TEP(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T9Qi(B1,T9(B0,T*i(B1,TRd;(B, 0,T7h(B1,TR9(B0,T!g(B1,TJRARC6(P`$(B0,TEWh(B1,TM9d(B0,T4i(B10,T7U(B1,TEP$S(B. ,T$S(B0,TJQh(B1,T'(B M-f (META-f)
-,Tc(B0,T*i(B1,Tc9!RC`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'$S(B0,T7Uh(B1,TM(B0,TBYh(B10,T6Q(B1,T4d;(B ,TaEP(B M-b ,Tc(B0,T*i(B1,Tc9!RC`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'$S(B0,T7Uh(B1,TM(B0,TBYh(B10,T!h(B1,TM9K(B0,T9i(B1,TR(B.
+0,T6i1R`$0EWh1M907U1EP05Q1G0MQ1!IC09Qi190*i1Rd;(B, 0,T7h1R90!g1JRARC6(P`$0EWh1M9d04i107U1EP$S(B. ,T$S0JQh1'(B M-f (META-f)
+,Tc0*i1c9!RC`$0EWh1M9d;0BQ1'$S07Uh1M0BYh106Q14d;(B ,TaEP(B M-b ,Tc0*i1c9!RC`$0EWh1M9d;0BQ1'$S07Uh1M0BYh10!h1M9K09i1R(B.
 
->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-f ,TaEP(B M-b 0,T4Y(B10,TJQ(B1,T!JM'JRA$(B0,TCQi(B1,T'(B.
+>> ,TEM'c0*i1$S0JQh1'(B M-f ,TaEP(B M-b 0,T4Y10JQ1!JM'JRA$0CQi1'(B.
 
-,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9M(B0,TBYh(B10,T7Uh(B1,T5SaK(B0,T9h(B1,T'!ER'"M'$S(B, ,T$S(B0,TJQh(B1,T'(B M-f ,T(Pc(B0,T*i(B1,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7i(B1,TRB"M'$S(B0,T9Qi(B1,T9(B. ,T`(B0,TAWh(B1,TM(B
-0,T7h(B1,TR9M(B0,TBYh(B10,T7Uh(B1,T5SaK(B0,T9h(B1,T'`(B0,TGi(B1,T9GCC$CPK(B0,TGh(B1,TR'$S(B, ,T$S(B0,TJQh(B1,T'(B M-f ,T(Pc(B0,T*i(B1,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7i(B1,TRB"M'$S(B
-0,T7Uh(B1,TM(B0,TBYh(B10,T6Q(B1,T4d;(B. ,T$S(B0,TJQh(B1,T'(B M-b ,T7SK(B0,T9i(B1,TR(B0,T7Uh(B1,T7S9M'`(B0,T4U(B1,TBG(B0,T!Q(B1,T9(B ,Ta(B0,T5h(B1,T`$(B0,TEWh(B1,TM9d;c9(B0,T7T(B1,TH7R'5C'(B0,T!Q(B1,T9(B0,T"i(B1,TRA(B.
+,T`0AWh1M07h1R9M0BYh107Uh15SaK09h1'!ER'"M'$S(B, ,T$S0JQh1'(B M-f ,T(Pc0*i1`$0EWh1M9d;0BQ1'5SaK09h1'07i1RB"M'$S09Qi19(B. ,T`0AWh1M(B
+0,T7h1R9M0BYh107Uh15SaK09h1'`0Gi19GCC$CPK0Gh1R'$S(B, ,T$S0JQh1'(B M-f ,T(Pc0*i1`$0EWh1M9d;0BQ1'5SaK09h1'07i1RB"M'$S(B
+0,T7Uh1M0BYh106Q14d;(B. ,T$S0JQh1'(B M-b ,T7SK09i1R07Uh17S9M'`04U1BG0!Q19(B ,Ta05h1`$0EWh1M9d;c907T1H7R'5C'0!Q190"i1RA(B.
 
-,TKARB`K(B0,T5X(B1: ,T`(B0,T9Wh(B1,TM'(R!@RIRd7Bd(B0,TAh(B10,TAU(B1,T!RCc(B0,T*i(B10,TMQ(B1,T!"CP`(B0,TGi(B1,T9GCC$(B (whitespace) ,Tc9!RCaJ4'(B
-	 ,T"M:`"5"M'$S(B, ,T)P(B0,T9Qi(B1,T9`(B0,TAWh(B1,TMM(B0,TBYh(B1,Tc9bKA4@RIRd7B(B (ThaiText mode) 0,TMU(B1,TaA!(B0,TJl(B1
-	 ,T(P7S!RC!S(B0,T!Q(B1,T:"M:`"5"M'$Sb4BMR(B0,THQ(B1,TBb;Ca!CA(B0,T5Q(B1,T4$S(B. ,T$S(B0,TJQh(B1,T'(B M-f ,TaEP(B M-b 
-	 0,T(V(B1,T'(P7S'R9d(B0,T4i(B1, ,Ta(B0,T5h(B1,T(Pc(B0,TKi(B1,T<E(B0,T5h(B1,TR'd;`(B0,TEg(B1,T!(B0,T9i(B1,TMB(B. ,T!(B0,TEh(B1,TRG(B0,T$W(B1,TM(B:
+,TKARB`K05X1(B: ,T`09Wh1M'(R!@RIRd7Bd0Ah10AU1!RCc0*i10MQ1!"CP`0Gi19GCC$(B (whitespace) ,Tc9!RCaJ4'(B
+	 ,T"M:`"5"M'$S(B, ,T)P09Qi19`0AWh1MM0BYh1c9bKA4@RIRd7B(B (ThaiText mode) 0,TMU1aA!0Jl1(B
+	 ,T(P7S!RC!S0!Q1:"M:`"5"M'$Sb4BMR0HQ1Bb;Ca!CA05Q14$S(B. ,T$S0JQh1'(B M-f ,TaEP(B M-b
+	 0,T(V1'(P7S'R9d04i1(B, ,Ta05h1(Pc0Ki1<E05h1R'd;`0Eg1!09i1MB(B. ,T!0Eh1RG0$W1M(B:
 
-	 ,Td(B0,TAh(B10,TGh(B1,TR(B0,T7h(B1,TR9M(B0,TBYh(B10,T7Uh(B1,T5SaK(B0,T9h(B1,T'!ER'K(B0,TCW(B1,TM5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M'$S(B0,T!g(B1,T5RA(B, ,T$S(B0,TJQh(B1,T'(B M-f ,T(Pc(B0,T*i(B1
-	 ,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M'$S(B0,T6Q(B1,T4d;c9!C(B0,T3U(B10,T7Uh(B1,T$S(B0,T9Qi(B1,T9d(B0,TAh(B1,Td(B0,T4i(B1,T`(B0,T;g(B1,T9$S(B0,TJX(B1,T4(B0,T7i(B1,TRB"M'(B
-	 ,T:CC(B0,T7Q(B1,T4(B. 0,T6i(B1,TR$S(B0,T9Qi(B1,T9`(B0,T;g(B1,T9$S(B0,TJX(B1,T4(B0,T7i(B1,TRB"M':CC(B0,T7Q(B1,T4(B, ,T$S(B0,TJQh(B1,T'(B M-f ,T(Pc(B0,T*i(B1,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'(B
-	 ,T5SaK(B0,T9h(B1,T'(B0,T7i(B1,TRB"M'$S(B0,T9Qi(B1,T9(B.
+	 ,Td0Ah10Gh1R07h1R9M0BYh107Uh15SaK09h1'!ER'K0CW1M5SaK09h1'`0CTh1A05i19"M'$S0!g15RA(B, ,T$S0JQh1'(B M-f ,T(Pc0*i1(B
+	 ,T`$0EWh1M9d;0BQ1'5SaK09h1'`0CTh1A05i19"M'$S06Q14d;c9!C03U107Uh1$S09Qi19d0Ah1d04i1`0;g19$S0JX1407i1RB"M'(B
+	 ,T:CC07Q14(B. 0,T6i1R$S09Qi19`0;g19$S0JX1407i1RB"M':CC07Q14(B, ,T$S0JQh1'(B M-f ,T(Pc0*i1`$0EWh1M9d;0BQ1'(B
+	 ,T5SaK09h1'07i1RB"M'$S09Qi19(B.
 
->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-f ,TaEP(B M-b 0,T4Y(B1, ,Tb4B;P;9(B0,T!Q(B1,T:$S(B0,TJQh(B1,T'(B C-f ,TaEP(B C-b, 0,T7h(B1,TR9(P(B0,TJQ(B1,T'`!5(B
-   ,T`(B0,TKg(B1,T9!RC7S'R9"M'$S(B0,TJQh(B1,T'(B M-f ,TaEP(B M-b ,Tc95SaK(B0,T9h(B1,T'(B0,T5h(B1,TR'f(B 0,T7Qi(B1,T'c9$SaEPCPK(B0,TGh(B1,TR'$S(B.
+>> ,TEM'c0*i1$S0JQh1'(B M-f ,TaEP(B M-b 0,T4Y1(B, ,Tb4B;P;90!Q1:$S0JQh1'(B C-f ,TaEP(B C-b, 0,T7h1R9(P0JQ1'`!5(B
+   ,T`0Kg19!RC7S'R9"M'$S0JQh1'(B M-f ,TaEP(B M-b ,Tc95SaK09h1'05h1R'f(B 0,T7Qi1'c9$SaEPCPK0Gh1R'$S(B.
 
-0,T7h(B1,TR9JRARC6(B0,TJQ(B1,T'`!5d(B0,T4i(B10,TGh(B1,TR$S(B0,TJQh(B1,T'(B C-f ,TaEP(B C-b 0,T9Qi(B1,T97SK(B0,T9i(B1,TR(B0,T7Uh(B1,Tc9(B0,TEQ(B1,T!I3P`(B0,T4U(B1,TBG(B0,T!Q(B1,T:$S(B0,TJQh(B1,T'(B M-f 
-,TaEP(B M-b, ,Ta(B0,T5h(B1,TM(B0,TBYh(B1,T:9`!3(B0,T1l(B10,T7Uh(B10,T5h(B1,TR'(B0,T!Q(B1,T9(B. 0,TJh(B1,TG9AR!(B 0,T;Xh(B1,TA(B META ,T(P(B0,T6Y(B1,T!!SK94c(B0,TKi(B1,Tc(B0,T*i(B10,T!Q(B1,T:!RC7S'R9c9(B
-,TCP(B0,T4Q(B1,T:(B0,T7Uh(B1,T`(B0,T!Uh(B1,TBG(B0,T"i(B1,TM'(B0,T!Q(B1,T:K(B0,T9h(B1,TGB(B0,T7Uh(B1,T!SK94(B0,T"Vi(B1,T97R'@RIR(B (,T`(B0,T*h(B1,T9(B ,T$S(B, ,T;CPbB$(B, 0,TBh(B1,TMK(B0,T9i(B1,TR(B, ,T`(B0,T;g(B1,T9(B0,T5i(B1,T9(B), 
-,T"3P(B0,T7Uh(B10,T;Xh(B1,TA(B CONTROL 0,T9Qi(B1,T9(B0,TAQ(B1,T!(P(B0,T6Y(B1,T!!SK94c(B0,TKi(B1,Tc(B0,T*i(B10,T!Q(B1,T:!RC7S'R9c9CP(B0,T4Q(B1,T:(B0,T7Uh(B1,T`(B0,T!Uh(B1,TBG(B0,T"i(B1,TM'(B0,T!Q(B1,T:K(B0,T9h(B1,TGB(B0,TBh(B1,TMB(B
-0,TMT(B1,TJCP(B0,T7Uh(B1,T7S!RCa(B0,T!i(B1,Td"d(B0,T4i(B1 (,T`(B0,T*h(B1,T9(B 0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B, ,T:CC(B0,T7Q(B1,T4(B, ,T`(B0,T;g(B1,T9(B0,T5i(B1,T9(B).
+0,T7h1R9JRARC60JQ1'`!5d04i10Gh1R$S0JQh1'(B C-f ,TaEP(B C-b 0,T9Qi197SK09i1R07Uh1c90EQ1!I3P`04U1BG0!Q1:$S0JQh1'(B M-f
+,TaEP(B M-b, ,Ta05h1M0BYh1:9`!301l107Uh105h1R'0!Q19(B. 0,TJh1G9AR!(B 0,T;Xh1A(B META ,T(P06Y1!!SK94c0Ki1c0*i10!Q1:!RC7S'R9c9(B
+,TCP04Q1:07Uh1`0!Uh1BG0"i1M'0!Q1:K09h1GB07Uh1!SK940"Vi197R'@RIR(B (,T`0*h19(B ,T$S(B, ,T;CPbB$(B, 0,TBh1MK09i1R(B, ,T`0;g1905i19(B),
+,T"3P07Uh10;Xh1A(B CONTROL 0,T9Qi190AQ1!(P06Y1!!SK94c0Ki1c0*i10!Q1:!RC7S'R9c9CP04Q1:07Uh1`0!Uh1BG0"i1M'0!Q1:K09h1GB0Bh1MB(B
+0,TMT1JCP07Uh17S!RCa0!i1d"d04i1(B (,T`0*h19(B 0,T5Q1G0MQ1!IC(B, ,T:CC07Q14(B, ,T`0;g1905i19(B).
 
-,T!RC7S'R9c97S9M'`(B0,T4U(B1,TBG(B0,T!Q(B1,T9JSK(B0,TCQ(B1,T::CC(B0,T7Q(B1,T4(B0,T!Q(B1,T:;CPbB$(B: ,T$S(B0,TJQh(B1,T'(B C-a ,TaEP(B C-e ,Tc(B0,T*i(B1,T`$(B0,TEWh(B1,TM9(B
-,Td;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9aEP(B0,T7i(B1,TRB"M':CC(B0,T7Q(B1,T4(B, ,T"3P`(B0,T4U(B1,TBG(B0,T!Q(B1,T9$S(B0,TJQh(B1,T'(B M-a ,TaEP(B M-e ,Tc(B0,T*i(B1,T`$(B0,TEWh(B1,TM9(B
-,Td;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9aEP(B0,T7i(B1,TRB"M';CPbB$(B.
+,T!RC7S'R9c97S9M'`04U1BG0!Q19JSK0CQ1::CC07Q140!Q1:;CPbB$(B: ,T$S0JQh1'(B C-a ,TaEP(B C-e ,Tc0*i1`$0EWh1M9(B
+,Td;0BQ1'5SaK09h1'`0CTh1A05i19aEP07i1RB"M':CC07Q14(B, ,T"3P`04U1BG0!Q19$S0JQh1'(B M-a ,TaEP(B M-e ,Tc0*i1`$0EWh1M9(B
+,Td;0BQ1'5SaK09h1'`0CTh1A05i19aEP07i1RB"M';CPbB$(B.
 
-,TKARB`K(B0,T5X(B1: ,T`(B0,T9Wh(B1,TM'(R!@RIRd7Bd(B0,TAh(B10,T9T(B1,TBAc(B0,T*i(B10,TMQ(B1,T!"CPA(B0,TKQ(B1,T>@R$(B (period) ,Tc9!RCaJ4'(B0,T(X(B1,T4(B0,TJTi(B1,T9(B0,TJX(B1,T4"M'(B
-	 ,T;CPbB$(B, ,T7Sc(B0,TKi(B1,Td(B0,TAh(B1,TJRARC6!SK94"M:`"5"M';CPbB$c(B0,TKi(B10,T6Y(B1,T!(B0,T5i(B1,TM'd(B0,T4i(B1. 0,T4Q(B1,T'(B0,T9Qi(B1,T9`(B0,TAWh(B1,TM(B
-	 ,TM(B0,TBYh(B1,Tc9bKA4@RIRd7B(B (ThaiText mode), ,T$S(B0,TJQh(B1,T'(B M-a ,TaEP(B M-e ,T(P`$(B0,TEWh(B1,TM9(B
-	 ,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M'(B0,TBh(B1,TMK(B0,T9i(B1,TR(B ,TaEP5SaK(B0,T9h(B1,T'(B0,T7i(B1,TRB(B0,TJX(B1,T4"M'(B0,TBh(B1,TMK(B0,T9i(B1,TR(B
-	 ,T5RAES(B0,T4Q(B1,T:(B. ,TB!`(B0,TGi(B1,T9!C(B0,T3U(B10,T7Uh(B10,TAU(B1,T!RCc(B0,T*i(B10,TMQ(B1,T!"CPA(B0,TKQ(B1,T>@R$(B.
+,TKARB`K05X1(B: ,T`09Wh1M'(R!@RIRd7Bd0Ah109T1BAc0*i10MQ1!"CPA0KQ1>@R$(B (period) ,Tc9!RCaJ4'0(X140JTi190JX14"M'(B
+	 ,T;CPbB$(B, ,T7Sc0Ki1d0Ah1JRARC6!SK94"M:`"5"M';CPbB$c0Ki106Y1!05i1M'd04i1(B. 0,T4Q1'09Qi19`0AWh1M(B
+	 ,TM0BYh1c9bKA4@RIRd7B(B (ThaiText mode), ,T$S0JQh1'(B M-a ,TaEP(B M-e ,T(P`$0EWh1M9(B
+	 ,T`$M0Cl1`+M0Cl1d;0BQ1'5SaK09h1'`0CTh1A05i19"M'0Bh1MK09i1R(B ,TaEP5SaK09h1'07i1RB0JX14"M'0Bh1MK09i1R(B
+	 ,T5RAES04Q1:(B. ,TB!`0Gi19!C03U107Uh10AU1!RCc0*i10MQ1!"CPA0KQ1>@R$(B.
 
->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-a ,TaEP(B C-e 0,T4Y(B10,TJQ(B1,T!JM'JRA$(B0,TCQi(B1,T'(B.
-   ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-a ,TaEP(B M-e 0,T4Y(B10,TJQ(B1,T!JM'JRA$(B0,TCQi(B1,T'(B.
+>> ,TEM'c0*i1$S0JQh1'(B C-a ,TaEP(B C-e 0,T4Y10JQ1!JM'JRA$0CQi1'(B.
+   ,TEM'c0*i1$S0JQh1'(B M-a ,TaEP(B M-e 0,T4Y10JQ1!JM'JRA$0CQi1'(B.
 
-0,TJQ(B1,T'`!5(B0,T4Y(B10,TGh(B1,TR!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-a 0,T+i(B1,TSf(B 0,T!Q(B1,T9(Pd(B0,TAh(B1,T`(B0,T!T(B1,T4<EMPdC(B, ,Ta(B0,T5h(B1,T!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-a ,T(P7Sc(B0,TKi(B1
-,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T`$(B0,TEWh(B1,TM9d;(B0,T7U(B1,TEP;CPbB$(B. ,Ta(B0,TAi(B10,TGh(B1,TR!RC`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T"M'(B0,T7Qi(B1,T'JM'a::(B0,T9Ui(B1,T(Pd(B0,TAh(B1
-,T$(B0,TEi(B1,TRB(B0,T!Q(B1,T9`EB(B0,T7U(B1,T`(B0,T4U(B1,TBG(B, ,Ta(B0,T5h(B10,T!g(B10,T4Y(B1,T`(B0,T;g(B1,T98CCA*R(B0,T5T(B10,T4U(B1.
+0,TJQ1'`!504Y10Gh1R!RCc0*i1$S0JQh1'(B C-a 0,T+i1Sf(B 0,T!Q19(Pd0Ah1`0!T14<EMPdC(B, ,Ta05h1!RCc0*i1$S0JQh1'(B M-a ,T(P7Sc0Ki1(B
+,T`$M0Cl1`+M0Cl1`$0EWh1M9d;07U1EP;CPbB$(B. ,Ta0Ai10Gh1R!RC`$0EWh1M9`$M0Cl1`+M0Cl1"M'07Qi1'JM'a::09Ui1(Pd0Ah1(B
+,T$0Ei1RB0!Q19`EB07U1`04U1BG(B, ,Ta05h10!g104Y1`0;g198CCA*R05T104U1(B.
 
-,T:R'$(B0,TCQi(B1,T'`CR(B0,T!g(B1,T`(B0,TCU(B1,TB!5SaK(B0,T9h(B1,T'"M'`$M(B0,TCl(B1,T`+M(B0,TCl(B10,TGh(B1,TR(B "0,T(X(B1,T4(B (point)". ,T!(B0,TEh(B1,TRG(B0,T$W(B1,TM(B, ,T`$M(B0,TCl(B1,T`+M(B0,TCl(B10,T7Uh(B1
-,T;CR!/M(B0,TBYh(B1,T:9K(B0,T9i(B1,TR(M(B0,T!g(B10,T$W(B1,TM5SaK(B0,T9h(B1,T'(B0,T7Uh(B10,T(X(B1,T4;CR!/M(B0,TBYh(B1,T:9(B0,T"i(B1,TM$GRA(B0,T9Qh(B1,T9`M'(B.
+,T:R'$0CQi1'`CR0!g1`0CU1B!5SaK09h1'"M'`$M0Cl1`+M0Cl10Gh1R(B "0,T(X14(B (point)". ,T!0Eh1RG0$W1M(B, ,T`$M0Cl1`+M0Cl107Uh1(B
+,T;CR!/M0BYh1:9K09i1R(M0!g10$W1M5SaK09h1'07Uh10(X14;CR!/M0BYh1:90"i1M$GRA09Qh19`M'(B.
 
-0,T5h(B1,TMd;(B0,T9Ui(B1,T`(B0,T;g(B1,T9J(B0,TCX(B1,T;"M'(B0,T*X(B1,T4$S(B0,TJQh(B1,T'JSK(B0,TCQ(B1,T:!RC`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1, 0,T+Vh(B1,T'CGA(B0,T6V(B1,T'!RC`$(B0,TEWh(B1,TM9c9CP(B0,T4Q(B1,T:$S(B
+0,T5h1Md;09Ui1`0;g19J0CX1;"M'0*X14$S0JQh1'JSK0CQ1:!RC`$0EWh1M9`$M0Cl1`+M0Cl1(B, 0,T+Vh1'CGA06V1'!RC`$0EWh1M9c9CP04Q1:$S(B
 ,TaEP;CPbB$(B:
 
-	C-f	,T`$(B0,TEWh(B1,TM9d;(B0,T"i(B1,TR'K(B0,T9i(B1,TRK(B0,T9Vh(B1,T'(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B
-	C-b	,T`$(B0,TEWh(B1,TM9!(B0,TEQ(B1,T:d;K(B0,T9Vh(B1,T'(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B
+	C-f	,T`$0EWh1M9d;0"i1R'K09i1RK09Vh1'05Q1G0MQ1!IC(B
+	C-b	,T`$0EWh1M9!0EQ1:d;K09Vh1'05Q1G0MQ1!IC(B
 
-	M-f	,T`$(B0,TEWh(B1,TM9d;(B0,T"i(B1,TR'K(B0,T9i(B1,TRK(B0,T9Vh(B1,T'$S(B
-	M-b	,T`$(B0,TEWh(B1,TM9!(B0,TEQ(B1,T:d;K(B0,T9Vh(B1,T'$S(B
+	M-f	,T`$0EWh1M9d;0"i1R'K09i1RK09Vh1'$S(B
+	M-b	,T`$0EWh1M9!0EQ1:d;K09Vh1'$S(B
 
-	C-n	,T`$(B0,TEWh(B1,TM9d;:CC(B0,T7Q(B1,T4(B0,T6Q(B1,T4d;(B
-	C-p	,T`$(B0,TEWh(B1,TM9d;:CC(B0,T7Q(B1,T4(B0,T!h(B1,TM9K(B0,T9i(B1,TR(B
+	C-n	,T`$0EWh1M9d;:CC07Q1406Q14d;(B
+	C-p	,T`$0EWh1M9d;:CC07Q140!h1M9K09i1R(B
 
-	C-a	,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M':CC(B0,T7Q(B1,T4(B
-	C-e	,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7i(B1,TRB"M':CC(B0,T7Q(B1,T4(B
+	C-a	,T`$0EWh1M9d;0BQ1'5SaK09h1'`0CTh1A05i19"M':CC07Q14(B
+	C-e	,T`$0EWh1M9d;0BQ1'5SaK09h1'07i1RB"M':CC07Q14(B
 
-	M-a	,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M';CPbB$(B
-	M-e	,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7i(B1,TRB"M';CPbB$(B
+	M-a	,T`$0EWh1M9d;0BQ1'5SaK09h1'`0CTh1A05i19"M';CPbB$(B
+	M-e	,T`$0EWh1M9d;0BQ1'5SaK09h1'07i1RB"M';CPbB$(B
 
->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'`K(B0,TEh(B1,TR(B0,T9Ui(B10,TJQ(B1,T!CPBP`(B0,T>Wh(B1,TM`(B0,T;g(B1,T9!RC(B0,T=V(B1,T!(B0,TKQ(B1,T4(B.
-   ,T$S(B0,TJQh(B1,T'`K(B0,TEh(B1,TR(B0,T9Ui(B1,T`(B0,T;g(B1,T9$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B10,T!Q(B1,T9(B0,T:h(B1,TMBAR!(B.
+>> ,TEM'c0*i1$S0JQh1'`K0Eh1R09Ui10JQ1!CPBP`0>Wh1M`0;g19!RC0=V1!0KQ14(B.
+   ,T$S0JQh1'`K0Eh1R09Ui1`0;g19$S0JQh1'07Uh1c0*i10!Q190:h1MBAR!(B.
 
-0,TAU(B10,TMU(B1,T!JM'$S(B0,TJQh(B1,T'(B0,T7Uh(B1,TJS(B0,T$Q(B1,T-c9!RC`$(B0,TEWh(B1,TM95SaK(B0,T9h(B1,T'(B0,T$W(B1,TM(B ,T$S(B0,TJQh(B1,T'(B M-< (META 0,T9i(B1,TMB!(B0,TGh(B1,TR(B), ,Tc(B0,T*i(B1,Tc9!RC(B
-,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M'(B0,T"i(B1,TM$GRA(B, ,TaEP(B M-> (META ,TAR!!(B0,TGh(B1,TR(B), ,Tc(B0,T*i(B1,Tc9!RC`$(B0,TEWh(B1,TM9(B
-,Td;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7i(B1,TRB(B0,TJX(B1,T4"M'(B0,T"i(B1,TM$GRA(B.
+0,TAU10MU1!JM'$S0JQh1'07Uh1JS0$Q1-c9!RC`$0EWh1M95SaK09h1'0$W1M(B ,T$S0JQh1'(B M-< (META 0,T9i1MB!0Gh1R(B), ,Tc0*i1c9!RC(B
+,T`$0EWh1M9d;0BQ1'5SaK09h1'`0CTh1A05i19"M'0"i1M$GRA(B, ,TaEP(B M-> (META ,TAR!!0Gh1R(B), ,Tc0*i1c9!RC`$0EWh1M9(B
+,Td;0BQ1'5SaK09h1'07i1RB0JX14"M'0"i1M$GRA(B.
 
-,Tc9`$(B0,TCWh(B1,TM';ERB7R'(B (terminal) 0,TJh(B1,TG9cK(B0,T-h(B1, 0,TMQ(B1,T!"CP(B "<" ,T(PM(B0,TBYh(B1,T`K(B0,T9W(B1,TM(B0,TMQ(B1,T!"CP(B0,T(X(B1,TE@R$(B
-(comma), ,T)P(B0,T9Qi(B1,T9(B0,T7h(B1,TR9(B0,T5i(B1,TM'c(B0,T*i(B10,T;Xh(B1,TA(B0,T*T(B1,T?(B0,T5l(B1 (shift) ,Tc9!RC(B0,T;i(B1,TM9(B0,TMQ(B1,T!"CP(B0,T9Qi(B1,T9(B. ,TJSK(B0,TCQ(B1,T:`$(B0,TCWh(B1,TM'(B
-,T;ERB7R'a::(B0,T9Ui(B1, 0,T7h(B1,TR9(B0,T(V(B1,T'(B0,T5i(B1,TM'c(B0,T*i(B10,T;Xh(B1,TA(B0,T*T(B1,T?(B0,T5l(B1,Tc9!RC(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B M-< ,Tc97S9M'`(B0,T4U(B1,TBG(B0,T!Q(B1,T9(B, 0,T6i(B1,TRd(B0,TAh(B1
-,T$S(B0,T9V(B1,T'(B0,T6V(B1,T'(B0,T;Xh(B1,TA(B0,T*T(B1,T?(B0,T5l(B1, 0,T!g(B1,TKARB$GRA(B0,TGh(B1,TR(B0,T7h(B1,TR9!S(B0,TEQ(B1,T'(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B M-comma.
+,Tc9`$0CWh1M';ERB7R'(B (terminal) 0,TJh1G9cK0-h1(B, 0,TMQ1!"CP(B "<" ,T(PM0BYh1`K09W1M0MQ1!"CP0(X1E@R$(B
+(comma), ,T)P09Qi1907h1R905i1M'c0*i10;Xh1A0*T1?05l1(B (shift) ,Tc9!RC0;i1M90MQ1!"CP09Qi19(B. ,TJSK0CQ1:`$0CWh1M'(B
+,T;ERB7R'a::09Ui1(B, 0,T7h1R90(V1'05i1M'c0*i10;Xh1A0*T1?05l1c9!RC0;i1M9$S0JQh1'(B M-< ,Tc97S9M'`04U1BG0!Q19(B, 0,T6i1Rd0Ah1(B
+,T$S09V1'06V1'0;Xh1A0*T1?05l1(B, 0,T!g1KARB$GRA0Gh1R07h1R9!S0EQ1'0;i1M9$S0JQh1'(B M-comma.
 
->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-< 0,T4Y(B1, ,T`(B0,T>Wh(B1,TM`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M'(B0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B10,T9Ui(B1.
-   ,Ta(B0,TEi(B1,TGc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-v 0,T+i(B1,TS(B0,T!Q(B1,T9KERBf(B ,T$(B0,TCQi(B1,T'`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9!(B0,TEQ(B1,T:AR(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,T4T(B1,TA(B0,T9Ui(B1.
+>> ,TEM'c0*i1$S0JQh1'(B M-< 0,T4Y1(B, ,T`0>Wh1M`$0EWh1M9d;0BQ1'5SaK09h1'`0CTh1A05i19"M'0$Yh10AW1M!RCc0*i109Ui1(B.
+   ,Ta0Ei1Gc0*i1$S0JQh1'(B C-v 0,T+i1S0!Q19KERBf(B ,T$0CQi1'`0>Wh1M07Uh1(P`$0EWh1M9!0EQ1:AR0BQ1'5SaK09h1'`04T1A09Ui1(B.
 
->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-> 0,T4Y(B1, ,T`(B0,T>Wh(B1,TM`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7i(B1,TRB(B0,TJX(B1,T4"M'(B0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B10,T9Ui(B1.
-   ,Ta(B0,TEi(B1,TGc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-v 0,T+i(B1,TS(B0,T!Q(B1,T9KERBf(B ,T$(B0,TCQi(B1,T'`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9!(B0,TEQ(B1,T:AR(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,T4T(B1,TA(B0,T9Ui(B1.
+>> ,TEM'c0*i1$S0JQh1'(B M-> 0,T4Y1(B, ,T`0>Wh1M`$0EWh1M9d;0BQ1'5SaK09h1'07i1RB0JX14"M'0$Yh10AW1M!RCc0*i109Ui1(B.
+   ,Ta0Ei1Gc0*i1$S0JQh1'(B M-v 0,T+i1S0!Q19KERBf(B ,T$0CQi1'`0>Wh1M07Uh1(P`$0EWh1M9!0EQ1:AR0BQ1'5SaK09h1'`04T1A09Ui1(B.
 
-0,T7h(B1,TR9JRARC6`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td(B0,T4i(B10,T4i(B1,TGB(B0,T;Xh(B1,TA(B0,TEY(B1,T!HC(B (arrow key), 0,T6i(B1,TR`$(B0,TCWh(B1,TM';ERB7R'"M'(B0,T7h(B1,TR9(B
-0,TAU(B10,T;Xh(B1,TA`K(B0,TEh(B1,TR(B0,T9Ui(B1,TM(B0,TBYh(B1. ,T`CRa9P9Sc(B0,TKi(B10,T=V(B1,T!(B0,TKQ(B1,T4c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-b, C-f, C-n ,TaEP(B C-p, 0,T4i(B1,TGB`K(B0,T5X(B1,T<EJRA(B
-,T;CP!RC(B. ,TK(B0,T9Vh(B1,T'(B, ,T$S(B0,TJQh(B1,T'`K(B0,TEh(B1,TR(B0,T9Ui(B1,T7S'R9d(B0,T4i(B1,T:9`$(B0,TCWh(B1,TM';ERB7R'(B0,T7X(B1,T!*(B0,T9T(B1,T4(B. ,TJM'(B, ,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9d(B0,T4i(B10,T=V(B1,T!(B0,TKQ(B1,T4(B
-,T!RCc(B0,T*i(B10,T!Q(B1,T:(B0,TMU(B1,TaA!(B0,TJl(B1,Ta(B0,TEi(B1,TG(B 0,T7h(B1,TR9(P(B0,TCYi(B10,TJV(B1,T!(B0,TGh(B1,TR!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B0,T4i(B1,TGB(B0,T;Xh(B1,TA(B CONTROL 0,T9Qi(B1,T9$(B0,TEh(B1,TM'(B0,T5Q(B1,TG!(B0,TGh(B1,TR!RCc(B0,T*i(B1
-0,T;Xh(B1,TA(B0,TEY(B1,T!HC(B (,T`>CRP(B0,TGh(B1,TR(B0,T7h(B1,TR9d(B0,TAh(B10,T5i(B1,TM'`$(B0,TEWh(B1,TM9(B0,TBi(B1,TRB(B0,TAW(B1,TMMM!(R!5SaK(B0,T9h(B1,T'(B0,TAW(B1,TM(B0,TJQ(B1,TA(B0,T<Q(B1,TJ`EB(B). ,TJRA(B, ,T`(B0,TAWh(B1,TM(B
-0,T7h(B1,TR9(B0,T$Xi(B1,T9`$B(B0,T!Q(B1,T:!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T';CP!M:(B0,T!Q(B1,T:(B0,T;Xh(B1,TA(B CONTROL ,Ta(B0,TEi(B1,TG(B, 0,T7h(B1,TR9JRARC6(P(B0,T=V(B1,T!!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B
-0,T*Qi(B1,T9(B0,TJY(B1,T'(B0,T5h(B1,TMd;d(B0,T4i(B10,TMU(B1,T!(B0,T4i(B1,TGB(B.
+0,T7h1R9JRARC6`$0EWh1M9`$M0Cl1`+M0Cl1d04i104i1GB0;Xh1A0EY1!HC(B (arrow key), 0,T6i1R`$0CWh1M';ERB7R'"M'07h1R9(B
+0,TAU10;Xh1A`K0Eh1R09Ui1M0BYh1(B. ,T`CRa9P9Sc0Ki10=V1!0KQ14c0*i1$S0JQh1'(B C-b, C-f, C-n ,TaEP(B C-p, 0,T4i1GB`K05X1<EJRA(B
+,T;CP!RC(B. ,TK09Vh1'(B, ,T$S0JQh1'`K0Eh1R09Ui17S'R9d04i1:9`$0CWh1M';ERB7R'07X1!*09T14(B. ,TJM'(B, ,T`0AWh1M07h1R9d04i10=V1!0KQ14(B
+,T!RCc0*i10!Q1:0MU1aA!0Jl1a0Ei1G(B 0,T7h1R9(P0CYi10JV1!0Gh1R!RCc0*i1$S0JQh1'04i1GB0;Xh1A(B CONTROL 0,T9Qi19$0Eh1M'05Q1G!0Gh1R!RCc0*i1(B
+0,T;Xh1A0EY1!HC(B (,T`>CRP0Gh1R07h1R9d0Ah105i1M'`$0EWh1M90Bi1RB0AW1MMM!(R!5SaK09h1'0AW1M0JQ1A0<Q1J`EB(B). ,TJRA(B, ,T`0AWh1M(B
+0,T7h1R90$Xi19`$B0!Q1:!RCc0*i1$S0JQh1';CP!M:0!Q1:0;Xh1A(B CONTROL ,Ta0Ei1G(B, 0,T7h1R9JRARC6(P0=V1!!RCc0*i1$S0JQh1'(B
+0,T*Qi190JY1'05h1Md;d04i10MU1!04i1GB(B.
 
-,T$S(B0,TJQh(B1,T'(B0,TJh(B1,TG9cK(B0,T-h(B1,Tc9(B0,TMU(B1,TaA!(B0,TJl(B10,T9Qi(B1,T9(PJRARC6!S(B0,T!Q(B1,T:(B0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,Td(B0,T4i(B1; ,TJSK(B0,TCQ(B1,T:$S(B0,TJQh(B1,T'(B0,TJh(B1,TG9cK(B0,T-h(B1, 
-0,T5Q(B1,TG`E"`K(B0,TEh(B1,TR(B0,T9Ui(B10,T!g(B1,T(PKARB(B0,T6V(B1,T'(S9G9$(B0,TCQi(B1,T'"M'!RC;CPAGE<E"M'$S(B0,TJQh(B1,T'(B0,T5h(B1,TMd;(B. ,T!RC(B0,T7Uh(B1,T(P7Sc(B0,TKi(B10,TAU(B1
-,T!RC;CPAGE<E"M'$S(B0,TJQh(B1,T'(B0,T+i(B1,TS`(B0,T7h(B1,TR(S9G9(B0,T7Uh(B10,T5i(B1,TM'!RC(B0,T9Qi(B1,T9JRARC67Sd(B0,T4i(B1,Tb4B!RC(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-u 
-,Ta(B0,TEi(B1,TG5RA(B0,T4i(B1,TGB(B0,T5Q(B1,TG`E"(B0,T!h(B1,TM9(B0,T7Uh(B1,T(P(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B0,T7Uh(B10,T5i(B1,TM'!RC(B. 0,T6i(B1,TR(B0,T7h(B1,TR9(B0,TAU(B10,T;Xh(B1,TA(B META (,TK(B0,TCW(B1,TM(B EDIT ,TK(B0,TCW(B1,TM(B 
-ALT), 0,T7h(B1,TR9JRARC6(P7Sd(B0,T4i(B10,T4i(B1,TGB(B0,TMU(B1,T!(B0,TGT(B10,T8U(B1,TK(B0,T9Vh(B1,T'(B: 0,T;i(B1,TM9(B0,T5Q(B1,TG`E""3P(B0,T7Uh(B1,T!4(B0,T;Xh(B1,TA(B META ,TM(B0,TBYh(B1. ,T`CRa9P9S(B
-,Tc(B0,TKi(B10,T7h(B1,TR9(B0,T=V(B1,T!(B0,TKQ(B1,T4c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-u ,T`>CRP(B0,TGh(B1,TRJRARC6c(B0,T*i(B1,Td(B0,T4i(B10,T!Q(B1,T:`$(B0,TCWh(B1,TM';ERB7R'(B0,T7X(B1,T!*(B0,T9T(B1,T4(B. 0,T5Q(B1,TG`E"MR(B0,TCl(B1
-0,T!T(B1,TG`A9(B0,T5l(B10,T7Uh(B1,T!(B0,TEh(B1,TRG(B0,T6V(B1,T'(B0,T9Ui(B1,T`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B ",TMR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,T`(B0,T5T(B1,TAK(B0,T9i(B1,TR(B (prefix argument)", ,T`>CRP(B0,TGh(B1,TR(B0,T7h(B1,TR9(B
-0,T5i(B1,TM'(B0,T;i(B1,TM9(B0,T5Q(B1,TG`E"(B0,T!h(B1,TM9(B0,T7Uh(B1,T(P(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B.
+,T$S0JQh1'0Jh1G9cK0-h1c90MU1aA!0Jl109Qi19(PJRARC6!S0!Q1:05Q1G`E"MR0Cl10!T1G`A905l1d04i1(B; ,TJSK0CQ1:$S0JQh1'0Jh1G9cK0-h1(B,
+0,T5Q1G`E"`K0Eh1R09Ui10!g1(PKARB06V1'(S9G9$0CQi1'"M'!RC;CPAGE<E"M'$S0JQh1'05h1Md;(B. ,T!RC07Uh1(P7Sc0Ki10AU1(B
+,T!RC;CPAGE<E"M'$S0JQh1'0+i1S`07h1R(S9G907Uh105i1M'!RC09Qi19JRARC67Sd04i1b4B!RC0;i1M9$S0JQh1'(B C-u
+,Ta0Ei1G5RA04i1GB05Q1G`E"0!h1M907Uh1(P0;i1M9$S0JQh1'07Uh105i1M'!RC(B. 0,T6i1R07h1R90AU10;Xh1A(B META (,TK0CW1M(B EDIT ,TK0CW1M(B
+ALT), 0,T7h1R9JRARC6(P7Sd04i104i1GB0MU1!0GT108U1K09Vh1'(B: 0,T;i1M905Q1G`E""3P07Uh1!40;Xh1A(B META ,TM0BYh1(B. ,T`CRa9P9S(B
+,Tc0Ki107h1R90=V1!0KQ14c0*i1$S0JQh1'(B C-u ,T`>CRP0Gh1RJRARC6c0*i1d04i10!Q1:`$0CWh1M';ERB7R'07X1!*09T14(B. 0,T5Q1G`E"MR0Cl1(B
+0,T!T1G`A905l107Uh1!0Eh1RG06V1'09Ui1`0CU1B!0Gh1R(B ",TMR0Cl10!T1G`A905l1`05T1AK09i1R(B (prefix argument)", ,T`>CRP0Gh1R07h1R9(B
+0,T5i1M'0;i1M905Q1G`E"0!h1M907Uh1(P0;i1M9$S0JQh1'(B.
 
-0,T5Q(B1,TGM(B0,TBh(B1,TR'`(B0,T*h(B1,T9(B, ,T$S(B0,TJQh(B1,T'(B C-u 8 C-f ,T(P`$(B0,TEWh(B1,TM9d;(B0,T"i(B1,TR'K(B0,T9i(B1,TRa;4(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B.
+0,T5Q1GM0Bh1R'`0*h19(B, ,T$S0JQh1'(B C-u 8 C-f ,T(P`$0EWh1M9d;0"i1R'K09i1Ra;405Q1G0MQ1!IC(B.
 
->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-n ,TK(B0,TCW(B1,TM(B C-p ,T;CP!M:(B0,T!Q(B1,T:(B0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1, ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1
-   ,T`(B0,T"i(B1,TRARc!(B0,TEi(B1,T:CC(B0,T7Q(B1,T4(B0,T9Ui(B1,Tb4Bc(B0,T*i(B1,T`(B0,T>U(B1,TB'$S(B0,TJQh(B1,T'`(B0,T4U(B1,TBG(B.
+>> ,TEM'c0*i1$S0JQh1'(B C-n ,TK0CW1M(B C-p ,T;CP!M:0!Q1:05Q1G`E"MR0Cl10!T1G`A905l1(B, ,T`0>Wh1M07Uh1(P`$0EWh1M9`$M0Cl1`+M0Cl1(B
+   ,T`0"i1RARc!0Ei1:CC07Q1409Ui1b4Bc0*i1`0>U1B'$S0JQh1'`04U1BG(B.
 
-,T$S(B0,TJQh(B1,T'(B0,TJh(B1,TG9cK(B0,T-h(B1,Tc(B0,T*i(B10,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,T`K(B0,TEh(B1,TR(B0,T9Ui(B1,TJSK(B0,TCQ(B1,T:!RC;CPAGE<E$S(B0,TJQh(B1,T'(B0,T+i(B1,TS(B, ,Ta(B0,T5h(B1,T:R'$S(B0,TJQh(B1,T'(B0,T!g(B1,Tc(B0,T*i(B1
-,Tc9(B0,TEQ(B1,T!I3P(B0,TMWh(B1,T9(B. 0,TAU(B1,TKERB$S(B0,TJQh(B1,T'(B (,Ta(B0,T5h(B1,Td(B0,TAh(B1,TCGA$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Td(B0,T4i(B1,T!(B0,TEh(B1,TRGAR(B0,T6V(B1,T'5C'(B0,T9Ui(B1) ,Tc(B0,T*i(B10,T5Q(B1,TG`E"(B0,T9Ui(B1,T`(B0,T;g(B1,T9(B0,T5Q(B1,TG(B
-0,T:h(B1,T'(B0,T*Ui(B1--,T!RC(B0,T7Uh(B10,TAU(B1,TMR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,T`(B0,T5T(B1,TAK(B0,T9i(B1,TR(B, ,Tb4Bd(B0,TAh(B1,T$S(B0,T9V(B1,T'(B0,T6V(B1,T'(B0,T$h(B1,TR"M'(B0,T5Q(B1,TG`E"(B, ,T(P7Sc(B0,TKi(B1,T$S(B0,TJQh(B1,T'(B0,T9Qi(B1,T97S'R9(B
-0,T5h(B1,TR'MM!d;(B.
+,T$S0JQh1'0Jh1G9cK0-h1c0*i105Q1G`E"MR0Cl10!T1G`A905l1`K0Eh1R09Ui1JSK0CQ1:!RC;CPAGE<E$S0JQh1'0+i1S(B, ,Ta05h1:R'$S0JQh1'0!g1c0*i1(B
+,Tc90EQ1!I3P0MWh19(B. 0,TAU1KERB$S0JQh1'(B (,Ta05h1d0Ah1CGA$S0JQh1'07Uh1d04i1!0Eh1RGAR06V1'5C'09Ui1(B) ,Tc0*i105Q1G`E"09Ui1`0;g1905Q1G(B
+0,T:h1'0*Ui1(B--,T!RC07Uh10AU1MR0Cl10!T1G`A905l1`05T1AK09i1R(B, ,Tb4Bd0Ah1$S09V1'06V1'0$h1R"M'05Q1G`E"(B, ,T(P7Sc0Ki1$S0JQh1'09Qi197S'R9(B
+0,T5h1R'MM!d;(B.
 
-,T$S(B0,TJQh(B1,T'(B C-v ,TaEP(B M-v ,T`(B0,T;g(B1,T9$S(B0,TJQh(B1,T'(B0,T7Uh(B1,TB!`(B0,TGi(B1,T9(B0,TMU(B1,T!;CP`@7K(B0,T9Vh(B1,T'(B. 0,T6i(B1,TR(B0,T;i(B1,TM9(B0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B10,T4i(B1,TGBa(B0,TEi(B1,TG(B,
-,TK(B0,T9i(B1,TR(M(P(B0,T6Y(B1,T!`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B0,T"Vi(B1,T9K(B0,TCW(B1,TME'`(B0,T;g(B1,T9(S9G9:CC(B0,T7Q(B1,T4`(B0,T7h(B1,TR(B0,T5Q(B1,TG`E"(B0,T7Uh(B1,T!SK94(B, ,Ta79(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B
-0,T7U(B1,TEPK(B0,T9i(B1,TR(M(B. 0,T5Q(B1,TGM(B0,TBh(B1,TR'`(B0,T*h(B1,T9(B, ,T$S(B0,TJQh(B1,T'(B C-u 8 C-v ,T(P`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9K(B0,T9i(B1,TR(M(B0,T7U(B1,TEPa;4:CC(B0,T7Q(B1,T4(B.
+,T$S0JQh1'(B C-v ,TaEP(B M-v ,T`0;g19$S0JQh1'07Uh1B!`0Gi190MU1!;CP`@7K09Vh1'(B. 0,T6i1R0;i1M905Q1G`E"MR0Cl10!T1G`A905l104i1GBa0Ei1G(B,
+,TK09i1R(M(P06Y1!`$0EWh1M90Ai1G90"Vi19K0CW1ME'`0;g19(S9G9:CC07Q14`07h1R05Q1G`E"07Uh1!SK94(B, ,Ta7907Uh1(P`$0EWh1M90Ai1G9(B
+0,T7U1EPK09i1R(M(B. 0,T5Q1GM0Bh1R'`0*h19(B, ,T$S0JQh1'(B C-u 8 C-v ,T(P`$0EWh1M90Ai1G9K09i1R(M07U1EPa;4:CC07Q14(B.
 
->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-u 8 C-v 0,T4Y(B1.
+>> ,TEM'c0*i1$S0JQh1'(B C-u 8 C-v 0,T4Y1(B.
 
-,T$S(B0,TJQh(B1,T'(B0,T9Ui(B1,T(P`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9K(B0,T9i(B1,TR(M(B0,T"Vi(B1,T9d;a;4:CC(B0,T7Q(B1,T4(B. 0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T5i(B1,TM'!RC(P`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9!(B0,TEQ(B1,T:AR(B0,TMU(B1,T!(B, 0,T7h(B1,TR9(B
-0,T!g(B1,T7Sd(B0,T4i(B1,Tb4B!RC!S(B0,T!Q(B1,T:(B0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,Tc(B0,TKi(B10,T!Q(B1,T:$S(B0,TJQh(B1,T'(B M-v.
+,T$S0JQh1'09Ui1(P`$0EWh1M90Ai1G9K09i1R(M0"Vi19d;a;4:CC07Q14(B. 0,T6i1R07h1R905i1M'!RC(P`$0EWh1M90Ai1G9!0EQ1:AR0MU1!(B, 0,T7h1R9(B
+0,T!g17Sd04i1b4B!RC!S0!Q1:05Q1G`E"MR0Cl10!T1G`A905l1c0Ki10!Q1:$S0JQh1'(B M-v.
 
-0,T6i(B1,TR(B0,T7h(B1,TR9!S(B0,TEQ(B1,T'c(B0,T*i(B1,T`M!(B0,T+l(B10,TGT(B1,T9b4(B0,TGl(B1 (X Window) ,TM(B0,TBYh(B1, ,T(P(B0,TAU(B1,Ta<'`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B (scroll bar) 0,T7Uh(B1
-,T`(B0,T;g(B1,T9(B0,T>Wi(B1,T9(B0,T7Uh(B10,TJUh(B1,T`K(B0,TEUh(B1,TBA(B0,T<W(B1,T9(B0,T<i(B1,TRM(B0,TBYh(B1,T7R'(B0,T4i(B1,TR9(B0,T+i(B1,TRB"M'(B0,TGT(B1,T9b4(B0,TGl(B1 (window) ,T"M'(B0,TMU(B1,TaA!(B0,TJl(B1. 0,T7h(B1,TR9JRARC6(B
-,T(P`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B0,T"i(B1,TM$GRAb4B!RC$(B0,TET(B1,T!`AR(B0,TJl(B1 (click mouse) ,T:9a<'`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B.
+0,T6i1R07h1R9!S0EQ1'c0*i1`M!0+l10GT19b40Gl1(B (X Window) ,TM0BYh1(B, ,T(P0AU1a<'`$0EWh1M90Ai1G9(B (scroll bar) 0,T7Uh1(B
+,T`0;g190>Wi1907Uh10JUh1`K0EUh1BA0<W190<i1RM0BYh17R'04i1R90+i1RB"M'0GT19b40Gl1(B (window) ,T"M'0MU1aA!0Jl1(B. 0,T7h1R9JRARC6(B
+,T(P`$0EWh1M90Ai1G90"i1M$GRAb4B!RC$0ET1!`AR0Jl1(B (click mouse) ,T:9a<'`$0EWh1M90Ai1G9(B.
 
->> ,TEM'!4(B0,T;Xh(B1,TA!ER'(B0,T7Uh(B10,TJh(B1,TG9:9(B0,TJX(B1,T4"M'(B0,T>Wi(B1,T9(B0,T7Uh(B10,T7Uh(B1,T`(B0,T9i(B1,T9(B (highlight) ,T@RBc9a<'`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B.
-   0,T"i(B1,TM$GRA(P(B0,T6Y(B1,T!`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7Uh(B10,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B1,T$(B0,TET(B1,T!(B.
+>> ,TEM'!40;Xh1A!ER'07Uh10Jh1G9:90JX14"M'0>Wi1907Uh107Uh1`09i19(B (highlight) ,T@RBc9a<'`$0EWh1M90Ai1G9(B.
+   0,T"i1M$GRA(P06Y1!`$0EWh1M90Ai1G9d;0BQ1'5SaK09h1'07Uh107Uh107h1R9d04i1$0ET1!(B.
 
->> ,TEM'`$(B0,TEWh(B1,TM9`AR(B0,TJl(B10,T"Vi(B1,T9E'(B0,T4Y(B1, ,T"3P(B0,T7Uh(B10,TBQ(B1,T'!4(B0,T;Xh(B1,TA!ER'M(B0,TBYh(B1. 0,T7h(B1,TR9(P>:(B0,TGh(B1,TR(B0,T"i(B1,TM$GRA(P`$(B0,TEWh(B1,TM9(B0,T7Uh(B10,T"Vi(B1,T9(B
-   ,TE'5RA(B0,T7Uh(B10,T7h(B1,TR9`$(B0,TEWh(B1,TM9`AR(B0,TJl(B1,Td;(B.
+>> ,TEM'`$0EWh1M9`AR0Jl10"Vi19E'04Y1(B, ,T"3P07Uh10BQ1'!40;Xh1A!ER'M0BYh1(B. 0,T7h1R9(P>:0Gh1R0"i1M$GRA(P`$0EWh1M907Uh10"Vi19(B
+   ,TE'5RA07Uh107h1R9`$0EWh1M9`AR0Jl1d;(B.
 
 
-* ,T!C(B0,T3U(B10,T7Uh(B10,TMU(B1,TaA!(B0,TJl(B1,TK(B0,TBX(B1,T4*P(B0,T'Q(B1,T!(B (hang up)
+* ,T!C03U107Uh10MU1aA!0Jl1K0BX14*P0'Q1!(B (hang up)
 ----------------------------
 
-0,T6i(B1,TR(B0,TMU(B1,TaA!(B0,TJl(B1,TK(B0,TBX(B1,T4aEPd(B0,TAh(B1,T5M:J9M'$S(B0,TJQh(B1,T'c4f(B, 0,T7h(B1,TR9JRARC6B!`(B0,TET(B1,T!$S(B0,TJQh(B1,T'd(B0,T4i(B1,TM(B0,TBh(B1,TR';EM4(B0,T@Q(B1,TBb4Bc(B0,T*i(B1
-,T$S(B0,TJQh(B1,T'(B C-g. 0,T7h(B1,TR9JRARC6c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-g ,Tc9!RCB!`(B0,TET(B1,T!$S(B0,TJQh(B1,T'(B0,T7Uh(B1,T!S(B0,TEQ(B1,T'7S'R9M(B0,TBYh(B1,Td(B0,T4i(B1.
+0,T6i1R0MU1aA!0Jl1K0BX14aEPd0Ah15M:J9M'$S0JQh1'c4f(B, 0,T7h1R9JRARC6B!`0ET1!$S0JQh1'd04i1M0Bh1R';EM40@Q1Bb4Bc0*i1(B
+,T$S0JQh1'(B C-g. 0,T7h1R9JRARC6c0*i1$S0JQh1'(B C-g ,Tc9!RCB!`0ET1!$S0JQh1'07Uh1!S0EQ1'7S'R9M0BYh1d04i1(B.
 
-0,T7h(B1,TR9JRARC6c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-g ,T`(B0,T>Wh(B1,TMB!`(B0,TET(B1,T!(B0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,TK(B0,TCW(B1,TM$S(B0,TJQh(B1,T'(B0,T7Uh(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'(B0,T;i(B1,TM9M(B0,TBYh(B1,Td(B0,T4i(B1.
+0,T7h1R9JRARC6c0*i1$S0JQh1'(B C-g ,T`0>Wh1MB!`0ET1!05Q1G`E"MR0Cl10!T1G`A905l1K0CW1M$S0JQh1'07Uh107h1R9!S0EQ1'0;i1M9M0BYh1d04i1(B.
 
->> ,TEM'(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-u 100 ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(Pc(B0,TKi(B10,TAU(B10,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,T`(B0,T;g(B1,T9(B 100, ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-g.
-   0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-f. ,T<E(B0,T7Uh(B1,Td(B0,T4i(B10,T!g(B10,T$W(B1,TM`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T`$(B0,TEWh(B1,TM9d;`(B0,T>U(B1,TB'K(B0,T9Vh(B1,T'(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B, ,T`>CRP(B0,TGh(B1,TR(B0,T7h(B1,TR9d(B0,T4i(B1
-   ,TB!`(B0,TET(B1,T!(B0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,Td;a(B0,TEi(B1,TG(B0,T4i(B1,TGB$S(B0,TJQh(B1,T'(B C-g.
+>> ,TEM'0;i1M9$S0JQh1'(B C-u 100 ,T`0>Wh1M07Uh1(Pc0Ki10AU105Q1G`E"MR0Cl10!T1G`A905l1`0;g19(B 100, ,Ta0Ei1G0;i1M9$S0JQh1'(B C-g.
+   0,T;i1M9$S0JQh1'(B C-f. ,T<E07Uh1d04i10!g10$W1M`$M0Cl1`+M0Cl1`$0EWh1M9d;`0>U1B'K09Vh1'05Q1G0MQ1!IC(B, ,T`>CRP0Gh1R07h1R9d04i1(B
+   ,TB!`0ET1!05Q1G`E"MR0Cl10!T1G`A905l1d;a0Ei1G04i1GB$S0JQh1'(B C-g.
 
-0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B <ESC> ,Tb4Bd(B0,TAh(B1,Td(B0,T4i(B10,T5Qi(B1,T'c((B, 0,T7h(B1,TR9(B0,T!g(B1,TJRARC6(PB!`(B0,TET(B1,T!$S(B0,TJQh(B1,T'(B0,T9Qi(B1,T9d(B0,T4i(B10,T4i(B1,TGB$S(B0,TJQh(B1,T'(B C-g.
+0,T6i1R07h1R90;i1M9$S0JQh1'(B <ESC> ,Tb4Bd0Ah1d04i105Qi1'c((B, 0,T7h1R90!g1JRARC6(PB!`0ET1!$S0JQh1'09Qi19d04i104i1GB$S0JQh1'(B C-g.
 
 
-* ,T$S(B0,TJQh(B1,T'(B0,T7Uh(B10,T6Y(B1,T!(B0,T;T(B1,T47R'(B (disable)
+* ,T$S0JQh1'07Uh106Y1!0;T147R'(B (disable)
 ------------------------
 
-,T$S(B0,TJQh(B1,T':R'$S(B0,TJQh(B1,T'(B0,T6Y(B1,T!(B0,T;T(B1,T47R'd(B0,TGi(B1 ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P(B0,T;i(B1,TM'(B0,T!Q(B1,T9d(B0,TAh(B1,Tc(B0,TKi(B10,T<Yi(B10,T7Uh(B1,T`(B0,TCTh(B1,TA(B0,T5i(B1,T9c(B0,T*i(B1 (beginning user) ,Tc(B0,T*i(B1,Td(B0,T4i(B1
-,Tb4Bd(B0,TAh(B1,Td(B0,T4i(B10,T5Qi(B1,T'c((B.
+,T$S0JQh1':R'$S0JQh1'06Y1!0;T147R'd0Gi1(B ,T`0>Wh1M07Uh1(P0;i1M'0!Q19d0Ah1c0Ki10<Yi107Uh1`0CTh1A05i19c0*i1(B (beginning user) ,Tc0*i1d04i1(B
+,Tb4Bd0Ah1d04i105Qi1'c((B.
 
-0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T;i(B1,TM9$S(B0,TJQh(B1,T';CP`@7(B0,T9Ui(B1,Ta(B0,TEi(B1,TG(B, 0,TMU(B1,TaA!(B0,TJl(B1,T(PaJ4'(B0,T"i(B1,TM$GRA(B0,TGh(B1,TR$S(B0,TJQh(B1,T'(B0,T9Qi(B1,T9(B0,T$W(B1,TMMPdC(B, ,TaEP(P6RA(B
-0,T7h(B1,TR9(B0,TGh(B1,TR(B0,T5i(B1,TM'!RC(P;CPAGE<E$S(B0,TJQh(B1,T'(B0,T9Qi(B1,T9K(B0,TCW(B1,TMd(B0,TAh(B1.
+0,T6i1R07h1R90;i1M9$S0JQh1';CP`@709Ui1a0Ei1G(B, 0,TMU1aA!0Jl1(PaJ4'0"i1M$GRA0Gh1R$S0JQh1'09Qi190$W1MMPdC(B, ,TaEP(P6RA(B
+0,T7h1R90Gh1R05i1M'!RC(P;CPAGE<E$S0JQh1'09Qi19K0CW1Md0Ah1(B.
 
-0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T5i(B1,TM'!RC(B0,T7Uh(B1,T(P;CPAGE<E$S(B0,TJQh(B1,T'(B0,T9Qi(B1,T9((B0,TCT(B1,T'f(B, ,T!4(B0,T;Xh(B1,TA(B space ,T`(B0,T>Wh(B1,TM5M:(B0,TBW(B1,T9(B0,TBQ(B1,T9$GRA(B0,T5i(B1,TM'!RC(B.
-,Tb4B;C!(B0,T5T(B1,Ta(B0,TEi(B1,TG(B, 0,T6i(B1,TR(B0,T7h(B1,TR9d(B0,TAh(B10,T5i(B1,TM'!RC(P;CPAGE<E$S(B0,TJQh(B1,T'(B0,T7Uh(B10,T6Y(B1,T!(B0,T;T(B1,T47R'd(B0,TGi(B1, 0,T!g(B1,T5M:(B "n" ,T`(B0,T7h(B1,TR(B0,T9Qi(B1,T9(B.
+0,T6i1R07h1R905i1M'!RC07Uh1(P;CPAGE<E$S0JQh1'09Qi19(0CT1'f(B, ,T!40;Xh1A(B space ,T`0>Wh1M5M:0BW190BQ19$GRA05i1M'!RC(B.
+,Tb4B;C!05T1a0Ei1G(B, 0,T6i1R07h1R9d0Ah105i1M'!RC(P;CPAGE<E$S0JQh1'07Uh106Y1!0;T147R'd0Gi1(B, 0,T!g15M:(B "n" ,T`07h1R09Qi19(B.
 
->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-x C-l (0,T+Vh(B1,T'`(B0,T;g(B1,T9$S(B0,TJQh(B1,T'(B0,T7Uh(B10,T6Y(B1,T!(B0,T;T(B1,T47R'd(B0,TGi(B1), ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9(B "n" ,T`(B0,T>Wh(B1,TM`(B0,T;g(B1,T9!RC5M:(B
+>> ,TEM'c0*i1$S0JQh1'(B C-x C-l (0,T+Vh1'`0;g19$S0JQh1'07Uh106Y1!0;T147R'd0Gi1(B), ,Ta0Ei1G0;i1M9(B "n" ,T`0>Wh1M`0;g19!RC5M:(B
    ,T$S6RA(B.
 
 
-* 0,TGT(B1,T9b4(B0,TGl(B1 (window)
+* 0,TGT19b40Gl1(B (window)
 ----------------
 
-0,TMU(B1,TaA!(B0,TJl(B1,TJRARC6(B0,TAU(B1,Td(B0,T4i(B1,TKERB(B0,TGT(B1,T9b4(B0,TGl(B1, ,Ta(B0,T5h(B1,TEP(B0,TGT(B1,T9b4(B0,TGl(B10,T!g(B1,T(PaJ4'<E"M'(B0,T"i(B1,TM$GRA"M'59`M'(B. ,T`CR(P(B
-,TM(B0,T8T(B1,T:RB(B0,T6V(B1,T'(B0,TGT(B10,T8U(B1,T!RCc(B0,T*i(B1,Ta::KERB(B0,TGT(B1,T9b4(B0,TGl(B1,TK(B0,TEQ(B1,T'(R!(B0,T9Ui(B1. ,T5M9(B0,T9Ui(B1,T(P!(B0,TEh(B1,TRG(B0,T6V(B1,T'(B0,TGT(B10,T8U(B1,T!RC(B0,T;T(B1,T4(B0,TGT(B1,T9b4(B0,TGl(B10,T7Uh(B1,Td(B0,TAh(B10,T5i(B1,TM'(B
-,T!RC(B, ,Ta(B0,TEi(B1,TG!(B0,TEQ(B1,T:d;c(B0,T*i(B1,T`(B0,T>U(B1,TB'(B0,TGT(B1,T9b4(B0,TGl(B1,T`(B0,T4U(B1,TBG(B. 0,T+Vh(B1,T'JRARC67Sd(B0,T4i(B10,T4Q(B1,T'(B0,T9Ui(B1:
+0,TMU1aA!0Jl1JRARC60AU1d04i1KERB0GT19b40Gl1(B, ,Ta05h1EP0GT19b40Gl10!g1(PaJ4'<E"M'0"i1M$GRA"M'59`M'(B. ,T`CR(P(B
+,TM08T1:RB06V1'0GT108U1!RCc0*i1a::KERB0GT19b40Gl1K0EQ1'(R!09Ui1(B. ,T5M909Ui1(P!0Eh1RG06V1'0GT108U1!RC0;T140GT19b40Gl107Uh1d0Ah105i1M'(B
+,T!RC(B, ,Ta0Ei1G!0EQ1:d;c0*i1`0>U1B'0GT19b40Gl1`04U1BG(B. 0,T+Vh1'JRARC67Sd04i104Q1'09Ui1(B:
 
-	C-x 1	,TK(B0,T9Vh(B1,T'(B0,TGT(B1,T9b4(B0,TGl(B1 (0,T$W(B1,TM!RC(B0,T;T(B1,T4(B0,TGT(B1,T9b4(B0,TGl(B10,TMWh(B1,T9f(B 0,T7Qi(B1,T'KA4(B)
+	C-x 1	,TK09Vh1'0GT19b40Gl1(B (0,T$W1M!RC0;T140GT19b40Gl10MWh19f(B 0,T7Qi1'KA4(B)
 
-0,T9Qh(B1,T9(B0,T$W(B1,TM`(B0,T>U(B1,TB'(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x ,Ta(B0,TEi(B1,TG5RA(B0,T4i(B1,TGB`E"(B 1. ,T$S(B0,TJQh(B1,T'(B C-x 1 ,T(P"BRB(B0,TGT(B1,T9b4(B0,TGl(B10,T7Uh(B10,TAU(B1
-,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,TM(B0,TBYh(B1 ,Tc(B0,TKi(B1,T`(B0,T5g(B1,TAK(B0,T9i(B1,TR(M(B. 0,T+Vh(B1,T'(P`(B0,T;g(B1,T9!RC(B0,T;T(B1,T4(B0,TGT(B1,T9b4(B0,TGl(B10,TMWh(B1,T9f(B 0,T7Qi(B1,T'KA4(B.
+0,T9Qh190$W1M`0>U1B'0;i1M9$S0JQh1'(B C-x ,Ta0Ei1G5RA04i1GB`E"(B 1. ,T$S0JQh1'(B C-x 1 ,T(P"BRB0GT19b40Gl107Uh10AU1(B
+,T`$M0Cl1`+M0Cl1M0BYh1(B ,Tc0Ki1`05g1AK09i1R(M(B. 0,T+Vh1'(P`0;g19!RC0;T140GT19b40Gl10MWh19f(B 0,T7Qi1'KA4(B.
 
->> ,T`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,TAR(B0,TBQ(B1,T':CC(B0,T7Q(B1,T4(B0,T9Ui(B1 ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-u 0 C-l.
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-h k C-f.
-   ,T(P`(B0,TKg(B1,T9(B0,TGh(B1,TR(B0,TGT(B1,T9b4(B0,TGl(B10,T9Ui(B10,TAU(B1,T"9R4(B0,TBh(B1,TME'(B ,T"3P(B0,T7Uh(B10,TAU(B10,TGT(B1,T9b4(B0,TGl(B1,TcK(B0,TAh(B1,T`(B0,T!T(B1,T4(B0,T"Vi(B1,T9aJ4'<E"M'`M!JRC(B0,T7Uh(B1,T`(B0,T!Uh(B1,TBG(B0,T!Q(B1,T:(B
-   ,T$S(B0,TJQh(B1,T'"M'(B C-f.
+>> ,T`$0EWh1M9`$M0Cl1`+M0Cl1AR0BQ1':CC07Q1409Ui1(B ,Ta0Ei1G0;i1M9$S0JQh1'(B C-u 0 C-l.
+>> 0,T;i1M9$S0JQh1'(B C-h k C-f.
+   ,T(P`0Kg190Gh1R0GT19b40Gl109Ui10AU1"9R40Bh1ME'(B ,T"3P07Uh10AU10GT19b40Gl1cK0Ah1`0!T140"Vi19aJ4'<E"M'`M!JRC07Uh1`0!Uh1BG0!Q1:(B
+   ,T$S0JQh1'"M'(B C-f.
 
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 1 ,Ta(B0,TEi(B1,TG(P>:(B0,TGh(B1,TR(B0,TGT(B1,T9b4(B0,TGl(B10,T7Uh(B1,TaJ4'CRB!RC"M'`M!JRCKRBd;(B.
+>> 0,T;i1M9$S0JQh1'(B C-x 1 ,Ta0Ei1G(P>:0Gh1R0GT19b40Gl107Uh1aJ4'CRB!RC"M'`M!JRCKRBd;(B.
 
-,T$S(B0,TJQh(B1,T'(B0,T9Ui(B10,T5h(B1,TR'(R!$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Td(B0,T4i(B1,T!(B0,TEh(B1,TRGAR5C'(B0,T7Uh(B10,TGh(B1,TR$S(B0,TJQh(B1,T'(B0,T9Ui(B1,T;CP!M:(B0,T4i(B1,TGBJM'(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B. ,T$S(B0,TJQh(B1,T'(B0,T9Ui(B1,T`(B0,TCTh(B1,TA(B0,T5i(B1,T9(B
-0,T4i(B1,TGB(B0,TMQ(B1,T!"CP(B C-x. 0,TAU(B10,T*X(B1,T4"M'$S(B0,TJQh(B1,T'(B0,T7Uh(B10,T"Vi(B1,T9(B0,T5i(B1,T9(B0,T4i(B1,TGB(B0,TMQ(B1,T!"CP(B C-x; 0,TJh(B1,TG9cK(B0,T-h(B1,T(P`(B0,T!Uh(B1,TBG(B0,T"i(B1,TM'(B0,T!Q(B1,T:!RC(B
-0,T(Q(B1,T4!RC(B0,T!Q(B1,T:(B0,TGT(B1,T9b4(B0,TGl(B1, ,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B, 0,T:Q(B1,T?`?M(B0,TCl(B1, ,TaEP(B0,TMWh(B1,T9f(B ,Tc97S9M'`(B0,T4U(B1,TBG(B0,T!Q(B1,T9(B. ,T$S(B0,TJQh(B1,T'`K(B0,TEh(B1,TR(B0,T9Ui(B1,T(P(B
-,T;CP!M:(B0,T4i(B1,TGBJM'(B, ,TJRA(B, ,TK(B0,TCW(B1,TM(B0,TJUh(B10,T5Q(B1,TG(B0,TMQ(B1,T!IC(B.
+,T$S0JQh1'09Ui105h1R'(R!$S0JQh1'07Uh1d04i1!0Eh1RGAR5C'07Uh10Gh1R$S0JQh1'09Ui1;CP!M:04i1GBJM'05Q1G0MQ1!IC(B. ,T$S0JQh1'09Ui1`0CTh1A05i19(B
+0,T4i1GB0MQ1!"CP(B C-x. 0,TAU10*X14"M'$S0JQh1'07Uh10"Vi1905i1904i1GB0MQ1!"CP(B C-x; 0,TJh1G9cK0-h1(P`0!Uh1BG0"i1M'0!Q1:!RC(B
+0,T(Q14!RC0!Q1:0GT19b40Gl1(B, ,Ta0?i1A0"i1M0AY1E(B, 0,T:Q1?`?M0Cl1(B, ,TaEP0MWh19f(B ,Tc97S9M'`04U1BG0!Q19(B. ,T$S0JQh1'`K0Eh1R09Ui1(P(B
+,T;CP!M:04i1GBJM'(B, ,TJRA(B, ,TK0CW1M0JUh105Q1G0MQ1!IC(B.
 
 
 * ,T!RCa7C!(B (inserting) ,TaEP!RCE:(B (deleting)
 ----------------------------------------------
 
-0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T5i(B1,TM'!RC(B0,T7Uh(B1,T(Pa7C!(B0,T"i(B1,TM$GRA(B, 0,T!g(B1,TJRARC67Sd(B0,T4i(B1,Tb4B!RC(B0,T;i(B1,TM9(B0,T"i(B1,TM$GRA(B0,T9Qi(B1,T9`(B0,T"i(B1,TRd;`(B0,T7h(B1,TR(B0,T9Qi(B1,T9(B. 
-0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T7Uh(B10,T7h(B1,TR9`(B0,TKg(B1,T9(B, ,T`(B0,T*h(B1,T9(B A, 7, *, ,T`(B0,T;g(B1,T9(B0,T5i(B1,T9(B, 0,T5h(B1,TR'(B0,T!g(B10,T6W(B1,TM(B0,TGh(B1,TR`(B0,T;g(B1,T9(B0,T"i(B1,TM$GRAaEP(B0,T6Y(B1,T!a7C!`(B0,T"i(B1,TRd;(B
-0,T7Q(B1,T9(B0,T7U(B10,T7Uh(B10,T;i(B1,TM9(B. ,T!4(B0,T;Xh(B1,TA(B <Return> ,Tc9!RC(B0,T7Uh(B1,T(Pa7C!(B0,TMQ(B1,T!"CP(B Newline.
+0,T6i1R07h1R905i1M'!RC07Uh1(Pa7C!0"i1M$GRA(B, 0,T!g1JRARC67Sd04i1b4B!RC0;i1M90"i1M$GRA09Qi19`0"i1Rd;`07h1R09Qi19(B.
+0,T5Q1G0MQ1!IC07Uh107h1R9`0Kg19(B, ,T`0*h19(B A, 7, *, ,T`0;g1905i19(B, 0,T5h1R'0!g106W1M0Gh1R`0;g190"i1M$GRAaEP06Y1!a7C!`0"i1Rd;(B
+0,T7Q1907U107Uh10;i1M9(B. ,T!40;Xh1A(B <Return> ,Tc9!RC07Uh1(Pa7C!0MQ1!"CP(B Newline.
 
-0,T7h(B1,TR9JRARC6E:(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T5Q(B1,TG(B0,TJX(B1,T4(B0,T7i(B1,TRB(B0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B10,T;i(B1,TM9`(B0,T"i(B1,TRd;d(B0,T4i(B1,Tb4B!RC!4(B0,T;Xh(B1,TA(B <Delete>. 0,T;Xh(B1,TA(B
-<Delete> ,T`(B0,T;g(B1,T9(B0,T;Xh(B1,TAf(B ,TK(B0,T9Vh(B1,T':9a(B0,T;i(B1,T9(B0,T>T(B1,TA(B0,T>l(B1, 0,T+Vh(B1,T':R'$(B0,TCQi(B1,T'MR(`(B0,T;g(B1,T9(B0,T;Xh(B1,TA(B0,T7Uh(B1,T!S(B0,T!Q(B1,T:(B0,T4i(B1,TGB(B "Del". ,Tc9:R'(B
-,T!C(B0,T3U(B1, 0,T;Xh(B1,TA(B "Backspace" 0,T!g(B1,T7SK(B0,T9i(B1,TR(B0,T7Uh(B1,T`(B0,T*h(B1,T9`(B0,T4U(B1,TBG(B0,T!Q(B1,T:(B0,T;Xh(B1,TA(B <Delete>, ,Ta(B0,T5h(B10,T!g(B1,Td(B0,TAh(B1,T`JAMd;(B.
+0,T7h1R9JRARC6E:05Q1G0MQ1!IC05Q1G0JX1407i1RB07Uh107h1R9d04i10;i1M9`0"i1Rd;d04i1b4B!RC!40;Xh1A(B <Delete>. 0,T;Xh1A(B
+<Delete> ,T`0;g190;Xh1Af(B ,TK09Vh1':9a0;i190>T1A0>l1(B, 0,T+Vh1':R'$0CQi1'MR(`0;g190;Xh1A07Uh1!S0!Q1:04i1GB(B "Del". ,Tc9:R'(B
+,T!C03U1(B, 0,T;Xh1A(B "Backspace" 0,T!g17SK09i1R07Uh1`0*h19`04U1BG0!Q1:0;Xh1A(B <Delete>, ,Ta05h10!g1d0Ah1`JAMd;(B.
 
-,Tb4B(B0,T7Qh(B1,TGd;a(B0,TEi(B1,TG(B, 0,T;Xh(B1,TA(B <Delete> ,T(Pc(B0,T*i(B1,TJSK(B0,TCQ(B1,T:E:(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T7Uh(B1,TM(B0,TBYh(B1,TK(B0,T9i(B1,TR5SaK(B0,T9h(B1,T'"M'`$M(B0,TCl(B1,T`+M(B0,TCl(B10,T;Q(B1,T((B0,T(X(B10,T:Q(B1,T9(B.
+,Tb4B07Qh1Gd;a0Ei1G(B, 0,T;Xh1A(B <Delete> ,T(Pc0*i1JSK0CQ1:E:05Q1G0MQ1!IC07Uh1M0BYh1K09i1R5SaK09h1'"M'`$M0Cl1`+M0Cl10;Q1(0(X10:Q19(B.
 
->> ,TEM'7S(B0,T4Y(B1--0,T;i(B1,TM9(B0,T5Q(B1,TG(B0,TMQ(B1,T!ICc4f(B 0,TJQ(B1,T!JM'JRA(B0,T5Q(B1,TG(B, ,Ta(B0,TEi(B1,TGE:(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T9Qi(B1,T9MM!b4B!4(B0,T;Xh(B1,TA(B
-   <Delete> 0,TJQ(B1,T!JM'JRA$(B0,TCQi(B1,T'(B. ,Td(B0,TAh(B10,T5i(B1,TM'(B0,T!Q(B1,T'GE(B0,TGh(B1,TR(P7Sc(B0,TKi(B10,T"i(B1,TM$GRAc9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T9Ui(B1,T`;(B0,TEUh(B1,TB9d;(B; 
-   0,T7h(B1,TR9(Pd(B0,TAh(B1,T7Sc(B0,TKi(B10,T"i(B1,TM$GRAc9(B0,T5i(B1,T9)(B0,T:Q(B1,T:"M'(B0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B1,T`;(B0,TEUh(B1,TB9a;E'(B. 0,T9Uh(B1,T`(B0,T;g(B1,T9`(B0,T>U(B1,TB')(B0,T:Q(B1,T:JS`9R`(B0,T7h(B1,TR(B0,T9Qi(B1,T9(B.
+>> ,TEM'7S04Y1(B--0,T;i1M905Q1G0MQ1!ICc4f(B 0,TJQ1!JM'JRA05Q1G(B, ,Ta0Ei1GE:05Q1G0MQ1!IC09Qi19MM!b4B!40;Xh1A(B
+   <Delete> 0,TJQ1!JM'JRA$0CQi1'(B. ,Td0Ah105i1M'0!Q1'GE0Gh1R(P7Sc0Ki10"i1M$GRAc9a0?i1A0"i1M0AY1E09Ui1`;0EUh1B9d;(B;
+   0,T7h1R9(Pd0Ah17Sc0Ki10"i1M$GRAc905i19)0:Q1:"M'0$Yh10AW1M!RCc0*i1`;0EUh1B9a;E'(B. 0,T9Uh1`0;g19`0>U1B')0:Q1:JS`9R`07h1R09Qi19(B.
 
-,T`(B0,TAWh(B1,TM(B0,T"i(B1,TM$GRAc9:CC(B0,T7Q(B1,T4BRG`(B0,T!T(B1,T9!(B0,TGh(B1,TRK(B0,T9Vh(B1,T':CC(B0,T7Q(B1,T4"M'K(B0,T9i(B1,TR(M(B, 0,T"i(B1,TM$GRAc9:CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9(P(B0,T5h(B1,TM`(B0,T9Wh(B1,TM'(B
-,Td;(B0,TBQ(B1,T':CC(B0,T7Q(B1,T4(B0,T6Q(B1,T4d;"M'K(B0,T9i(B1,TR(M(B. 0,TMQ(B1,T!"CP(B backslash ("\") 0,T7Uh(B1,T;ERB"M'"M:"GR(B0,TAW(B1,TM(P(B0,T:h(B1,T'(B0,T*Ui(B1
-0,TGh(B1,TR(B0,T"i(B1,TM$GRA"M':CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9(B0,T5h(B1,TM`(B0,T9Wh(B1,TM'd;(B0,TBQ(B1,T':CC(B0,T7Q(B1,T4(B0,T6Q(B1,T4d;(B.
+,T`0AWh1M0"i1M$GRAc9:CC07Q14BRG`0!T19!0Gh1RK09Vh1':CC07Q14"M'K09i1R(M(B, 0,T"i1M$GRAc9:CC07Q1409Qi19(P05h1M`09Wh1M'(B
+,Td;0BQ1':CC07Q1406Q14d;"M'K09i1R(M(B. 0,TMQ1!"CP(B backslash ("\") 0,T7Uh1;ERB"M'"M:"GR0AW1M(P0:h1'0*Ui1(B
+0,TGh1R0"i1M$GRA"M':CC07Q1409Qi1905h1M`09Wh1M'd;0BQ1':CC07Q1406Q14d;(B.
 
->> 0,T;i(B1,TM9(B0,T"i(B1,TM$GRA(9!CP(B0,T7Qh(B1,T'(B0,T6V(B1,T'"M:"GR(B, ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9(B0,T5h(B1,TMd;(B0,TMU(B1,T!(B. 0,T7h(B1,TR9(P`(B0,TKg(B1,T9!RCaJ4'<E"M'(B
-   ,T:CC(B0,T7Q(B1,T4(B0,T5h(B1,TM`(B0,T9Wh(B1,TM'(B0,T!Q(B1,T9(B.
+>> 0,T;i1M90"i1M$GRA(9!CP07Qh1'06V1'"M:"GR(B, ,Ta0Ei1G0;i1M905h1Md;0MU1!(B. 0,T7h1R9(P`0Kg19!RCaJ4'<E"M'(B
+   ,T:CC07Q1405h1M`09Wh1M'0!Q19(B.
 
->> ,Tc(B0,T*i(B10,T;Xh(B1,TA(B <Delete> ,T`(B0,T>Wh(B1,TME:(B0,T"i(B1,TM$GRAMM!(9!CP(B0,T7Qh(B1,T'(B0,T"i(B1,TM$GRA(B0,T9Qi(B1,T9>M(B0,T4U(B10,T!Q(B1,T:$GRA!(B0,TGi(B1,TR'"M'K(B0,T9i(B1,TR(M(B. 
-   ,T:CC(B0,T7Q(B1,T4(B0,T7Uh(B10,T5h(B1,TM`(B0,T9Wh(B1,TM'(B0,T!Q(B1,T9(B0,T!g(B1,T(PKRBd;(B.
+>> ,Tc0*i10;Xh1A(B <Delete> ,T`0>Wh1ME:0"i1M$GRAMM!(9!CP07Qh1'0"i1M$GRA09Qi19>M04U10!Q1:$GRA!0Gi1R'"M'K09i1R(M(B.
+   ,T:CC07Q1407Uh105h1M`09Wh1M'0!Q190!g1(PKRBd;(B.
 
-0,T7h(B1,TR9JRARC6E:(B0,TMQ(B1,T!"CP(B Newline ,TMM!d(B0,T4i(B1,T`(B0,T*h(B1,T9`(B0,T4U(B1,TBG(B0,T!Q(B1,T:(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,TMWh(B1,T9f(B. ,T!RCE:(B0,TMQ(B1,T!"CP(B Newline 
-,TCPK(B0,TGh(B1,TR'JM':CC(B0,T7Q(B1,T4(P`(B0,T;g(B1,T9!RCCGAJM':CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9`(B0,T"i(B1,TR`(B0,T;g(B1,T9:CC(B0,T7Q(B1,T4`(B0,T4U(B1,TBG(B. 0,T6i(B1,TR<E"M'!RCCGAJM'(B
-,T:CC(B0,T7Q(B1,T4`(B0,T"i(B1,TR(B0,T4i(B1,TGB(B0,T!Q(B1,T97Sc(B0,TKi(B1,T:CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9BRG`(B0,T!T(B1,T9!(B0,TGh(B1,TR:CC(B0,T7Q(B1,T4"M'K(B0,T9i(B1,TR(Ma(B0,TEi(B1,TG(B, ,T:CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9(B0,T!g(B1,T(P`(B0,T;g(B1,T9:CC(B0,T7Q(B1,T4(B
-,Ta::(B0,T5h(B1,TM`(B0,T9Wh(B1,TM'(B.
+0,T7h1R9JRARC6E:0MQ1!"CP(B Newline ,TMM!d04i1`0*h19`04U1BG0!Q1:05Q1G0MQ1!IC0MWh19f(B. ,T!RCE:0MQ1!"CP(B Newline
+,TCPK0Gh1R'JM':CC07Q14(P`0;g19!RCCGAJM':CC07Q1409Qi19`0"i1R`0;g19:CC07Q14`04U1BG(B. 0,T6i1R<E"M'!RCCGAJM'(B
+,T:CC07Q14`0"i1R04i1GB0!Q197Sc0Ki1:CC07Q1409Qi19BRG`0!T19!0Gh1R:CC07Q14"M'K09i1R(Ma0Ei1G(B, ,T:CC07Q1409Qi190!g1(P`0;g19:CC07Q14(B
+,Ta::05h1M`09Wh1M'(B.
 
->> ,T`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M':CC(B0,T7Q(B1,T4(B, ,Ta(B0,TEi(B1,TG!4(B0,T;Xh(B1,TA(B <Delete>.
-   ,T:CC(B0,T7Q(B1,T4(B0,T;Q(B1,T((B0,T(X(B10,T:Q(B1,T9(P(B0,T6Y(B1,T!`(B0,T*Wh(B1,TMA`(B0,T"i(B1,TR(B0,T!Q(B1,T::CC(B0,T7Q(B1,T4(B0,T!h(B1,TM9K(B0,T9i(B1,TR(B.
+>> ,T`$0EWh1M9`$M0Cl1`+M0Cl1d;0BQ1'5SaK09h1'`0CTh1A05i19"M':CC07Q14(B, ,Ta0Ei1G!40;Xh1A(B <Delete>.
+   ,T:CC07Q140;Q1(0(X10:Q19(P06Y1!`0*Wh1MA`0"i1R0!Q1::CC07Q140!h1M9K09i1R(B.
 
->> ,T!4(B0,T;Xh(B1,TA(B <Return> ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(Pa7C!(B0,TMQ(B1,T!"CP(B Newline ,T`(B0,T"i(B1,TRd;cK(B0,TAh(B1.
+>> ,T!40;Xh1A(B <Return> ,T`0>Wh1M07Uh1(Pa7C!0MQ1!"CP(B Newline ,T`0"i1Rd;cK0Ah1(B.
 
-,T$GC(Sd(B0,TGi(B10,TGh(B1,TR$S(B0,TJQh(B1,T'(B0,TJh(B1,TG9cK(B0,T-h(B1,T"M'(B0,TMU(B1,TaA!(B0,TJl(B1,T(PJRARC67Sc(B0,TKi(B1,T;CPAGE<E(B0,T+i(B1,TSd(B0,T4i(B1,TKERB$(B0,TCQi(B1,T'(B; 0,T+Vh(B1,T'CGA(B0,T6V(B1,T'(B
-,T(S9G9(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T4i(B1,TGB(B. ,T!RC;CPAGE<E(B0,T+i(B1,TS"M'!RC(B0,T;i(B1,TM9(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T$W(B1,TM!RCa7C!(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC`K(B0,TEh(B1,TR(B0,T9Qi(B1,T9`(B0,T"i(B1,TRd;(B.
+,T$GC(Sd0Gi10Gh1R$S0JQh1'0Jh1G9cK0-h1"M'0MU1aA!0Jl1(PJRARC67Sc0Ki1;CPAGE<E0+i1Sd04i1KERB$0CQi1'(B; 0,T+Vh1'CGA06V1'(B
+,T(S9G905Q1G0MQ1!IC04i1GB(B. ,T!RC;CPAGE<E0+i1S"M'!RC0;i1M905Q1G0MQ1!IC0$W1M!RCa7C!05Q1G0MQ1!IC`K0Eh1R09Qi19`0"i1Rd;(B.
 
->> ,TEM'7S(B0,T4Y(B1,T`(B0,T4Uk(B1,TBG(B0,T9Ui(B1--0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-u 8 * ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P(B0,T;i(B1,TM9JRB(B0,TMQ(B1,T!"CP(B ********.
+>> ,TEM'7S04Y1`04Uk1BG09Ui1(B--0,T;i1M9$S0JQh1'(B C-u 8 * ,T`0>Wh1M07Uh1(P0;i1M9JRB0MQ1!"CP(B ********.
 
-0,T7h(B1,TR9d(B0,T4i(B1,T`(B0,TCU(B1,TB9(B0,TCYi(B10,T6V(B1,T'(B0,TGT(B10,T8U(B1,T!RC`(B0,T:Wi(B1,TM'(B0,T5i(B1,T9c9!RC(B0,T;i(B1,TM9:R'(B0,TJTh(B1,T':R'M(B0,TBh(B1,TR'c9(B0,TMU(B1,TaA!(B0,TJl(B1,TaEP!RCa(B0,T!i(B1,Td"(B
-0,T"i(B1,TM(B0,T<T(B1,T4>ER4(B0,T5h(B1,TR'f(B. 0,T7h(B1,TR9JRARC6(B0,T7Uh(B1,T(PE:(B0,T7U(B1,TEP$SK(B0,TCW(B1,TM(B0,T7U(B1,TEP:CC(B0,T7Q(B1,T4c97S9M'`(B0,T4U(B1,TBG(B0,T!Q(B1,T9(B. 0,T5h(B1,TMd;(B0,T9Ui(B1,T`(B0,T;g(B1,T9(B
-,T!RCJ(B0,TCX(B1,T;!RCE:(B0,T4i(B1,TGB(B0,TGT(B10,T8U(B10,T5h(B1,TR'f(B:
+0,T7h1R9d04i1`0CU1B90CYi106V1'0GT108U1!RC`0:Wi1M'05i19c9!RC0;i1M9:R'0JTh1':R'M0Bh1R'c90MU1aA!0Jl1aEP!RCa0!i1d"(B
+0,T"i1M0<T14>ER405h1R'f(B. 0,T7h1R9JRARC607Uh1(PE:07U1EP$SK0CW1M07U1EP:CC07Q14c97S9M'`04U1BG0!Q19(B. 0,T5h1Md;09Ui1`0;g19(B
+,T!RCJ0CX1;!RCE:04i1GB0GT108U105h1R'f(B:
 
-	<Delete>	,TE:(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T7Uh(B1,TM(B0,TBYh(B1,TK(B0,T9i(B1,TR5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B1
-	C-d		,TE:(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T7Uh(B1,TM(B0,TBYh(B10,T6Q(B1,T4d;K(B0,TEQ(B1,T'5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B1
+	<Delete>	,TE:05Q1G0MQ1!IC07Uh1M0BYh1K09i1R5SaK09h1'`$M0Cl1`+M0Cl1(B
+	C-d		,TE:05Q1G0MQ1!IC07Uh1M0BYh106Q14d;K0EQ1'5SaK09h1'`$M0Cl1`+M0Cl1(B
 
-	M-<Delete>	0,T&h(B1,TR$S(B0,T7Uh(B1,TM(B0,TBYh(B1,TK(B0,T9i(B1,TR5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B1
-	M-d		0,T&h(B1,TR$S(B0,T7Uh(B1,TM(B0,TBYh(B10,T6Q(B1,T4d;K(B0,TEQ(B1,T'5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B1
+	M-<Delete>	0,T&h1R$S07Uh1M0BYh1K09i1R5SaK09h1'`$M0Cl1`+M0Cl1(B
+	M-d		0,T&h1R$S07Uh1M0BYh106Q14d;K0EQ1'5SaK09h1'`$M0Cl1`+M0Cl1(B
 
-	C-k		0,T&h(B1,TR(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T5Qi(B1,T'a(B0,T5h(B1,T5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;(9(B0,T6V(B1,T'(B0,T7i(B1,TRB:CC(B0,T7Q(B1,T4(B
-	M-k		0,T&h(B1,TR(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T5Qi(B1,T'a(B0,T5h(B1,T5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;(9(B0,T6V(B1,T'(B0,T7i(B1,TRB"M';CPbB$(B
+	C-k		0,T&h1R05Q1G0MQ1!IC05Qi1'a05h15SaK09h1'`$M0Cl1`+M0Cl1d;(906V1'07i1RB:CC07Q14(B
+	M-k		0,T&h1R05Q1G0MQ1!IC05Qi1'a05h15SaK09h1'`$M0Cl1`+M0Cl1d;(906V1'07i1RB"M';CPbB$(B
 
-,T$GC(P(B0,TJQ(B1,T'`!5d(B0,T4i(B10,TGh(B1,TR$S(B0,TJQh(B1,T'(B <Delete> ,TaEP(B C-d, 0,T!Q(B1,T:(B M-<Delete> ,TaEP(B M-d ,T`(B0,T;g(B1,T9$S(B0,TJQh(B1,T'(B
-,Tc97S9M'`(B0,T4U(B1,TBG(B0,T!Q(B1,T9(B0,T7Uh(B1,T`(B0,TCTh(B1,TA(R!$S(B0,TJQh(B1,T'(B C-f ,TaEP(B M-f (,Ta(B0,TAi(B10,TGh(B1,TR(B0,T;Xh(B1,TA(B <Delete> ,T(Pd(B0,TAh(B1,Tc(B0,T*h(B10,T5Q(B1,TG(B0,TMQ(B1,T!IC(B
-0,T!g(B1,T5RA(B, ,Ta(B0,T5h(B1,Td(B0,TAh(B1,Td(B0,T4i(B1,T`(B0,T;g(B1,T9`(B0,TCWh(B1,TM'JS(B0,T$Q(B1,T-(B). ,T$S(B0,TJQh(B1,T'(B C-k ,TaEP(B M-k 0,T!g(B1,T`(B0,T*h(B1,T9`(B0,T4U(B1,TBG(B0,T!Q(B1,T:(B C-e ,TaEP(B M-e 0,T7Uh(B1
-,T7S'R9c9(B0,TEQ(B1,T!I3P`(B0,T4U(B1,TBG(B0,T!Q(B1,T9a(B0,T5h(B1,T$9EPCP(B0,T4Q(B1,T:(B, 0,T$W(B1,TMCP(B0,T4Q(B1,T:(B0,T7Uh(B1,T`(B0,T;g(B1,T9:CC(B0,T7Q(B1,T4(B0,T!Q(B1,T:;CPbB$(B.
+,T$GC(P0JQ1'`!5d04i10Gh1R$S0JQh1'(B <Delete> ,TaEP(B C-d, 0,T!Q1:(B M-<Delete> ,TaEP(B M-d ,T`0;g19$S0JQh1'(B
+,Tc97S9M'`04U1BG0!Q1907Uh1`0CTh1A(R!$S0JQh1'(B C-f ,TaEP(B M-f (,Ta0Ai10Gh1R0;Xh1A(B <Delete> ,T(Pd0Ah1c0*h105Q1G0MQ1!IC(B
+0,T!g15RA(B, ,Ta05h1d0Ah1d04i1`0;g19`0CWh1M'JS0$Q1-(B). ,T$S0JQh1'(B C-k ,TaEP(B M-k 0,T!g1`0*h19`04U1BG0!Q1:(B C-e ,TaEP(B M-e 0,T7Uh1(B
+,T7S'R9c90EQ1!I3P`04U1BG0!Q19a05h1$9EPCP04Q1:(B, 0,T$W1MCP04Q1:07Uh1`0;g19:CC07Q140!Q1:;CPbB$(B.
 
-,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9E:(B0,T5Q(B1,TG(B0,TMQ(B1,T!ICd;AR!!(B0,TGh(B1,TRK(B0,T9Vh(B1,T'(B0,T5Q(B1,TGc9$(B0,TCQi(B1,T'K(B0,T9Vh(B1,T'f(B, 0,TMU(B1,TaA!(B0,TJl(B1,T(P(B0,T:Q(B1,T9(B0,T7V(B1,T!(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!E:d;d(B0,TGi(B1
-,T`(B0,T>Wh(B1,TM(B0,TGh(B1,TR(B0,T7h(B1,TR9(PJRARC6`(B0,TCU(B1,TB!!(B0,TEQ(B1,T:ARd(B0,T4i(B10,TMU(B1,T!(B. ,T!RC`(B0,TCU(B1,TB!!(B0,TEQ(B1,T:AR"M'(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;(B0,T9Qi(B1,T9`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B
-",T!RC`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B (yanking)". 0,T7h(B1,TR9JRARC6`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;!(B0,TEQ(B1,T:ARd(B0,T4i(B1,Tb4Bc(B0,TKi(B1
-,T;CR!/c9(B0,T7Uh(B10,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;(B, ,TK(B0,TCW(B1,TM;CR!/c9(B0,T7Uh(B1,Tc4f(B ,T"M'(B0,T"i(B1,TM$GRA(B0,T!g(B1,Td(B0,T4i(B1. 0,T7h(B1,TR9JRARC6`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA(B
-0,T!Uh(B1,T$(B0,TCQi(B1,T'(B0,T!g(B1,Td(B0,T4i(B1,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P7SJS`9R(B0,T"i(B1,TM$GRA(B. ,T$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B1,Tc9!RC`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T$W(B1,TM(B C-y.
+,T`0AWh1M07h1R9E:05Q1G0MQ1!ICd;AR!!0Gh1RK09Vh1'05Q1Gc9$0CQi1'K09Vh1'f(B, 0,TMU1aA!0Jl1(P0:Q1907V1!0"i1M$GRA07Uh106Y1!E:d;d0Gi1(B
+,T`0>Wh1M0Gh1R07h1R9(PJRARC6`0CU1B!!0EQ1:ARd04i10MU1!(B. ,T!RC`0CU1B!!0EQ1:AR"M'0"i1M$GRA07Uh106Y1!0&h1Rd;09Qi19`0CU1B!0Gh1R(B
+",T!RC`0CU1B!0$W19(B (yanking)". 0,T7h1R9JRARC6`0CU1B!0$W190"i1M$GRA07Uh106Y1!0&h1Rd;!0EQ1:ARd04i1b4Bc0Ki1(B
+,T;CR!/c907Uh107Uh106Y1!0&h1Rd;(B, ,TK0CW1M;CR!/c907Uh1c4f(B ,T"M'0"i1M$GRA0!g1d04i1(B. 0,T7h1R9JRARC6`0CU1B!0$W190"i1M$GRA(B
+0,T!Uh1$0CQi1'0!g1d04i1`0>Wh1M07Uh1(P7SJS`9R0"i1M$GRA(B. ,T$S0JQh1'07Uh1c0*i1c9!RC`0CU1B!0$W190$W1M(B C-y.
 
-0,TJTh(B1,T'(B0,T7Uh(B1,T$GC(B0,TJQ(B1,T'`!5(B0,TMQ(B1,T9K(B0,T9Vh(B1,T'(B0,T$W(B1,TM(B0,T"i(B1,TMa5!(B0,T5h(B1,TR'CPK(B0,TGh(B1,TR'(B ",T!RC(B0,T&h(B1,TR(B (killing)" 0,T!Q(B1,T:(B ",T!RCE:(B
-(deleting)". 0,TJTh(B1,T'(B0,T7Uh(B10,T6Y(B1,T!(B "0,T&h(B1,TR(B (killed)" ,Td;(B0,T9Qi(B1,T9(B, ,TJRARC6(B0,T7Uh(B1,T(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B (yank) ,TARd(B0,T4i(B1, 
-,Ta(B0,T5h(B10,TJTh(B1,T'(B0,T7Uh(B10,T6Y(B1,T!(B ",TE:(B (deleted)" ,Td;(B0,T9Qi(B1,T9(B, ,Td(B0,TAh(B1,TJRARC6(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9ARd(B0,T4i(B1. ,Tb4B(B0,T7Qh(B1,TGd;(B, ,T$S(B0,TJQh(B1,T'(B0,T7Uh(B1,TJRARC6(B
-,TE:(B0,T"i(B1,TM$GRAd(B0,T4i(B10,T7U(B1,TEPAR!f(B ,T(P`(B0,T!g(B1,T:(B0,T"i(B1,TM$GRA(B0,T9Qi(B1,T9d(B0,TGi(B1, ,T"3P(B0,T7Uh(B1,T$S(B0,TJQh(B1,T'(B0,T7Uh(B1,TE:d(B0,T4i(B10,T7U(B1,TEP(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B, ,TK(B0,TCW(B1,TM:CC(B0,T7Q(B1,T4(B
-,T`;(B0,TEh(B1,TRaEP`(B0,TGi(B1,T9GCC$(B, ,T(Pd(B0,TAh(B1,T`(B0,T!g(B1,T:(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!E:d;(B.
+0,TJTh1'07Uh1$GC0JQ1'`!50MQ19K09Vh1'0$W1M0"i1Ma5!05h1R'CPK0Gh1R'(B ",T!RC0&h1R(B (killing)" 0,T!Q1:(B ",T!RCE:(B
+(deleting)". 0,TJTh1'07Uh106Y1!(B "0,T&h1R(B (killed)" ,Td;09Qi19(B, ,TJRARC607Uh1(P`0CU1B!0$W19(B (yank) ,TARd04i1(B,
+,Ta05h10JTh1'07Uh106Y1!(B ",TE:(B (deleted)" ,Td;09Qi19(B, ,Td0Ah1JRARC6(P`0CU1B!0$W19ARd04i1(B. ,Tb4B07Qh1Gd;(B, ,T$S0JQh1'07Uh1JRARC6(B
+,TE:0"i1M$GRAd04i107U1EPAR!f(B ,T(P`0!g1:0"i1M$GRA09Qi19d0Gi1(B, ,T"3P07Uh1$S0JQh1'07Uh1E:d04i107U1EP05Q1G0MQ1!IC(B, ,TK0CW1M:CC07Q14(B
+,T`;0Eh1RaEP`0Gi19GCC$(B, ,T(Pd0Ah1`0!g1:0"i1M$GRA07Uh106Y1!E:d;(B.
 
->> ,T`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;(B0,TBQ(B1,T'(B0,T(X(B1,T4`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M':CC(B0,T7Q(B1,T4(B0,T7Uh(B1,Td(B0,TAh(B1,Tc(B0,T*h(B1,T:CC(B0,T7Q(B1,T4`;(B0,TEh(B1,TR(B.
-   ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-k ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P(B0,T&h(B1,TR(B0,T"i(B1,TM$GRA(B0,T7Uh(B1,TM(B0,TBYh(B1,T:9:CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9(B.
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-k 0,TMU(B1,T!$(B0,TCQi(B1,T'K(B0,T9Vh(B1,T'(B. 0,T7h(B1,TR9(P`(B0,TKg(B1,T9(B0,TGh(B1,TR(B0,TMQ(B1,T!"CP(B Newline 0,T7Uh(B1,TM(B0,TBYh(B10,T7i(B1,TRB:CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9(P(B0,T6Y(B1,T!(B
-   0,T&h(B1,TRd;(B.
+>> ,T`$0EWh1M9`$M0Cl1`+M0Cl1d;0BQ1'0(X14`0CTh1A05i19"M':CC07Q1407Uh1d0Ah1c0*h1:CC07Q14`;0Eh1R(B.
+   ,Ta0Ei1G0;i1M9$S0JQh1'(B C-k ,T`0>Wh1M07Uh1(P0&h1R0"i1M$GRA07Uh1M0BYh1:9:CC07Q1409Qi19(B.
+>> 0,T;i1M9$S0JQh1'(B C-k 0,TMU1!$0CQi1'K09Vh1'(B. 0,T7h1R9(P`0Kg190Gh1R0MQ1!"CP(B Newline 0,T7Uh1M0BYh107i1RB:CC07Q1409Qi19(P06Y1!(B
+   0,T&h1Rd;(B.
 
-,T(P(B0,TJQ(B1,T'`!5d(B0,T4i(B10,TGh(B1,TR$S(B0,TJQh(B1,T'(B C-k ,T$S(B0,TJQh(B1,T'aC!(P(B0,T&h(B1,TR`(B0,T9Wi(B1,TM$GRA"M':CC(B0,T7Q(B1,T4(B, ,TaEP$S(B0,TJQh(B1,T'(B C-k ,T$S(B0,TJQh(B1,T'(B
-0,T7Uh(B1,TJM'(P(B0,T&h(B1,TR:CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9(B, ,TaEP(P"(B0,TBQ(B1,T::CC(B0,T7Q(B1,T4(B0,TMWh(B1,T9f(B 0,T7Uh(B1,T`K(B0,TEW(B1,TM(B0,T7Qi(B1,T'KA4(B0,T"Vi(B1,T9(B. ,T$S(B0,TJQh(B1,T'(B C-k 0,T(Q(B1,T4!RC(B0,T!Q(B1,T:(B
-0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,Tc9(B0,TEQ(B1,T!I3P(B0,T7Uh(B1,Ta5!(B0,T5h(B1,TR'MM!d;(B: ,T$S(B0,TJQh(B1,T'(B0,T9Ui(B1,T(P(B0,T&h(B1,TRKERBf(B ,T:CC(B0,T7Q(B1,T4aEP`(B0,T9Wi(B1,TMKR"M'(B
-0,T"i(B1,TM$GRA(B0,T4i(B1,TGB(B. 0,T9Uh(B1,Td(B0,TAh(B1,T`K(B0,TAW(B1,TM9!RC7S(B0,T+i(B1,TSa::;C!(B0,T5T(B1. ,T$S(B0,TJQh(B1,T'(B C-u 2 C-k ,T(P(B0,T&h(B1,TR(B0,T7Qi(B1,T'JM':CC(B0,T7Q(B1,T4(B
-,T>(B0,TCi(B1,TMA(B0,T7Qi(B1,T'(B0,TMQ(B1,T!"CP(B Newline ,T"M':CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9f(B 0,T4i(B1,TGB(B; 0,T+Vh(B1,T'(B0,T5h(B1,TR'(R!!RC7S$S(B0,TJQh(B1,T'(B C-k ,TJM'$(B0,TCQi(B1,T'(B.
+,T(P0JQ1'`!5d04i10Gh1R$S0JQh1'(B C-k ,T$S0JQh1'aC!(P0&h1R`09Wi1M$GRA"M':CC07Q14(B, ,TaEP$S0JQh1'(B C-k ,T$S0JQh1'(B
+0,T7Uh1JM'(P0&h1R:CC07Q1409Qi19(B, ,TaEP(P"0BQ1::CC07Q140MWh19f(B 0,T7Uh1`K0EW1M07Qi1'KA40"Vi19(B. ,T$S0JQh1'(B C-k 0,T(Q14!RC0!Q1:(B
+0,T5Q1G`E"MR0Cl10!T1G`A905l1c90EQ1!I3P07Uh1a5!05h1R'MM!d;(B: ,T$S0JQh1'09Ui1(P0&h1RKERBf(B ,T:CC07Q14aEP`09Wi1MKR"M'(B
+0,T"i1M$GRA04i1GB(B. 0,T9Uh1d0Ah1`K0AW1M9!RC7S0+i1Sa::;C!05T1(B. ,T$S0JQh1'(B C-u 2 C-k ,T(P0&h1R07Qi1'JM':CC07Q14(B
+,T>0Ci1MA07Qi1'0MQ1!"CP(B Newline ,T"M':CC07Q1409Qi19f(B 0,T4i1GB(B; 0,T+Vh1'05h1R'(R!!RC7S$S0JQh1'(B C-k ,TJM'$0CQi1'(B.
 
-,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-y ,Tc9!RC(B0,T7Uh(B1,T(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;K(B0,TEQ(B1,T'(B0,TJX(B1,T4(B. 0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T9Qi(B1,T9(P(B
-,T;CR!/(B0,T7Uh(B1,T5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B10,T;Q(B1,T((B0,T(X(B10,T:Q(B1,T9(B.
+,Tc0*i1$S0JQh1'(B C-y ,Tc9!RC07Uh1(P`0CU1B!0$W190"i1M$GRA07Uh106Y1!0&h1Rd;K0EQ1'0JX14(B. 0,T"i1M$GRA07Uh106Y1!`0CU1B!0$W1909Qi19(P(B
+,T;CR!/07Uh15SaK09h1'`$M0Cl1`+M0Cl10;Q1(0(X10:Q19(B.
 
->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-y ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA!(B0,TEQ(B1,T:AR(B.
+>> ,TEM'c0*i1$S0JQh1'(B C-y ,T`0>Wh1M07Uh1(P`0CU1B!0$W190"i1M$GRA!0EQ1:AR(B.
 
-,T$S(B0,TJQh(B1,T'(B C-y 0,T!g(B1,T`K(B0,TAW(B1,TM9!RC`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,TJTh(B1,T'"M'(B0,T7Uh(B1,Tc$C:R'$9d(B0,T4i(B1,T`MRd;(R!(B0,T7h(B1,TR9(B. 0,T7h(B1,TR9(P(B0,TJQ(B1,T'`!5d(B0,T4i(B10,TGh(B1,TR(B
-0,T6i(B1,TR(B0,T7h(B1,TR9c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-k 0,T5T(B1,T4(B0,T5h(B1,TM(B0,T!Q(B1,T9KERBf(B ,T$(B0,TCQi(B1,T'(B, 0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;(B0,T7Qi(B1,T'KA4(P(B0,T6Y(B1,T!`(B0,T!g(B1,T:d(B0,TGi(B10,T4i(B1,TGB(B0,T!Q(B1,T9(B,
-,T)P(B0,T9Qi(B1,T9!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-y ,T`(B0,T>U(B1,TB'$(B0,TCQi(B1,T'`(B0,T4U(B1,TBG(B0,T!g(B1,T(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA!(B0,TEQ(B1,T:ARd(B0,T4i(B10,T7Qi(B1,T'KA4(B.
+,T$S0JQh1'(B C-y 0,T!g1`K0AW1M9!RC`0CU1B!0$W190JTh1'"M'07Uh1c$C:R'$9d04i1`MRd;(R!07h1R9(B. 0,T7h1R9(P0JQ1'`!5d04i10Gh1R(B
+0,T6i1R07h1R9c0*i1$S0JQh1'(B C-k 0,T5T1405h1M0!Q19KERBf(B ,T$0CQi1'(B, 0,T"i1M$GRA07Uh106Y1!0&h1Rd;07Qi1'KA4(P06Y1!`0!g1:d0Gi104i1GB0!Q19(B,
+,T)P09Qi19!RCc0*i1$S0JQh1'(B C-y ,T`0>U1B'$0CQi1'`04U1BG0!g1(P`0CU1B!0$W190"i1M$GRA!0EQ1:ARd04i107Qi1'KA4(B.
 
->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-k ,TKERBf(B ,T$(B0,TCQi(B1,T'(B0,T4Y(B1.
+>> ,TEM'c0*i1$S0JQh1'(B C-k ,TKERBf(B ,T$0CQi1'04Y1(B.
 
-,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;(B:
+,T`0>Wh1M07Uh1(P`0CU1B!0$W190"i1M$GRA07Uh106Y1!0&h1Rd;(B:
 
->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-y. ,Ta(B0,TEi(B1,TG`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,TE'd;(B0,TJQ(B1,T!JM'JRA:CC(B0,T7Q(B1,T4(B, ,Ta(B0,TEi(B1,TGc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-y
-   0,TMU(B1,T!$(B0,TCQi(B1,T'(B. 0,T7h(B1,TR9(P`(B0,T"i(B1,TRc((B0,TGT(B10,T8U(B1,T!RC(B0,T7Uh(B1,T(PJS`9R(B0,T"i(B1,TM$GRA(B.
+>> ,TEM'c0*i1$S0JQh1'(B C-y. ,Ta0Ei1G`$0EWh1M9`$M0Cl1`+M0Cl1E'd;0JQ1!JM'JRA:CC07Q14(B, ,Ta0Ei1Gc0*i1$S0JQh1'(B C-y
+   0,TMU1!$0CQi1'(B. 0,T7h1R9(P`0"i1Rc(0GT108U1!RC07Uh1(PJS`9R0"i1M$GRA(B.
 
-0,T7h(B1,TR9(P7SM(B0,TBh(B1,TR'dC(B0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T5i(B1,TM'!RC(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA:R'M(B0,TBh(B1,TR'(B, ,Ta(B0,TEi(B1,TG(B0,T&h(B1,TR:R'M(B0,TBh(B1,TR'MM!d;(B?
-,T$S(B0,TJQh(B1,T'(B C-y ,T(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TR(B0,TEh(B1,TR(B0,TJX(B1,T4(B. ,Ta(B0,T5h(B10,T"i(B1,TM$GRA(B0,T!h(B1,TM9K(B0,T9i(B1,TR(B0,T9Qi(B1,T9(B0,TBQ(B1,T'$'`K(B0,TEW(B1,TMM(B0,TBYh(B1. 0,T7h(B1,TR9(B
-,TJRARC6(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9ARd(B0,T4i(B10,TMU(B1,T!b4Bc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-y. ,TK(B0,TEQ(B1,T'(R!(B0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B1,T`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA(B0,TEh(B1,TR(B0,TJX(B1,T4a(B0,TEi(B1,TG(B,
-,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-y ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA(B0,T!h(B1,TM9K(B0,T9i(B1,TR(B0,T9Qi(B1,T9ARa79(B0,T7Uh(B1. ,T!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-y ,Ta(B0,T5h(B1,TEP$(B0,TCQi(B1,T'(B
-,T(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;c9ES(B0,T4Q(B1,T:(B0,T7Uh(B10,TBi(B1,TM9!(B0,TEQ(B1,T:(B0,T"Vi(B1,T9d;(B. ,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9d(B0,T4i(B10,T"i(B1,TM$GRA(B0,T7Uh(B10,T5i(B1,TM'!RC!(B0,TEQ(B1,T:(B0,T$W(B1,T9AR(B, 
-0,T7h(B1,TR9(B0,T!g(B1,Td(B0,TAh(B1,T(S`(B0,T;g(B1,T9(B0,T7Uh(B1,T(P(B0,T5i(B1,TM'7SMPdC(B0,T!Q(B1,T:(B0,T"i(B1,TM$GRA(B0,T9Qi(B1,T9(B0,TMU(B1,T!(B. ,T`(B0,T>U(B1,TB';(B0,TEh(B1,TMBM(B0,TBYh(B1,TM(B0,TBh(B1,TR'(B0,T9Qi(B1,T9(B, ,Ta(B0,TEi(B1,TG7S!RCa(B0,T!i(B1,Td"(B
-0,T"i(B1,TM$GRA(B0,TMWh(B1,T9(B0,T5h(B1,TMd;(B.
+0,T7h1R9(P7SM0Bh1R'dC06i1R07h1R905i1M'!RC(P`0CU1B!0$W190"i1M$GRA:R'M0Bh1R'(B, ,Ta0Ei1G0&h1R:R'M0Bh1R'MM!d;(B?
+,T$S0JQh1'(B C-y ,T(P`0CU1B!0$W190"i1M$GRA07Uh106Y1!0&h1R0Eh1R0JX14(B. ,Ta05h10"i1M$GRA0!h1M9K09i1R09Qi190BQ1'$'`K0EW1MM0BYh1(B. 0,T7h1R9(B
+,TJRARC6(P`0CU1B!0$W19ARd04i10MU1!b4Bc0*i1$S0JQh1'(B M-y. ,TK0EQ1'(R!07Uh107h1R9d04i1`0CU1B!0$W190"i1M$GRA0Eh1R0JX14a0Ei1G(B,
+,Tc0*i1$S0JQh1'(B M-y ,T`0>Wh1M07Uh1(P`0CU1B!0$W190"i1M$GRA0!h1M9K09i1R09Qi19ARa7907Uh1(B. ,T!RCc0*i1$S0JQh1'(B M-y ,Ta05h1EP$0CQi1'(B
+,T(P`0CU1B!0$W190"i1M$GRA07Uh106Y1!0&h1Rd;c9ES04Q1:07Uh10Bi1M9!0EQ1:0"Vi19d;(B. ,T`0AWh1M07h1R9d04i10"i1M$GRA07Uh105i1M'!RC!0EQ1:0$W19AR(B,
+0,T7h1R90!g1d0Ah1(S`0;g1907Uh1(P05i1M'7SMPdC0!Q1:0"i1M$GRA09Qi190MU1!(B. ,T`0>U1B';0Eh1MBM0BYh1M0Bh1R'09Qi19(B, ,Ta0Ei1G7S!RCa0!i1d"(B
+0,T"i1M$GRA0MWh1905h1Md;(B.
 
-0,T6i(B1,TR(B0,T7h(B1,TR9c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-y 0,T4i(B1,TGB(S9G9$(B0,TCQi(B1,T'(B0,T7Uh(B1,TAR!>M(B, 0,T7h(B1,TR9(P(B0,TBi(B1,TM9!(B0,TEQ(B1,T:AR(B0,TBQ(B1,T'(B0,T(X(B1,T4`(B0,TCTh(B1,TA(B0,T5i(B1,T9(B0,TMU(B1,T!$(B0,TCQi(B1,T'(B 
-(0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;(B0,TEh(B1,TR(B0,TJX(B1,T4(B).
+0,T6i1R07h1R9c0*i1$S0JQh1'(B M-y 0,T4i1GB(S9G9$0CQi1'07Uh1AR!>M(B, 0,T7h1R9(P0Bi1M9!0EQ1:AR0BQ1'0(X14`0CTh1A05i190MU1!$0CQi1'(B
+(0,T"i1M$GRA07Uh106Y1!0&h1Rd;0Eh1R0JX14(B).
 
->> 0,T&h(B1,TRK(B0,T9Vh(B1,T':CC(B0,T7Q(B1,T4(B, ,T`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;(B, 0,T&h(B1,TR(B0,TMU(B1,T!:CC(B0,T7Q(B1,T4(B.
-   ,Ta(B0,TEi(B1,TGc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-y ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9:CC(B0,T7Q(B1,T4(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;c9$(B0,TCQi(B1,T'(B0,T7Uh(B1,TJM'(B.
-   ,Ta(B0,TEi(B1,TGc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-y 0,T+Vh(B1,T'(P`(B0,TCV(B1,TB!(B0,T$W(B1,T9:CC(B0,T7Q(B1,T4(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;c9$(B0,TCQi(B1,T'aC!ARa79(B0,T7Uh(B1.
-   ,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-y 0,TMU(B1,T!(B, ,Ta(B0,TEi(B1,TG(B0,T4Y(B10,TGh(B1,TR(P`(B0,T!T(B1,T4MPdC(B0,T"Vi(B1,T9(B. ,TEM'7Sd;`(B0,TCWh(B1,TMBf(B ,T(9!(B0,TGh(B1,TR:CC(B0,T7Q(B1,T4(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;(B
-   ,Tc9$(B0,TCQi(B1,T'(B0,T7Uh(B1,TJM'(P!(B0,TEQ(B1,T:(B0,T$W(B1,T9AR(B, ,Ta(B0,TEi(B1,TG7Sd;(B0,TMU(B1,T!(B0,TJQ(B1,T!CPBP(B.
-   0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T5i(B1,TM'!RC(B, 0,T7h(B1,TR9MR((PEM'!S(B0,T!Q(B1,T:(B0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B10,T7Qi(B1,T'(B0,T7Uh(B1,T`(B0,T;g(B1,T9(S9G9:G!aEPE:c(B0,TKi(B10,T!Q(B1,T:(B
-   ,T$S(B0,TJQh(B1,T'(B M-y 0,T4Y(B1.
+>> 0,T&h1RK09Vh1':CC07Q14(B, ,T`$0EWh1M9`$M0Cl1`+M0Cl1d;(B, 0,T&h1R0MU1!:CC07Q14(B.
+   ,Ta0Ei1Gc0*i1$S0JQh1'(B C-y ,T`0>Wh1M07Uh1(P`0CU1B!0$W19:CC07Q1407Uh106Y1!0&h1Rd;c9$0CQi1'07Uh1JM'(B.
+   ,Ta0Ei1Gc0*i1$S0JQh1'(B M-y 0,T+Vh1'(P`0CV1B!0$W19:CC07Q1407Uh106Y1!0&h1Rd;c9$0CQi1'aC!ARa7907Uh1(B.
+   ,Tc0*i1$S0JQh1'(B M-y 0,TMU1!(B, ,Ta0Ei1G04Y10Gh1R(P`0!T14MPdC0"Vi19(B. ,TEM'7Sd;`0CWh1MBf(B ,T(9!0Gh1R:CC07Q1407Uh106Y1!0&h1Rd;(B
+   ,Tc9$0CQi1'07Uh1JM'(P!0EQ1:0$W19AR(B, ,Ta0Ei1G7Sd;0MU1!0JQ1!CPBP(B.
+   0,T6i1R07h1R905i1M'!RC(B, 0,T7h1R9MR((PEM'!S0!Q1:05Q1G`E"MR0Cl10!T1G`A905l107Qi1'07Uh1`0;g19(S9G9:G!aEPE:c0Ki10!Q1:(B
+   ,T$S0JQh1'(B M-y 0,T4Y1(B.
 
 
-* ,T!RC7S(B0,TBi(B1,TM9(B (undo)
+* ,T!RC7S0Bi1M9(B (undo)
 -------------------
 
-0,T6i(B1,TR(B0,T7h(B1,TR9d(B0,T4i(B1,Ta(B0,T!i(B1,Td"(B0,T"i(B1,TM$GRAd;(B, ,TaEP(B0,T$T(B1,T4(B0,TGh(B1,TRd(B0,T4i(B1,T7S(B0,T<T(B1,T4>ER4d;(B, 0,T7h(B1,TR9JRARC67S(B0,TBi(B1,TM9(B0,TJTh(B1,T'(B0,T7Uh(B1,Td(B0,T4i(B1
-,T`;(B0,TEUh(B1,TB9a;E'd;a(B0,TEi(B1,TG(B0,T4i(B1,TGB$S(B0,TJQh(B1,T'!RC7S(B0,TBi(B1,TM9(B, C-x u.
+0,T6i1R07h1R9d04i1a0!i1d"0"i1M$GRAd;(B, ,TaEP0$T140Gh1Rd04i17S0<T14>ER4d;(B, 0,T7h1R9JRARC67S0Bi1M90JTh1'07Uh1d04i1(B
+,T`;0EUh1B9a;E'd;a0Ei1G04i1GB$S0JQh1'!RC7S0Bi1M9(B, C-x u.
 
-,Tb4B;C!(B0,T5T(B1, ,T$S(B0,TJQh(B1,T'(B C-x u ,T7S(B0,TBi(B1,TM9$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Td(B0,T4i(B1,T7Sd;a(B0,TEi(B1,TGK(B0,T9Vh(B1,T'$S(B0,TJQh(B1,T'(B; 0,T6i(B1,TR(B0,T7h(B1,TR97S(B0,TBi(B1,TM9(B0,T+i(B1,TS(B0,T5T(B1,T4(B0,T5h(B1,TM(B0,T!Q(B1,T9(B,
-,T!RC7S(B0,TBi(B1,TM9a(B0,T5h(B1,TEP$(B0,TCQi(B1,T'(P(B0,TBi(B1,TM9$S(B0,TJQh(B1,T'd;(B0,T7U(B1,TEP$S(B0,TJQh(B1,T'(B.
+,Tb4B;C!05T1(B, ,T$S0JQh1'(B C-x u ,T7S0Bi1M9$S0JQh1'07Uh1d04i17Sd;a0Ei1GK09Vh1'$S0JQh1'(B; 0,T6i1R07h1R97S0Bi1M90+i1S05T1405h1M0!Q19(B,
+,T!RC7S0Bi1M9a05h1EP$0CQi1'(P0Bi1M9$S0JQh1'd;07U1EP$S0JQh1'(B.
 
-,Ta(B0,T5h(B10,TAU(B10,T"i(B1,TMB!`(B0,TGi(B1,T9M(B0,TBYh(B1,TJM';CP!RC(B: ,T$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Td(B0,TAh(B1,T`;(B0,TEUh(B1,TB9a;E'(B0,T"i(B1,TM$GRA(Pd(B0,TAh(B10,T9Q(B1,T:CGAM(B0,TBYh(B10,T4i(B1,TGB(B (0,T9Uh(B1,TCGA(B0,T6V(B1,T'(B
-,T$S(B0,TJQh(B1,T'!RC`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,TaEP!RC`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B), ,TaEP!RCa7C!(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T!g(B1,T(P(B0,T6Y(B1,T!(B0,T(Q(B1,T4!RCb4BCGA(B
-,T`(B0,T;g(B1,T9!(B0,TEXh(B1,TA(B0,T7Uh(B1,Td(B0,TAh(B1,T`(B0,T!T(B1,T9(B 20 0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T5h(B1,TM!(B0,TEXh(B1,TA(B. (0,T7Qi(B1,T'(B0,T9Ui(B1,T`(B0,T>Wh(B1,TME4(S9G9$(B0,TCQi(B1,T'"M'$S(B0,TJQh(B1,T'(B C-x u ,Tc9!RC7S(B
-0,TBi(B1,TM9!RCa7C!(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B.)
+,Ta05h10AU10"i1MB!`0Gi19M0BYh1JM';CP!RC(B: ,T$S0JQh1'07Uh1d0Ah1`;0EUh1B9a;E'0"i1M$GRA(Pd0Ah109Q1:CGAM0BYh104i1GB(B (0,T9Uh1CGA06V1'(B
+,T$S0JQh1'!RC`$0EWh1M9`$M0Cl1`+M0Cl1aEP!RC`$0EWh1M90Ai1G9(B), ,TaEP!RCa7C!05Q1G0MQ1!IC0!g1(P06Y1!0(Q14!RCb4BCGA(B
+,T`0;g19!0EXh1A07Uh1d0Ah1`0!T19(B 20 0,T5Q1G0MQ1!IC05h1M!0EXh1A(B. (0,T7Qi1'09Ui1`0>Wh1ME4(S9G9$0CQi1'"M'$S0JQh1'(B C-x u ,Tc9!RC7S(B
+0,TBi1M9!RCa7C!05Q1G0MQ1!IC(B.)
 
->> 0,T&h(B1,TR:CC(B0,T7Q(B1,T4(B0,T9Ui(B10,T4i(B1,TGB$S(B0,TJQh(B1,T'(B C-k, ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x u. ,T:CC(B0,T7Q(B1,T4(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;(P;CR!/!(B0,TEQ(B1,T:(B0,T$W(B1,T9AR(B.
+>> 0,T&h1R:CC07Q1409Ui104i1GB$S0JQh1'(B C-k, ,Ta0Ei1G0;i1M9$S0JQh1'(B C-x u. ,T:CC07Q1407Uh106Y1!0&h1Rd;(P;CR!/!0EQ1:0$W19AR(B.
 
-,T$S(B0,TJQh(B1,T'(B C-_ ,T`(B0,T;g(B1,T9(B0,TMU(B1,T!$S(B0,TJQh(B1,T'K(B0,T9Vh(B1,T'JSK(B0,TCQ(B1,T:!RC7S(B0,TBi(B1,TM9(B; ,T$S(B0,TJQh(B1,T'(B0,T9Ui(B1,T7S'R9`K(B0,TAW(B1,TM9(B0,T!Q(B1,T:$S(B0,TJQh(B1,T'(B C-x u,
-,Ta(B0,T5h(B10,TGh(B1,TRJP4G!!(B0,TGh(B1,TRc9!RC(B0,T;i(B1,TM9KERBf(B ,T$(B0,TCQi(B1,T'(B0,T5T(B1,T4(B0,T5h(B1,TM(B0,T!Q(B1,T9(B. 0,T"i(B1,TM`(B0,TJU(B1,TB"M'$S(B0,TJQh(B1,T'(B C-_ 0,T9Ui(B10,T$W(B1,TMc9:R'(B
-,Ta(B0,T;i(B1,T9(B0,T>T(B1,TA(B0,T>l(B1, ,TMR((Pd(B0,TAh(B1,T7CR:(B0,TGh(B1,TR(P(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'd(B0,T4i(B1,TM(B0,TBh(B1,TR'dC(B. 0,T9Qh(B1,T9(B0,T$W(B1,TM`K(B0,T5X(B10,T7Uh(B1,T7Sc(B0,TKi(B1,T`CR(B0,T5i(B1,TM'`5(B0,TCU(B1,TBA$S(B0,TJQh(B1,T'(B
-C-x u ,Tc(B0,TKi(B10,TMU(B1,T!(B0,T5h(B1,TR'KR!(B. ,Tc9`$(B0,TCWh(B1,TM';ERB7R':R'*(B0,T9T(B1,T4(B,0,T7h(B1,TR9MR((P(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-_ ,Td(B0,T4i(B1,Tb4B!RC!4(B
-0,TMQ(B1,T!"CP(B / ,Tc9"3P(B0,T7Uh(B1,T!4(B0,T;Xh(B1,TA(B CONTROL.
+,T$S0JQh1'(B C-_ ,T`0;g190MU1!$S0JQh1'K09Vh1'JSK0CQ1:!RC7S0Bi1M9(B; ,T$S0JQh1'09Ui17S'R9`K0AW1M90!Q1:$S0JQh1'(B C-x u,
+,Ta05h10Gh1RJP4G!!0Gh1Rc9!RC0;i1M9KERBf(B ,T$0CQi1'05T1405h1M0!Q19(B. 0,T"i1M`0JU1B"M'$S0JQh1'(B C-_ 0,T9Ui10$W1Mc9:R'(B
+,Ta0;i190>T1A0>l1(B, ,TMR((Pd0Ah17CR:0Gh1R(P0;i1M9$S0JQh1'd04i1M0Bh1R'dC(B. 0,T9Qh190$W1M`K05X107Uh17Sc0Ki1`CR05i1M'`50CU1BA$S0JQh1'(B
+C-x u ,Tc0Ki10MU1!05h1R'KR!(B. ,Tc9`$0CWh1M';ERB7R':R'*09T14(B,0,T7h1R9MR((P0;i1M9$S0JQh1'(B C-_ ,Td04i1b4B!RC!4(B
+0,TMQ1!"CP(B / ,Tc9"3P07Uh1!40;Xh1A(B CONTROL.
 
-0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,TJSK(B0,TCQ(B1,T:$S(B0,TJQh(B1,T'(B C-_ ,TaEP(B C-x u ,T(P`(B0,T;g(B1,T9!RC(B0,T+i(B1,TS(S9G9$(B0,TCQi(B1,T'"M'$S(B0,TJQh(B1,T'(B.
+0,T5Q1G`E"MR0Cl10!T1G`A905l1JSK0CQ1:$S0JQh1'(B C-_ ,TaEP(B C-x u ,T(P`0;g19!RC0+i1S(S9G9$0CQi1'"M'$S0JQh1'(B.
 
 
-* ,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B (file)
+* ,Ta0?i1A0"i1M0AY1E(B (file)
 ----------------
 
-,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`(B0,T!g(B1,T:(B0,T"i(B1,TM$GRA(B0,T7Uh(B1,Td(B0,T4i(B1,Ta(B0,T!i(B1,Td"d;(B0,T9Qi(B1,T9(B, 0,T7h(B1,TR9(P(B0,T5i(B1,TM'`(B0,T!g(B1,T:(B0,T"i(B1,TM$GRA(B0,T9Qi(B1,T9d(B0,TGi(B1,Tc9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B. ,Td(B0,TAh(B1,T`(B0,T*h(B1,T9(B0,T9Qi(B1,T9(B
-0,T"i(B1,TM$GRA(B0,T!g(B1,T(PKRBd;`(B0,TAWh(B1,TM(B0,T7h(B1,TR9`(B0,TET(B1,T!c(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1. ,T!RC(B0,T7Uh(B1,T(P`(B0,T!g(B1,T:(B0,T"i(B1,TM$GRA(B0,T9Qi(B1,T9E'c9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B, 0,T7h(B1,TR9(B
-,T(P(B0,T5i(B1,TM'(B "0,T$i(B1,T9KR(B (find)" ,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T!h(B1,TM9(B0,T7Uh(B1,T(P`(B0,T"i(B1,TRd;c9(B0,T"i(B1,TM$GRA(B0,T9Qi(B1,T9d(B0,T4i(B1. (0,T9Uh(B1,T`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B ",T!RC(B
-,T`(B0,TBW(B1,TM9(B (visiting)" ,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B.)
+,T`0>Wh1M07Uh1(P`0!g1:0"i1M$GRA07Uh1d04i1a0!i1d"d;09Qi19(B, 0,T7h1R9(P05i1M'`0!g1:0"i1M$GRA09Qi19d0Gi1c9a0?i1A0"i1M0AY1E(B. ,Td0Ah1`0*h1909Qi19(B
+0,T"i1M$GRA0!g1(PKRBd;`0AWh1M07h1R9`0ET1!c0*i10MU1aA!0Jl1(B. ,T!RC07Uh1(P`0!g1:0"i1M$GRA09Qi19E'c9a0?i1A0"i1M0AY1E(B, 0,T7h1R9(B
+,T(P05i1M'(B "0,T$i19KR(B (find)" ,Ta0?i1A0"i1M0AY1E0!h1M907Uh1(P`0"i1Rd;c90"i1M$GRA09Qi19d04i1(B. (0,T9Uh1`0CU1B!0Gh1R(B ",T!RC(B
+,T`0BW1M9(B (visiting)" ,Ta0?i1A0"i1M0AY1E(B.)
 
-,T!RC(B0,T$i(B1,T9KRa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEKARB(B0,T6V(B1,T'!RC(B0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B1,T`(B0,TKg(B1,T9`(B0,T9Wi(B1,TMKR"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE@RBc9(B0,TMU(B1,TaA!(B0,TJl(B1. ,Tc9KERBf(B 
-,T7R'(B, 0,T4Y(B1,T`K(B0,TAW(B1,TM9(B0,TGh(B1,TR(B0,T7h(B1,TR9!S(B0,TEQ(B1,T'a(B0,T!i(B1,Td"(B0,T"i(B1,TM(B0,TAY(B1,TEc9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEM(B0,TBYh(B1. ,TM(B0,TBh(B1,TR'dC(B0,T!g(B1,T5RA(B, ,T!RCa(B0,T!i(B1,Td"@RBc9(B0,TMU(B1
-,TaA!(B0,TJl(B10,T9Qi(B1,T9(Pd(B0,TAh(B1,T$'M(B0,TBYh(B1,T(9!(B0,TGh(B1,TR(B0,T7h(B1,TR9(P(B "0,T(Q(B1,T4`(B0,T!g(B1,T:(B (save)" ,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T9Qi(B1,T9(B. 0,T9Uh(B1,T`(B0,T;g(B1,T9!RC(B0,T*h(B1,TGBc(B0,TKi(B10,T7h(B1,TR9(B
-,TJRARC6K(B0,TEU(B1,T!`(B0,TEUh(B1,TB'!RC7Sc(B0,TKi(B1,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T6Y(B1,T!a(B0,T!i(B1,Td"d(B0,TGi(B1,T$(B0,TCVh(B1,T'f(B ,T!ER'f(B 0,T6i(B1,TR(B0,T7h(B1,TR9d(B0,TAh(B1,Td(B0,T4i(B10,T5i(B1,TM'!RC(B. ,Ta(B0,TAi(B10,TGh(B1,TR(B
-0,T7h(B1,TR9(P7S!RC(B0,T(Q(B1,T4`(B0,T!g(B1,T:d;a(B0,TEi(B1,TG(B0,T!g(B1,T5RA(B, 0,TMU(B1,TaA!(B0,TJl(B10,T!g(B10,TBQ(B1,T'$'`K(B0,TEW(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T5i(B1,T9)(B0,T:Q(B1,T:d(B0,TGi(B1,Tb4B`(B0,T!g(B1,T:d(B0,TGi(B1,Tc9(B0,T*Wh(B1,TM(B
-,TcK(B0,TAh(B1, ,T`(B0,T<Wh(B1,TMd(B0,TGi(B1,Tc9!C(B0,T3U(B10,T7Uh(B10,T7h(B1,TR9a(B0,T!i(B1,Td"(B0,T<T(B1,T4>ER4(B.
+,T!RC0$i19KRa0?i1A0"i1M0AY1EKARB06V1'!RC07Uh107h1R9d04i1`0Kg19`09Wi1MKR"M'a0?i1A0"i1M0AY1E@RBc90MU1aA!0Jl1(B. ,Tc9KERBf(B
+,T7R'(B, 0,T4Y1`K0AW1M90Gh1R07h1R9!S0EQ1'a0!i1d"0"i1M0AY1Ec9a0?i1A0"i1M0AY1EM0BYh1(B. ,TM0Bh1R'dC0!g15RA(B, ,T!RCa0!i1d"@RBc90MU1(B
+,TaA!0Jl109Qi19(Pd0Ah1$'M0BYh1(9!0Gh1R07h1R9(P(B "0,T(Q14`0!g1:(B (save)" ,Ta0?i1A0"i1M0AY1E09Qi19(B. 0,T9Uh1`0;g19!RC0*h1GBc0Ki107h1R9(B
+,TJRARC6K0EU1!`0EUh1B'!RC7Sc0Ki1a0?i1A0"i1M0AY1E06Y1!a0!i1d"d0Gi1$0CVh1'f(B ,T!ER'f(B 0,T6i1R07h1R9d0Ah1d04i105i1M'!RC(B. ,Ta0Ai10Gh1R(B
+0,T7h1R9(P7S!RC0(Q14`0!g1:d;a0Ei1G0!g15RA(B, 0,TMU1aA!0Jl10!g10BQ1'$'`K0EW1Ma0?i1A0"i1M0AY1E05i19)0:Q1:d0Gi1b4B`0!g1:d0Gi1c90*Wh1M(B
+,TcK0Ah1(B, ,T`0<Wh1Md0Gi1c9!C03U107Uh107h1R9a0!i1d"0<T14>ER4(B.
 
-0,T6i(B1,TR(B0,T7h(B1,TR9(B0,TJQ(B1,T'`!5(B0,T4Y(B10,TJh(B1,TG9(B0,TEh(B1,TR'"M'K(B0,T9i(B1,TR(M"M'(B0,TMU(B1,TaA!(B0,TJl(B1, 0,T7h(B1,TR9(P`(B0,TKg(B1,T9:CC(B0,T7Q(B1,T4(B0,T7Uh(B1,T`(B0,TCTh(B1,TA(B0,T5i(B1,T9aEP(B0,TJTi(B1,T9(B0,TJX(B1,T4(B0,T4i(B1,TGB(B
-,T`(B0,TJi(B1,T9;CP(B. ,T:CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9MR((P`(B0,TCTh(B1,TA(B0,T5i(B1,T9(B0,T4i(B1,TGB(B "--:-- TUTORIAL" ,TK(B0,TCW(B1,TMMPdC7S9M'(B0,T9Qi(B1,T9(B. 0,TJh(B1,TG9(B0,T9Ui(B1
-,T"M'K(B0,T9i(B1,TR(M(B, ,Tb4B;C!(B0,T5T(B1,Ta(B0,TEi(B1,TG(B, ,T(PaJ4'(B0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'`(B0,TBW(B1,TM9M(B0,TBYh(B1. ,T"3P(B0,T9Ui(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'(B
-,T`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T*Wh(B1,TM(B0,TGh(B1,TR(B "TUTORIAL.th" 0,T+Vh(B1,T'`(B0,T;g(B1,T9JS`9R"M'(B0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1. ,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9d(B0,T4i(B1
-,T`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T4i(B1,TGB(B0,TMU(B1,TaA!(B0,TJl(B1, 0,T*Wh(B1,TM"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T9Qi(B1,T9(P;CR!/c9(B0,T7Uh(B10,T7Uh(B1,Td(B0,T4i(B1,T!(B0,TEh(B1,TRGd(B0,TGi(B1,Ta(B0,TEi(B1,TG(B.
+0,T6i1R07h1R90JQ1'`!504Y10Jh1G90Eh1R'"M'K09i1R(M"M'0MU1aA!0Jl1(B, 0,T7h1R9(P`0Kg19:CC07Q1407Uh1`0CTh1A05i19aEP0JTi190JX1404i1GB(B
+,T`0Ji19;CP(B. ,T:CC07Q1409Qi19MR((P`0CTh1A05i1904i1GB(B "--:-- TUTORIAL" ,TK0CW1MMPdC7S9M'09Qi19(B. 0,TJh1G909Ui1(B
+,T"M'K09i1R(M(B, ,Tb4B;C!05T1a0Ei1G(B, ,T(PaJ4'0*Wh1Ma0?i1A0"i1M0AY1E07Uh107h1R9!S0EQ1'`0BW1M9M0BYh1(B. ,T"3P09Ui107h1R9!S0EQ1'(B
+,T`0BW1M9a0?i1A0"i1M0AY1E07Uh10*Wh1M0Gh1R(B "TUTORIAL.th" 0,T+Vh1'`0;g19JS`9R"M'0$Yh10AW1M!RCc0*i10MU1aA!0Jl1(B. ,T`0AWh1M07h1R9d04i1(B
+,T`0BW1M9a0?i1A0"i1M0AY1E04i1GB0MU1aA!0Jl1(B, 0,T*Wh1M"M'a0?i1A0"i1M0AY1E09Qi19(P;CR!/c907Uh107Uh1d04i1!0Eh1RGd0Gi1a0Ei1G(B.
 
-0,TEQ(B1,T!I3P(B0,T>T(B1,T`HI(B0,T"i(B1,TMK(B0,T9Vh(B1,T'"M'$S(B0,TJQh(B1,T'`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T$W(B1,TM(B 0,T7h(B1,TR9(P(B0,T5i(B1,TM':M!(B0,T*Wh(B1,TM"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B1,T(P(B
-,T`(B0,TBW(B1,TM9(B. ,T`CR`(B0,TCU(B1,TB!(B0,TEQ(B1,T!I3P`(B0,T*h(B1,T9(B0,T9Ui(B10,TGh(B1,TR(B "0,TMh(B1,TR9MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,T(R!`$(B0,TCWh(B1,TM';ERB7R'(B" (,Tc9!C(B0,T3U(B10,T9Ui(B1, ,TMR(B0,TCl(B1
-0,T!T(B1,TG`A9(B0,T5l(B10,T!g(B10,T$W(B1,TM(B0,T*Wh(B1,TM"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B). ,TK(B0,TEQ(B1,T'(R!(B0,T7Uh(B10,T7h(B1,TR9(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B
+0,TEQ1!I3P0>T1`HI0"i1MK09Vh1'"M'$S0JQh1'`0BW1M9a0?i1A0"i1M0AY1E0$W1M(B 0,T7h1R9(P05i1M':M!0*Wh1M"M'a0?i1A0"i1M0AY1E07Uh1(P(B
+,T`0BW1M9(B. ,T`CR`0CU1B!0EQ1!I3P`0*h1909Ui10Gh1R(B "0,TMh1R9MR0Cl10!T1G`A905l1(R!`$0CWh1M';ERB7R'(B" (,Tc9!C03U109Ui1(B, ,TMR0Cl1(B
+0,T!T1G`A905l10!g10$W1M0*Wh1M"M'a0?i1A0"i1M0AY1E(B). ,TK0EQ1'(R!07Uh107h1R90;i1M9$S0JQh1'(B
 
 	C-x C-f   Find a file
 
-0,TMU(B1,TaA!(B0,TJl(B1,T(P6RA(B0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B. 0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T7h(B1,TR9(B0,T;i(B1,TM9`(B0,T"i(B1,TRd;(P;CR!/(B0,T7Uh(B1,T:CC(B0,T7Q(B1,T4(B0,TEh(B1,TR'"M'K(B0,T9i(B1,TR(M(B. 
-,T:CC(B0,T7Q(B1,T4(B0,TEh(B1,TR'"M'K(B0,T9i(B1,TR(M`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B0,TAT(B10,T9T(B10,T:Q(B1,T?`?M(B0,TCl(B1 (minibuffer) ,T`(B0,TAWh(B1,TM(B0,T6Y(B1,T!c(B0,T*i(B1,T'R9c9(B0,TEQ(B1,T!I3P(B0,T9Ui(B1. 
-0,T7h(B1,TR9JRARC6c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B1,Tc9!RCa(B0,T!i(B1,Td";C!(B0,T5T(B1,T"M'(B0,TMU(B1,TaA!(B0,TJl(B1,Ta(B0,T!i(B1,Td"(B0,T*Wh(B1,TM"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B.
+0,TMU1aA!0Jl1(P6RA0*Wh1Ma0?i1A0"i1M0AY1E(B. 0,T*Wh1Ma0?i1A0"i1M0AY1E07Uh107h1R90;i1M9`0"i1Rd;(P;CR!/07Uh1:CC07Q140Eh1R'"M'K09i1R(M(B.
+,T:CC07Q140Eh1R'"M'K09i1R(M`0CU1B!0Gh1R0AT109T10:Q1?`?M0Cl1(B (minibuffer) ,T`0AWh1M06Y1!c0*i1'R9c90EQ1!I3P09Ui1(B.
+0,T7h1R9JRARC6c0*i1$S0JQh1'07Uh1c0*i1c9!RCa0!i1d";C!05T1"M'0MU1aA!0Jl1a0!i1d"0*Wh1M"M'a0?i1A0"i1M0AY1E(B.
 
-,T"3P(B0,T7Uh(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'(B0,T;i(B1,TM9(B0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B (,TK(B0,TCW(B1,TM(B0,T"i(B1,TM(B0,TAY(B1,TEc4f(B ,Tc9(B0,TAT(B10,T9T(B10,T:Q(B1,T?`?M(B0,TCl(B10,T9Ui(B1), 0,T7h(B1,TR9JRARC6(B
-,TB!`(B0,TET(B1,T!$S(B0,TJQh(B1,T'(B0,T4i(B1,TGB!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-g.
+,T"3P07Uh107h1R9!S0EQ1'0;i1M90*Wh1Ma0?i1A0"i1M0AY1E(B (,TK0CW1M0"i1M0AY1Ec4f(B ,Tc90AT109T10:Q1?`?M0Cl109Ui1(B), 0,T7h1R9JRARC6(B
+,TB!`0ET1!$S0JQh1'04i1GB!RCc0*i1$S0JQh1'(B C-g.
 
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x C-f, ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-g. 0,T9Uh(B1,T`(B0,T;g(B1,T9!RCB!`(B0,TET(B1,T!(B0,TAT(B10,T9T(B10,T:Q(B1,T?`?M(B0,TCl(B1, ,TaEP(B
-   ,TB!`(B0,TET(B1,T!$S(B0,TJQh(B1,T'(B C-x C-f 0,T7Uh(B1,T!S(B0,TEQ(B1,T'c(B0,T*i(B10,TAT(B10,T9T(B10,T:Q(B1,T?`?M(B0,TCl(B1,TM(B0,TBYh(B1. ,T<E(B0,TEQ(B1,T>(B0,T8l(B10,T$W(B1,TM(B0,T7h(B1,TR9(Pd(B0,TAh(B1,Td(B0,T4i(B1,T`(B0,TBW(B1,TM9(B
-   ,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEc4f(B.
+>> 0,T;i1M9$S0JQh1'(B C-x C-f, ,Ta0Ei1G0;i1M9$S0JQh1'(B C-g. 0,T9Uh1`0;g19!RCB!`0ET1!0AT109T10:Q1?`?M0Cl1(B, ,TaEP(B
+   ,TB!`0ET1!$S0JQh1'(B C-x C-f 0,T7Uh1!S0EQ1'c0*i10AT109T10:Q1?`?M0Cl1M0BYh1(B. ,T<E0EQ1>08l10$W1M07h1R9(Pd0Ah1d04i1`0BW1M9(B
+   ,Ta0?i1A0"i1M0AY1Ec4f(B.
 
-,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9d(B0,T4i(B10,T;i(B1,TM9(B0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE`J(B0,TCg(B1,T(a(B0,TEi(B1,TG(B, ,T!4(B0,T;Xh(B1,TA(B <Return> ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P(B0,TJTi(B1,T9(B0,TJX(B1,T4$S(B0,TJQh(B1,T'(B. ,Ta(B0,TEi(B1,TG$S(B0,TJQh(B1,T'(B
-C-x C-f 0,T!g(B1,T(P7S'R9(B, ,TaEP(P`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B1,T`(B0,TEW(B1,TM!d(B0,TGi(B1. 0,TAT(B10,T9T(B10,T:Q(B1,T?`?M(B0,TCl(B1,T(P(B
-,TKRBd;`(B0,TAWh(B1,TM`J(B0,TCg(B1,T((B0,TJTi(B1,T9$S(B0,TJQh(B1,T'(B C-x C-f.
+,T`0AWh1M07h1R9d04i10;i1M90*Wh1Ma0?i1A0"i1M0AY1E`J0Cg1(a0Ei1G(B, ,T!40;Xh1A(B <Return> ,T`0>Wh1M07Uh1(P0JTi190JX14$S0JQh1'(B. ,Ta0Ei1G$S0JQh1'(B
+C-x C-f 0,T!g1(P7S'R9(B, ,TaEP(P`0BW1M9a0?i1A0"i1M0AY1E07Uh107h1R9d04i1`0EW1M!d0Gi1(B. 0,TAT109T10:Q1?`?M0Cl1(P(B
+,TKRBd;`0AWh1M`J0Cg1(0JTi19$S0JQh1'(B C-x C-f.
 
-,TK(B0,TEQ(B1,T'(R!(B0,T9Qi(B1,T9d(B0,TAh(B1,T9R9`(B0,T9Wi(B1,TMKR"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T!g(B1,T(P;CR!/:9K(B0,T9i(B1,TR(M(B, ,TaEP(B0,T7h(B1,TR9(B0,T!g(B1,T(PJRARC6a(B0,T!i(B1,Td"(B
-,T`(B0,T9Wi(B1,TMKRd(B0,T4i(B1. ,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9(B0,T5i(B1,TM'!RC(Pa(B0,T!i(B1,Td"(B0,T"i(B1,TM$GRAM(B0,TBh(B1,TR'6RGC(B, 0,T!g(B1,Tc(B0,TKi(B1,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B
+,TK0EQ1'(R!09Qi19d0Ah19R9`09Wi1MKR"M'a0?i1A0"i1M0AY1E0!g1(P;CR!/:9K09i1R(M(B, ,TaEP07h1R90!g1(PJRARC6a0!i1d"(B
+,T`09Wi1MKRd04i1(B. ,T`0AWh1M07h1R905i1M'!RC(Pa0!i1d"0"i1M$GRAM0Bh1R'6RGC(B, 0,T!g1c0Ki1c0*i1$S0JQh1'(B
 
 	C-x C-s   Save the file
 
-,T$S(B0,TJQh(B1,T'(B0,T9Ui(B1,T(P7SJS`9R(B0,T"i(B1,TM$GRA(B0,T7Uh(B1,TM(B0,TBYh(B1,Tc9(B0,TMU(B1,TaA!(B0,TJl(B1,T`(B0,T"i(B1,TRd;`(B0,T!g(B1,T:d(B0,TGi(B1,Tc9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B. ,Tc9!RC!CP7S`(B0,T*h(B1,T9(B0,T9Ui(B1,Tc9(B
-,T$(B0,TCQi(B1,T'aC!(B0,TJX(B1,T4(B, 0,TMU(B1,TaA!(B0,TJl(B1,T(P`;(B0,TEUh(B1,TB9(B0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T5i(B1,T9)(B0,T:Q(B1,T:`(B0,T>Wh(B1,TM(B0,TGh(B1,TR(Pd(B0,T4i(B1,T$'d(B0,TGi(B1. 0,T*Wh(B1,TMcK(B0,TAh(B10,T9Qi(B1,T9(B0,T5Qi(B1,T'(B0,T"Vi(B1,T9b4B(B
-,T!RC`(B0,T5T(B1,TA(B "~" ,T`(B0,T"i(B1,TRd;(B0,T7i(B1,TRB(B0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T5i(B1,T9)(B0,T:Q(B1,T:(B.
+,T$S0JQh1'09Ui1(P7SJS`9R0"i1M$GRA07Uh1M0BYh1c90MU1aA!0Jl1`0"i1Rd;`0!g1:d0Gi1c9a0?i1A0"i1M0AY1E(B. ,Tc9!RC!CP7S`0*h1909Ui1c9(B
+,T$0CQi1'aC!0JX14(B, 0,TMU1aA!0Jl1(P`;0EUh1B90*Wh1Ma0?i1A0"i1M0AY1E05i19)0:Q1:`0>Wh1M0Gh1R(Pd04i1$'d0Gi1(B. 0,T*Wh1McK0Ah109Qi1905Qi1'0"Vi19b4B(B
+,T!RC`05T1A(B "~" ,T`0"i1Rd;07i1RB0*Wh1Ma0?i1A0"i1M0AY1E05i19)0:Q1:(B.
 
-,T`(B0,TAWh(B1,TM7S!RC(B0,T(Q(B1,T4`(B0,T!g(B1,T:`(B0,TCU(B1,TB:(B0,TCi(B1,TMBa(B0,TEi(B1,TG(B, 0,TMU(B1,TaA!(B0,TJl(B1,T(P(B0,T>T(B1,TA(B0,T>l(B10,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T9Qi(B1,T9(B. 0,T7h(B1,TR9$GC(P(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,T"i(B1,TM(B0,TAY(B1,TE(B
-0,T:h(B1,TMBf(B, ,T`(B0,T>Wh(B1,TM(B0,TGh(B1,TR(B0,T7h(B1,TR9(Pd(B0,T4i(B1,Td(B0,TAh(B10,T5i(B1,TM'`(B0,TJU(B1,TB'R9d;AR!(B0,T9Q(B1,T!KR!CP::`(B0,T!T(B1,T4(B0,T"Q(B1,T4(B0,T"i(B1,TM'(B.
+,T`0AWh1M7S!RC0(Q14`0!g1:`0CU1B:0Ci1MBa0Ei1G(B, 0,TMU1aA!0Jl1(P0>T1A0>l10*Wh1Ma0?i1A0"i1M0AY1E09Qi19(B. 0,T7h1R9$GC(P0(Q14`0!g1:0"i1M0AY1E(B
+0,T:h1MBf(B, ,T`0>Wh1M0Gh1R07h1R9(Pd04i1d0Ah105i1M'`0JU1B'R9d;AR!09Q1!KR!CP::`0!T140"Q140"i1M'(B.
 
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x C-s, ,T`(B0,T>Wh(B1,TM(B0,T(Q(B1,T4`(B0,T!g(B1,T:JS`9R(B0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B1,T"M'(B0,T7h(B1,TR9(B.
-   ,T(P;CR!/(B "Write ...TUTORIAL.th" 0,T7Uh(B1,T:CC(B0,T7Q(B1,T4(B0,TEh(B1,TR'(B0,TJX(B1,T4"M'K(B0,T9i(B1,TR(M(B.
+>> 0,T;i1M9$S0JQh1'(B C-x C-s, ,T`0>Wh1M0(Q14`0!g1:JS`9R0$Yh10AW1M!RCc0*i1"M'07h1R9(B.
+   ,T(P;CR!/(B "Write ...TUTORIAL.th" 0,T7Uh1:CC07Q140Eh1R'0JX14"M'K09i1R(M(B.
 
-0,T"i(B1,TM(B0,TJQ(B1,T'`!5(B: ,Tc9:R'CP::(B, ,T!RC(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x C-s ,T(P7Sc(B0,TKi(B1,TK(B0,T9i(B1,TR(M*P(B0,T'Q(B1,T!aEP(B0,T7h(B1,TR9(Pd(B0,TAh(B1,Td(B0,T4i(B10,TCQ(B1,T:(B
-0,T"i(B1,TM$GRAc4f(B ,T(R!(B0,TMU(B1,TaA!(B0,TJl(B1. 0,T9Uh(B1,TaJ4'(B0,TGh(B1,TR(B "feature" ,T"M'CP::;(B0,T/T(B10,T:Q(B10,T5T(B1,T!RC(B0,T7Uh(B1,T`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B "flow
-control" ,Td(B0,T4i(B10,T"Q(B1,T4"GR'!RC7S'R9"M'(B C-s ,TaEPd(B0,TAh(B1,T;(B0,TEh(B1,TMBc(B0,TKi(B1,T!(B0,TEQ(B1,T:(B0,TJYh(B10,TMU(B1,TaA!(B0,TJl(B10,TMU(B1,T!(B. ,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-g 
-,T`(B0,T>Wh(B1,TMa(B0,T!i(B1,Td"d(B0,TAh(B1,Tc(B0,TKi(B1,TK(B0,T9i(B1,TR(M*P(B0,T'Q(B1,T!(B. ,Ta(B0,TEi(B1,TG(B0,T4Y(B1,T:7(B0,T7Uh(B10,TGh(B1,TR(B0,T4i(B1,TGB(B "Spontaneous Entry to
-Incremental Search" ,Tc9(B0,T$Yh(B10,TAW(B1,TM"M'(B0,TMU(B1,TaA!(B0,TJl(B10,T+Vh(B1,T'(Pa9P9S!RC(B0,T(Q(B1,T4!RC`(B0,T!Uh(B1,TBG(B0,T!Q(B1,T:(B "feature" 0,T9Ui(B1.
+0,T"i1M0JQ1'`!5(B: ,Tc9:R'CP::(B, ,T!RC0;i1M9$S0JQh1'(B C-x C-s ,T(P7Sc0Ki1K09i1R(M*P0'Q1!aEP07h1R9(Pd0Ah1d04i10CQ1:(B
+0,T"i1M$GRAc4f(B ,T(R!0MU1aA!0Jl1(B. 0,T9Uh1aJ4'0Gh1R(B "feature" ,T"M'CP::;0/T10:Q105T1!RC07Uh1`0CU1B!0Gh1R(B "flow
+control" ,Td04i10"Q14"GR'!RC7S'R9"M'(B C-s ,TaEPd0Ah1;0Eh1MBc0Ki1!0EQ1:0JYh10MU1aA!0Jl10MU1!(B. ,Tc0*i1$S0JQh1'(B C-g
+,T`0>Wh1Ma0!i1d"d0Ah1c0Ki1K09i1R(M*P0'Q1!(B. ,Ta0Ei1G04Y1:707Uh10Gh1R04i1GB(B "Spontaneous Entry to
+Incremental Search" ,Tc90$Yh10AW1M"M'0MU1aA!0Jl10+Vh1'(Pa9P9S!RC0(Q14!RC`0!Uh1BG0!Q1:(B "feature" 0,T9Ui1(B.
 
-0,T7h(B1,TR9JRARC6(P`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,TAU(B1,TM(B0,TBYh(B1,Ta(B0,TEi(B1,TG(B, ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P(B0,T4Y(B1,TK(B0,TCW(B1,TMa(B0,T!i(B1,Td"(B. 0,T7h(B1,TR9JRARC6(P`(B0,TBW(B1,TM9(B
-,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,TBQ(B1,T'd(B0,TAh(B1,T;CR!/(B0,T!g(B1,Td(B0,T4i(B1. 0,T9Uh(B1,T`(B0,T;g(B1,T9!RCJ(B0,TCi(B1,TR'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEcK(B0,TAh(B1,T"M'(B0,TMU(B1,TaA!(B0,TJl(B1: ,T`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B,
-0,T+Vh(B1,T'(P`(B0,TCTh(B1,TA(B0,T5i(B1,T9(B0,T4i(B1,TGBK(B0,T9i(B1,TR(M(B0,TGh(B1,TR'`;(B0,TEh(B1,TR(B, ,Ta(B0,TEi(B1,TG7S!RCa7C!(B0,T"i(B1,TM$GRA`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(PJ(B0,TCi(B1,TR'`(B0,T;g(B1,T9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T5h(B1,TMd;(B. 
-,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9(B0,TJQh(B1,T'c(B0,TKi(B1 "0,T(Q(B1,T4`(B0,T!g(B1,T:(B (save)" ,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B, 0,TMU(B1,TaA!(B0,TJl(B10,T(V(B1,T'(PJ(B0,TCi(B1,TR'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T4i(B1,TGB(B0,T"i(B1,TM$GRA(B0,T7Uh(B1
-0,T7h(B1,TR9d(B0,T4i(B10,T;i(B1,TM9`(B0,T"i(B1,TRd;(B. ,T(R!(B0,T9Ui(B1,Td;(B, 0,T7h(B1,TR9JRARC6(P(B0,T5Q(B1,T4(B0,TJT(B1,T9c(EM'a(B0,T!i(B1,Td"a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,TAU(B1,TM(B0,TBYh(B1,Ta(B0,TEi(B1,TGd(B0,T4i(B1.
+0,T7h1R9JRARC6(P`0BW1M9a0?i1A0"i1M0AY1E07Uh10AU1M0BYh1a0Ei1G(B, ,T`0>Wh1M07Uh1(P04Y1K0CW1Ma0!i1d"(B. 0,T7h1R9JRARC6(P`0BW1M9(B
+,Ta0?i1A0"i1M0AY1E07Uh10BQ1'd0Ah1;CR!/0!g1d04i1(B. 0,T9Uh1`0;g19!RCJ0Ci1R'a0?i1A0"i1M0AY1EcK0Ah1"M'0MU1aA!0Jl1(B: ,T`0BW1M9a0?i1A0"i1M0AY1E(B,
+0,T+Vh1'(P`0CTh1A05i1904i1GBK09i1R(M0Gh1R'`;0Eh1R(B, ,Ta0Ei1G7S!RCa7C!0"i1M$GRA`0>Wh1M07Uh1(PJ0Ci1R'`0;g19a0?i1A0"i1M0AY1E05h1Md;(B.
+,T`0AWh1M07h1R90JQh1'c0Ki1(B "0,T(Q14`0!g1:(B (save)" ,Ta0?i1A0"i1M0AY1E(B, 0,TMU1aA!0Jl10(V1'(PJ0Ci1R'a0?i1A0"i1M0AY1E04i1GB0"i1M$GRA07Uh1(B
+0,T7h1R9d04i10;i1M9`0"i1Rd;(B. ,T(R!09Ui1d;(B, 0,T7h1R9JRARC6(P05Q140JT19c(EM'a0!i1d"a0?i1A0"i1M0AY1E07Uh10AU1M0BYh1a0Ei1Gd04i1(B.
 
 
-* 0,T:Q(B1,T?`?M(B0,TCl(B1 (buffer)
+* 0,T:Q1?`?M0Cl1(B (buffer)
 -----------------
 
-0,T6i(B1,TR(B0,T7h(B1,TR9`(B0,TBW(B1,TM9(B0,TMU(B1,T!a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEb4Bc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-x C-f, ,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEaC!(P(B0,TBQ(B1,T'$'M(B0,TBYh(B1,Tc9(B0,TMU(B1,TaA!(B0,TJl(B1. 0,T7h(B1,TR9(B
-,TJRARC6(PJ(B0,TEQ(B1,T:!(B0,TEQ(B1,T:d;d(B0,T4i(B10,TMU(B1,T!b4Bc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-x C-f. 0,TGT(B10,T8U(B10,T9Ui(B1,T(P7Sc(B0,TKi(B10,T7h(B1,TR9JRARC6`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B
-,T@RBc9(B0,TMU(B1,TaA!(B0,TJl(B1,Td(B0,T4i(B1,T(S9G9K(B0,T9Vh(B1,T'(B.
+0,T6i1R07h1R9`0BW1M90MU1!a0?i1A0"i1M0AY1Eb4Bc0*i1$S0JQh1'(B C-x C-f, ,Ta0?i1A0"i1M0AY1EaC!(P0BQ1'$'M0BYh1c90MU1aA!0Jl1(B. 0,T7h1R9(B
+,TJRARC6(PJ0EQ1:!0EQ1:d;d04i10MU1!b4Bc0*i1$S0JQh1'(B C-x C-f. 0,TGT108U109Ui1(P7Sc0Ki107h1R9JRARC6`0BW1M9a0?i1A0"i1M0AY1E(B
+,T@RBc90MU1aA!0Jl1d04i1(S9G9K09Vh1'(B.
 
->> ,TJ(B0,TCi(B1,TR'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEaEPc(B0,TKi(B10,T*Wh(B1,TM(B0,TGh(B1,TR(B "foo" ,Tb4B!RC(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x C-f foo <Return>.
-   ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9(B0,T"i(B1,TM$GRA(B, ,Ta(B0,T!i(B1,Td"(B, ,TaEP(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B "foo" ,Tb4B!RC(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x C-s.
-   0,TJX(B1,T4(B0,T7i(B1,TRB(B, 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x C-f TUTORIAL <Return> ,T`(B0,T>Wh(B1,TM(Pd(B0,T4i(B10,TBi(B1,TM9!(B0,TEQ(B1,T:AR(B0,T7Uh(B10,T"i(B1,TM$GRA(B
-   ,T"M'(B0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B1.
+>> ,TJ0Ci1R'a0?i1A0"i1M0AY1EaEPc0Ki10*Wh1M0Gh1R(B "foo" ,Tb4B!RC0;i1M9$S0JQh1'(B C-x C-f foo <Return>.
+   ,Ta0Ei1G0;i1M90"i1M$GRA(B, ,Ta0!i1d"(B, ,TaEP0(Q14`0!g1:(B "foo" ,Tb4B!RC0;i1M9$S0JQh1'(B C-x C-s.
+   0,TJX1407i1RB(B, 0,T;i1M9$S0JQh1'(B C-x C-f TUTORIAL <Return> ,T`0>Wh1M(Pd04i10Bi1M9!0EQ1:AR07Uh10"i1M$GRA(B
+   ,T"M'0$Yh10AW1M!RCc0*i1(B.
 
-0,TMU(B1,TaA!(B0,TJl(B1,T`(B0,T!g(B1,T:(B0,T"i(B1,TM$GRA"M'a(B0,T5h(B1,TEPa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE@RBc9(B0,TJTh(B1,T'f(B (object) ,TK(B0,T9Vh(B1,T'(B, 0,T+Vh(B1,T'`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B "0,T:Q(B1,T?`?M(B0,TCl(B1
-(buffer)". ,T!RC`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE`(B0,T;g(B1,T9!RCJ(B0,TCi(B1,TR'(B0,T:Q(B1,T?`?M(B0,TCl(B1,TcK(B0,TAh(B1,T@RBc9(B0,TMU(B1,TaA!(B0,TJl(B1. ,Tc9!RC(B0,T7Uh(B1,T(P(B0,T4Y(B1
-,TCRB!RC"M'(B0,T:Q(B1,T?`?M(B0,TCl(B10,T7Uh(B10,TAU(B1,TM(B0,TBYh(B1,Tc9(B0,TMU(B1,TaA!(B0,TJl(B10,T9Qi(B1,T9(B, ,Tc(B0,TKi(B10,T;i(B1,TM9$S(B0,TJQh(B1,T'(B:
+0,TMU1aA!0Jl1`0!g1:0"i1M$GRA"M'a05h1EPa0?i1A0"i1M0AY1E@RBc90JTh1'f(B (object) ,TK09Vh1'(B, 0,T+Vh1'`0CU1B!0Gh1R(B "0,T:Q1?`?M0Cl1(B
+(buffer)". ,T!RC`0BW1M9a0?i1A0"i1M0AY1E`0;g19!RCJ0Ci1R'0:Q1?`?M0Cl1cK0Ah1@RBc90MU1aA!0Jl1(B. ,Tc9!RC07Uh1(P04Y1(B
+,TCRB!RC"M'0:Q1?`?M0Cl107Uh10AU1M0BYh1c90MU1aA!0Jl109Qi19(B, ,Tc0Ki10;i1M9$S0JQh1'(B:
 
 	C-x C-b   List buffers
 
->> ,TEM'(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x C-b 0,T4Y(B1.
+>> ,TEM'0;i1M9$S0JQh1'(B C-x C-b 0,T4Y1(B.
 
-0,T4Y(B10,TGh(B1,TRa(B0,T5h(B1,TEP(B0,T:Q(B1,T?`?M(B0,TCl(B10,TAU(B10,T*Wh(B1,TM(B0,TGh(B1,TRMPdC(B, ,TaEP:R'(B0,TMQ(B1,T9(B0,T!g(B1,T`(B0,T;g(B1,T9(B0,T*Wh(B1,TM"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,TAU(B1,T`(B0,T9Wi(B1,TMKR(B0,T9Qi(B1,T9f(B ,TM(B0,TBYh(B1. ,T:R'(B
-0,T:Q(B1,T?`?M(B0,TCl(B1,Td(B0,TAh(B1,Td(B0,T4i(B1,T`(B0,T!Uh(B1,TBG(B0,T"i(B1,TM'(B0,T!Q(B1,T:a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B. 0,T5Q(B1,TGM(B0,TBh(B1,TR'`(B0,T*h(B1,T9(B, 0,T:Q(B1,T?`?M(B0,TCl(B10,T7Uh(B10,TAU(B10,T*Wh(B1,TM(B0,TGh(B1,TR(B "*Buffer List*"
-,Td(B0,TAh(B10,TAU(B1,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEc4f(B 0,T7Qi(B1,T'(B0,TJTi(B1,T9(B. 0,T9Uh(B1,T`(B0,T;g(B1,T9(B0,T:Q(B1,T?`?M(B0,TCl(B10,T+Vh(B1,T':CC(B0,T(X(B1,T`(B0,T9Wi(B1,TMKR"M'CRB!RC"M'(B0,T:Q(B1,T?`?M(B0,TCl(B10,T7Uh(B10,T6Y(B1,T!J(B0,TCi(B1,TR'(B
-0,T4i(B1,TGB$S(B0,TJQh(B1,T'(B C-x C-b. 0,T"i(B1,TM$GRAc4f(B 0,T7Uh(B10,T7h(B1,TR9`(B0,TKg(B1,T9:9K(B0,T9i(B1,TR(M"M'(B0,TMU(B1,TaA!(B0,TJl(B1,T(P;CR!/M(B0,TBYh(B1,T`(B0,T;g(B1,T9(B0,TJh(B1,TG9K(B0,T9Vh(B1,T'(B
-,T"M'(B0,T:Q(B1,T?`?M(B0,TCl(B1,Tc4(B0,T:Q(B1,T?`?M(B0,TCl(B1,TK(B0,T9Vh(B1,T'`JAM(B.
+0,T4Y10Gh1Ra05h1EP0:Q1?`?M0Cl10AU10*Wh1M0Gh1RMPdC(B, ,TaEP:R'0MQ190!g1`0;g190*Wh1M"M'a0?i1A0"i1M0AY1E07Uh10AU1`09Wi1MKR09Qi19f(B ,TM0BYh1(B. ,T:R'(B
+0,T:Q1?`?M0Cl1d0Ah1d04i1`0!Uh1BG0"i1M'0!Q1:a0?i1A0"i1M0AY1E(B. 0,T5Q1GM0Bh1R'`0*h19(B, 0,T:Q1?`?M0Cl107Uh10AU10*Wh1M0Gh1R(B "*Buffer List*"
+,Td0Ah10AU1a0?i1A0"i1M0AY1Ec4f(B 0,T7Qi1'0JTi19(B. 0,T9Uh1`0;g190:Q1?`?M0Cl10+Vh1':CC0(X1`09Wi1MKR"M'CRB!RC"M'0:Q1?`?M0Cl107Uh106Y1!J0Ci1R'(B
+0,T4i1GB$S0JQh1'(B C-x C-b. 0,T"i1M$GRAc4f(B 0,T7Uh107h1R9`0Kg19:9K09i1R(M"M'0MU1aA!0Jl1(P;CR!/M0BYh1`0;g190Jh1G9K09Vh1'(B
+,T"M'0:Q1?`?M0Cl1c40:Q1?`?M0Cl1K09Vh1'`JAM(B.
 
->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-x 1 ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P!S(B0,T(Q(B1,T4CRB!RC"M'(B0,T:Q(B1,T?`?M(B0,TCl(B1.
+>> ,TEM'c0*i1$S0JQh1'(B C-x 1 ,T`0>Wh1M07Uh1(P!S0(Q14CRB!RC"M'0:Q1?`?M0Cl1(B.
 
-0,T6i(B1,TR(B0,T7h(B1,TR9a(B0,T!i(B1,Td"(B0,T"i(B1,TM$GRAc9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEK(B0,T9Vh(B1,T'(B, ,Ta(B0,TEi(B1,TG`(B0,TBW(B1,TM9(B0,TMU(B1,T!a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEK(B0,T9Vh(B1,T'(B, 0,TMU(B1,TaA!(B0,TJl(B10,TBQ(B1,T'd(B0,TAh(B1,Td(B0,T4i(B10,T(Q(B1,T4`(B0,T!g(B1,T:(B
-0,T"i(B1,TM$GRA"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEaC!(B. 0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!a(B0,T!i(B1,Td"d;(P(B0,TBQ(B1,T'$'M(B0,TBYh(B1,Tc9(B0,TMU(B1,TaA!(B0,TJl(B1, ,Tc9(B0,T:Q(B1,T?`?M(B0,TCl(B1,TJSK(B0,TCQ(B1,T:(B
-,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T9Qi(B1,T9(B. ,T!RCJ(B0,TCi(B1,TR'K(B0,TCW(B1,TM!RCa(B0,T!i(B1,Td""M'(B0,T:Q(B1,T?`?M(B0,TCl(B1,TJSK(B0,TCQ(B1,T:a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B1,TJM'd(B0,TAh(B1,Td(B0,T4i(B10,TAU(B1,T<E(B0,T5h(B1,TM(B
-0,T:Q(B1,T?`?M(B0,TCl(B1,TJSK(B0,TCQ(B1,T:a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B1,TK(B0,T9Vh(B1,T'(B. 0,T9Uh(B1,T`(B0,T;g(B1,T9(B0,TJTh(B1,T'(B0,T7Uh(B10,TAU(B1,T;CPbB*(B0,T9l(B1,TAR!(B, ,Ta(B0,T5h(B10,T!g(B1,TKARB$GRA(B0,TGh(B1,TR(P(B0,T5i(B1,TM'(B0,TAU(B1
-0,TGT(B10,T8U(B1,T!RC(B0,T7Uh(B10,T4U(B1,Tc9!RC(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,T:Q(B1,T?`?M(B0,TCl(B1,T"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEaC!(B. 0,T9Uh(B1,Td(B0,TAh(B1,Td(B0,T4i(B1,TKARB$GRA(B0,TGh(B1,TR(P(B0,T5i(B1,TM'J(B0,TEQ(B1,T:!(B0,TEQ(B1,T:d;(B
-0,TBQ(B1,T'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEaC!(B0,T4i(B1,TGB$S(B0,TJQh(B1,T'(B C-x C-f 0,T!h(B1,TM9(B, ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(Pd(B0,T4i(B1,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-x C-s ,Tc9!RC(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B. 
-0,T4Q(B1,T'(B0,T9Qi(B1,T9`CR(B0,T(V(B1,T'`5(B0,TCU(B1,TBA$S(B0,TJQh(B1,T'(B
+0,T6i1R07h1R9a0!i1d"0"i1M$GRAc9a0?i1A0"i1M0AY1EK09Vh1'(B, ,Ta0Ei1G`0BW1M90MU1!a0?i1A0"i1M0AY1EK09Vh1'(B, 0,TMU1aA!0Jl10BQ1'd0Ah1d04i10(Q14`0!g1:(B
+0,T"i1M$GRA"M'a0?i1A0"i1M0AY1EaC!(B. 0,T"i1M$GRA07Uh106Y1!a0!i1d"d;(P0BQ1'$'M0BYh1c90MU1aA!0Jl1(B, ,Tc90:Q1?`?M0Cl1JSK0CQ1:(B
+,Ta0?i1A0"i1M0AY1E09Qi19(B. ,T!RCJ0Ci1R'K0CW1M!RCa0!i1d""M'0:Q1?`?M0Cl1JSK0CQ1:a0?i1A0"i1M0AY1E07Uh1JM'd0Ah1d04i10AU1<E05h1M(B
+0,T:Q1?`?M0Cl1JSK0CQ1:a0?i1A0"i1M0AY1E07Uh1K09Vh1'(B. 0,T9Uh1`0;g190JTh1'07Uh10AU1;CPbB*09l1AR!(B, ,Ta05h10!g1KARB$GRA0Gh1R(P05i1M'0AU1(B
+0,TGT108U1!RC07Uh104U1c9!RC0(Q14`0!g1:0:Q1?`?M0Cl1"M'a0?i1A0"i1M0AY1EaC!(B. 0,T9Uh1d0Ah1d04i1KARB$GRA0Gh1R(P05i1M'J0EQ1:!0EQ1:d;(B
+0,TBQ1'a0?i1A0"i1M0AY1EaC!04i1GB$S0JQh1'(B C-x C-f 0,T!h1M9(B, ,T`0>Wh1M07Uh1(Pd04i1c0*i1$S0JQh1'(B C-x C-s ,Tc9!RC0(Q14`0!g1:(B.
+0,T4Q1'09Qi19`CR0(V1'`50CU1BA$S0JQh1'(B
 
 	C-x s     Save some buffers
 
-,T$S(B0,TJQh(B1,T'(B C-x s ,T(P6RA(B0,T7h(B1,TR9`(B0,T!Uh(B1,TBG(B0,T!Q(B1,T:(B0,T:Q(B1,T?`?M(B0,TCl(B10,T7Uh(B1,Td(B0,T4i(B10,TCQ(B1,T:!RCa(B0,T!i(B1,Td"a(B0,T5h(B10,TBQ(B1,T'd(B0,TAh(B1,Td(B0,T4i(B10,TCQ(B1,T:!RC(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B. 0,TMU(B1
-,TaA!(B0,TJl(B1,T(P6RA(B0,T7h(B1,TR9(B, ,TJSK(B0,TCQ(B1,T:a(B0,T5h(B1,TEP(B0,T:Q(B1,T?`?M(B0,TCl(B10,T4Q(B1,T'!(B0,TEh(B1,TRG(B, 0,TGh(B1,TR(P(B0,T(Q(B1,T4`(B0,T!g(B1,T:K(B0,TCW(B1,TMd(B0,TAh(B1.
+,T$S0JQh1'(B C-x s ,T(P6RA07h1R9`0!Uh1BG0!Q1:0:Q1?`?M0Cl107Uh1d04i10CQ1:!RCa0!i1d"a05h10BQ1'd0Ah1d04i10CQ1:!RC0(Q14`0!g1:(B. 0,TMU1(B
+,TaA!0Jl1(P6RA07h1R9(B, ,TJSK0CQ1:a05h1EP0:Q1?`?M0Cl104Q1'!0Eh1RG(B, 0,TGh1R(P0(Q14`0!g1:K0CW1Md0Ah1(B.
 
->> ,Ta7C!(B0,T"i(B1,TM$GRA(B0,TJQ(B1,T!K(B0,T9Vh(B1,T':CC(B0,T7Q(B1,T4(B, ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x s.
-   0,TMU(B1,TaA!(B0,TJl(B1,T(P6RA(B0,T7h(B1,TR9(B0,TGh(B1,TR(P(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,T:Q(B1,T?`?M(B0,TCl(B10,T*Wh(B1,TM(B TUTORIAL ,TdKA(B.
-   ,T5M:(B0,TGh(B1,TRc(B0,T*h(B1,Tb4B!RC(B0,T;i(B1,TM9(B "y".
+>> ,Ta7C!0"i1M$GRA0JQ1!K09Vh1':CC07Q14(B, ,Ta0Ei1G0;i1M9$S0JQh1'(B C-x s.
+   0,TMU1aA!0Jl1(P6RA07h1R90Gh1R(P0(Q14`0!g1:0:Q1?`?M0Cl10*Wh1M(B TUTORIAL ,TdKA(B.
+   ,T5M:0Gh1Rc0*h1b4B!RC0;i1M9(B "y".
 
 
-* ,T!RC`(B0,T>Th(B1,TA(B0,T*X(B1,T4$S(B0,TJQh(B1,T'(B
+* ,T!RC`0>Th1A0*X14$S0JQh1'(B
 --------------
 
-0,TAU(B1,T$S(B0,TJQh(B1,T'"M'(B0,TMU(B1,TaA!(B0,TJl(B1,TM(B0,TBYh(B10,TMU(B1,T!AR!ARB(9`(B0,T!T(B1,T9!(B0,TGh(B1,TR(B0,T7Uh(B1,T(PJRARC6!S(B0,T!Q(B1,T:d(B0,T4i(B10,T4i(B1,TGB(B0,TMQ(B1,T!"CP;CPJA(B0,T!Q(B1,T:(B0,TMQ(B1,T!"CP(B
-,T$M9b7CE(B (control character) ,TaEPM(B0,T@T(B10,TMQ(B1,T!"CP(B (meta character). 0,TMU(B1,TaA!(B0,TJl(B1,Tc(B0,T*i(B1,T!RC(B
-,T;CPJA(B0,T!Q(B1,T:$S(B0,TJQh(B1,T'`J(B0,TCT(B1,TA(B (eXtend command). ,T!RC`J(B0,TCT(B1,TA(B0,T9Ui(B1,T`(B0,T;g(B1,T9d;d(B0,T4i(B1,TJM'(B0,TEQ(B1,T!I3P(B:
+0,TAU1$S0JQh1'"M'0MU1aA!0Jl1M0BYh10MU1!AR!ARB(9`0!T19!0Gh1R07Uh1(PJRARC6!S0!Q1:d04i104i1GB0MQ1!"CP;CPJA0!Q1:0MQ1!"CP(B
+,T$M9b7CE(B (control character) ,TaEPM0@T10MQ1!"CP(B (meta character). 0,TMU1aA!0Jl1c0*i1!RC(B
+,T;CPJA0!Q1:$S0JQh1'`J0CT1A(B (eXtend command). ,T!RC`J0CT1A09Ui1`0;g19d;d04i1JM'0EQ1!I3P(B:
 
-	C-x	,T!RC`J(B0,TCT(B1,TA(B0,TMQ(B1,T!"CP(B (Character eXtend). ,T5RA(B0,T4i(B1,TGBK(B0,T9Vh(B1,T'(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B.
-	M-x	,T!RC`J(B0,TCT(B1,TA(B0,T4i(B1,TGB(B0,T*Wh(B1,TM$S(B0,TJQh(B1,T'(B (Named command eXtend). ,T5RA(B0,T4i(B1,TGB(B0,T*Wh(B1,TM`(B0,T5g(B1,TA(B.
+	C-x	,T!RC`J0CT1A0MQ1!"CP(B (Character eXtend). ,T5RA04i1GBK09Vh1'05Q1G0MQ1!IC(B.
+	M-x	,T!RC`J0CT1A04i1GB0*Wh1M$S0JQh1'(B (Named command eXtend). ,T5RA04i1GB0*Wh1M`05g1A(B.
 
-,T$S(B0,TJQh(B1,T'`K(B0,TEh(B1,TR(B0,T9Ui(B1,Tb4B(B0,T7Qh(B1,TGd;a(B0,TEi(B1,TG(P(B0,TAU(B1,T;CPbB*(B0,T9l(B1, ,Ta(B0,T5h(B10,TAQ(B1,T!(P(B0,TAU(B1,TbM!RJc(B0,T*i(B10,T9i(B1,TMB!(B0,TGh(B1,TR$S(B0,TJQh(B1,T'(B0,T5h(B1,TR'f(B 0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B1
-,T`(B0,TCU(B1,TB9(B0,TCYi(B1,Td;a(B0,TEi(B1,TG(B. 0,T7h(B1,TR9d(B0,T4i(B1,T>:d;a(B0,TEi(B1,TGJM'$S(B0,TJQh(B1,T'(B: ,T$S(B0,TJQh(B1,T'JSK(B0,TCQ(B1,T:!RC(B0,T(Q(B1,T4!RC(B0,T!Q(B1,T:a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B C-x C-f
-,TJSK(B0,TCQ(B1,T:!RC`(B0,TBW(B1,TM9(B (Find) ,TaEP(B C-x C-s ,TJSK(B0,TCQ(B1,T:!RC(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B (Save). 0,TMU(B1,T!(B0,T5Q(B1,TGM(B0,TBh(B1,TR'K(B0,T9Vh(B1,T'(B0,T!g(B1
-0,T$W(B1,TM$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B1,Tc9!RC`(B0,TET(B1,T!c(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1--,T$S(B0,TJQh(B1,T'(B C-x C-c. (,Td(B0,TAh(B10,T5i(B1,TM'`(B0,T;g(B1,T9(B0,TKh(B1,TG'(B0,TGh(B1,TR(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B1
-,Ta(B0,T!i(B1,Td"d;(P(B0,TJY(B1,T-KRB(B; ,T$S(B0,TJQh(B1,T'(B C-x C-c ,T(P`J9Mc(B0,TKi(B10,T(Q(B1,T4`(B0,T!g(B1,T:a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T6Y(B1,T!a(B0,T!i(B1,Td"d;(B0,T!h(B1,TM9(B0,T7Uh(B1,T(P(B0,TJTi(B1,T9(B0,TJX(B1,T4(B
-0,TMU(B1,TaA!(B0,TJl(B1.)
+,T$S0JQh1'`K0Eh1R09Ui1b4B07Qh1Gd;a0Ei1G(P0AU1;CPbB*09l1(B, ,Ta05h10AQ1!(P0AU1bM!RJc0*i109i1MB!0Gh1R$S0JQh1'05h1R'f(B 0,T7Uh107h1R9d04i1(B
+,T`0CU1B90CYi1d;a0Ei1G(B. 0,T7h1R9d04i1>:d;a0Ei1GJM'$S0JQh1'(B: ,T$S0JQh1'JSK0CQ1:!RC0(Q14!RC0!Q1:a0?i1A0"i1M0AY1E(B C-x C-f
+,TJSK0CQ1:!RC`0BW1M9(B (Find) ,TaEP(B C-x C-s ,TJSK0CQ1:!RC0(Q14`0!g1:(B (Save). 0,TMU1!05Q1GM0Bh1R'K09Vh1'0!g1(B
+0,T$W1M$S0JQh1'07Uh1c0*i1c9!RC`0ET1!c0*i10MU1aA!0Jl1(B--,T$S0JQh1'(B C-x C-c. (,Td0Ah105i1M'`0;g190Kh1G'0Gh1R0"i1M0AY1E07Uh107h1R9d04i1(B
+,Ta0!i1d"d;(P0JY1-KRB(B; ,T$S0JQh1'(B C-x C-c ,T(P`J9Mc0Ki10(Q14`0!g1:a0?i1A0"i1M0AY1E07Uh106Y1!a0!i1d"d;0!h1M907Uh1(P0JTi190JX14(B
+0,TMU1aA!0Jl1(B.)
 
-,T$S(B0,TJQh(B1,T'(B C-z ,T`(B0,T;g(B1,T9$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B1,Tc9!RCMM!(R!(B0,TMU(B1,TaA!(B0,TJl(B1,T`(B0,T;g(B1,T9!RC(B0,T*Qh(B1,TG$CRG(B *temporarily*--,T)P(B0,T9Qi(B1,T9(B
-0,T7h(B1,TR9JRARC6!(B0,TEQ(B1,T:d;(B0,TJYh(B10,TMU(B1,TaA!(B0,TJl(B1,Td(B0,T4i(B10,TMU(B1,T!K(B0,TEQ(B1,T'(R!(B0,T9Qi(B1,T9(B.
+,T$S0JQh1'(B C-z ,T`0;g19$S0JQh1'07Uh1c0*i1c9!RCMM!(R!0MU1aA!0Jl1`0;g19!RC0*Qh1G$CRG(B *temporarily*--,T)P09Qi19(B
+0,T7h1R9JRARC6!0EQ1:d;0JYh10MU1aA!0Jl1d04i10MU1!K0EQ1'(R!09Qi19(B.
 
-,TJSK(B0,TCQ(B1,T:CP::(B0,T7Uh(B1,TM(B0,T9X(B1,T-R5c(B0,TKi(B1,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B, C-z "suspends" 0,TMU(B1,TaA!(B0,TJl(B1; 0,T9Qh(B1,T9(B0,T$W(B1,TM!RC!(B0,TEQ(B1,T:d;(B0,TBQ(B1,T'`*E(B0,TEl(B1
-(shell) ,Tb4Bd(B0,TAh(B1,Td(B0,T4i(B1,T7SERB(B0,TMU(B1,TaA!(B0,TJl(B1. ,Tc9`*E(B0,TEl(B10,T7Qh(B1,TGd;(B, 0,T7h(B1,TR9JRARC6(B0,TCU(B10,T+Y(B1,TA(B (resume) 0,TMU(B1,TaA!(B0,TJl(B1
-,Td(B0,T4i(B10,T4i(B1,TGB$S(B0,TJQh(B1,T'(B `fg' ,TK(B0,TCW(B1,TM(B0,T4i(B1,TGB$S(B0,TJQh(B1,T'(B `%emacs'.
+,TJSK0CQ1:CP::07Uh1M09X1-R5c0Ki1c0*i1$S0JQh1'(B, C-z "suspends" 0,TMU1aA!0Jl1(B; 0,T9Qh190$W1M!RC!0EQ1:d;0BQ1'`*E0El1(B
+(shell) ,Tb4Bd0Ah1d04i17SERB0MU1aA!0Jl1(B. ,Tc9`*E0El107Qh1Gd;(B, 0,T7h1R9JRARC60CU10+Y1A(B (resume) 0,TMU1aA!0Jl1(B
+,Td04i104i1GB$S0JQh1'(B `fg' ,TK0CW1M04i1GB$S0JQh1'(B `%emacs'.
 
-,TJSK(B0,TCQ(B1,T:CP::(B0,T7Uh(B1,Td(B0,TAh(B10,TAU(B10,T?Q(B1,T'(B0,T!l(B10,T*Q(B1,T9(B "suspend", ,T$S(B0,TJQh(B1,T'(B C-z ,T(PJ(B0,TCi(B1,TR'(B0,T+Q(B1,T:`*E(B0,TEl(B1 (subshell)
-,T@RBc(B0,T5i(B10,TMU(B1,TaA!(B0,TJl(B1,T`(B0,T>Wh(B1,TMc(B0,TKi(B10,T7h(B1,TR9(B0,TAU(B1,TbM!RJ4S`(B0,T9T(B1,T9'R9b;Ca!CA(B0,TMWh(B1,T9(B0,T!h(B1,TM9a(B0,TEi(B1,TG(B0,T$h(B1,TMB!(B0,TEQ(B1,T:AR(B0,TBQ(B1,T'(B0,TMU(B1,TaA!(B0,TJl(B10,TMU(B1,T!$(B0,TCQi(B1,T'(B;
-0,T+Vh(B1,T'd(B0,TAh(B1,Tc(B0,T*h(B1,T!RC(B ",TMM!(R!(B (exit)" 0,TMU(B1,TaA!(B0,TJl(B1,T((B0,TCT(B1,T'(B. ,Tc9!C(B0,T3U(B10,T9Ui(B1, ,T$S(B0,TJQh(B1,T'`*E(B0,TEl(B1 `exit' ,T`(B0,T;g(B1,T9$S(B0,TJQh(B1,T'(B
-,T;C!(B0,T5T(B10,T7Uh(B1,Tc(B0,T*i(B1,Tc9!RC!(B0,TEQ(B1,T:d;(B0,TBQ(B1,T'(B0,TMU(B1,TaA!(B0,TJl(B1,T(R!(B0,T+Q(B1,T:`*E(B0,TEl(B1.
+,TJSK0CQ1:CP::07Uh1d0Ah10AU10?Q1'0!l10*Q19(B "suspend", ,T$S0JQh1'(B C-z ,T(PJ0Ci1R'0+Q1:`*E0El1(B (subshell)
+,T@RBc05i10MU1aA!0Jl1`0>Wh1Mc0Ki107h1R90AU1bM!RJ4S`09T19'R9b;Ca!CA0MWh190!h1M9a0Ei1G0$h1MB!0EQ1:AR0BQ1'0MU1aA!0Jl10MU1!$0CQi1'(B;
+0,T+Vh1'd0Ah1c0*h1!RC(B ",TMM!(R!(B (exit)" 0,TMU1aA!0Jl1(0CT1'(B. ,Tc9!C03U109Ui1(B, ,T$S0JQh1'`*E0El1(B `exit' ,T`0;g19$S0JQh1'(B
+,T;C!05T107Uh1c0*i1c9!RC!0EQ1:d;0BQ1'0MU1aA!0Jl1(R!0+Q1:`*E0El1(B.
 
-,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-x C-c 0,T!g(B10,T5h(B1,TM`(B0,TAWh(B1,TM(B0,T7h(B1,TR9(B0,T5i(B1,TM'!RC(P`(B0,TET(B1,T!c(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1,T((B0,TCT(B1,T'f(B. 0,TGT(B10,T8U(B10,T9Ui(B1,T`(B0,T;g(B1,T9(B0,TGT(B10,T8U(B10,T7Uh(B10,T6Y(B1,T!(B0,T5i(B1,TM'c9(B
-,T!RC(B0,T7Uh(B1,T(P`(B0,TET(B1,T!c(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1, ,Td(B0,TAh(B10,TGh(B1,TR(B0,TMU(B1,TaA!(B0,TJl(B10,T9Qi(B1,T9(P(B0,T6Y(B1,T!`(B0,TCU(B1,TB!c(B0,T*i(B1,T(R!b;Ca!CA(B0,T(Q(B1,T4!RC`AE(B0,TEl(B1 (mail
-handling programs) ,TK(B0,TCW(B1,TMb;Ca!CAMCC6;CPbB*(B0,T9l(B1 (utility programs) 0,T5h(B1,TR'f(B, 
-,T`(B0,T9Wh(B1,TM'(R!(B0,TGh(B1,TRb;Ca!CA`K(B0,TEh(B1,TR(B0,T9Ui(B1,Td(B0,TAh(B10,TAU(B10,TGT(B10,T8U(B1,T!RC(B0,T(Q(B1,T4!RC(B0,T!Q(B1,T:(B0,TMU(B1,TaA!(B0,TJl(B1,Td(B0,T4i(B1,Tb4B5C'(B. ,Tc9J@R>!RC7S'R9(B
-,T;C!(B0,T5T(B1, 0,T6i(B1,TR(B0,T7h(B1,TR9d(B0,TAh(B1,Td(B0,T4i(B10,T5i(B1,TM'!RC(P`(B0,TET(B1,T!c(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1,T((B0,TCT(B1,T'f(B, 0,T7h(B1,TR9(B0,T!g(B1,T$GC(P(B suspend ,Tb4B!RCc(B0,T*i(B1
-,T$S(B0,TJQh(B1,T'(B C-z ,Ta79!RC`(B0,TET(B1,T!c(B0,T*i(B1,Td;`EB(B.
+,Tc0*i1$S0JQh1'(B C-x C-c 0,T!g105h1M`0AWh1M07h1R905i1M'!RC(P`0ET1!c0*i10MU1aA!0Jl1(0CT1'f(B. 0,TGT108U109Ui1`0;g190GT108U107Uh106Y1!05i1M'c9(B
+,T!RC07Uh1(P`0ET1!c0*i10MU1aA!0Jl1(B, ,Td0Ah10Gh1R0MU1aA!0Jl109Qi19(P06Y1!`0CU1B!c0*i1(R!b;Ca!CA0(Q14!RC`AE0El1(B (mail
+handling programs) ,TK0CW1Mb;Ca!CAMCC6;CPbB*09l1(B (utility programs) 0,T5h1R'f(B,
+,T`09Wh1M'(R!0Gh1Rb;Ca!CA`K0Eh1R09Ui1d0Ah10AU10GT108U1!RC0(Q14!RC0!Q1:0MU1aA!0Jl1d04i1b4B5C'(B. ,Tc9J@R>!RC7S'R9(B
+,T;C!05T1(B, 0,T6i1R07h1R9d0Ah1d04i105i1M'!RC(P`0ET1!c0*i10MU1aA!0Jl1(0CT1'f(B, 0,T7h1R90!g1$GC(P(B suspend ,Tb4B!RCc0*i1(B
+,T$S0JQh1'(B C-z ,Ta79!RC`0ET1!c0*i1d;`EB(B.
 
-0,TBQ(B1,T'(B0,TAU(B1,T$S(B0,TJQh(B1,T'(B0,T7Uh(B1,TM(B0,TBYh(B1,Tc9(B0,T*X(B1,T4$S(B0,TJQh(B1,T'(B C-x 0,TMU(B1,T!AR!(B. 0,T5h(B1,TMd;(B0,T9Ui(B1,T`(B0,T;g(B1,T9CRB!RC$S(B0,TJQh(B1,T'(B0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B1,T`(B0,TCU(B1,TB9(B0,TCYi(B1,Td;a(B0,TEi(B1,TG(B:
+0,TBQ1'0AU1$S0JQh1'07Uh1M0BYh1c90*X14$S0JQh1'(B C-x 0,TMU1!AR!(B. 0,T5h1Md;09Ui1`0;g19CRB!RC$S0JQh1'07Uh107h1R9d04i1`0CU1B90CYi1d;a0Ei1G(B:
 
-	C-x C-f 	,T`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B (Find file).
-	C-x C-s		0,T(Q(B1,T4`(B0,T!g(B1,T:a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B (Save file).
-	C-x C-b		,T7SCRB!RC(B0,T:Q(B1,T?`?M(B0,TCl(B1 (List buffers).
-	C-x C-c		,T`(B0,TET(B1,T!c(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1 (Quit Emacs).
-	C-x 1		,TE:K(B0,T9i(B1,TR(M(B0,T7Qi(B1,T'KA4b4B$'M(B0,TBYh(B1,Td(B0,TGi(B1,TK(B0,T9Vh(B1,T'K(B0,T9i(B1,TR(M(B 
+	C-x C-f 	,T`0BW1M9a0?i1A0"i1M0AY1E(B (Find file).
+	C-x C-s		0,T(Q14`0!g1:a0?i1A0"i1M0AY1E(B (Save file).
+	C-x C-b		,T7SCRB!RC0:Q1?`?M0Cl1(B (List buffers).
+	C-x C-c		,T`0ET1!c0*i10MU1aA!0Jl1(B (Quit Emacs).
+	C-x 1		,TE:K09i1R(M07Qi1'KA4b4B$'M0BYh1d0Gi1K09Vh1'K09i1R(M(B
 			(Delete all but one window).
-	C-x u		,T7S(B0,TBi(B1,TM9(B (Undo).
+	C-x u		,T7S0Bi1M9(B (Undo).
 
-,T$S(B0,TJQh(B1,T'(B0,T7Uh(B10,TAU(B10,T*Wh(B1,TM$S(B0,TJQh(B1,T'`J(B0,TCT(B1,TA(B0,T9Ui(B1,T`(B0,T;g(B1,T9$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B1,Td(B0,TAh(B10,T$h(B1,TMB(B0,T:h(B1,TMB(B0,T9Q(B1,T!(B, ,TK(B0,TCW(B1,TM`(B0,T;g(B1,T9$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B1,T`)>RPc9:R'bKA4(B
-,T`(B0,T7h(B1,TR(B0,T9Qi(B1,T9(B. 0,T5Q(B1,TGM(B0,TBh(B1,TR'K(B0,T9Vh(B1,T'"M'$S(B0,TJQh(B1,T'(B0,T9Ui(B10,T$W(B1,TM$S(B0,TJQh(B1,T'`;(B0,TEUh(B1,TB9a79(B-,TJRB(B0,TMQ(B1,T!"CP(B (replace-string),
-0,T+Vh(B1,T'`(B0,T;g(B1,T9!RC`;(B0,TEUh(B1,TB9a79JRB(B0,TMQ(B1,T!"CPK(B0,T9Vh(B1,T'(B0,T4i(B1,TGB(B0,TMU(B1,T!JRB(B0,TMQ(B1,T!"CPK(B0,T9Vh(B1,T'(B0,T7Qi(B1,T'KA4(B. ,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B M-x,
-0,TMU(B1,TaA!(B0,TJl(B1,TaJ4'(B M-x 0,T7Uh(B1,T:CC(B0,T7Q(B1,T4(B0,TEh(B1,TR'(B0,TJX(B1,T4"M'K(B0,T9i(B1,TR(M(B, ,Tc9(B0,T7Uh(B10,T9Ui(B10,T7h(B1,TR9(P(B0,T5i(B1,TM'(B0,T>T(B1,TA(B0,T>l(B10,T*Wh(B1,TM"M'$S(B0,TJQh(B1,T'(B; ,Tc9!C(B0,T3U(B10,T9Ui(B1
-0,T$W(B1,TM(B "replace-string". 0,T7h(B1,TR9MR((P(B0,T>T(B1,TA(B0,T>l(B1 "repl s<TAB>" ,Ta(B0,TEi(B1,TG(B0,TMU(B1,TaA!(B0,TJl(B1,T(P`(B0,T5T(B1,TA(B0,T*Wh(B1,TM$S(B0,TJQh(B1,T'c(B0,TKi(B1
-,T`(B0,T5g(B1,TA`M'd(B0,T4i(B1. 0,TJTi(B1,T9(B0,TJX(B1,T4$S(B0,TJQh(B1,T'(B0,T4i(B1,TGB!RC!4(B0,T;Xh(B1,TA(B <Return>.
+,T$S0JQh1'07Uh10AU10*Wh1M$S0JQh1'`J0CT1A09Ui1`0;g19$S0JQh1'07Uh1c0*i1d0Ah10$h1MB0:h1MB09Q1!(B, ,TK0CW1M`0;g19$S0JQh1'07Uh1c0*i1`)>RPc9:R'bKA4(B
+,T`07h1R09Qi19(B. 0,T5Q1GM0Bh1R'K09Vh1'"M'$S0JQh1'09Ui10$W1M$S0JQh1'`;0EUh1B9a79(B-,TJRB0MQ1!"CP(B (replace-string),
+0,T+Vh1'`0;g19!RC`;0EUh1B9a79JRB0MQ1!"CPK09Vh1'04i1GB0MU1!JRB0MQ1!"CPK09Vh1'07Qi1'KA4(B. ,T`0AWh1M07h1R90;i1M9$S0JQh1'(B M-x,
+0,TMU1aA!0Jl1aJ4'(B M-x 0,T7Uh1:CC07Q140Eh1R'0JX14"M'K09i1R(M(B, ,Tc907Uh109Ui107h1R9(P05i1M'0>T1A0>l10*Wh1M"M'$S0JQh1'(B; ,Tc9!C03U109Ui1(B
+0,T$W1M(B "replace-string". 0,T7h1R9MR((P0>T1A0>l1(B "repl s<TAB>" ,Ta0Ei1G0MU1aA!0Jl1(P`05T1A0*Wh1M$S0JQh1'c0Ki1(B
+,T`05g1A`M'd04i1(B. 0,TJTi190JX14$S0JQh1'04i1GB!RC!40;Xh1A(B <Return>.
 
-,T$S(B0,TJQh(B1,T'`;(B0,TEUh(B1,TB9a79(B-,TJRB(B0,TMQ(B1,T!"CP(B (replace-string) 0,T5i(B1,TM'!RCJM'MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1--,TJRB(B0,TMQ(B1,T!"CP(B
-0,T7Uh(B1,T(P(B0,T6Y(B1,T!`;(B0,TEUh(B1,TB9a79(B, ,TaEPJRB(B0,TMQ(B1,T!"CP(B0,T7Uh(B1,T(Pc(B0,T*i(B1,T`;(B0,TEUh(B1,TB9a79(B. 0,T7h(B1,TR9(P(B0,T5i(B1,TM'(B0,TJTi(B1,T9(B0,TJX(B1,T4!RC(B0,T;i(B1,TM9a(B0,T5h(B1,TEPMR(B0,TCl(B1
-0,T!T(B1,TG`A9(B0,T5l(B10,T4i(B1,TGB!RC!4(B0,T;Xh(B1,TA(B <Return>.
+,T$S0JQh1'`;0EUh1B9a79(B-,TJRB0MQ1!"CP(B (replace-string) 0,T5i1M'!RCJM'MR0Cl10!T1G`A905l1(B--,TJRB0MQ1!"CP(B
+0,T7Uh1(P06Y1!`;0EUh1B9a79(B, ,TaEPJRB0MQ1!"CP07Uh1(Pc0*i1`;0EUh1B9a79(B. 0,T7h1R9(P05i1M'0JTi190JX14!RC0;i1M9a05h1EPMR0Cl1(B
+0,T!T1G`A905l104i1GB!RC!40;Xh1A(B <Return>.
 
->> ,T`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;(B0,TBQ(B1,T':CC(B0,T7Q(B1,T4`;(B0,TEh(B1,TR(B0,T7Uh(B1,TM(B0,TBYh(B1,Tc(B0,T5i(B1,T:CC(B0,T7Q(B1,T4(B0,T9Ui(B1,Td;JM':CC(B0,T7Q(B1,T4(B.
-   ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B M-x repl s<Return>changed<Return>altered<Return>.
+>> ,T`$0EWh1M9`$M0Cl1`+M0Cl1d;0BQ1':CC07Q14`;0Eh1R07Uh1M0BYh1c05i1:CC07Q1409Ui1d;JM':CC07Q14(B.
+   ,Ta0Ei1G0;i1M9$S0JQh1'(B M-x repl s<Return>changed<Return>altered<Return>.
 
-   0,TJQ(B1,T'`!5(B0,T4Y(B1,T!RC`;(B0,TEUh(B1,TB9a;E'"M':CC(B0,T7Q(B1,T4(B0,T9Ui(B1: 0,T7h(B1,TR9d(B0,T4i(B1,T`;(B0,TEUh(B1,TB9a79$S(B0,TGh(B1,TR(B c-h-a-n-g-e-d
-   0,T4i(B1,TGB$S(B0,TGh(B1,TR(B "altered" ,Tc9(B0,T7X(B1,T!(B0,T7Uh(B10,T7Uh(B1,T;CR!/(B0,T5Qi(B1,T'a(B0,T5h(B1,T5SaK(B0,T9h(B1,T'(B0,T7Uh(B1,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,TM(B0,TBYh(B10,T;Q(B1,T((B0,T(X(B10,T:Q(B1,T9(B.
+   0,TJQ1'`!504Y1!RC`;0EUh1B9a;E'"M':CC07Q1409Ui1(B: 0,T7h1R9d04i1`;0EUh1B9a79$S0Gh1R(B c-h-a-n-g-e-d
+   0,T4i1GB$S0Gh1R(B "altered" ,Tc907X1!07Uh107Uh1;CR!/05Qi1'a05h15SaK09h1'07Uh1`$M0Cl1`+M0Cl1M0BYh10;Q1(0(X10:Q19(B.
 
 
-* 0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1 (auto save)
+* 0,T(Q14`0!g1:0MQ15b90AQ105T1(B (auto save)
 -------------------------
 
-,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9d(B0,T4i(B1,Ta(B0,T!i(B1,Td"a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEa(B0,TEi(B1,TG(B, ,Ta(B0,T5h(B10,T7h(B1,TR9(B0,TBQ(B1,T'd(B0,TAh(B1,Td(B0,T4i(B10,T(Q(B1,T4`(B0,T!g(B1,T:(B, ,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE`K(B0,TEh(B1,TR(B0,T9Qi(B1,T9MR((B0,TJY(B1,T-KRBd(B0,T4i(B10,T6i(B1,TR(B
-,T`$(B0,TCWh(B1,TM'$MA(B0,T>T(B1,TG`5M(B0,TCl(B1,T"M'(B0,T7h(B1,TR9`(B0,T!T(B1,T4(B0,T"Q(B1,T4(B0,T"i(B1,TM'(B. ,T`(B0,T>Wh(B1,TM(B0,T;i(B1,TM'(B0,T!Q(B1,T9`K(B0,T5X(B1,T!RC(B0,T3l(B1,T`(B0,T*h(B1,T9(B0,T9Ui(B1, 0,TMU(B1,TaA!(B0,TJl(B1,T7S!RC`(B0,T"U(B1,TB9(B
-0,T"i(B1,TM$GRAJSK(B0,TCQ(B1,T:a(B0,T5h(B1,TEPa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'7S!RCa(B0,T!i(B1,Td"M(B0,TBYh(B1,TE'c9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B "0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1 
-(auto save)". 0,T*Wh(B1,TM"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1 (auto save file) ,T(P(B0,T6Y(B1,T!(B0,T5Qi(B1,T'cK(B0,TAh(B1,Tc(B0,TKi(B1
-0,TAU(B10,TMQ(B1,T!"CP(B "#" ,TM(B0,TBYh(B10,T7Qi(B1,T'(B0,T"i(B1,TR'K(B0,T9i(B1,TRaEP(B0,T"i(B1,TR'K(B0,TEQ(B1,T'(B0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T5i(B1,T9)(B0,T:Q(B1,T:(B; 0,T5Q(B1,TGM(B0,TBh(B1,TR'`(B0,T*h(B1,T9(B, 0,T6i(B1,TR(B0,T*Wh(B1,TM"M'(B
-,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T9Qi(B1,T9`(B0,T;g(B1,T9(B "hello.c", 0,T*Wh(B1,TM"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1,T(P`(B0,T;g(B1,T9(B "#hello.c#". 
-,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR97S!RC(B0,T(Q(B1,T4`(B0,T!g(B1,T:a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T4i(B1,TGB(B0,TGT(B10,T8U(B1,T!RC;C!(B0,T5T(B1,Ta(B0,TEi(B1,TG(B, 0,TMU(B1,TaA!(B0,TJl(B1,T(PE:a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1
-0,T9Qi(B1,T9`(B0,TJU(B1,TB(B.
+,T`0AWh1M07h1R9d04i1a0!i1d"a0?i1A0"i1M0AY1Ea0Ei1G(B, ,Ta05h107h1R90BQ1'd0Ah1d04i10(Q14`0!g1:(B, ,Ta0?i1A0"i1M0AY1E`K0Eh1R09Qi19MR(0JY1-KRBd04i106i1R(B
+,T`$0CWh1M'$MA0>T1G`5M0Cl1"M'07h1R9`0!T140"Q140"i1M'(B. ,T`0>Wh1M0;i1M'0!Q19`K05X1!RC03l1`0*h1909Ui1(B, 0,TMU1aA!0Jl17S!RC`0"U1B9(B
+0,T"i1M$GRAJSK0CQ1:a05h1EPa0?i1A0"i1M0AY1E07Uh107h1R9!S0EQ1'7S!RCa0!i1d"M0BYh1E'c9a0?i1A0"i1M0AY1E(B "0,T(Q14`0!g1:0MQ15b90AQ105T1(B
+(auto save)". 0,T*Wh1M"M'a0?i1A0"i1M0AY1E0(Q14`0!g1:0MQ15b90AQ105T1(B (auto save file) ,T(P06Y1!05Qi1'cK0Ah1c0Ki1(B
+0,TAU10MQ1!"CP(B "#" ,TM0BYh107Qi1'0"i1R'K09i1RaEP0"i1R'K0EQ1'0*Wh1Ma0?i1A0"i1M0AY1E05i19)0:Q1:(B; 0,T5Q1GM0Bh1R'`0*h19(B, 0,T6i1R0*Wh1M"M'(B
+,Ta0?i1A0"i1M0AY1E09Qi19`0;g19(B "hello.c", 0,T*Wh1M"M'a0?i1A0"i1M0AY1E0(Q14`0!g1:0MQ15b90AQ105T1(P`0;g19(B "#hello.c#".
+,T`0AWh1M07h1R97S!RC0(Q14`0!g1:a0?i1A0"i1M0AY1E04i1GB0GT108U1!RC;C!05T1a0Ei1G(B, 0,TMU1aA!0Jl1(PE:a0?i1A0"i1M0AY1E0(Q14`0!g1:0MQ15b90AQ105T1(B
+0,T9Qi19`0JU1B(B.
 
-0,T6i(B1,TR`$(B0,TCWh(B1,TM'$MA(B0,T>T(B1,TG`5M(B0,TCl(B1,T`(B0,T!T(B1,T4(B0,T"Q(B1,T4(B0,T"i(B1,TM'(B, 0,T7h(B1,TR9JRARC6(B0,T!Yi(B1 (recover) ,T(R!a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B
-0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B10,T9Qi(B1,T9d(B0,T4i(B10,T4i(B1,TGB!RC`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEa::;C!(B0,T5T(B1 (,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'a(B0,T!i(B1,Td"M(B0,TBYh(B1, ,Td(B0,TAh(B1,Tc(B0,T*h(B1
-,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1), ,Ta(B0,TEi(B1,TG(B0,T>T(B1,TA(B0,T>l(B1,T$S(B0,TJQh(B1,T'(B M-x recover file<Return>. ,T`(B0,TAWh(B1,TM(B0,TAU(B1,T!RC(B
-,T6RA`(B0,T>Wh(B1,TM!RC(B0,TBW(B1,T9(B0,TBQ(B1,T9(B, 0,T>T(B1,TA(B0,T>l(B1,T$S(B0,TGh(B1,TR(B yes<Return> ,T`(B0,T>Wh(B1,TM4S`(B0,T9T(B1,T9!RC(B0,T5h(B1,TMaEP7S!RC(B0,T!Yi(B10,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T6Y(B1,T!(B
-0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B10,T9Qi(B1,T9(B.
+0,T6i1R`$0CWh1M'$MA0>T1G`5M0Cl1`0!T140"Q140"i1M'(B, 0,T7h1R9JRARC60!Yi1(B (recover) ,T(R!a0?i1A0"i1M0AY1E0(Q14`0!g1:(B
+0,TMQ15b90AQ105T109Qi19d04i104i1GB!RC`0BW1M9a0?i1A0"i1M0AY1Ea::;C!05T1(B (,Ta0?i1A0"i1M0AY1E07Uh107h1R9!S0EQ1'a0!i1d"M0BYh1(B, ,Td0Ah1c0*h1(B
+,Ta0?i1A0"i1M0AY1E0(Q14`0!g1:0MQ15b90AQ105T1(B), ,Ta0Ei1G0>T1A0>l1$S0JQh1'(B M-x recover file<Return>. ,T`0AWh1M0AU1!RC(B
+,T6RA`0>Wh1M!RC0BW190BQ19(B, 0,T>T1A0>l1$S0Gh1R(B yes<Return> ,T`0>Wh1M4S`09T19!RC05h1MaEP7S!RC0!Yi10"i1M0AY1E07Uh106Y1!(B
+0,T(Q14`0!g1:0MQ15b90AQ105T109Qi19(B.
 
 
-* ,T:(B0,TCT(B1,T`G3JP(B0,T7i(B1,TM9(B (echo area)
+* ,T:0CT1`G3JP07i1M9(B (echo area)
 ------------------------
 
-0,TMU(B1,TaA!(B0,TJl(B10,TMh(B1,TR9$S(B0,TJQh(B1,T';CPJA(B (multicharacter command) ,T"3P(B0,T7Uh(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'(B0,T>T(B1,TA(B0,T>l(B1,T`(B0,T"i(B1,TRd;(B0,T*i(B1,TRf(B,
-0,TMU(B1,TaA!(B0,TJl(B1,T(PaJ4'$S(B0,TJQh(B1,T'(B0,T5h(B1,TR'f(B 0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B10,T>T(B1,TA(B0,T>l(B1,T`(B0,T"i(B1,TRd;5C'(B0,TJh(B1,TG9(B0,TEh(B1,TR'"M'K(B0,T9i(B1,TR(M5C':(B0,TCT(B1,T`G3(B0,T7Uh(B1,T`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B
-",T:(B0,TCT(B1,T`G3JP(B0,T7i(B1,TM9(B (echo area)". ,T:(B0,TCT(B1,T`G3JP(B0,T7i(B1,TM9(B0,T$W(B1,TM:CC(B0,T7Q(B1,T4(B0,TEh(B1,TR'(B0,TJX(B1,T4"M'K(B0,T9i(B1,TR(M(B.
+0,TMU1aA!0Jl10Mh1R9$S0JQh1';CPJA(B (multicharacter command) ,T"3P07Uh107h1R9!S0EQ1'0>T1A0>l1`0"i1Rd;0*i1Rf(B,
+0,TMU1aA!0Jl1(PaJ4'$S0JQh1'05h1R'f(B 0,T7Uh107h1R9d04i10>T1A0>l1`0"i1Rd;5C'0Jh1G90Eh1R'"M'K09i1R(M5C':0CT1`G307Uh1`0CU1B!0Gh1R(B
+",T:0CT1`G3JP07i1M9(B (echo area)". ,T:0CT1`G3JP07i1M90$W1M:CC07Q140Eh1R'0JX14"M'K09i1R(M(B.
 
 
-* ,T:CC(B0,T7Q(B1,T4aJ4'bKA4(B (mode line)
+* ,T:CC07Q14aJ4'bKA4(B (mode line)
 ---------------------------
 
-,T:CC(B0,T7Q(B1,T4(B0,T7Uh(B1,TM(B0,TBYh(B1,T`K(B0,T9W(B1,TM:(B0,TCT(B1,T`G3JP(B0,T7i(B1,TM9(B0,T9Qi(B1,T9`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B "mode line". ,T:CC(B0,T7Q(B1,T4aJ4'bKA4(PaJ4'(B
-0,T"i(B1,TM$GRA:R'M(B0,TBh(B1,TR'c9(B0,TEQ(B1,T!I3P(B:
+,T:CC07Q1407Uh1M0BYh1`K09W1M:0CT1`G3JP07i1M909Qi19`0CU1B!0Gh1R(B "mode line". ,T:CC07Q14aJ4'bKA4(PaJ4'(B
+0,T"i1M$GRA:R'M0Bh1R'c90EQ1!I3P(B:
 
 --:**  TUTORIAL          (Fundamental)--L670--58%----------------
 
-,T:CC(B0,T7Q(B1,T4(B0,T9Ui(B1,Tc(B0,TKi(B10,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B1,T`(B0,T;g(B1,T9;CPbB*(B0,T9l(B1,T`(B0,T!Uh(B1,TBG(B0,T!Q(B1,T:J6R9@R>"M'(B0,TMU(B1,TaA!(B0,TJl(B1,TaEP(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'7S!RC(B
-,Ta(B0,T!i(B1,Td"M(B0,TBYh(B1.
+,T:CC07Q1409Ui1c0Ki10"i1M0AY1E07Uh1`0;g19;CPbB*09l1`0!Uh1BG0!Q1:J6R9@R>"M'0MU1aA!0Jl1aEP0"i1M$GRA07Uh107h1R9!S0EQ1'7S!RC(B
+,Ta0!i1d"M0BYh1(B.
 
-0,T7h(B1,TR97CR:a(B0,TEi(B1,TG(B0,TGh(B1,TR(B0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,TAU(B1,T$GRAKARBM(B0,TBh(B1,TR'dC(B--0,T$W(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B1,T`(B0,TBW(B1,TM9M(B0,TBYh(B1. -NN%-- 
-0,T:h(B1,T':M!5SaK(B0,T9h(B1,T'(B0,T;Q(B1,T((B0,T(X(B10,T:Q(B1,T9c9(B0,T"i(B1,TM$GRA"M'(B0,T7h(B1,TR9(B; 0,T9Qh(B1,T9KARB$GRA(B0,TGh(B1,TR(B0,TAU(B10,T"i(B1,TM$GRA(B NN ,T`;M(B0,TCl(B1,T`+9(B0,T5l(B10,T7Uh(B1,TM(B0,TBYh(B1
-,T`K(B0,T9W(B1,TM5SaK(B0,T9h(B1,T'(B0,TJY(B1,T'(B0,TJX(B1,T4"M'K(B0,T9i(B1,TR(M(B. 0,T6i(B1,TR5SaK(B0,T9h(B1,T'(B0,TJY(B1,T'(B0,TJX(B1,T4"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEM(B0,TBYh(B1,T:9K(B0,T9i(B1,TR(M(B, ,T(P;CR!/(B
---Top-- ,Ta79(B0,T7Uh(B1,T(P`(B0,T;g(B1,T9(B --00%--. 0,T6i(B1,TR5SaK(B0,T9h(B1,T'(B0,TEh(B1,TR'(B0,TJX(B1,T4"M'(B0,T"i(B1,TM$GRAM(B0,TBYh(B1,T:9K(B0,T9i(B1,TR(M(B, ,T(P;CR!/(B
---Bot--. 0,T6i(B1,TR(B0,T7h(B1,TR9!S(B0,TEQ(B1,T'`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B1,T`(B0,TEg(B1,T!AR!(9(B0,T"i(B1,TM$GRA(B0,T7Qi(B1,T'KA4M(B0,TBYh(B1,T:9K(B0,T9i(B1,TR(M(B, ,T:CC(B0,T7Q(B1,T4(B
-,TaJ4'bKA4(PaJ4'(B0,TGh(B1,TR(B --All--.
+0,T7h1R97CR:a0Ei1G0Gh1R0*Wh1Ma0?i1A0"i1M0AY1E0AU1$GRAKARBM0Bh1R'dC(B--0,T$W1Ma0?i1A0"i1M0AY1E07Uh107h1R9d04i1`0BW1M9M0BYh1(B. -NN%--
+0,T:h1':M!5SaK09h1'0;Q1(0(X10:Q19c90"i1M$GRA"M'07h1R9(B; 0,T9Qh19KARB$GRA0Gh1R0AU10"i1M$GRA(B NN ,T`;M0Cl1`+905l107Uh1M0BYh1(B
+,T`K09W1M5SaK09h1'0JY1'0JX14"M'K09i1R(M(B. 0,T6i1R5SaK09h1'0JY1'0JX14"M'a0?i1A0"i1M0AY1EM0BYh1:9K09i1R(M(B, ,T(P;CR!/(B
+--Top-- ,Ta7907Uh1(P`0;g19(B --00%--. 0,T6i1R5SaK09h1'0Eh1R'0JX14"M'0"i1M$GRAM0BYh1:9K09i1R(M(B, ,T(P;CR!/(B
+--Bot--. 0,T6i1R07h1R9!S0EQ1'`0BW1M9a0?i1A0"i1M0AY1E07Uh1`0Eg1!AR!(90"i1M$GRA07Qi1'KA4M0BYh1:9K09i1R(M(B, ,T:CC07Q14(B
+,TaJ4'bKA4(PaJ4'0Gh1R(B --All--.
 
-,T`$(B0,TCWh(B1,TM'KARB4M!(B0,T(Q(B1,T9:(B0,TCT(B1,T`G3(B0,T5i(B1,T9f(B ,T"M':CC(B0,T7Q(B1,T4aJ4'bKA4KARB$GRA(B0,TGh(B1,TR(B0,T7h(B1,TR9d(B0,T4i(B1,T7S!RC(B
-,T`;(B0,TEUh(B1,TB9a;E'`(B0,T9Wi(B1,TMKRc9(B0,T"i(B1,TM$GRAa(B0,TEi(B1,TG(B. ,TKR!(B0,T7h(B1,TR9`(B0,T>Th(B1,T'`(B0,TBW(B1,TM9K(B0,TCW(B1,TM(B0,T(Q(B1,T4`(B0,T!g(B1,T:a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B, 0,TJh(B1,TG9(B0,T7Uh(B1
-,Td(B0,T4i(B1,T!(B0,TEh(B1,TRG(B0,T6V(B1,T'(B0,T9Qi(B1,T9(Pd(B0,TAh(B10,TAU(B1,T`$(B0,TCWh(B1,TM'KARB4M!(B0,T(Q(B1,T9;CR!/(B, ,T(P(B0,TAU(B1,Ta(B0,T5h(B1,T`(B0,TJi(B1,T9;CP(B (dashes).
+,T`$0CWh1M'KARB4M!0(Q19:0CT1`G305i19f(B ,T"M':CC07Q14aJ4'bKA4KARB$GRA0Gh1R07h1R9d04i17S!RC(B
+,T`;0EUh1B9a;E'`09Wi1MKRc90"i1M$GRAa0Ei1G(B. ,TKR!07h1R9`0>Th1'`0BW1M9K0CW1M0(Q14`0!g1:a0?i1A0"i1M0AY1E(B, 0,TJh1G907Uh1(B
+,Td04i1!0Eh1RG06V1'09Qi19(Pd0Ah10AU1`$0CWh1M'KARB4M!0(Q19;CR!/(B, ,T(P0AU1a05h1`0Ji19;CP(B (dashes).
 
-0,TJh(B1,TG9(B0,T7Uh(B1,TM(B0,TBYh(B1,TCPK(B0,TGh(B1,TR'G'`(B0,TEg(B1,T:@RBc9:CC(B0,T7Q(B1,T4aJ4'bKA4(P:M!(B0,T7h(B1,TR9(B0,TGh(B1,TR(B0,T7h(B1,TR9!S(B0,TEQ(B1,T'M(B0,TBYh(B1,Tc9bKA4!RCa(B0,T!i(B1,Td"(B
-(editing mode) ,TMPdC(B. ,TbKA4b4B;(B0,TCT(B1,TBRB(B (default mode) 0,T$W(B1,TM(B Fundamental 0,T7Uh(B1
-0,T7h(B1,TR9!S(B0,TEQ(B1,T'c(B0,T*i(B1,TM(B0,TBYh(B1,Tc9"3P(B0,T9Ui(B1. 0,T9Uh(B10,T$W(B1,TM(B0,T5Q(B1,TGM(B0,TBh(B1,TR'"M'(B ",TbKA4K(B0,TEQ(B1,T!(B (major mode)".
+0,TJh1G907Uh1M0BYh1CPK0Gh1R'G'`0Eg1:@RBc9:CC07Q14aJ4'bKA4(P:M!07h1R90Gh1R07h1R9!S0EQ1'M0BYh1c9bKA4!RCa0!i1d"(B
+(editing mode) ,TMPdC(B. ,TbKA4b4B;0CT1BRB(B (default mode) 0,T$W1M(B Fundamental 0,T7Uh1(B
+0,T7h1R9!S0EQ1'c0*i1M0BYh1c9"3P09Ui1(B. 0,T9Uh10$W1M05Q1GM0Bh1R'"M'(B ",TbKA4K0EQ1!(B (major mode)".
 
-0,TMU(B1,TaA!(B0,TJl(B10,TAU(B1,TbKA4K(B0,TEQ(B1,T!M(B0,TBYh(B1,TKERBbKA4(B. 0,T:i(B1,TR'c(B0,T*i(B1,TJSK(B0,TCQ(B1,T:!RCa(B0,T!i(B1,Td"c9@RIRaEP(B/,TK(B0,TCW(B1,TM(B0,T"i(B1,TM$GRA*(B0,T9T(B1,T4(B0,T5h(B1,TR'f(B, 
-,T`(B0,T*h(B1,T9(B Lisp mode, Text mode, ,T`(B0,T;g(B1,T9(B0,T5i(B1,T9(B. 0,T7h(B1,TR9(PM(B0,TBYh(B1,Tc9bKA4K(B0,TEQ(B1,T!c4bKA4K(B0,TEQ(B1,T!K(B0,T9Vh(B1,T'c9`GER(B
-,T`(B0,T4U(B1,TBG(B, ,TaEP(B0,T*Wh(B1,TM"M'bKA4K(B0,TEQ(B1,T!(B0,T9Qi(B1,T9(P;CR!/M(B0,TBYh(B10,T7Uh(B1,T:CC(B0,T7Q(B1,T4aJ4'bKA4(B, 0,T7Uh(B10,T7Uh(B10,TAU(B1 "Fundamental" 
-,T;CR!/M(B0,TBYh(B1,Tc9"3P(B0,T9Ui(B1.
+0,TMU1aA!0Jl10AU1bKA4K0EQ1!M0BYh1KERBbKA4(B. 0,T:i1R'c0*i1JSK0CQ1:!RCa0!i1d"c9@RIRaEP(B/,TK0CW1M0"i1M$GRA*09T1405h1R'f(B,
+,T`0*h19(B Lisp mode, Text mode, ,T`0;g1905i19(B. 0,T7h1R9(PM0BYh1c9bKA4K0EQ1!c4bKA4K0EQ1!K09Vh1'c9`GER(B
+,T`04U1BG(B, ,TaEP0*Wh1M"M'bKA4K0EQ1!09Qi19(P;CR!/M0BYh107Uh1:CC07Q14aJ4'bKA4(B, 0,T7Uh107Uh10AU1(B "Fundamental"
+,T;CR!/M0BYh1c9"3P09Ui1(B.
 
-,Ta(B0,T5h(B1,TEPbKA4K(B0,TEQ(B1,T!(P7Sc(B0,TKi(B1,T$S(B0,TJQh(B1,T'c(B0,TKi(B1,T<Ec9(B0,TEQ(B1,T!I3P(B0,T7Uh(B1,Ta5!(B0,T5h(B1,TR'(B0,T!Q(B1,T9(B. 0,T5Q(B1,TGM(B0,TBh(B1,TR'`(B0,T*h(B1,T9(B, 0,TAU(B1,TKERB$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B1
-,Tc9!RC!S(B0,T!Q(B1,T:KARB`K(B0,T5X(B1 (comment) ,Tc9b;Ca!CA(B, ,TaEP`(B0,T9Wh(B1,TM'(R!a(B0,T5h(B1,TEPb;Ca!CA(B0,TAU(B1,T$GRA(B0,T$T(B1,T4(B
-,Tc9!RCaJ4'<E"M'KARB`K(B0,T5X(B10,T7Uh(B1,Ta5!(B0,T5h(B1,TR'(B0,T!Q(B1,T9(B, ,Ta(B0,T5h(B1,TEPbKA4K(B0,TEQ(B1,T!(Pa7C!KARB`K(B0,T5X(B1,Tc9(B0,TEQ(B1,T!I3P(B0,T7Uh(B1
-,Ta5!(B0,T5h(B1,TR'(B0,T!Q(B1,T9(B. ,Ta(B0,T5h(B1,TEPbKA4K(B0,TEQ(B1,T!(P`(B0,T;g(B1,T9(B0,T*Wh(B1,TM"M'$S(B0,TJQh(B1,T'`J(B0,TCT(B1,TA(B, 0,T7Uh(B10,T7h(B1,TR9JRARC6:M!c(B0,TKi(B1,TJ(B0,TEQ(B1,T:d;(B0,TBQ(B1,T'bKA4(B0,T7Uh(B1
-0,T5i(B1,TM'!RCd(B0,T4i(B1. 0,T5Q(B1,TGM(B0,TBh(B1,TR'`(B0,T*h(B1,T9(B, M-x fundamental-mode ,T`(B0,T;g(B1,T9$S(B0,TJQh(B1,T'c9!RCJ(B0,TEQ(B1,T:d;(B0,TBQ(B1,T'(B
+,Ta05h1EPbKA4K0EQ1!(P7Sc0Ki1$S0JQh1'c0Ki1<Ec90EQ1!I3P07Uh1a5!05h1R'0!Q19(B. 0,T5Q1GM0Bh1R'`0*h19(B, 0,TAU1KERB$S0JQh1'07Uh1c0*i1(B
+,Tc9!RC!S0!Q1:KARB`K05X1(B (comment) ,Tc9b;Ca!CA(B, ,TaEP`09Wh1M'(R!a05h1EPb;Ca!CA0AU1$GRA0$T14(B
+,Tc9!RCaJ4'<E"M'KARB`K05X107Uh1a5!05h1R'0!Q19(B, ,Ta05h1EPbKA4K0EQ1!(Pa7C!KARB`K05X1c90EQ1!I3P07Uh1(B
+,Ta5!05h1R'0!Q19(B. ,Ta05h1EPbKA4K0EQ1!(P`0;g190*Wh1M"M'$S0JQh1'`J0CT1A(B, 0,T7Uh107h1R9JRARC6:M!c0Ki1J0EQ1:d;0BQ1'bKA407Uh1(B
+0,T5i1M'!RCd04i1(B. 0,T5Q1GM0Bh1R'`0*h19(B, M-x fundamental-mode ,T`0;g19$S0JQh1'c9!RCJ0EQ1:d;0BQ1'(B
 Fundamental mode.
 
-0,T6i(B1,TR(B0,T7h(B1,TR9!S(B0,TEQ(B1,T'(Pa(B0,T!i(B1,Td"(B0,T"i(B1,TM$GRA(B0,T7Uh(B1,T`(B0,T;g(B1,T9@RIRd7B(B, ,T`(B0,T*h(B1,T9c9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T9Ui(B1, 0,T7h(B1,TR9$GC(Pc(B0,T*i(B1
+0,T6i1R07h1R9!S0EQ1'(Pa0!i1d"0"i1M$GRA07Uh1`0;g19@RIRd7B(B, ,T`0*h19c9a0?i1A0"i1M0AY1E09Ui1(B, 0,T7h1R9$GC(Pc0*i1(B
 Thai-text mode.
 >> M-x thai-text-mode<Return>
 
-,Td(B0,TAh(B10,T5i(B1,TM'(B0,T!Q(B1,T'GE(B, ,T$S(B0,TJQh(B1,T'(B0,T7Uh(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'(B0,THV(B1,T!IRM(B0,TBYh(B10,T9Ui(B1,Td(B0,TAh(B1,Td(B0,T4i(B1,Tc(B0,TKi(B1,T<E!CP7:AR!(B0,T9Q(B1,T!(B. ,Ta(B0,T5h(B10,T7h(B1,TR9JRARC6(B0,TJQ(B1,T'`!5d(B0,T4i(B1
-0,TGh(B1,TR$S(B0,TJQh(B1,T'(B M-f ,TaEP(B M-b 0,T6W(B1,TM(B0,TGh(B1,TR(B0,TMQ(B1,T!"CP(B apostrophe ,T`(B0,T;g(B1,T9(B0,TJh(B1,TG9K(B0,T9Vh(B1,T'"M'$S(B. 0,T!h(B1,TM9K(B0,T9i(B1,TR(B0,T9Ui(B1, ,Tc9(B 
-Fundamental mode, ,T$S(B0,TJQh(B1,T'(B M-f ,TaEP(B M-b 0,T6W(B1,TM(B0,TGh(B1,TR(B0,TMQ(B1,T!"CP(B apostrophe ,T`(B0,T;g(B1,T9(B0,T5Q(B1,TGa(B0,T:h(B1,T'$S(B 
+,Td0Ah105i1M'0!Q1'GE(B, ,T$S0JQh1'07Uh107h1R9!S0EQ1'0HV1!IRM0BYh109Ui1d0Ah1d04i1c0Ki1<E!CP7:AR!09Q1!(B. ,Ta05h107h1R9JRARC60JQ1'`!5d04i1(B
+0,TGh1R$S0JQh1'(B M-f ,TaEP(B M-b 0,T6W1M0Gh1R0MQ1!"CP(B apostrophe ,T`0;g190Jh1G9K09Vh1'"M'$S(B. 0,T!h1M9K09i1R09Ui1(B, ,Tc9(B
+Fundamental mode, ,T$S0JQh1'(B M-f ,TaEP(B M-b 0,T6W1M0Gh1R0MQ1!"CP(B apostrophe ,T`0;g1905Q1Ga0:h1'$S(B
 (word-separator).
 
-,TbKA4K(B0,TEQ(B1,T!`K(B0,TEh(B1,TR(B0,T9Ui(B1,T(Pc(B0,TKi(B1,T<E(B0,T7Uh(B10,T5h(B1,TR'MM!d;`(B0,TEg(B1,T!(B0,T9i(B1,TMB(B0,T4Q(B1,T'(B0,T7Uh(B1,T!(B0,TEh(B1,TRGa(B0,TEi(B1,TG(B0,T"i(B1,TR'(B0,T5i(B1,T9(B: ,T$S(B0,TJQh(B1,T'(B0,TJh(B1,TG9cK(B0,T-h(B1 ",T7SK(B0,T9i(B1,TR(B0,T7Uh(B1
-,T`K(B0,TAW(B1,TM9(B0,T!Q(B1,T9(B" ,Ta(B0,TAi(B1,T(PM(B0,TBYh(B1,Tc9bKA4K(B0,TEQ(B1,T!(B0,T7Uh(B10,T5h(B1,TR'(B0,T!Q(B1,T9(B, ,Ta(B0,T5h(B1,Tc(B0,TKi(B1,T<E(B0,T7Uh(B10,T5h(B1,TR'MM!d;(B0,T:i(B1,TR'`(B0,TEg(B1,T!(B0,T9i(B1,TMB(B.
+,TbKA4K0EQ1!`K0Eh1R09Ui1(Pc0Ki1<E07Uh105h1R'MM!d;`0Eg1!09i1MB04Q1'07Uh1!0Eh1RGa0Ei1G0"i1R'05i19(B: ,T$S0JQh1'0Jh1G9cK0-h1(B ",T7SK09i1R07Uh1(B
+,T`K0AW1M90!Q19(B" ,Ta0Ai1(PM0BYh1c9bKA4K0EQ1!07Uh105h1R'0!Q19(B, ,Ta05h1c0Ki1<E07Uh105h1R'MM!d;0:i1R'`0Eg1!09i1MB(B.
 
-,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-h m ,T`(B0,T>Wh(B1,TM(B0,TMh(B1,TR9CRBEP`(B0,TMU(B1,TB4"M'bKA4K(B0,TEQ(B1,T!(B0,T;Q(B1,T((B0,T(X(B10,T:Q(B1,T9(B0,T7Uh(B10,T7h(B1,TR9M(B0,TBYh(B1.
+,Tc0*i1$S0JQh1'(B C-h m ,T`0>Wh1M0Mh1R9CRBEP`0MU1B4"M'bKA4K0EQ1!0;Q1(0(X10:Q1907Uh107h1R9M0BYh1(B.
 
->> ,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-u C-v ,TK(B0,T9Vh(B1,T'$(B0,TCQi(B1,T'K(B0,TCW(B1,TMAR!!(B0,TGh(B1,TR(B0,T9Qi(B1,T9`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P"(B0,TBQ(B1,T::CC(B0,T7Q(B1,T4(B0,T9Ui(B10,T"Vi(B1,T9d;(B0,TBQ(B1,T'(B0,TJh(B1,TG9:9"M'K(B0,T9i(B1,TR(M(B.
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-h m, ,T`(B0,T>Wh(B1,TM(B0,T4Y(B10,TGh(B1,TR(B Text mode 0,T5h(B1,TR'(R!(B Fundamental mode ,TM(B0,TBh(B1,TR'dC(B.
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 1 ,T`(B0,T>Wh(B1,TM"(B0,T(Q(B1,T4`M!JRC(B0,T*Ui(B1,Ta('MM!(R!K(B0,T9i(B1,TR(M(B.
+>> ,Tc0*i1$S0JQh1'(B C-u C-v ,TK09Vh1'$0CQi1'K0CW1MAR!!0Gh1R09Qi19`0>Wh1M07Uh1(P"0BQ1::CC07Q1409Ui10"Vi19d;0BQ1'0Jh1G9:9"M'K09i1R(M(B.
+>> 0,T;i1M9$S0JQh1'(B C-h m, ,T`0>Wh1M04Y10Gh1R(B Text mode 0,T5h1R'(R!(B Fundamental mode ,TM0Bh1R'dC(B.
+>> 0,T;i1M9$S0JQh1'(B C-x 1 ,T`0>Wh1M"0(Q14`M!JRC0*Ui1a('MM!(R!K09i1R(M(B.
 
-0,T7Uh(B1,T`(B0,TCU(B1,TB!(B0,TGh(B1,TRbKA4K(B0,TEQ(B1,T!(B0,T9Qi(B1,T9(B0,T!g(B1,T`>CRP(B0,TGh(B1,TR(B0,TAU(B1,TbKA4(B0,TBh(B1,TMB(B (minor mode) 0,TMU(B1,T!(B. ,TbKA4(B0,TBh(B1,TMBd(B0,TAh(B1,Td(B0,T4i(B1,T`(B0,T;g(B1,T9(B
-0,T5Q(B1,TG`(B0,TEW(B1,TM!c9bKA4K(B0,TEQ(B1,T!(B, ,T`(B0,T9Wh(B1,TM'(R!(B0,TGh(B1,TR(B0,TAU(B1,T!RC`;(B0,TEUh(B1,TB9d;`(B0,T>U(B1,TB'`(B0,TEg(B1,T!(B0,T9i(B1,TMB`(B0,T7h(B1,TR(B0,T9Qi(B1,T9(B. ,Ta(B0,T5h(B1,TEPbKA4(B0,TBh(B1,TMBJRARC6(B
-,T(P`(B0,T;T(B1,T4K(B0,TCW(B1,TM(B0,T;T(B1,T4d(B0,T4i(B1,T@RBc9(B0,T5Q(B1,TG`M'(B, 0,T$W(B1,TMa(B0,T5h(B1,TEPbKA4(B0,TBh(B1,TMB(P7S'R9b4B(B0,TMT(B1,TJCP(R!(B0,T!Q(B1,T9(B, ,TaEP(B
-,T`(B0,T;g(B1,T9(B0,TMT(B1,TJCP(R!bKA4K(B0,TEQ(B1,T!(B0,T4i(B1,TGB(B. ,T)P(B0,T9Qi(B1,T9(B0,T7h(B1,TR9JRARC6d(B0,TAh(B1,Tc(B0,T*i(B1,TbKA4(B0,TBh(B1,TMB`EB(B, ,TK(B0,TCW(B1,TMK(B0,T9Vh(B1,T'bKA4(B0,TBh(B1,TMB(B, ,TK(B0,TCW(B1,TM(B
-,TbKA4(B0,TBh(B1,TMBKERBf(B ,TbKA4<JA(B0,T!Q(B1,T9(B0,T!g(B1,Td(B0,T4i(B1.
+0,T7Uh1`0CU1B!0Gh1RbKA4K0EQ1!09Qi190!g1`>CRP0Gh1R0AU1bKA40Bh1MB(B (minor mode) 0,TMU1!(B. ,TbKA40Bh1MBd0Ah1d04i1`0;g19(B
+0,T5Q1G`0EW1M!c9bKA4K0EQ1!(B, ,T`09Wh1M'(R!0Gh1R0AU1!RC`;0EUh1B9d;`0>U1B'`0Eg1!09i1MB`07h1R09Qi19(B. ,Ta05h1EPbKA40Bh1MBJRARC6(B
+,T(P`0;T14K0CW1M0;T14d04i1@RBc905Q1G`M'(B, 0,T$W1Ma05h1EPbKA40Bh1MB(P7S'R9b4B0MT1JCP(R!0!Q19(B, ,TaEP(B
+,T`0;g190MT1JCP(R!bKA4K0EQ1!04i1GB(B. ,T)P09Qi1907h1R9JRARC6d0Ah1c0*i1bKA40Bh1MB`EB(B, ,TK0CW1MK09Vh1'bKA40Bh1MB(B, ,TK0CW1M(B
+,TbKA40Bh1MBKERBf(B ,TbKA4<JA0!Q190!g1d04i1(B.
 
-,TbKA4(B0,TBh(B1,TMB(B0,T7Uh(B10,TAU(B1,T;CPbB*(B0,T9l(B1,TAR!(B, ,Tb4B`)>RPJSK(B0,TCQ(B1,T:c(B0,T*i(B1,Ta(B0,T!i(B1,Td"(B0,T"i(B1,TM$GRA(B0,T7Uh(B1,T`(B0,T;g(B1,T9@RIR(B0,TMQ(B1,T'!DI(B, 0,T$W(B1,TM(B
-,TbKA4(B0,T(Q(B1,T4:CC(B0,T7Q(B1,T4(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1 (Auto Fill). ,T`(B0,TAWh(B1,TMbKA4(B0,T9Ui(B1,T7S'R9(B, 0,TMU(B1,TaA!(B0,TJl(B1,T(Pa(B0,T:h(B1,T':CC(B0,T7Q(B1,T4CPK(B0,TGh(B1,TR'(B
-,T$S(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1, 0,T7Q(B1,T9(B0,T7U(B10,T7Uh(B10,T7h(B1,TR9a7C!(B0,T"i(B1,TM$GRAaEP7Sc(B0,TKi(B1,T:CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9BRG`(B0,T!T(B1,T9d;(B.
+,TbKA40Bh1MB07Uh10AU1;CPbB*09l1AR!(B, ,Tb4B`)>RPJSK0CQ1:c0*i1a0!i1d"0"i1M$GRA07Uh1`0;g19@RIR0MQ1'!DI(B, 0,T$W1M(B
+,TbKA40(Q14:CC07Q140MQ15b90AQ105T1(B (Auto Fill). ,T`0AWh1MbKA409Ui17S'R9(B, 0,TMU1aA!0Jl1(Pa0:h1':CC07Q14CPK0Gh1R'(B
+,T$S0MQ15b90AQ105T1(B, 0,T7Q1907U107Uh107h1R9a7C!0"i1M$GRAaEP7Sc0Ki1:CC07Q1409Qi19BRG`0!T19d;(B.
 
-0,T7h(B1,TR9JRARC6`(B0,T;T(B1,T4bKA4(B0,T(Q(B1,T4:CC(B0,T7Q(B1,T4(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1,Td(B0,T4i(B1,Tb4B!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-x auto fill
-mode<Return>. ,T`(B0,TAWh(B1,TMbKA4(B0,T9Ui(B1,T7S'R9M(B0,TBYh(B1, 0,T7h(B1,TR9JRARC6(B0,T;T(B1,T4bKA4(B0,T9Ui(B1,Td(B0,T4i(B1,Tb4B!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-x
-auto fill mode<Return>. 0,T6i(B1,TRbKA4(B0,T9Ui(B10,T;T(B1,T4M(B0,TBYh(B1, ,T$S(B0,TJQh(B1,T'(B0,T9Ui(B1,T(P`(B0,T;T(B1,T4bKA4c(B0,TKi(B1,T7S'R9(B, ,TaEP(B0,T6i(B1,TR(B
-,TbKA4(B0,T9Ui(B1,T`(B0,T;T(B1,T4M(B0,TBYh(B1, ,T$S(B0,TJQh(B1,T'(B0,T9Ui(B10,T!g(B1,T(P(B0,T;T(B1,T4bKA4(B. 0,T$W(B1,TM(B0,T>Y(B1,T4d(B0,T4i(B10,TGh(B1,TR$S(B0,TJQh(B1,T'(B0,T9Ui(B1 "toggles the mode".
+0,T7h1R9JRARC6`0;T14bKA40(Q14:CC07Q140MQ15b90AQ105T1d04i1b4B!RCc0*i1$S0JQh1'(B M-x auto fill
+mode<Return>. ,T`0AWh1MbKA409Ui17S'R9M0BYh1(B, 0,T7h1R9JRARC60;T14bKA409Ui1d04i1b4B!RCc0*i1$S0JQh1'(B M-x
+auto fill mode<Return>. 0,T6i1RbKA409Ui10;T14M0BYh1(B, ,T$S0JQh1'09Ui1(P`0;T14bKA4c0Ki17S'R9(B, ,TaEP06i1R(B
+,TbKA409Ui1`0;T14M0BYh1(B, ,T$S0JQh1'09Ui10!g1(P0;T14bKA4(B. 0,T$W1M0>Y14d04i10Gh1R$S0JQh1'09Ui1(B "toggles the mode".
 
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B M-x auto fill mode<Return> 0,T4Y(B1. ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9(B "asdf " 0,T+i(B1,TSf(B 0,T!Q(B1,T9d;(9(B
-   0,T7h(B1,TR9`(B0,TKg(B1,T9(B0,TGh(B1,TR:CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9(B0,T6Y(B1,T!a(B0,T:h(B1,T'MM!`(B0,T;g(B1,T9JM':CC(B0,T7Q(B1,T4(B. 0,T7h(B1,TR9(B0,T5i(B1,TM'c(B0,TJh(B1,T`(B0,TGi(B1,T9GCC$`>CRP(B0,TGh(B1,TR!RC(B0,T(Q(B1,T4(B
-   ,T:CC(B0,T7Q(B1,T4(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1,T(Pa(B0,T:h(B1,T':CC(B0,T7Q(B1,T45C'`(B0,TGi(B1,T9GCC$`(B0,T7h(B1,TR(B0,T9Qi(B1,T9(B.
+>> 0,T;i1M9$S0JQh1'(B M-x auto fill mode<Return> 0,T4Y1(B. ,Ta0Ei1G0;i1M9(B "asdf " 0,T+i1Sf(B 0,T!Q19d;(9(B
+   0,T7h1R9`0Kg190Gh1R:CC07Q1409Qi1906Y1!a0:h1'MM!`0;g19JM':CC07Q14(B. 0,T7h1R905i1M'c0Jh1`0Gi19GCC$`>CRP0Gh1R!RC0(Q14(B
+   ,T:CC07Q140MQ15b90AQ105T1(Pa0:h1':CC07Q145C'`0Gi19GCC$`07h1R09Qi19(B.
 
-,T"M:`(B0,T<Wh(B1,TM(B (margin) ,Tb4BAR!(P(B0,T5Qi(B1,T'c(B0,TKi(B10,T7Uh(B1 70 0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B, ,Ta(B0,T5h(B10,T7h(B1,TR9(B0,T!g(B1,TJRARC6`;(B0,TEUh(B1,TB9(B0,T4i(B1,TGB$S(B0,TJQh(B1,T'(B
-C-x f. 0,T7h(B1,TR9$GC(B0,T5Qi(B1,T'"M:`(B0,T<Wh(B1,TM(B0,T4i(B1,TGB(B0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,T5RA(B0,T7Uh(B10,T7h(B1,TR9(B0,T5i(B1,TM'!RC(B.
+,T"M:`0<Wh1M(B (margin) ,Tb4BAR!(P05Qi1'c0Ki107Uh1(B 70 0,T5Q1G0MQ1!IC(B, ,Ta05h107h1R90!g1JRARC6`;0EUh1B904i1GB$S0JQh1'(B
+C-x f. 0,T7h1R9$GC05Qi1'"M:`0<Wh1M04i1GB05Q1G`E"MR0Cl10!T1G`A905l15RA07Uh107h1R905i1M'!RC(B.
 
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x f ,T>(B0,TCi(B1,TMA(B0,T4i(B1,TGBMR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1 20. (C-u 2 0 C-x f).
-   ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9(B0,T"i(B1,TM$GRAaEP(P`(B0,TKg(B1,T9(B0,TGh(B1,TR(B0,TMU(B1,TaA!(B0,TJl(B10,T(Q(B1,T4:CC(B0,T7Q(B1,T4(B0,T7Uh(B10,TAU(B1,T"9R4(B 20 0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B. ,Ta(B0,TEi(B1,TG(B0,T5Qi(B1,T'"M:(B
-   ,T`(B0,T<Wh(B1,TM`(B0,T;g(B1,T9(B 70 ,Tb4Bc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-x f 0,TMU(B1,T!$(B0,TCQi(B1,T'(B.
+>> 0,T;i1M9$S0JQh1'(B C-x f ,T>0Ci1MA04i1GBMR0Cl10!T1G`A905l1(B 20. (C-u 2 0 C-x f).
+   ,Ta0Ei1G0;i1M90"i1M$GRAaEP(P`0Kg190Gh1R0MU1aA!0Jl10(Q14:CC07Q1407Uh10AU1"9R4(B 20 0,T5Q1G0MQ1!IC(B. ,Ta0Ei1G05Qi1'"M:(B
+   ,T`0<Wh1M`0;g19(B 70 ,Tb4Bc0*i1$S0JQh1'(B C-x f 0,TMU1!$0CQi1'(B.
 
-0,T6i(B1,TR(B0,T7h(B1,TR97S!RC`;(B0,TEUh(B1,TB9a;E'5C'!ER'(B0,TBh(B1,TMK(B0,T9i(B1,TR(B, ,TbKA4(B0,T(Q(B1,T4:CC(B0,T7Q(B1,T4(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1,T(Pd(B0,TAh(B10,T(Q(B1,T4:CC(B0,T7Q(B1,T4cK(B0,TAh(B1
-(re-fill) ,Tc(B0,TKi(B10,T7h(B1,TR9(B. 0,T6i(B1,TR(P(B0,T(Q(B1,T4:CC(B0,T7Q(B1,T4cK(B0,TAh(B1,Tc(B0,TKi(B10,T!Q(B1,T:(B0,TBh(B1,TMK(B0,T9i(B1,TR(B0,T9Qi(B1,T9(B, ,Tc(B0,TKi(B10,T;i(B1,TM9$S(B0,TJQh(B1,T'(B M-q (META-q)
-,Tb4BGR'5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td(B0,TGi(B1,T@RBc9(B0,TBh(B1,TMK(B0,T9i(B1,TR(B0,T9Qi(B1,T9(B.
+0,T6i1R07h1R97S!RC`;0EUh1B9a;E'5C'!ER'0Bh1MK09i1R(B, ,TbKA40(Q14:CC07Q140MQ15b90AQ105T1(Pd0Ah10(Q14:CC07Q14cK0Ah1(B
+(re-fill) ,Tc0Ki107h1R9(B. 0,T6i1R(P0(Q14:CC07Q14cK0Ah1c0Ki10!Q1:0Bh1MK09i1R09Qi19(B, ,Tc0Ki10;i1M9$S0JQh1'(B M-q (META-q)
+,Tb4BGR'5SaK09h1'`$M0Cl1`+M0Cl1d0Gi1@RBc90Bh1MK09i1R09Qi19(B.
 
->> ,T`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T`(B0,T"i(B1,TRd;(B0,TBQ(B1,T'(B0,TBh(B1,TMK(B0,T9i(B1,TR(B0,T"i(B1,TR':9(B, ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B M-q.
+>> ,T`$0EWh1M9`$M0Cl1`+M0Cl1`0"i1Rd;0BQ1'0Bh1MK09i1R0"i1R':9(B, ,Ta0Ei1G0;i1M9$S0JQh1'(B M-q.
 
 
-* ,T!RC(B0,TJW(B1,T:(B0,T$i(B1,T9(B (searching)
+* ,T!RC0JW1:0$i19(B (searching)
 ---------------------
 
-0,TMU(B1,TaA!(B0,TJl(B1,TJRARC6(B0,TJW(B1,T:(B0,T$i(B1,T9JRB(B0,TMQ(B1,T!"CP(B (,T!(B0,TEXh(B1,TA"M'(B0,T5Q(B1,TG(B0,TMQ(B1,T!ICK(B0,TCW(B1,TM$S(B0,T7Uh(B1,TM(B0,TBYh(B10,T5h(B1,TM`(B0,T9Wh(B1,TM'(B0,T!Q(B1,T9(B) ,Td(B0,TAh(B10,TGh(B1,TR(Pd;(B
-0,T"i(B1,TR'K(B0,T9i(B1,TRK(B0,TCW(B1,TM(B0,TBi(B1,TM9!(B0,TEQ(B1,T:(B, 0,T7Qh(B1,TG(B0,T7Qi(B1,T'(B0,T"i(B1,TM$GRA(B. ,T!RC(B0,TJW(B1,T:(B0,T$i(B1,T9JRB(B0,TMQ(B1,T!"CP(B0,T$W(B1,TM$S(B0,TJQh(B1,T'c9!RC`$(B0,TEWh(B1,TM95SaK(B0,T9h(B1,T'(B
-,T"M'`$M(B0,TCl(B1,T`+M(B0,TCl(B1; ,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T(P`$(B0,TEWh(B1,TM9d;M(B0,TBYh(B10,T7Uh(B1,T5SaK(B0,T9h(B1,T'(B0,T6Q(B1,T4d;(B0,T7Uh(B10,TAU(B1,TJRB(B0,TMQ(B1,T!"CP(B0,T9Qi(B1,T9M(B0,TBYh(B1.
+0,TMU1aA!0Jl1JRARC60JW1:0$i19JRB0MQ1!"CP(B (,T!0EXh1A"M'05Q1G0MQ1!ICK0CW1M$S07Uh1M0BYh105h1M`09Wh1M'0!Q19(B) ,Td0Ah10Gh1R(Pd;(B
+0,T"i1R'K09i1RK0CW1M0Bi1M9!0EQ1:(B, 0,T7Qh1G07Qi1'0"i1M$GRA(B. ,T!RC0JW1:0$i19JRB0MQ1!"CP0$W1M$S0JQh1'c9!RC`$0EWh1M95SaK09h1'(B
+,T"M'`$M0Cl1`+M0Cl1(B; ,T`$M0Cl1`+M0Cl1(P`$0EWh1M9d;M0BYh107Uh15SaK09h1'06Q14d;07Uh10AU1JRB0MQ1!"CP09Qi19M0BYh1(B.
 
-,T$S(B0,TJQh(B1,T'(B0,TJW(B1,T:(B0,T$i(B1,T9c9(B0,TMU(B1,TaA!(B0,TJl(B10,T5h(B1,TR'(R!$S(B0,TJQh(B1,T'(B0,TJW(B1,T:(B0,T$i(B1,T9c9b;Ca!CA:CC3R(B0,T8T(B1,T!C(B0,T3l(B1 (editor) 0,TJh(B1,TG9cK(B0,T-h(B1, ,Tc9(B
-0,TEQ(B1,T!I3P(B0,T7Uh(B1,T`(B0,T;g(B1,T9(B "incremental". 0,T9Uh(B1,TKARB$GRA(B0,TGh(B1,TR!RC(B0,TJW(B1,T:(B0,T$i(B1,T9`(B0,TCTh(B1,TA(B0,T5Qi(B1,T'a(B0,T5h(B10,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B10,T;i(B1,TM9(B0,TMQ(B1,T!"CP(B0,T7Uh(B1
-0,T5i(B1,TM'!RC(B0,TJW(B1,T:(B0,T$i(B1,T9(B.
+,T$S0JQh1'0JW1:0$i19c90MU1aA!0Jl105h1R'(R!$S0JQh1'0JW1:0$i19c9b;Ca!CA:CC3R08T1!C03l1(B (editor) 0,TJh1G9cK0-h1(B, ,Tc9(B
+0,TEQ1!I3P07Uh1`0;g19(B "incremental". 0,T9Uh1KARB$GRA0Gh1R!RC0JW1:0$i19`0CTh1A05Qi1'a05h107Uh107h1R9d04i10;i1M90MQ1!"CP07Uh1(B
+0,T5i1M'!RC0JW1:0$i19(B.
 
-,T$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B1,T`(B0,T>Wh(B1,TMc(B0,TKi(B1,T7S!RC(B0,TJW(B1,T:(B0,T$i(B1,T9d;(B0,T"i(B1,TR'K(B0,T9i(B1,TR(B0,T$W(B1,TM(B C-s, ,TaEP7S!RC(B0,TJW(B1,T:(B0,T$i(B1,T9(B0,TBi(B1,TM9d;(B0,T"i(B1,TR'K(B0,TEQ(B1,T'(B0,T$W(B1,TM(B
-C-r. ,Ta(B0,T5h(B1,T$MB(B0,T!h(B1,TM9(B! ,TM(B0,TBh(B1,TR`(B0,T>Th(B1,T'EM'(B.
+,T$S0JQh1'07Uh1c0*i1`0>Wh1Mc0Ki17S!RC0JW1:0$i19d;0"i1R'K09i1R0$W1M(B C-s, ,TaEP7S!RC0JW1:0$i190Bi1M9d;0"i1R'K0EQ1'0$W1M(B
+C-r. ,Ta05h1$MB0!h1M9(B! ,TM0Bh1R`0>Th1'EM'(B.
 
-,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-s 0,T7h(B1,TR9(P(B0,TJQ(B1,T'`!5`(B0,TKg(B1,T9(B0,TGh(B1,TR(B0,TAU(B1,T$S(B0,TGh(B1,TR(B "I-search" ,T;CR!/(B0,T7Uh(B1,T:(B0,TCT(B1,T`G3JP(B0,T7i(B1,TM9(B
-(echo area). 0,T9Uh(B1,TaJ4'(B0,TGh(B1,TR(B0,TMU(B1,TaA!(B0,TJl(B1,Td(B0,T4i(B1,TM(B0,TBYh(B1,Tc9!RC(B0,T$i(B1,T9a::(B incremental ,TaEP!S(B0,TEQ(B1,T'CM(B
-0,TJTh(B1,T'(B0,T7Uh(B10,T7h(B1,TR9(P(B0,T>T(B1,TA(B0,T>l(B1,T`(B0,T>Wh(B1,TM(B0,TJW(B1,T:(B0,T$i(B1,T9(B. ,T!4(B0,T;Xh(B1,TA(B <Return> ,T`(B0,T>Wh(B1,TM(B0,TJTi(B1,T9(B0,TJX(B1,T4$S(B0,TJQh(B1,T'(B0,TJW(B1,T:(B0,T$i(B1,T9(B.
+,T`0AWh1M07h1R90;i1M9$S0JQh1'(B C-s 0,T7h1R9(P0JQ1'`!5`0Kg190Gh1R0AU1$S0Gh1R(B "I-search" ,T;CR!/07Uh1:0CT1`G3JP07i1M9(B
+(echo area). 0,T9Uh1aJ4'0Gh1R0MU1aA!0Jl1d04i1M0BYh1c9!RC0$i19a::(B incremental ,TaEP!S0EQ1'CM(B
+0,TJTh1'07Uh107h1R9(P0>T1A0>l1`0>Wh1M0JW1:0$i19(B. ,T!40;Xh1A(B <Return> ,T`0>Wh1M0JTi190JX14$S0JQh1'0JW1:0$i19(B.
 
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-s ,T`(B0,T>Wh(B1,TM`(B0,TCTh(B1,TA!RC(B0,TJW(B1,T:(B0,T$i(B1,T9(B. 0,T>T(B1,TA(B0,T>l(B10,TMQ(B1,T!IC(B0,T7U(B1,TEP(B0,T5Q(B1,TG(B0,T*i(B1,TRf(B, 0,T>T(B1,TA(B0,T>l(B1,T$S(B0,TGh(B1,TR(B 'cursor',
-   ,TK(B0,TBX(B1,T4K(B0,TEQ(B1,T'(R!(B0,T7Uh(B10,T7h(B1,TR9(B0,T>T(B1,TA(B0,T>l(B10,T7U(B1,TEP(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B, ,Ta(B0,TEi(B1,TG(B0,T4Y(B10,TGh(B1,TR(B0,TAU(B1,TMPdC`(B0,T!T(B1,T4(B0,T"Vi(B1,T9(B0,T!Q(B1,T:`$M(B0,TCl(B1,T`+M(B0,TCl(B1.
-   ,T"3P(B0,T9Ui(B10,T7h(B1,TR9d(B0,T4i(B10,TJW(B1,T:(B0,T$i(B1,T9$S(B0,TGh(B1,TR(B "cursor" ,Td;K(B0,T9Vh(B1,T'K9a(B0,TEi(B1,TG(B.
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-s 0,TMU(B1,T!$(B0,TCQi(B1,T'(B, ,T`(B0,T>Wh(B1,TM(B0,TJW(B1,T:(B0,T$i(B1,T95SaK(B0,T9h(B1,T'(B0,T6Q(B1,T4d;"M'$S(B0,TGh(B1,TR(B "cursor".
->> ,T!4(B0,T;Xh(B1,TA(B <Delete> 0,TJQ(B1,T!(B0,TJUh(B1,T$(B0,TCQi(B1,T'(B, ,Ta(B0,TEi(B1,TG(B0,T4Y(B10,TGh(B1,TR`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T`$(B0,TEWh(B1,TM9(B0,T7Uh(B1,TM(B0,TBh(B1,TR'dC(B.
->> ,T!4(B0,T;Xh(B1,TA(B <Return> ,T`(B0,T>Wh(B1,TM(B0,TJTi(B1,T9(B0,TJX(B1,T4$S(B0,TJQh(B1,T'(B0,TJW(B1,T:(B0,T$i(B1,T9(B.
+>> 0,T;i1M9$S0JQh1'(B C-s ,T`0>Wh1M`0CTh1A!RC0JW1:0$i19(B. 0,T>T1A0>l10MQ1!IC07U1EP05Q1G0*i1Rf(B, 0,T>T1A0>l1$S0Gh1R(B 'cursor',
+   ,TK0BX14K0EQ1'(R!07Uh107h1R90>T1A0>l107U1EP05Q1G0MQ1!IC(B, ,Ta0Ei1G04Y10Gh1R0AU1MPdC`0!T140"Vi190!Q1:`$M0Cl1`+M0Cl1(B.
+   ,T"3P09Ui107h1R9d04i10JW1:0$i19$S0Gh1R(B "cursor" ,Td;K09Vh1'K9a0Ei1G(B.
+>> 0,T;i1M9$S0JQh1'(B C-s 0,TMU1!$0CQi1'(B, ,T`0>Wh1M0JW1:0$i195SaK09h1'06Q14d;"M'$S0Gh1R(B "cursor".
+>> ,T!40;Xh1A(B <Delete> 0,TJQ1!0JUh1$0CQi1'(B, ,Ta0Ei1G04Y10Gh1R`$M0Cl1`+M0Cl1`$0EWh1M907Uh1M0Bh1R'dC(B.
+>> ,T!40;Xh1A(B <Return> ,T`0>Wh1M0JTi190JX14$S0JQh1'0JW1:0$i19(B.
 
-0,T7h(B1,TR9`(B0,TKg(B1,T9K(B0,TCW(B1,TMd(B0,TAh(B10,TGh(B1,TR(B0,TAU(B1,TMPdC`(B0,T!T(B1,T4(B0,T"Vi(B1,T9(B? ,Tc9!RC(B0,TJW(B1,T:(B0,T$i(B1,T9a::(B incremental, 0,TMU(B1,TaA!(B0,TJl(B1,T>BRBRA(B
-,T`$(B0,TEWh(B1,TM9d;5RAJRB(B0,TMQ(B1,T!"CP(B0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B10,T>T(B1,TA(B0,T>l(B1,TE'd;c9a(B0,T5h(B1,TEP$(B0,TCQi(B1,T'(B. 0,T6i(B1,TR(P`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B
-0,T6Q(B1,T4d;"M'$S(B, 0,T!g(B1,T7Sd(B0,T4i(B1,Tb4B!RC(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-s 0,TMU(B1,T!$(B0,TCQi(B1,T'(B. 0,T6i(B1,TRd(B0,TAh(B10,TAU(B1,T$S(B0,T9Qi(B1,T9(B0,TMU(B1,T!a(B0,TEi(B1,TG(B, 0,TMU(B1,TaA!(B0,TJl(B1,T(P(B0,TCi(B1,TM'(B
-,T:M!(B (beep) 0,T7h(B1,TR9(B0,TGh(B1,TR!RC(B0,TJW(B1,T:(B0,T$i(B1,T9$(B0,TCQi(B1,T'(B0,T9Qi(B1,T9(B ",T>ER4(B (failing)", ,T$S(B0,TJQh(B1,T'(B C-g 0,T!g(B1,TJRARC6c(B0,T*i(B1,Tc9(B
-,T!RC(B0,TJTi(B1,T9(B0,TJX(B1,T4!RC(B0,TJW(B1,T:(B0,T$i(B1,T9d(B0,T4i(B1.
+0,T7h1R9`0Kg19K0CW1Md0Ah10Gh1R0AU1MPdC`0!T140"Vi19(B? ,Tc9!RC0JW1:0$i19a::(B incremental, 0,TMU1aA!0Jl1>BRBRA(B
+,T`$0EWh1M9d;5RAJRB0MQ1!"CP07Uh107h1R9d04i10>T1A0>l1E'd;c9a05h1EP$0CQi1'(B. 0,T6i1R(P`$0EWh1M9d;0BQ1'5SaK09h1'(B
+0,T6Q14d;"M'$S(B, 0,T!g17Sd04i1b4B!RC0;i1M9$S0JQh1'(B C-s 0,TMU1!$0CQi1'(B. 0,T6i1Rd0Ah10AU1$S09Qi190MU1!a0Ei1G(B, 0,TMU1aA!0Jl1(P0Ci1M'(B
+,T:M!(B (beep) 0,T7h1R90Gh1R!RC0JW1:0$i19$0CQi1'09Qi19(B ",T>ER4(B (failing)", ,T$S0JQh1'(B C-g 0,T!g1JRARC6c0*i1c9(B
+,T!RC0JTi190JX14!RC0JW1:0$i19d04i1(B.
 
-0,T"i(B1,TM(B0,TJQ(B1,T'`!5(B: ,Tc9:R'CP::(B, ,T!RC(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-s ,T(P7Sc(B0,TKi(B1,TCP::"M'(B0,T7h(B1,TR9*P(B0,T'Q(B1,T!aEP(B0,T7h(B1,TR9(Pd(B0,TAh(B1,T`(B0,TKg(B1,T9(B
-0,T"i(B1,TM$GRAMPdC:9(B0,TMU(B1,TaA!(B0,TJl(B1. 0,TEQ(B1,T!I3P(B0,T9Ui(B1,TaJ4'(B0,TGh(B1,TR(B "feature" ,T"M'CP::;(B0,T/T(B10,T:Q(B10,T5T(B1,T!RC(B, 0,T7Uh(B1,T`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B 
-"flow control" 0,T9Qi(B1,T9(B, ,Td(B0,T4i(B10,T"Q(B1,T4"GR'!RC7S'R9"M'$S(B0,TJQh(B1,T'(B C-s ,TaEPd(B0,TAh(B1,TBMAc(B0,TKi(B1,T!(B0,TEQ(B1,T:(B0,TJYh(B10,TMU(B1,TaA!(B0,TJl(B1
-0,TMU(B1,T!(B. ,T!RC(B0,T7Uh(B1,T(Pa(B0,T!i(B1,Td"!RCK(B0,TBX(B1,T4*P(B0,T'Q(B1,T!(B0,T9Qi(B1,T9(B, ,Tc(B0,TKi(B10,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-q. 0,THV(B1,T!IR(B0,TGT(B10,T8U(B1,T!RC(B0,T(Q(B1,T4!RC(B0,T!Q(B1,T:(B "feature" 
-0,T9Ui(B1,Td(B0,T4i(B10,T7Uh(B1,T:7(B0,T7Uh(B10,TGh(B1,TR(B0,T4i(B1,TGB(B "Spontaneous Entry to Incremental Search" ,Tc9(B0,T$Yh(B10,TAW(B1,TM"M'(B0,TMU(B1,TaA!(B0,TJl(B1.
+0,T"i1M0JQ1'`!5(B: ,Tc9:R'CP::(B, ,T!RC0;i1M9$S0JQh1'(B C-s ,T(P7Sc0Ki1CP::"M'07h1R9*P0'Q1!aEP07h1R9(Pd0Ah1`0Kg19(B
+0,T"i1M$GRAMPdC:90MU1aA!0Jl1(B. 0,TEQ1!I3P09Ui1aJ4'0Gh1R(B "feature" ,T"M'CP::;0/T10:Q105T1!RC(B, 0,T7Uh1`0CU1B!0Gh1R(B
+"flow control" 0,T9Qi19(B, ,Td04i10"Q14"GR'!RC7S'R9"M'$S0JQh1'(B C-s ,TaEPd0Ah1BMAc0Ki1!0EQ1:0JYh10MU1aA!0Jl1(B
+0,TMU1!(B. ,T!RC07Uh1(Pa0!i1d"!RCK0BX14*P0'Q1!09Qi19(B, ,Tc0Ki10;i1M9$S0JQh1'(B C-q. 0,THV1!IR0GT108U1!RC0(Q14!RC0!Q1:(B "feature"
+0,T9Ui1d04i107Uh1:707Uh10Gh1R04i1GB(B "Spontaneous Entry to Incremental Search" ,Tc90$Yh10AW1M"M'0MU1aA!0Jl1(B.
 
-0,T6i(B1,TR(B0,T7h(B1,TR9M(B0,TBYh(B1,TCPK(B0,TGh(B1,TR'!RC(B0,TJW(B1,T:(B0,T$i(B1,T9a::(B incremental ,TM(B0,TBYh(B1, ,Ta(B0,TEi(B1,TG(B0,T7h(B1,TR9!4(B0,T;Xh(B1,TA(B <Delete>, 0,T7h(B1,TR9(P(B
-0,TJQ(B1,T'`!5`(B0,TKg(B1,T9(B0,TGh(B1,TR(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,TJX(B1,T4(B0,T7i(B1,TRB(B0,T7Uh(B10,T7h(B1,TR9(B0,T;i(B1,TM9`(B0,T"i(B1,TRd;(B0,T9Qi(B1,T9(B0,T6Y(B1,T!E:MM!(B, ,TaEP(P(B0,TBi(B1,TM9!(B0,TEQ(B1,T:d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B
-0,T!h(B1,TM9K(B0,T9i(B1,TR"M'!RC(B0,TJW(B1,T:(B0,T$i(B1,T9(B. 0,T5Q(B1,TGM(B0,TBh(B1,TR'`(B0,T*h(B1,T9(B, ,TJA(B0,TAX(B10,T5T(B10,TGh(B1,TR(B0,T7h(B1,TR9d(B0,T4i(B10,T;i(B1,TM9(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B "c", ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P(B0,TJW(B1,T:(B0,T$i(B1,T9(B
-,T5SaK(B0,T9h(B1,T'(B0,T7Uh(B1,T;CR!/(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B "c" 0,T9Qi(B1,T9(B. ,T5M9(B0,T9Ui(B10,T6i(B1,TR(B0,T7h(B1,TR9(B0,T>T(B1,TA(B0,T>l(B10,T5Q(B1,TG(B0,TMQ(B1,T!IC(B "u", ,T`$M(B0,TCl(B1,T`+M(B0,TCl(B10,T!g(B1,T(P(B
-,T`$(B0,TEWh(B1,TM9d;M(B0,TBYh(B10,T7Uh(B1,T5SaK(B0,T9h(B1,T'(B0,T7Uh(B1,T;CR!/JRB(B0,TMQ(B1,T!"CP(B "cu" ,TaC!(B0,TJX(B1,T4(B. ,T5M9(B0,T9Ui(B1,Tc(B0,TKi(B1,T!4(B0,T;Xh(B1,TA(B <Delete>.
-0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B "u" ,T(P(B0,T6Y(B1,T!E:MM!(R!JRB(B0,TMQ(B1,T!"CP(B0,T7Uh(B1,T7S!RC(B0,TJW(B1,T:(B0,T$i(B1,T9M(B0,TBYh(B1, ,TaEP`$M(B0,TCl(B1,T`+M(B0,TCl(B10,T!g(B1,T(P`$(B0,TEWh(B1,TM9(B
-,T!(B0,TEQ(B1,T:d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7Uh(B1,T;CR!/(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B "c" ,TaC!(B0,TJX(B1,T4(B.
+0,T6i1R07h1R9M0BYh1CPK0Gh1R'!RC0JW1:0$i19a::(B incremental ,TM0BYh1(B, ,Ta0Ei1G07h1R9!40;Xh1A(B <Delete>, 0,T7h1R9(P(B
+0,TJQ1'`!5`0Kg190Gh1R05Q1G0MQ1!IC0JX1407i1RB07Uh107h1R90;i1M9`0"i1Rd;09Qi1906Y1!E:MM!(B, ,TaEP(P0Bi1M9!0EQ1:d;0BQ1'5SaK09h1'(B
+0,T!h1M9K09i1R"M'!RC0JW1:0$i19(B. 0,T5Q1GM0Bh1R'`0*h19(B, ,TJA0AX105T10Gh1R07h1R9d04i10;i1M905Q1G0MQ1!IC(B "c", ,T`0>Wh1M07Uh1(P0JW1:0$i19(B
+,T5SaK09h1'07Uh1;CR!/05Q1G0MQ1!IC(B "c" 0,T9Qi19(B. ,T5M909Ui106i1R07h1R90>T1A0>l105Q1G0MQ1!IC(B "u", ,T`$M0Cl1`+M0Cl10!g1(P(B
+,T`$0EWh1M9d;M0BYh107Uh15SaK09h1'07Uh1;CR!/JRB0MQ1!"CP(B "cu" ,TaC!0JX14(B. ,T5M909Ui1c0Ki1!40;Xh1A(B <Delete>.
+0,T5Q1G0MQ1!IC(B "u" ,T(P06Y1!E:MM!(R!JRB0MQ1!"CP07Uh17S!RC0JW1:0$i19M0BYh1(B, ,TaEP`$M0Cl1`+M0Cl10!g1(P`$0EWh1M9(B
+,T!0EQ1:d;0BQ1'5SaK09h1'07Uh1;CR!/05Q1G0MQ1!IC(B "c" ,TaC!0JX14(B.
 
-0,T6i(B1,TR(B0,T7h(B1,TR9M(B0,TBYh(B1,TCPK(B0,TGh(B1,TR'!RC(B0,TJW(B1,T:(B0,T$i(B1,T9(B, ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T';CPJA"M'(B CONTROL ,TK(B0,TCW(B1,TM(B META (,T9M!(R!(B
-0,T"i(B1,TMB!`(B0,TGi(B1,T9:R';CP!RC(B--,T$S(B0,TJQh(B1,T'(B0,T>T(B1,T`HI(B0,T7Uh(B1,Tc(B0,T*i(B1,TJSK(B0,TCQ(B1,T:!RC(B0,TJW(B1,T:(B0,T$i(B1,T9(B, ,Td(B0,T4i(B1,Ta(B0,T!h(B1 C-s ,TaEP(B C-r), ,T!RC(B0,TJW(B1,T:(B
-0,T$i(B1,T9(P(B0,TJTi(B1,T9(B0,TJX(B1,T4E'(B.
+0,T6i1R07h1R9M0BYh1CPK0Gh1R'!RC0JW1:0$i19(B, ,Ta0Ei1G0;i1M9$S0JQh1';CPJA"M'(B CONTROL ,TK0CW1M(B META (,T9M!(R!(B
+0,T"i1MB!`0Gi19:R';CP!RC(B--,T$S0JQh1'0>T1`HI07Uh1c0*i1JSK0CQ1:!RC0JW1:0$i19(B, ,Td04i1a0!h1(B C-s ,TaEP(B C-r), ,T!RC0JW1:(B
+0,T$i19(P0JTi190JX14E'(B.
 
-,T$S(B0,TJQh(B1,T'(B C-s ,T`(B0,TCTh(B1,TA!RC(B0,TJW(B1,T:(B0,T$i(B1,T9(B0,T4i(B1,TGB!RCAM'KRJRB(B0,TMQ(B1,T!"CP(B0,T5Qi(B1,T'a(B0,T5h(B1,T5SaK(B0,T9h(B1,T'(B0,T;Q(B1,T((B0,T(X(B10,T:Q(B1,T9"M'`$M(B0,TCl(B1,T`+M(B0,TCl(B1.
-0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T5i(B1,TM'!RC(B0,TJW(B1,T:(B0,T$i(B1,T9JRB(B0,TMQ(B1,T!"CP(B0,T7Uh(B1,TM(B0,TBYh(B10,T!h(B1,TM9K(B0,T9i(B1,TRc9(B0,T"i(B1,TM$GRA(B0,T9Qi(B1,T9(B, ,Tc(B0,TKi(B10,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-r ,Ta79(B.
-,T$S(B0,TJQh(B1,T'(B C-s ,T(P7S'R9`K(B0,TAW(B1,TM9(B0,T!Q(B1,T:$S(B0,TJQh(B1,T'(B C-r 0,T7X(B1,T!M(B0,TBh(B1,TR'(B, ,TB!`(B0,TGi(B1,T9(B0,T7T(B1,TH7R'"M'!RC(B0,TJW(B1,T:(B0,T$i(B1,T9(B
-,T`(B0,T7h(B1,TR(B0,T9Qi(B1,T9(B, 0,T7Uh(B1,T5C'(B0,T"i(B1,TRA(B0,T!Q(B1,T9(B.
+,T$S0JQh1'(B C-s ,T`0CTh1A!RC0JW1:0$i1904i1GB!RCAM'KRJRB0MQ1!"CP05Qi1'a05h15SaK09h1'0;Q1(0(X10:Q19"M'`$M0Cl1`+M0Cl1(B.
+0,T6i1R07h1R905i1M'!RC0JW1:0$i19JRB0MQ1!"CP07Uh1M0BYh10!h1M9K09i1Rc90"i1M$GRA09Qi19(B, ,Tc0Ki10;i1M9$S0JQh1'(B C-r ,Ta79(B.
+,T$S0JQh1'(B C-s ,T(P7S'R9`K0AW1M90!Q1:$S0JQh1'(B C-r 0,T7X1!M0Bh1R'(B, ,TB!`0Gi1907T1H7R'"M'!RC0JW1:0$i19(B
+,T`07h1R09Qi19(B, 0,T7Uh15C'0"i1RA0!Q19(B.
 
 
-* 0,TGT(B1,T9b4(B0,TGl(B1,Ta::KERB(B0,TGT(B1,T9b4(B0,TGl(B1 (multiple windows)
+* 0,TGT19b40Gl1a::KERB0GT19b40Gl1(B (multiple windows)
 --------------------------------------
 
-0,TEQ(B1,T!I3P(B0,T7Uh(B10,T9h(B1,TRJ9c((B0,TMQ(B1,T9K(B0,T9Vh(B1,T'"M'(B0,TMU(B1,TaA!(B0,TJl(B10,T!g(B10,T$W(B1,TM(B, 0,T7h(B1,TR9JRARC6aJ4'<Ed(B0,T4i(B1,TAR!!(B0,TGh(B1,TRK(B0,T9Vh(B1,T'(B0,TGT(B1,T9b4(B0,TGl(B1,T:9K(B0,T9Vh(B1,T'(B
-,TK(B0,T9i(B1,TR(Mc9`GER`(B0,T4U(B1,TBG(B0,T!Q(B1,T9(B.
+0,TEQ1!I3P07Uh109h1RJ9c(0MQ19K09Vh1'"M'0MU1aA!0Jl10!g10$W1M(B, 0,T7h1R9JRARC6aJ4'<Ed04i1AR!!0Gh1RK09Vh1'0GT19b40Gl1:9K09Vh1'(B
+,TK09i1R(Mc9`GER`04U1BG0!Q19(B.
 
->> ,T`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,TAR(B0,T7Uh(B1,T:CC(B0,T7Q(B1,T4(B0,T9Ui(B1, ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-u 0 C-l.
+>> ,T`$0EWh1M9`$M0Cl1`+M0Cl1AR07Uh1:CC07Q1409Ui1(B, ,Ta0Ei1G0;i1M9$S0JQh1'(B C-u 0 C-l.
 
->> 0,T5h(B1,TMd;(B, 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 2 0,T+Vh(B1,T'(Pa(B0,T:h(B1,T'K(B0,T9i(B1,TR(MMM!`(B0,T;g(B1,T9JM'(B0,TGT(B1,T9b4(B0,TGl(B1.
-   0,T7Qi(B1,T'JM'(B0,TGT(B1,T9b4(B0,TGl(B1,TaJ4'(B0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B10,T9Ui(B1. ,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T;CR!/M(B0,TBYh(B1,Tc9(B0,TGT(B1,T9b4(B0,TGl(B1,T:9(B.
+>> 0,T5h1Md;(B, 0,T;i1M9$S0JQh1'(B C-x 2 0,T+Vh1'(Pa0:h1'K09i1R(MMM!`0;g19JM'0GT19b40Gl1(B.
+   0,T7Qi1'JM'0GT19b40Gl1aJ4'0$Yh10AW1M!RCc0*i109Ui1(B. ,T`$M0Cl1`+M0Cl1;CR!/M0BYh1c90GT19b40Gl1:9(B.
 
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-M-v ,T`(B0,T>Wh(B1,TM`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B0,TGT(B1,T9b4(B0,TGl(B10,T"i(B1,TR'(B0,TEh(B1,TR'(B.
-   (0,T6i(B1,TR(B0,T7h(B1,TR9d(B0,TAh(B10,TAU(B10,T;Xh(B1,TA(B META, 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B ESC C-v ,Ta79(B.)
+>> 0,T;i1M9$S0JQh1'(B C-M-v ,T`0>Wh1M`$0EWh1M90Ai1G90GT19b40Gl10"i1R'0Eh1R'(B.
+   (0,T6i1R07h1R9d0Ah10AU10;Xh1A(B META, 0,T;i1M9$S0JQh1'(B ESC C-v ,Ta79(B.)
 
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x o ("o" ,TKARB(B0,T6V(B1,T'(B "other") ,T`(B0,T>Wh(B1,TM`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,TAR(B0,TBQ(B1,T'(B0,TGT(B1,T9b4(B0,TGl(B10,TEh(B1,TR'(B.
->> ,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-v ,TaEP(B M-v ,Tc9(B0,TGT(B1,T9b4(B0,TGl(B10,TEh(B1,TR'`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B.
-   0,TMh(B1,TR9$Sa9P9S(B0,T9Ui(B10,T4i(B1,TGB(B0,TGT(B1,T9b4(B0,TGl(B1,T:9(B.
+>> 0,T;i1M9$S0JQh1'(B C-x o ("o" ,TKARB06V1'(B "other") ,T`0>Wh1M`$0EWh1M9`$M0Cl1`+M0Cl1AR0BQ1'0GT19b40Gl10Eh1R'(B.
+>> ,Tc0*i1$S0JQh1'(B C-v ,TaEP(B M-v ,Tc90GT19b40Gl10Eh1R'`0>Wh1M07Uh1(P`$0EWh1M90Ai1G9(B.
+   0,TMh1R9$Sa9P9S09Ui104i1GB0GT19b40Gl1:9(B.
 
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x o 0,TMU(B1,T!$(B0,TCQi(B1,T'`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T!(B0,TEQ(B1,T:d;(B0,TGT(B1,T9b4(B0,TGl(B1,T:9(B.
-   ,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Tc9(B0,TGT(B1,T9b4(B0,TGl(B1,T:9(P;CR!/5C'(B0,T7Uh(B10,T7Uh(B1,T`$B;CR!/(B.
+>> 0,T;i1M9$S0JQh1'(B C-x o 0,TMU1!$0CQi1'`0>Wh1M07Uh1(P`$0EWh1M9`$M0Cl1`+M0Cl1!0EQ1:d;0GT19b40Gl1:9(B.
+   ,T`$M0Cl1`+M0Cl1c90GT19b40Gl1:9(P;CR!/5C'07Uh107Uh1`$B;CR!/(B.
 
-0,T7h(B1,TR9JRARC6c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-x o ,T`(B0,T>Wh(B1,TMJ(B0,TEQ(B1,T:d;ARCPK(B0,TGh(B1,TR'(B0,TGT(B1,T9b4(B0,TGl(B1. ,Ta(B0,T5h(B1,TEP(B0,TGT(B1,T9b4(B0,TGl(B10,TAU(B1,T5SaK(B0,T9h(B1,T'"M'(B
-,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T"M'(B0,T5Q(B1,TG`M'(B, ,Ta(B0,T5h(B1,T(P(B0,TAU(B1,T`(B0,T>U(B1,TB'(B0,TGT(B1,T9b4(B0,TGl(B1,T`(B0,T4U(B1,TBG`(B0,T7h(B1,TR(B0,T9Qi(B1,T9(B0,T7Uh(B1,TaJ4'(B0,T5Q(B1,TG`$M(B0,TCl(B1,T`+M(B0,TCl(B1. 0,T7X(B1,T!$S(B0,TJQh(B1,T'(B0,T!g(B1,T(P(B
-0,TAU(B1,T<E(B0,T5h(B1,TM(B0,TGT(B1,T9b4(B0,TGl(B10,T7Uh(B10,TAU(B1,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T;CR!/M(B0,TBYh(B1,T`(B0,T7h(B1,TR(B0,T9Qi(B1,T9(B. ,T`CR`(B0,TCU(B1,TB!(B0,TGT(B1,T9b4(B0,TGl(B10,T9Ui(B10,TGh(B1,TR(B "0,TGT(B1,T9b4(B0,TGl(B10,T7Uh(B10,T6Y(B1,T!`(B0,TEW(B1,TM!(B 
+0,T7h1R9JRARC6c0*i1$S0JQh1'(B C-x o ,T`0>Wh1MJ0EQ1:d;ARCPK0Gh1R'0GT19b40Gl1(B. ,Ta05h1EP0GT19b40Gl10AU15SaK09h1'"M'(B
+,T`$M0Cl1`+M0Cl1"M'05Q1G`M'(B, ,Ta05h1(P0AU1`0>U1B'0GT19b40Gl1`04U1BG`07h1R09Qi1907Uh1aJ4'05Q1G`$M0Cl1`+M0Cl1(B. 0,T7X1!$S0JQh1'0!g1(P(B
+0,TAU1<E05h1M0GT19b40Gl107Uh10AU1`$M0Cl1`+M0Cl1;CR!/M0BYh1`07h1R09Qi19(B. ,T`CR`0CU1B!0GT19b40Gl109Ui10Gh1R(B "0,TGT19b40Gl107Uh106Y1!`0EW1M!(B
 (selected window)".
 
-,T$S(B0,TJQh(B1,T'(B C-M-v 0,TAU(B1,T;CPbB*(B0,T9l(B1,TAR!`(B0,TAWh(B1,TM(B0,T7h(B1,TR9!S(B0,TEQ(B1,T'a(B0,T!i(B1,Td"(B0,T"i(B1,TM$GRA:9(B0,TGT(B1,T9b4(B0,TGl(B1,TK(B0,T9Vh(B1,T'(B, ,TaEP(B0,T4Y(B10,TMU(B1,T!(B0,TGT(B1,T9b4(B0,TGl(B1,TK(B0,T9Vh(B1,T'(B
-,T`(B0,T>Wh(B1,TM!RC(B0,TMi(B1,TR'(B0,TMT(B1,T'(B. 0,T7h(B1,TR9JRARC6c(B0,TKi(B1,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T;CR!/:9(B0,TGT(B1,T9b4(B0,TGl(B10,T7Uh(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'a(B0,T!i(B1,Td"M(B0,TBYh(B1,T5EM4`GER(B,
-,Ta(B0,TEi(B1,TG`$(B0,TEWh(B1,TM95SaK(B0,T9h(B1,T'"M'(B0,TMU(B1,T!(B0,TGT(B1,T9b4(B0,TGl(B1,TK(B0,T9Vh(B1,T'(B0,T4i(B1,TGB$S(B0,TJQh(B1,T'(B C-M-v.
+,T$S0JQh1'(B C-M-v 0,TAU1;CPbB*09l1AR!`0AWh1M07h1R9!S0EQ1'a0!i1d"0"i1M$GRA:90GT19b40Gl1K09Vh1'(B, ,TaEP04Y10MU1!0GT19b40Gl1K09Vh1'(B
+,T`0>Wh1M!RC0Mi1R'0MT1'(B. 0,T7h1R9JRARC6c0Ki1`$M0Cl1`+M0Cl1;CR!/:90GT19b40Gl107Uh107h1R9!S0EQ1'a0!i1d"M0BYh15EM4`GER(B,
+,Ta0Ei1G`$0EWh1M95SaK09h1'"M'0MU1!0GT19b40Gl1K09Vh1'04i1GB$S0JQh1'(B C-M-v.
 
-,T$S(B0,TJQh(B1,T'(B C-M-v ,T`(B0,T;g(B1,T9(B0,T5Q(B1,TGM(B0,TBh(B1,TR'K(B0,T9Vh(B1,T'"M'$S(B0,TJQh(B1,T';CPJA(B CONTROL-META. 0,T6i(B1,TR(B0,T7h(B1,TR9(B0,TAU(B10,T;Xh(B1,TA(B META,
-0,T7h(B1,TR9JRARC6(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-M-v ,Tb4B!RC!4(B0,T;Xh(B1,TA(B CONTROL ,TaEP(B META ,T"3P(B0,T7Uh(B1,T!4(B0,T;Xh(B1,TA(B0,TMQ(B1,T!"CP(B
-v. ,Td(B0,TAh(B10,TGh(B1,TR(P!4(B0,T;Xh(B1,TA(B CONTROL ,TK(B0,TCW(B1,TM(B META 0,T!h(B1,TM9(B0,T!g(B1,Td(B0,TAh(B10,TAU(B10,T;Q(B1,T-KRMPdC(B, ,T`>CRP(B0,TGh(B1,TR(B0,T7Qi(B1,T'JM'(B0,T;Xh(B1,TA`(B0,T;g(B1,T9(B0,T;Xh(B1,TA(B
-,T"BRB"M'(B0,T;Xh(B1,TA(B0,TMQ(B1,T!"CP(B0,T7Uh(B10,T7h(B1,TR9(P!4(B.
+,T$S0JQh1'(B C-M-v ,T`0;g1905Q1GM0Bh1R'K09Vh1'"M'$S0JQh1';CPJA(B CONTROL-META. 0,T6i1R07h1R90AU10;Xh1A(B META,
+0,T7h1R9JRARC60;i1M9$S0JQh1'(B C-M-v ,Tb4B!RC!40;Xh1A(B CONTROL ,TaEP(B META ,T"3P07Uh1!40;Xh1A0MQ1!"CP(B
+v. ,Td0Ah10Gh1R(P!40;Xh1A(B CONTROL ,TK0CW1M(B META 0,T!h1M90!g1d0Ah10AU10;Q1-KRMPdC(B, ,T`>CRP0Gh1R07Qi1'JM'0;Xh1A`0;g190;Xh1A(B
+,T"BRB"M'0;Xh1A0MQ1!"CP07Uh107h1R9(P!4(B.
 
-0,T6i(B1,TR(B0,T7h(B1,TR9d(B0,TAh(B10,TAU(B10,T;Xh(B1,TA(B META, ,TaEP(B0,T7h(B1,TR9c(B0,T*i(B10,T;Xh(B1,TA(B ESC ,Ta79(B, ,TES(B0,T4Q(B1,T:"M'!RC!4(B0,T;Xh(B1,TA(P(B0,TAU(B1,T<E(B0,T5h(B1,TM!RC7S'R9(B: 
-0,T7h(B1,TR9(B0,T5i(B1,TM'!4(B0,T;Xh(B1,TA(B ESC ,Ta(B0,TEi(B1,TG5RA(B0,T4i(B1,TGB$S(B0,TJQh(B1,T'(B CONTROL-v, ,T`>CRP(B0,TGh(B1,TR$S(B0,TJQh(B1,T'(B CONTROL-ESC v ,T(Pd(B0,TAh(B1
-,T7S'R9(B. 0,T7Qi(B1,T'(B0,T9Ui(B1,T`>CRP(B0,TGh(B1,TR(B0,T;Xh(B1,TA(B ESC ,T`(B0,T;g(B1,T9(B0,TMQ(B1,T!"CP(B0,T5Q(B1,TGK(B0,T9Vh(B1,T'(B, ,Td(B0,TAh(B1,Tc(B0,T*h(B10,T;Xh(B1,TA"BRB(B.
+0,T6i1R07h1R9d0Ah10AU10;Xh1A(B META, ,TaEP07h1R9c0*i10;Xh1A(B ESC ,Ta79(B, ,TES04Q1:"M'!RC!40;Xh1A(P0AU1<E05h1M!RC7S'R9(B:
+0,T7h1R905i1M'!40;Xh1A(B ESC ,Ta0Ei1G5RA04i1GB$S0JQh1'(B CONTROL-v, ,T`>CRP0Gh1R$S0JQh1'(B CONTROL-ESC v ,T(Pd0Ah1(B
+,T7S'R9(B. 0,T7Qi1'09Ui1`>CRP0Gh1R0;Xh1A(B ESC ,T`0;g190MQ1!"CP05Q1GK09Vh1'(B, ,Td0Ah1c0*h10;Xh1A"BRB(B.
 
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 1 (,Tc9(B0,TGT(B1,T9b4(B0,TGl(B1,T:9(B) ,T`(B0,T>Wh(B1,TM!S(B0,T(Q(B1,T4(B0,TGT(B1,T9b4(B0,TGl(B10,TEh(B1,TR'(B.
+>> 0,T;i1M9$S0JQh1'(B C-x 1 (,Tc90GT19b40Gl1:9(B) ,T`0>Wh1M!S0(Q140GT19b40Gl10Eh1R'(B.
 
-(0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 1 ,Tc9(B0,TGT(B1,T9b4(B0,TGl(B10,TEh(B1,TR'(B, 0,TGT(B1,T9b4(B0,TGl(B1,T:9(B0,T!g(B1,T(PKRBd;(B. 0,T7h(B1,TR9JRARC6(S(B
-,T$S(B0,TJQh(B1,T'(B0,T9Ui(B1,Td(B0,T4i(B1,Tb4B(B0,T$T(B1,T4(B0,TGh(B1,TR(B ",T`K(B0,TEW(B1,TMd(B0,TGi(B1,T`(B0,T>U(B1,TB'K(B0,T9Vh(B1,T'(B0,TGT(B1,T9b4(B0,TGl(B1--0,TGT(B1,T9b4(B0,TGl(B10,T7Uh(B1,TM(B0,TBYh(B1,Tc9"3P(B0,T9Ui(B1.")
+(0,T6i1R07h1R90;i1M9$S0JQh1'(B C-x 1 ,Tc90GT19b40Gl10Eh1R'(B, 0,TGT19b40Gl1:90!g1(PKRBd;(B. 0,T7h1R9JRARC6(S(B
+,T$S0JQh1'09Ui1d04i1b4B0$T140Gh1R(B ",T`K0EW1Md0Gi1`0>U1B'K09Vh1'0GT19b40Gl1(B--0,TGT19b40Gl107Uh1M0BYh1c9"3P09Ui1(B.")
 
-0,T7h(B1,TR9d(B0,TAh(B1,T(S`(B0,T;g(B1,T9(B0,T5i(B1,TM'aJ4'<E"M'(B0,T:Q(B1,T?`?M(B0,TCl(B1,T`(B0,T4U(B1,TBG(B0,T!Q(B1,T9:9(B0,T7Qi(B1,T'JM'(B0,TGT(B1,T9b4(B0,TGl(B1. 0,T6i(B1,TR(B0,T7h(B1,TR9c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-x C-f
-,T`(B0,T>Wh(B1,TM(B0,T$i(B1,T9KRa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEc9(B0,TGT(B1,T9b4(B0,TGl(B1,TK(B0,T9Vh(B1,T'(B, 0,TMU(B1,T!(B0,TGT(B1,T9b4(B0,TGl(B1,TK(B0,T9Vh(B1,T'(Pd(B0,TAh(B1,T`;(B0,TEUh(B1,TB9a;E'(B. 0,T7h(B1,TR9JRARC6(B0,T$i(B1,T9KR(B
-,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEc9a(B0,T5h(B1,TEP(B0,TGT(B1,T9b4(B0,TGl(B1,Td(B0,T4i(B10,TMT(B1,TJCP(B0,T5h(B1,TM(B0,T!Q(B1,T9(B.
+0,T7h1R9d0Ah1(S`0;g1905i1M'aJ4'<E"M'0:Q1?`?M0Cl1`04U1BG0!Q19:907Qi1'JM'0GT19b40Gl1(B. 0,T6i1R07h1R9c0*i1$S0JQh1'(B C-x C-f
+,T`0>Wh1M0$i19KRa0?i1A0"i1M0AY1Ec90GT19b40Gl1K09Vh1'(B, 0,TMU1!0GT19b40Gl1K09Vh1'(Pd0Ah1`;0EUh1B9a;E'(B. 0,T7h1R9JRARC60$i19KR(B
+,Ta0?i1A0"i1M0AY1Ec9a05h1EP0GT19b40Gl1d04i10MT1JCP05h1M0!Q19(B.
 
-0,T5h(B1,TMd;`(B0,T;g(B1,T9(B0,TMU(B1,T!(B0,TGT(B10,T8U(B1,TK(B0,T9Vh(B1,T'"M'!RCc(B0,T*i(B1,TJM'(B0,TGT(B1,T9b4(B0,TGl(B1,TJSK(B0,TCQ(B1,T:aJ4'<E"M'JM'(B0,TJTh(B1,T'(B0,T7Uh(B10,T5h(B1,TR'(B0,T!Q(B1,T9(B:
+0,T5h1Md;`0;g190MU1!0GT108U1K09Vh1'"M'!RCc0*i1JM'0GT19b40Gl1JSK0CQ1:aJ4'<E"M'JM'0JTh1'07Uh105h1R'0!Q19(B:
 
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 4 C-f ,Ta(B0,TEi(B1,TG5RA(B0,T4i(B1,TGB(B0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B. 0,TJTi(B1,T9(B0,TJX(B1,T4$S(B0,TJQh(B1,T'(B0,T4i(B1,TGB!RC!4(B0,T;Xh(B1,TA(B
-   <Return>. ,T(P`(B0,TKg(B1,T9(B0,TGh(B1,TR(B0,TAU(B1,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T5i(B1,TM'!RC;CR!/M(B0,TBYh(B1,Tc9(B0,TGT(B1,T9b4(B0,TGl(B10,TEh(B1,TR'(B. ,T`$M(B0,TCl(B1,T`+M(B0,TCl(B10,T!g(B1,T(Pd;(B
-   ,T;CR!/(B0,T7Uh(B10,TGT(B1,T9b4(B0,TGl(B10,T9Qi(B1,T9(B0,T4i(B1,TGB(B.
+>> 0,T;i1M9$S0JQh1'(B C-x 4 C-f ,Ta0Ei1G5RA04i1GB0*Wh1Ma0?i1A0"i1M0AY1E(B. 0,TJTi190JX14$S0JQh1'04i1GB!RC!40;Xh1A(B
+   <Return>. ,T(P`0Kg190Gh1R0AU1a0?i1A0"i1M0AY1E07Uh105i1M'!RC;CR!/M0BYh1c90GT19b40Gl10Eh1R'(B. ,T`$M0Cl1`+M0Cl10!g1(Pd;(B
+   ,T;CR!/07Uh10GT19b40Gl109Qi1904i1GB(B.
 
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x o ,T`(B0,T>Wh(B1,TM!(B0,TEQ(B1,T:d;(B0,TBQ(B1,T'(B0,TGT(B1,T9b4(B0,TGl(B1,T:9(B, ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 1 ,T`(B0,T>Wh(B1,TM!S(B0,T(Q(B1,T4(B0,TGT(B1,T9b4(B0,TGl(B10,TEh(B1,TR'(B.
+>> 0,T;i1M9$S0JQh1'(B C-x o ,T`0>Wh1M!0EQ1:d;0BQ1'0GT19b40Gl1:9(B, ,Ta0Ei1G0;i1M9$S0JQh1'(B C-x 1 ,T`0>Wh1M!S0(Q140GT19b40Gl10Eh1R'(B.
 
 
-* ,TCP(B0,T4Q(B1,T:"M'!RCa(B0,T!i(B1,Td"a::`(B0,TCU(B1,TB!(B0,T+i(B1,TS(B (recursive editing levels)
+* ,TCP04Q1:"M'!RCa0!i1d"a::`0CU1B!0+i1S(B (recursive editing levels)
 -------------------------------------------------------
 
-,T:R'$(B0,TCQi(B1,T'(B0,T7h(B1,TR9MR((P`(B0,T"i(B1,TRd;M(B0,TBYh(B1,Tc9(B ",TCP(B0,T4Q(B1,T:"M'!RCa(B0,T!i(B1,Td"a::!RC`(B0,TCU(B1,TB!(B0,T+i(B1,TS(B (recursive editing
-level)". ,TJ@R>(B0,T4Q(B1,T'!(B0,TEh(B1,TRG`(B0,T*h(B1,T9(B0,T9Ui(B1,TaJ4'(B0,T4i(B1,TGBG'`(B0,TEg(B1,T:(B0,T!i(B1,TRA(B0,T;Y(B1,Tc9:CC(B0,T7Q(B1,T4aJ4'bKA4(B, 0,TEi(B1,TMACM:G'`(B0,TEg(B1,T:(B0,T7Uh(B1
-,TaJ4'(B0,T*Wh(B1,TM"M'bKA4K(B0,TEQ(B1,T!(B. 0,T5Q(B1,TGM(B0,TBh(B1,TR'`(B0,T*h(B1,T9(B, 0,T7h(B1,TR9MR((P`(B0,TKg(B1,T9(B [(Fundamental)] ,Ta79(B0,T7Uh(B1,T(P`(B0,T;g(B1,T9(B
+,T:R'$0CQi1'07h1R9MR((P`0"i1Rd;M0BYh1c9(B ",TCP04Q1:"M'!RCa0!i1d"a::!RC`0CU1B!0+i1S(B (recursive editing
+level)". ,TJ@R>04Q1'!0Eh1RG`0*h1909Ui1aJ4'04i1GBG'`0Eg1:0!i1RA0;Y1c9:CC07Q14aJ4'bKA4(B, 0,TEi1MACM:G'`0Eg1:07Uh1(B
+,TaJ4'0*Wh1M"M'bKA4K0EQ1!(B. 0,T5Q1GM0Bh1R'`0*h19(B, 0,T7h1R9MR((P`0Kg19(B [(Fundamental)] ,Ta7907Uh1(P`0;g19(B
 (Fundamental).
 
-,Tc9!RC(B0,T7Uh(B1,T(PMM!(R!CP(B0,T4Q(B1,T:"M'!RCa(B0,T!i(B1,Td"a::`(B0,TCU(B1,TB!(B0,T+i(B1,TS(B, ,T!4(B0,T;Xh(B1,TA(B ESC ESC ESC. 0,T9Uh(B1,T`(B0,T;g(B1,T9(B
-,T$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B1,Td(B0,T4i(B10,T7Qh(B1,TGd;c9!RCMM!(R!CP(B0,T4Q(B1,T:c4f(B ,T"M'!RC;CPAGE<E(B. 0,T7h(B1,TR9JRARC6c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B0,T9Ui(B1,Tc9(B
-,T!RC!S(B0,T(Q(B1,T4(B0,TGT(B1,T9b4(B0,TGl(B10,T>T(B1,T`HI(B0,TMWh(B1,T9f(B, ,TCGA(B0,T7Qi(B1,T'!RCMM!(R!(B0,TAT(B10,T9T(B10,T:Q(B1,T?`?M(B0,TCl(B1 (minibuffer).
+,Tc9!RC07Uh1(PMM!(R!CP04Q1:"M'!RCa0!i1d"a::`0CU1B!0+i1S(B, ,T!40;Xh1A(B ESC ESC ESC. 0,T9Uh1`0;g19(B
+,T$S0JQh1'07Uh1c0*i1d04i107Qh1Gd;c9!RCMM!(R!CP04Q1:c4f(B ,T"M'!RC;CPAGE<E(B. 0,T7h1R9JRARC6c0*i1$S0JQh1'09Ui1c9(B
+,T!RC!S0(Q140GT19b40Gl10>T1`HI0MWh19f(B, ,TCGA07Qi1'!RCMM!(R!0AT109T10:Q1?`?M0Cl1(B (minibuffer).
 
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B M-x ,T`(B0,T>Wh(B1,TM`(B0,T"i(B1,TRd;c9(B0,TAT(B10,T9T(B10,T:Q(B1,T?`?M(B0,TCl(B1; ,T!4(B0,T;Xh(B1,TA(B ESC ESC ESC ,T`(B0,T>Wh(B1,TMMM!(R!(B
-   0,TAT(B10,T9T(B10,T:Q(B1,T?`?M(B0,TCl(B10,T9Qi(B1,T9(B.
+>> 0,T;i1M9$S0JQh1'(B M-x ,T`0>Wh1M`0"i1Rd;c90AT109T10:Q1?`?M0Cl1(B; ,T!40;Xh1A(B ESC ESC ESC ,T`0>Wh1MMM!(R!(B
+   0,TAT109T10:Q1?`?M0Cl109Qi19(B.
 
-0,T7h(B1,TR9d(B0,TAh(B1,TJRARC6c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-g ,T`(B0,T>Wh(B1,TMMM!(R!CP(B0,T4Q(B1,T:"M'!RCa(B0,T!i(B1,Td"a::`(B0,TCU(B1,TB!(B0,T+i(B1,TS(B.
-,T`>CRP(B0,TGh(B1,TR$S(B0,TJQh(B1,T'(B C-g ,Tc(B0,T*i(B1,T`(B0,T>Wh(B1,TMB!`(B0,TET(B1,T!$S(B0,TJQh(B1,T'aEPMR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,T@RBc9CP(B0,T4Q(B1,T:"M'!RCa(B0,T!i(B1,Td"a::(B
-,T`(B0,TCU(B1,TB!(B0,T+i(B1,TS(B.
+0,T7h1R9d0Ah1JRARC6c0*i1$S0JQh1'(B C-g ,T`0>Wh1MMM!(R!CP04Q1:"M'!RCa0!i1d"a::`0CU1B!0+i1S(B.
+,T`>CRP0Gh1R$S0JQh1'(B C-g ,Tc0*i1`0>Wh1MB!`0ET1!$S0JQh1'aEPMR0Cl10!T1G`A905l1@RBc9CP04Q1:"M'!RCa0!i1d"a::(B
+,T`0CU1B!0+i1S(B.
 
 
-* ,T!RC`(B0,TCU(B1,TB!(B0,T4Y(B10,T"i(B1,TM$GRA(B0,T*h(B1,TGB`K(B0,TEW(B1,TM`(B0,T>Th(B1,TA`(B0,T5T(B1,TA(B (getting more help)
+* ,T!RC`0CU1B!04Y10"i1M$GRA0*h1GB`K0EW1M`0>Th1A`05T1A(B (getting more help)
 -------------------------------------------------
 
-,Tc9(B0,T$Yh(B10,TAW(B1,TM(B0,T9Ui(B1,T`CR>BRBRA(B0,T7Uh(B1,T(Pc(B0,TKi(B10,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B1,T`(B0,T>U(B1,TB'>MJSK(B0,TCQ(B1,T:!RC`(B0,TCTh(B1,TAc(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1. 0,TBQ(B1,T'$'(B0,TAU(B10,T"i(B1,TM(B0,TAY(B1,TE(B0,TMU(B1,T!AR!c9(B
-0,TMU(B1,TaA!(B0,TJl(B10,T+Vh(B1,T'`CRd(B0,TAh(B1,TJRARC6(B0,T7Uh(B1,T(P9SARM(B0,T8T(B1,T:RBd(B0,TGi(B1,Tc9(B0,T7Uh(B10,T9Ui(B1,Td(B0,T4i(B10,T7Qi(B1,T'KA4(B. ,TM(B0,TBh(B1,TR'dC(B0,T!g(B1,T5RA(B, 0,T7h(B1,TR9MR((B0,T5i(B1,TM'!RC(B
-,T`(B0,TCU(B1,TB9(B0,TCYi(B1,T`(B0,T!Uh(B1,TBG(B0,T!Q(B1,T:(B0,TMU(B1,TaA!(B0,TJl(B1,T`(B0,T>Th(B1,TA`(B0,T5T(B1,TA`>CRP(B0,TMU(B1,TaA!(B0,TJl(B10,TBQ(B1,T'(B0,TAU(B10,T$X(B1,T3JA(B0,T:Q(B10,T5T(B10,TMU(B1,T!AR!ARB(B. 0,TMU(B1,TaA!(B0,TJl(B1,Td(B0,T4i(B1,T`5(B0,TCU(B1,TBA$S(B0,TJQh(B1,T'(B
-,TJSK(B0,TCQ(B1,T:`(B0,TCU(B1,TB!(B0,T4Y(B1,T`(B0,T9Wi(B1,TMKR`(B0,T!Uh(B1,TBG(B0,T!Q(B1,T:$S(B0,TJQh(B1,T'"M'(B0,TMU(B1,TaA!(B0,TJl(B1. ,T$S(B0,TJQh(B1,T'(B "0,T*h(B1,TGB`K(B0,TEW(B1,TM(B (help)" 0,T7Qi(B1,T'KA4`(B0,TCTh(B1,TA(B0,T4i(B1,TGB(B
-0,TMQ(B1,T!"CP(B CONTROL-h, 0,T+Vh(B1,T'`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B "0,TMQ(B1,T!"CP(B0,T*h(B1,TGB`K(B0,TEW(B1,TM(B (the Help character)".
+,Tc90$Yh10AW1M09Ui1`CR>BRBRA07Uh1(Pc0Ki10"i1M0AY1E07Uh1`0>U1B'>MJSK0CQ1:!RC`0CTh1Ac0*i10MU1aA!0Jl1(B. 0,TBQ1'$'0AU10"i1M0AY1E0MU1!AR!c9(B
+0,TMU1aA!0Jl10+Vh1'`CRd0Ah1JRARC607Uh1(P9SARM08T1:RBd0Gi1c907Uh109Ui1d04i107Qi1'KA4(B. ,TM0Bh1R'dC0!g15RA(B, 0,T7h1R9MR(05i1M'!RC(B
+,T`0CU1B90CYi1`0!Uh1BG0!Q1:0MU1aA!0Jl1`0>Th1A`05T1A`>CRP0MU1aA!0Jl10BQ1'0AU10$X13JA0:Q105T10MU1!AR!ARB(B. 0,TMU1aA!0Jl1d04i1`50CU1BA$S0JQh1'(B
+,TJSK0CQ1:`0CU1B!04Y1`09Wi1MKR`0!Uh1BG0!Q1:$S0JQh1'"M'0MU1aA!0Jl1(B. ,T$S0JQh1'(B "0,T*h1GB`K0EW1M(B (help)" 0,T7Qi1'KA4`0CTh1A04i1GB(B
+0,TMQ1!"CP(B CONTROL-h, 0,T+Vh1'`0CU1B!0Gh1R(B "0,TMQ1!"CP0*h1GB`K0EW1M(B (the Help character)".
 
-,Tc9!RC(B0,T7Uh(B1,T(Pc(B0,T*i(B10,T$X(B1,T3JA(B0,T:Q(B10,T5T(B10,T*h(B1,TGB`K(B0,TEW(B1,TM(B, 0,T;i(B1,TM9(B0,TMQ(B1,T!"CP(B C-h, ,Ta(B0,TEi(B1,TG5RA(B0,T4i(B1,TGB(B0,TMU(B1,T!K(B0,T9Vh(B1,T'(B0,TMQ(B1,T!"CP`(B0,T>Wh(B1,TM:M!(B0,TGh(B1,TR(B
-0,T7h(B1,TR9(B0,T5i(B1,TM'!RC$S(B0,T*h(B1,TGB`K(B0,TEW(B1,TMMPdC(B. 0,T6i(B1,TR(B0,T7h(B1,TR9d(B0,TAh(B1,T7CR:(B0,TGh(B1,TR(P7SMPdC(B0,T5h(B1,TMd;(B, 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-h ? ,Ta(B0,TEi(B1,TG(B
-0,TMU(B1,TaA!(B0,TJl(B1,T(P:M!(B0,T7h(B1,TR9(B0,TGh(B1,TR(B0,TAU(B1,T$S(B0,T*h(B1,TGBMPdC(B0,T7Uh(B10,TMU(B1,TaA!(B0,TJl(B1,TJRARC6(Pc(B0,TKi(B1,Td(B0,T4i(B1. 0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-h ,Ta(B0,TEi(B1,TG(B
-0,T5i(B1,TM'!RCB!`(B0,TET(B1,T!(B0,T7h(B1,TR9(B, 0,T!g(B1,TJRARC6B!`(B0,TET(B1,T!d(B0,T4i(B1,Tb4Bc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-g.
+,Tc9!RC07Uh1(Pc0*i10$X13JA0:Q105T10*h1GB`K0EW1M(B, 0,T;i1M90MQ1!"CP(B C-h, ,Ta0Ei1G5RA04i1GB0MU1!K09Vh1'0MQ1!"CP`0>Wh1M:M!0Gh1R(B
+0,T7h1R905i1M'!RC$S0*h1GB`K0EW1MMPdC(B. 0,T6i1R07h1R9d0Ah17CR:0Gh1R(P7SMPdC05h1Md;(B, 0,T;i1M9$S0JQh1'(B C-h ? ,Ta0Ei1G(B
+0,TMU1aA!0Jl1(P:M!07h1R90Gh1R0AU1$S0*h1GBMPdC07Uh10MU1aA!0Jl1JRARC6(Pc0Ki1d04i1(B. 0,T6i1R07h1R90;i1M9$S0JQh1'(B C-h ,Ta0Ei1G(B
+0,T5i1M'!RCB!`0ET1!07h1R9(B, 0,T!g1JRARC6B!`0ET1!d04i1b4Bc0*i1$S0JQh1'(B C-g.
 
-(,Tc9:R'CP::(B0,T9Qi(B1,T9(B, ,T$GRAKARB"M'(B0,TMQ(B1,T!"CP(B C-h ,Td(B0,T4i(B10,T6Y(B1,T!`;(B0,TEUh(B1,TB9d;(B. 0,T+Vh(B1,T'b4B$GRA`(B0,T;g(B1,T9((B0,TCT(B1,T'a(B0,TEi(B1,TGd(B0,TAh(B1
-,T$GC(P7S`(B0,T*h(B1,T9(B0,T9Ui(B1, 0,T7Qi(B1,T'(B0,T9Ui(B10,T7h(B1,TR9MR((P(B0,T*Ui(B1,Ta('(B0,T5h(B1,TM(B0,T<Yi(B10,T4Y(B1,TaECP::d(B0,T4i(B1. ,TJSK(B0,TCQ(B1,T:!RCa(B0,T!i(B10,T;Q(B1,T-KR`)>RPK(B0,T9i(B1,TR(B, 0,T6i(B1,TR(B
-,T$S(B0,TJQh(B1,T'(B C-h ,Td(B0,TAh(B1,Td(B0,T4i(B1,TaJ4'(B0,T"i(B1,TM$GRA`(B0,T!Uh(B1,TBG(B0,T!Q(B1,T:$S(B0,T*h(B1,TGB`K(B0,TEW(B1,TM(B0,T7Uh(B10,TJh(B1,TG9(B0,TEh(B1,TR'"M'K(B0,T9i(B1,TR(M(B0,T9Qi(B1,T9(B, ,Tc(B0,TKi(B1,TEM'!4(B0,T;Xh(B1,TA(B F1 
-,TK(B0,TCW(B1,TM(B M-x help<Return> ,Ta79(B.)
+(,Tc9:R'CP::09Qi19(B, ,T$GRAKARB"M'0MQ1!"CP(B C-h ,Td04i106Y1!`;0EUh1B9d;(B. 0,T+Vh1'b4B$GRA`0;g19(0CT1'a0Ei1Gd0Ah1(B
+,T$GC(P7S`0*h1909Ui1(B, 0,T7Qi1'09Ui107h1R9MR((P0*Ui1a('05h1M0<Yi104Y1aECP::d04i1(B. ,TJSK0CQ1:!RCa0!i10;Q1-KR`)>RPK09i1R(B, 0,T6i1R(B
+,T$S0JQh1'(B C-h ,Td0Ah1d04i1aJ4'0"i1M$GRA`0!Uh1BG0!Q1:$S0*h1GB`K0EW1M07Uh10Jh1G90Eh1R'"M'K09i1R(M09Qi19(B, ,Tc0Ki1EM'!40;Xh1A(B F1
+,TK0CW1M(B M-x help<Return> ,Ta79(B.)
 
-0,T$X(B1,T3JA(B0,T:Q(B10,T5T(B1,T`(B0,T:Wi(B1,TM'(B0,T5i(B1,T9"M'$S(B0,TJQh(B1,T'(B0,T*h(B1,TGB`K(B0,TEW(B1,TM(B0,T$W(B1,TM$S(B0,TJQh(B1,T'(B C-h c. ,TEM'(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-h, 0,TMQ(B1,T!"CP(B c, ,Ta(B0,TEi(B1,TG(B
-,T5RA(B0,T4i(B1,TGB(B0,TMQ(B1,T!"CPK(B0,TCW(B1,TMJRB(B0,TMQ(B1,T!"CP(B; ,Ta(B0,TEi(B1,TG(B0,TMU(B1,TaA!(B0,TJl(B1,T(PaJ4'$SM(B0,T8T(B1,T:RB"M'$S(B0,TJQh(B1,T'(B0,T9Qi(B1,T9b4B(B0,TJQ(B1,T'`";(B.
+0,T$X13JA0:Q105T1`0:Wi1M'05i19"M'$S0JQh1'0*h1GB`K0EW1M0$W1M$S0JQh1'(B C-h c. ,TEM'0;i1M9$S0JQh1'(B C-h, 0,TMQ1!"CP(B c, ,Ta0Ei1G(B
+,T5RA04i1GB0MQ1!"CPK0CW1MJRB0MQ1!"CP(B; ,Ta0Ei1G0MU1aA!0Jl1(PaJ4'$SM08T1:RB"M'$S0JQh1'09Qi19b4B0JQ1'`";(B.
 
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-h c CONTROL-p.
-   0,T"i(B1,TM$GRA(B0,T7Uh(B1,T;CR!/(P`(B0,T;g(B1,T9(B0,T4Q(B1,T'(B0,T5h(B1,TMd;(B0,T9Ui(B1
+>> 0,T;i1M9$S0JQh1'(B C-h c CONTROL-p.
+   0,T"i1M$GRA07Uh1;CR!/(P`0;g1904Q1'05h1Md;09Ui1(B
 
 	C-p runs the command previous-line
 
-0,T9Uh(B1,T`(B0,T;g(B1,T9!RC:M!(B "0,T*Wh(B1,TM(B0,T?Q(B1,T'(B0,T!l(B10,T*Q(B1,T9"M'$S(B0,TJQh(B1,T'(B" 0,T9Qi(B1,T9(B. 0,T*Wh(B1,TM"M'(B0,T?Q(B1,T'(B0,T!l(B10,T*Q(B1,T9c(B0,T*i(B1,T`(B0,T>Wh(B1,TM!RC;(B0,TCQ(B1,T:aEPa(B0,T5h(B1,T'`(B0,T5T(B1,TA(B0,TMU(B1,TaA!(B0,TJl(B1. 
-,Ta(B0,T5h(B1,T`(B0,T9Wh(B1,TM'(R!(B0,T*Wh(B1,TM"M'(B0,T?Q(B1,T'(B0,T!l(B10,T*Q(B1,T9(B0,T9Qi(B1,T9(B0,T5Qi(B1,T'`(B0,T>Wh(B1,TM(B0,T*Ui(B1,T:M!(B0,TGh(B1,TR$S(B0,TJQh(B1,T'(B0,T9Qi(B1,T97S'R9M(B0,TBh(B1,TR'dC(B, 0,T+Vh(B1,T'MR(`(B0,T;g(B1,T9(B0,T5Q(B1,TG(B0,T*h(B1,TGB:M!(B
-,T$SM(B0,T8T(B1,T:RBb4B(B0,TJQ(B1,T'`";d(B0,T4i(B1--,TMR(`(B0,T>U(B1,TB'>M(B0,T7Uh(B1,T(P`(B0,T5W(B1,TM9c(B0,TKi(B10,T7h(B1,TR9(B0,T9V(B1,T!(B0,T6V(B1,T'$S(B0,TJQh(B1,T'(B0,T7Uh(B10,T5i(B1,TM'!RCd(B0,T4i(B1.
+0,T9Uh1`0;g19!RC:M!(B "0,T*Wh1M0?Q1'0!l10*Q19"M'$S0JQh1'(B" 0,T9Qi19(B. 0,T*Wh1M"M'0?Q1'0!l10*Q19c0*i1`0>Wh1M!RC;0CQ1:aEPa05h1'`05T1A0MU1aA!0Jl1(B.
+,Ta05h1`09Wh1M'(R!0*Wh1M"M'0?Q1'0!l10*Q1909Qi1905Qi1'`0>Wh1M0*Ui1:M!0Gh1R$S0JQh1'09Qi197S'R9M0Bh1R'dC(B, 0,T+Vh1'MR(`0;g1905Q1G0*h1GB:M!(B
+,T$SM08T1:RBb4B0JQ1'`";d04i1(B--,TMR(`0>U1B'>M07Uh1(P`05W1M9c0Ki107h1R909V1!06V1'$S0JQh1'07Uh105i1M'!RCd04i1(B.
 
-,T$S(B0,TJQh(B1,T'(B0,T7Uh(B1,T;CP!M:(B0,T4i(B1,TGBKERB(B0,TMQ(B1,T!"CP(B ,T`(B0,T*h(B1,T9$S(B0,TJQh(B1,T'(B C-x C-s ,TaEP(B (0,T6i(B1,TR(B0,T7h(B1,TR9d(B0,TAh(B10,TAU(B10,T;Xh(B1,TA(B META ,TK(B0,TCW(B1,TM(B
-EDIT ,TK(B0,TCW(B1,TM(B ALT) ,T$S(B0,TJQh(B1,T'(B <ESC>v ,TJRARC6c(B0,T*i(B1,T5RAK(B0,TEQ(B1,T'$S(B0,TJQh(B1,T'(B C-h c.
+,T$S0JQh1'07Uh1;CP!M:04i1GBKERB0MQ1!"CP(B ,T`0*h19$S0JQh1'(B C-x C-s ,TaEP(B (0,T6i1R07h1R9d0Ah10AU10;Xh1A(B META ,TK0CW1M(B
+EDIT ,TK0CW1M(B ALT) ,T$S0JQh1'(B <ESC>v ,TJRARC6c0*i15RAK0EQ1'$S0JQh1'(B C-h c.
 
-,T!RC(B0,T7Uh(B1,T(P`(B0,TCU(B1,TB!(B0,T4Y(B10,T"i(B1,TM(B0,TAY(B1,TE`(B0,T>Th(B1,TA`(B0,T!Uh(B1,TBG(B0,T!Q(B1,T:$S(B0,TJQh(B1,T'(B, ,Tc(B0,TKi(B1,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-h k ,Ta79$S(B0,TJQh(B1,T'(B C-h c.
+,T!RC07Uh1(P`0CU1B!04Y10"i1M0AY1E`0>Th1A`0!Uh1BG0!Q1:$S0JQh1'(B, ,Tc0Ki1c0*i1$S0JQh1'(B C-h k ,Ta79$S0JQh1'(B C-h c.
 
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-h k CONTROL-p.
+>> 0,T;i1M9$S0JQh1'(B C-h k CONTROL-p.
 
-0,T9Uh(B1,T`(B0,T;g(B1,T9!RCaJ4'<E$SM(B0,T8T(B1,T:RB"M'(B0,T?Q(B1,T'(B0,T!l(B10,T*Q(B1,T9(B, ,T>(B0,TCi(B1,TMA(B0,T!Q(B1,T:(B0,T*Wh(B1,TM"M'$S(B0,TJQh(B1,T'(B0,T9Qi(B1,T9(B, ,Tc9(B0,TGT(B1,T9b4(B0,TGl(B1,TK(B0,T9Vh(B1,T'"M'(B0,TMU(B1,TaA!(B0,TJl(B1. 
-,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9(B0,TMh(B1,TR9`J(B0,TCg(B1,T(a(B0,TEi(B1,TG(B, 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 1 ,T`(B0,T>Wh(B1,TM!S(B0,T(Q(B1,T4(B0,T"i(B1,TM$GRA"M'$S(B0,T*h(B1,TGB`K(B0,TEW(B1,TM(B. 0,T7h(B1,TR9d(B0,TAh(B1
-,T(S`(B0,T;g(B1,T9(B0,T7Uh(B1,T(P(B0,T5i(B1,TM'7S(B0,T7Q(B1,T9(B0,T7U(B1. 0,T7h(B1,TR9MR(7S!RCa(B0,T!i(B1,Td""3P(B0,T7Uh(B10,T4Y(B10,T"i(B1,TM$GRA$S(B0,T*h(B1,TGB`K(B0,TEW(B1,TM(B0,T9Qi(B1,T9M(B0,TBYh(B1, ,Ta(B0,TEi(B1,TG(B
-0,T$h(B1,TMB(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 1.
+0,T9Uh1`0;g19!RCaJ4'<E$SM08T1:RB"M'0?Q1'0!l10*Q19(B, ,T>0Ci1MA0!Q1:0*Wh1M"M'$S0JQh1'09Qi19(B, ,Tc90GT19b40Gl1K09Vh1'"M'0MU1aA!0Jl1(B.
+,T`0AWh1M07h1R90Mh1R9`J0Cg1(a0Ei1G(B, 0,T;i1M9$S0JQh1'(B C-x 1 ,T`0>Wh1M!S0(Q140"i1M$GRA"M'$S0*h1GB`K0EW1M(B. 0,T7h1R9d0Ah1(B
+,T(S`0;g1907Uh1(P05i1M'7S07Q1907U1(B. 0,T7h1R9MR(7S!RCa0!i1d""3P07Uh104Y10"i1M$GRA$S0*h1GB`K0EW1M09Qi19M0BYh1(B, ,Ta0Ei1G(B
+0,T$h1MB0;i1M9$S0JQh1'(B C-x 1.
 
-0,T5h(B1,TMd;(B0,T9Ui(B1,T`(B0,T;g(B1,T9(B0,T5Q(B1,TG`(B0,TEW(B1,TM!(B0,T7Uh(B1,T`(B0,T;g(B1,T9;CPbB*(B0,T9l(B1:
+0,T5h1Md;09Ui1`0;g1905Q1G`0EW1M!07Uh1`0;g19;CPbB*09l1(B:
 
-   C-h f	,TM(B0,T8T(B1,T:RB(B0,T?Q(B1,T'(B0,T!l(B10,T*Q(B1,T9(B. 0,T>T(B1,TA(B0,T>l(B10,T*Wh(B1,TM(B0,T?Q(B1,T'(B0,T!l(B10,T*Q(B1,T9(B0,T7Uh(B10,T5i(B1,TM'!RC7CR:5RAE'd;(B.
+   C-h f	,TM08T1:RB0?Q1'0!l10*Q19(B. 0,T>T1A0>l10*Wh1M0?Q1'0!l10*Q1907Uh105i1M'!RC7CR:5RAE'd;(B.
 
->> ,TEM'(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-h f previous-line<Return>.
-   0,T9Uh(B1,T`(B0,T;g(B1,T9!RC(B0,T7Uh(B1,T(P7Sc(B0,TKi(B10,TMU(B1,TaA!(B0,TJl(B10,T>T(B1,TA(B0,T>l(B10,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Qi(B1,T'KA4(B0,T7Uh(B10,TAU(B1,T`(B0,T!Uh(B1,TBG(B0,T!Q(B1,T:(B0,T?Q(B1,T'(B0,T!l(B10,T*Q(B1,T9"M'$S(B0,TJQh(B1,T'(B C-p.
+>> ,TEM'0;i1M9$S0JQh1'(B C-h f previous-line<Return>.
+   0,T9Uh1`0;g19!RC07Uh1(P7Sc0Ki10MU1aA!0Jl10>T1A0>l10"i1M0AY1E07Qi1'KA407Uh10AU1`0!Uh1BG0!Q1:0?Q1'0!l10*Q19"M'$S0JQh1'(B C-p.
 
-   C-h a 	,T$S(B0,TJQh(B1,T'$GRA(B0,T7Uh(B1,T`KARPJA(B (Command Apropos). 0,T;i(B1,TM9$SK(B0,TEQ(B1,T!(B (keyword)
-		,Ta(B0,TEi(B1,TG(B0,TMU(B1,TaA!(B0,TJl(B1,T(PaJ4'CRB!RC"M'$S(B0,TJQh(B1,T'(B0,T7Qi(B1,T'KA4(B0,T7Uh(B10,TAU(B1,T$SK(B0,TEQ(B1,T!;CP!M:M(B0,TBYh(B1.
-		,T$S(B0,TJQh(B1,T'`K(B0,TEh(B1,TR(B0,T9Ui(B1,T(P`(B0,TCU(B1,TB!c(B0,T*i(B1,Td(B0,T4i(B10,T4i(B1,TGB$S(B0,TJQh(B1,T'(B META-x.
-		,TJSK(B0,TCQ(B1,T::R'$S(B0,TJQh(B1,T'(B, ,T$S(B0,TJQh(B1,T'$GRA(B0,T7Uh(B1,T`KARPJA(B (Command Apropos) ,T(P(B
-		,TaJ4'CRB!RC"M'$S(B0,TJQh(B1,T'(B0,T7Uh(B1,T;CP!M:(B0,T4i(B1,TGBK(B0,T9Vh(B1,T'K(B0,TCW(B1,TMJM'JRB(B0,TMQ(B1,T!"CP(B0,T7Uh(B1,Tc(B0,T*i(B1,T`(B0,TCU(B1,TB!(B
-		,T$S(B0,TJQh(B1,T'`(B0,T4U(B1,TBG(B0,T!Q(B1,T9(B0,T4i(B1,TGB(B.
+   C-h a 	,T$S0JQh1'$GRA07Uh1`KARPJA(B (Command Apropos). 0,T;i1M9$SK0EQ1!(B (keyword)
+		,Ta0Ei1G0MU1aA!0Jl1(PaJ4'CRB!RC"M'$S0JQh1'07Qi1'KA407Uh10AU1$SK0EQ1!;CP!M:M0BYh1(B.
+		,T$S0JQh1'`K0Eh1R09Ui1(P`0CU1B!c0*i1d04i104i1GB$S0JQh1'(B META-x.
+		,TJSK0CQ1::R'$S0JQh1'(B, ,T$S0JQh1'$GRA07Uh1`KARPJA(B (Command Apropos) ,T(P(B
+		,TaJ4'CRB!RC"M'$S0JQh1'07Uh1;CP!M:04i1GBK09Vh1'K0CW1MJM'JRB0MQ1!"CP07Uh1c0*i1`0CU1B!(B
+		,T$S0JQh1'`04U1BG0!Q1904i1GB(B.
 
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-h a file<Return>.
+>> 0,T;i1M9$S0JQh1'(B C-h a file<Return>.
 
-0,T9Uh(B1,T`(B0,T;g(B1,T9!RCaJ4'CRB!RC"M'$S(B0,TJQh(B1,T';CP!M:"M'(B M-x 0,T!Q(B1,T:(B "file" ,Tc9(B0,T*Wh(B1,TM"M'$S(B0,TJQh(B1,T'(B
-0,T7Qi(B1,T'KA4c9(B0,TMU(B1,T!K(B0,T9i(B1,TR(M(B. 0,T7h(B1,TR9(P`(B0,TKg(B1,T9$S(B0,TJQh(B1,T';CP!M:(B0,TMQ(B1,T!"CP(B (character-command) ,T`(B0,T*h(B1,T9(B C-x
-C-f ,TaJ4'M(B0,TBYh(B10,T!Q(B1,T:(B0,T*Wh(B1,TM"M'$S(B0,TJQh(B1,T'(B0,T9Qi(B1,T9f(B ,T`(B0,T*h(B1,T9(B find-file.
+0,T9Uh1`0;g19!RCaJ4'CRB!RC"M'$S0JQh1';CP!M:"M'(B M-x 0,T!Q1:(B "file" ,Tc90*Wh1M"M'$S0JQh1'(B
+0,T7Qi1'KA4c90MU1!K09i1R(M(B. 0,T7h1R9(P`0Kg19$S0JQh1';CP!M:0MQ1!"CP(B (character-command) ,T`0*h19(B C-x
+C-f ,TaJ4'M0BYh10!Q1:0*Wh1M"M'$S0JQh1'09Qi19f(B ,T`0*h19(B find-file.
 
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-M-v ,T`(B0,T>Wh(B1,TM`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B0,TGT(B1,T9b4(B0,TGl(B1,T$S(B0,T*h(B1,TGB`K(B0,TEW(B1,TM(B (help window). ,TEM'7S(B0,T4Y(B10,TJQ(B1,T!(B
-   ,TJM'JRA$(B0,TCQi(B1,T'(B.
+>> 0,T;i1M9$S0JQh1'(B C-M-v ,T`0>Wh1M`$0EWh1M90Ai1G90GT19b40Gl1$S0*h1GB`K0EW1M(B (help window). ,TEM'7S04Y10JQ1!(B
+   ,TJM'JRA$0CQi1'(B.
 
->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 1 ,T`(B0,T>Wh(B1,TM!S(B0,T(Q(B1,T4(B0,TGT(B1,T9b4(B0,TGl(B1,T$S(B0,T*h(B1,TGB`K(B0,TEW(B1,TM(B.
+>> 0,T;i1M9$S0JQh1'(B C-x 1 ,T`0>Wh1M!S0(Q140GT19b40Gl1$S0*h1GB`K0EW1M(B.
 
 
-* ,TJ(B0,TCX(B1,T;(B
+* ,TJ0CX1;(B
 -----
 
-0,TJTh(B1,T'$GC(Sd(B0,TGi(B10,T$W(B1,TM(B, ,T$S(B0,TJQh(B1,T'(B C-x C-c ,Tc(B0,T*i(B1,TJSK(B0,TCQ(B1,T:MM!(R!(B0,TMU(B1,TaA!(B0,TJl(B1,TM(B0,TBh(B1,TR'6RGC(B. 0,T6i(B1,TR(B0,T5i(B1,TM'!RCMM!d;(B0,TBQ(B1,T'(B
-,T`*E(B0,TEl(B10,T*Qh(B1,TG$CRG(B, ,TaEPJRARC6!(B0,TEQ(B1,T:AR(B0,TBQ(B1,T'(B0,TMU(B1,TaA!(B0,TJl(B1,Td(B0,T4i(B10,TMU(B1,T!(B0,T9Qi(B1,T9(B, ,Tc(B0,TKi(B1,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-z.
+0,TJTh1'$GC(Sd0Gi10$W1M(B, ,T$S0JQh1'(B C-x C-c ,Tc0*i1JSK0CQ1:MM!(R!0MU1aA!0Jl1M0Bh1R'6RGC(B. 0,T6i1R05i1M'!RCMM!d;0BQ1'(B
+,T`*E0El10*Qh1G$CRG(B, ,TaEPJRARC6!0EQ1:AR0BQ1'0MU1aA!0Jl1d04i10MU1!09Qi19(B, ,Tc0Ki1c0*i1$S0JQh1'(B C-z.
 
-0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B10,T9Ui(B10,TAU(B1,T`(59Rc(B0,TKi(B10,T<Yi(B10,T7Uh(B1,T`(B0,T>Th(B1,T'`(B0,TCTh(B1,TAc(B0,T*i(B10,T7Qi(B1,T'KERBJRARC6`(B0,T"i(B1,TRc(d(B0,T4i(B1, 0,T4Q(B1,T'(B0,T9Qi(B1,T9(B0,T6i(B1,TR(B0,T7h(B1,TR9>::R'(B0,TJTh(B1,T'(B0,T7Uh(B1,Td(B0,TAh(B1
-0,T*Q(B1,T4`(9(B, ,Td(B0,TAh(B10,T5i(B1,TM'(B0,T9Qh(B1,T'5SK(B0,T9T(B10,T5Q(B1,TG`M'(B - ,TJM:6RAARd(B0,T4i(B1,T`EB(B!
+0,T$Yh10AW1M!RCc0*i109Ui10AU1`(59Rc0Ki10<Yi107Uh1`0>Th1'`0CTh1Ac0*i107Qi1'KERBJRARC6`0"i1Rc(d04i1(B, 0,T4Q1'09Qi1906i1R07h1R9>::R'0JTh1'07Uh1d0Ah1(B
+0,T*Q14`(9(B, ,Td0Ah105i1M'09Qh1'5SK09T105Q1G`M'(B - ,TJM:6RAARd04i1`EB(B!
 
 
 * ,T!RC7SJS`9R(B (copying)
 ----------------------
 
-0,T$Yh(B10,TAW(B1,TM(B0,T9Ui(B1,Td(B0,T4i(B10,TCQ(B1,T:!RC(B0,T>Q(B1,T29RAR`(B0,T;g(B1,T9CPBP`GER9R9(B, ,T`(B0,TCTh(B1,TA(B0,T5Qi(B1,T'a(B0,T5h(B10,T5i(B1,T9)(B0,T:Q(B1,T:(B0,T7Uh(B1,T`(B0,T"U(B1,TB9b4B(B Stuart Cracraft.
+0,T$Yh10AW1M09Ui1d04i10CQ1:!RC0>Q129RAR`0;g19CPBP`GER9R9(B, ,T`0CTh1A05Qi1'a05h105i19)0:Q1:07Uh1`0"U1B9b4B(B Stuart Cracraft.
 
-0,T$Yh(B10,TAW(B1,TM`GM(B0,TCl(B10,T*Q(B1,T9(B0,T9Ui(B1, ,T`(B0,T*h(B1,T9`(B0,T4U(B1,TBG(B0,T!Q(B1,T:(B GNU Emacs, ,Td(B0,T4i(B10,TCQ(B1,T:!RCJ'G9(B0,TJT(B1,T7(B0,T8Tl(B1, ,TaEP<9G!d(B0,TGi(B1,Tc9`(B0,T'Wh(B1,TM9d"c9(B
-,T!RC`<Ba>(B0,TCh(B10,T4i(B1,TGB(B:
+0,T$Yh10AW1M`GM0Cl10*Q1909Ui1(B, ,T`0*h19`04U1BG0!Q1:(B GNU Emacs, ,Td04i10CQ1:!RCJ'G90JT1708Tl1(B, ,TaEP<9G!d0Gi1c9`0'Wh1M9d"c9(B
+,T!RC`<Ba>0Ch104i1GB(B:
 
-,TJ'G9(B0,TET(B1,T"(B0,TJT(B1,T7(B0,T8Tl(B1 ,T>(B.,TH(B. 2528, 2529 ,Tb4B?(B0,TCU(B1,T+M?(B0,T5l(B1,TaG(B0,TCl(B1,T?RG(B0,T9l(B1,T`4(B0,T*Q(B1,T9(B (Free Software Foundation) 
+,TJ'G90ET1"0JT1708Tl1(B ,T>(B.,TH(B. 2528, 2529 ,Tb4B?0CU1+M?05l1aG0Cl1?RG09l1`40*Q19(B (Free Software Foundation)
 
-   0,T7X(B1,T!(B0,T7h(B1,TR9(B0,TAU(B10,TJT(B1,T7(B0,T8Tl(B1,Tc9!RC7SJS`9RK(B0,TCW(B1,TM`<Ba>(B0,TCh(B1,T`M!JRC(B0,T9Ui(B1, ,Tc9(B0,T7X(B1,T!(B0,TJWh(B1,TM(B, ,Tb4B(B0,T5i(B1,TM'a9:(B0,T"i(B1,TM$GRAaJ4'(B
-   0,TJT(B1,T7(B0,T8Tl(B1,TaEP!RCM(B0,T9X(B1,T-R5(B0,T9Ui(B1,Td;>(B0,TCi(B1,TMA(B0,T4i(B1,TGB(B. 0,T7Qi(B1,T'(B0,T9Ui(B1,T`(B0,T>Wh(B1,TM(B0,T*Ui(B1,Tc(B0,TKi(B1,T`(B0,TKg(B1,T9(B0,TGh(B1,TR(B0,T<Yi(B1,T`<Ba>(B0,TCh(B1,Td(B0,T4i(B1,TM(B0,T9X(B1,T-R5c(B0,TKi(B10,T<Yi(B10,T7Uh(B1,Td(B0,T4i(B10,TCQ(B1,T:(B
-   ,TJRARC67S!RC`<Ba>(B0,TCh(B10,T5h(B1,TMd;d(B0,T4i(B1,Tb4BMR(B0,THQ(B1,TB(B0,T"i(B1,TM$GRAc9`M!JRC(B0,T9Ui(B1.
+   0,T7X1!07h1R90AU10JT1708Tl1c9!RC7SJS`9RK0CW1M`<Ba>0Ch1`M!JRC09Ui1(B, ,Tc907X1!0JWh1M(B, ,Tb4B05i1M'a9:0"i1M$GRAaJ4'(B
+   0,TJT1708Tl1aEP!RCM09X1-R509Ui1d;>0Ci1MA04i1GB(B. 0,T7Qi1'09Ui1`0>Wh1M0*Ui1c0Ki1`0Kg190Gh1R0<Yi1`<Ba>0Ch1d04i1M09X1-R5c0Ki10<Yi107Uh1d04i10CQ1:(B
+   ,TJRARC67S!RC`<Ba>0Ch105h1Md;d04i1b4BMR0HQ1B0"i1M$GRAc9`M!JRC09Ui1(B.
 
-   ,T!RCM(B0,T9X(B1,T-R5(B0,T9Qi(B1,T9d(B0,T4i(B1,TCGA(B0,T6V(B1,T'(B0,TJT(B1,T7(B0,T8Tl(B1,Tc9!RC`<Ba>(B0,TCh(B1,T`GM(B0,TCl(B10,T*Q(B1,T9(B0,T7Uh(B1,T;(B0,TCQ(B1,T:;(B0,TCX(B1,T'a(B0,TEi(B1,TG(B, ,TK(B0,TCW(B1,TM(B0,TJh(B1,TG9K(B0,T9Vh(B1,T'"M'(B
-   ,T`M!JRC(B0,T9Ui(B1, ,T@RBc(B0,T5i(B1,T`(B0,T'Wh(B1,TM9d"(B0,T"i(B1,TR':9(B, ,T5EM4(9(B0,TJT(B1,T7(B0,T8Tl(B1,Tc9!RC:M!(B0,TGh(B1,TRc$C`(B0,T;g(B1,T9(B0,T<Yi(B1,T;(B0,TCQ(B1,T:;(B0,TCX(B1,T'(B0,TEh(B1,TR(B0,TJX(B1,T4(B.
+   ,T!RCM09X1-R509Qi19d04i1CGA06V1'0JT1708Tl1c9!RC`<Ba>0Ch1`GM0Cl10*Q1907Uh1;0CQ1:;0CX1'a0Ei1G(B, ,TK0CW1M0Jh1G9K09Vh1'"M'(B
+   ,T`M!JRC09Ui1(B, ,T@RBc05i1`0'Wh1M9d"0"i1R':9(B, ,T5EM4(90JT1708Tl1c9!RC:M!0Gh1Rc$C`0;g190<Yi1;0CQ1:;0CX1'0Eh1R0JX14(B.
 
-,T`(B0,T'Wh(B1,TM9d""M'!RC7SJS`9R(B0,TMU(B1,TaA!(B0,TJl(B1,T(P(B0,T+Q(B1,T:(B0,T+i(B1,TM9AR!!(B0,TGh(B1,TR(B0,T9Ui(B1, ,Ta(B0,T5h(B10,TAU(B1,T`(59RCA(B0,T3l(B10,T7Uh(B1,T`K(B0,TAW(B1,TM9(B0,T!Q(B1,T9(B. ,T!(B0,TCX(B1,T3R(B
-0,TMh(B1,TR9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B COPYING ,Ta(B0,TEi(B1,TG`<Ba>(B0,TCh(B1,TJS`9R"M'(B GNU Emacs ,Td;(B0,TBQ(B1,T'`(B0,T>Wh(B1,TM9f(B ,T"M'(B0,T7h(B1,TR9(B0,T4i(B1,TGB(B. 
-0,T*h(B1,TGB(B0,T!Q(B1,T97SERBCP::KG'+M?(B0,T5l(B1,TaG(B0,TCl(B1 (",TaJ4'$GRA`(B0,T;g(B1,T9`(B0,T(i(B1,TR(B0,T"i(B1,TRG`(B0,T(i(B1,TR"M'(B") 0,T4i(B1,TGB!RCc(B0,T*i(B1, 
-,T!RC`(B0,T"U(B1,TB9(B, ,TaEP!RC`(B0,T;g(B1,T9`(B0,T(i(B1,TR"M'(B0,TCh(B1,TGA(B0,T!Q(B1,T9"M'+M?(B0,T5l(B1,TaG(B0,TCl(B1,T`J(B0,TCU(B1 (free software).
+,T`0'Wh1M9d""M'!RC7SJS`9R0MU1aA!0Jl1(P0+Q1:0+i1M9AR!!0Gh1R09Ui1(B, ,Ta05h10AU1`(59RCA03l107Uh1`K0AW1M90!Q19(B. ,T!0CX13R(B
+0,TMh1R9a0?i1A0"i1M0AY1E(B COPYING ,Ta0Ei1G`<Ba>0Ch1JS`9R"M'(B GNU Emacs ,Td;0BQ1'`0>Wh1M9f(B ,T"M'07h1R904i1GB(B.
+0,T*h1GB0!Q197SERBCP::KG'+M?05l1aG0Cl1(B (",TaJ4'$GRA`0;g19`0(i1R0"i1RG`0(i1R"M'(B") 0,T4i1GB!RCc0*i1(B,
+,T!RC`0"U1B9(B, ,TaEP!RC`0;g19`0(i1R"M'0Ch1GA0!Q19"M'+M?05l1aG0Cl1`J0CU1(B (free software).
 
 
-* 0,T5i(B1,T9)(B0,T:Q(B1,T:(B0,TGh(B1,TR(B0,T4i(B1,TGB`(B0,TCWh(B1,TM'!RC7SJS`9R(B
+* 0,T5i19)0:Q1:0Gh1R04i1GB`0CWh1M'!RC7SJS`9R(B
 --------------------------
 
-0,T5h(B1,TMd;(B0,T9Ui(B1,T`(B0,T;g(B1,T9`M!JRC(B0,TGh(B1,TR(B0,T4i(B1,TGB`(B0,TCWh(B1,TM'!RC7SJS`9R(B0,T7Uh(B1,T`(B0,T;g(B1,T9(B0,T5i(B1,T9)(B0,T:Q(B1,T:(B. ,T`M!JRC(B0,T9Ui(B1,T;CR!/M(B0,TBYh(B1,Tc9(B0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B1
-0,TMU(B1,TaA!(B0,TJl(B1,T)(B0,T:Q(B1,T:@RIR(B0,TMQ(B1,T'!DI(B, 0,T+Vh(B1,T'`(B0,T;g(B1,T9(B0,T5i(B1,T9)(B0,T:Q(B1,T:"M'`M!JRCa;E)(B0,T:Q(B1,T:(B0,T9Ui(B10,T4i(B1,TGB(B.
+0,T5h1Md;09Ui1`0;g19`M!JRC0Gh1R04i1GB`0CWh1M'!RC7SJS`9R07Uh1`0;g1905i19)0:Q1:(B. ,T`M!JRC09Ui1;CR!/M0BYh1c90$Yh10AW1M!RCc0*i1(B
+0,TMU1aA!0Jl1)0:Q1:@RIR0MQ1'!DI(B, 0,T+Vh1'`0;g1905i19)0:Q1:"M'`M!JRCa;E)0:Q1:09Ui104i1GB(B.
 
 This tutorial descends from a long line of Emacs tutorials
 starting with the one written by Stuart Cracraft for the original Emacs.
@@ -988,19 +988,19 @@
 ("ownership") by using, writing, and sharing free software!
 
 
-* ,T$S(B0,TJh(B1,T'(B0,T7i(B1,TRB(B
+* ,T$S0Jh1'07i1RB(B
 ---------
 
-0,T$Yh(B10,TAW(B1,TM)(B0,T:Q(B1,T:(B0,T9Ui(B1,Td(B0,T4i(B1,Ta;E(R!(B0,T5i(B1,T9)(B0,T:Q(B1,T:(B0,T7Uh(B1,T`(B0,T;g(B1,T9@RIR(B0,TMQ(B1,T'!DI(B, 0,T+Vh(B1,T'(P;CR!/M(B0,TBYh(B1,Tc9(B0,TMU(B1,TaA!(B0,TJl(B1,T`GM(B0,TCl(B10,T*Q(B1,T9(B 20.4. 
-0,T<Yi(B1,Ta;Ed(B0,T4i(B1,T7S!RCa;E(B0,T"Vi(B1,T9ARcK(B0,TAh(B1,T`(B0,T9Wh(B1,TM'(R!)(B0,T:Q(B1,T:`(B0,T!h(B1,TR(B0,T7Uh(B1,T`(B0,T;g(B1,T9@RIRd7B(B, 0,T+Vh(B1,T'a;Eb4B(B ,T4C(B.,TAR9>(B ,TG'(B0,THl(B1
-,TJRB(B0,TJX(B1,TGCC3(B, ,Td(B0,T4i(B10,TMT(B1,T'(B0,T$Yh(B10,TAW(B1,TM"M'(B0,TMU(B1,TaA!(B0,TJl(B1,T`GM(B0,TCl(B10,T*Q(B1,T9`(B0,T!h(B1,TR(B, ,TaEP"3P(B0,T9Ui(B10,TMU(B1,TaA!(B0,TJl(B1,T`GM(B0,TCl(B10,T*Q(B1,T9(B 20.4 0,T!g(B1,Td(B0,T4i(B1
-,T`;(B0,TEUh(B1,TB9a;E'd;AR!a(B0,TEi(B1,TG(B. ,T9M!(R!(B0,T9Ui(B1, 0,T<Yi(B1,Ta;E(B0,TBQ(B1,T'd(B0,T4i(B1,T9S`$(B0,TCWh(B1,TM'KARBGCC$5M9ARc(B0,T*i(B1,Tc9(B0,T7Uh(B10,T9Ui(B10,T4i(B1,TGB(B, 
-0,T7Qi(B1,T'(B0,T9Ui(B10,T!g(B1,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`(B0,T"U(B1,TB9c(B0,TKi(B1,Td(B0,T4i(B1,T$GRA(B0,T7Uh(B10,T*Q(B1,T4`(9(B. ,TK(B0,TGQ(B1,T'`(B0,T;g(B1,T9M(B0,TBh(B1,TR'(B0,TBTh(B1,T'(B0,TGh(B1,TR(B0,T$Yh(B10,TAW(B1,TM)(B0,T:Q(B1,T:(B0,T9Ui(B1,T(P`(B0,T;g(B1,T9;CPbB*(B0,T9l(B1 
-,TaEP(Pd(B0,T4i(B10,TCQ(B1,T:!RCa(B0,T!i(B1,Td"c(B0,TKi(B10,T4U(B10,TBTh(B1,T'f(B 0,T"Vi(B1,T9(B0,TMU(B1,T!(B0,T5h(B1,TMf(B ,Td;(B. ,T"M"M:(B0,T$X(B1,T3(B 0,T$X(B1,T3(B0,T7Q(B1,TH(B0,T9U(B10,TBl(B1 ,T`((B0,TCT(B1,T->C(B 0,T7Uh(B1,Tc(B0,TKi(B1,T$GRA(B
-0,T*h(B1,TGB`K(B0,TEW(B1,TM5CG(JM:(B0,T5i(B1,T9)(B0,T:Q(B1,T:(B.
+0,T$Yh10AW1M)0:Q1:09Ui1d04i1a;E(R!05i19)0:Q1:07Uh1`0;g19@RIR0MQ1'!DI(B, 0,T+Vh1'(P;CR!/M0BYh1c90MU1aA!0Jl1`GM0Cl10*Q19(B 20.4.
+0,T<Yi1a;Ed04i17S!RCa;E0"Vi19ARcK0Ah1`09Wh1M'(R!)0:Q1:`0!h1R07Uh1`0;g19@RIRd7B(B, 0,T+Vh1'a;Eb4B(B ,T4C(B.,TAR9>(B ,TG'0Hl1(B
+,TJRB0JX1GCC3(B, ,Td04i10MT1'0$Yh10AW1M"M'0MU1aA!0Jl1`GM0Cl10*Q19`0!h1R(B, ,TaEP"3P09Ui10MU1aA!0Jl1`GM0Cl10*Q19(B 20.4 0,T!g1d04i1(B
+,T`;0EUh1B9a;E'd;AR!a0Ei1G(B. ,T9M!(R!09Ui1(B, 0,T<Yi1a;E0BQ1'd04i19S`$0CWh1M'KARBGCC$5M9ARc0*i1c907Uh109Ui104i1GB(B,
+0,T7Qi1'09Ui10!g1`0>Wh1M07Uh1(P`0"U1B9c0Ki1d04i1$GRA07Uh10*Q14`(9(B. ,TK0GQ1'`0;g19M0Bh1R'0BTh1'0Gh1R0$Yh10AW1M)0:Q1:09Ui1(P`0;g19;CPbB*09l1(B
+,TaEP(Pd04i10CQ1:!RCa0!i1d"c0Ki104U10BTh1'f(B 0,T"Vi190MU1!05h1Mf(B ,Td;(B. ,T"M"M:0$X13(B 0,T$X1307Q1H09U10Bl1(B ,T`(0CT1->C(B 0,T7Uh1c0Ki1$GRA(B
+0,T*h1GB`K0EW1M5CG(JM:05i19)0:Q1:(B.
 
 22 ,TA!CR$A(B 2542
-0,TGT(B10,TCQ(B1,T*(B ,THC`(B0,TET(B1,TH(B0,TEi(B1,TSGR(B0,T3T(B1,T*(B
+0,TGT10CQ1*(B ,THC`0ET1H0Ei1SGR03T1*(B
 virach@nectec.or.th
 
 Translate - January 1999 by Virach Sornlertlamvanich
--- a/etc/WHY-FREE	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/WHY-FREE	Tue Feb 04 14:56:31 2003 +0000
@@ -1,4 +1,4 @@
-		   Why Software Should Not Have Owners 
+		   Why Software Should Not Have Owners
 
 			  by Richard Stallman
 
--- a/etc/Xkeymap.txt	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/Xkeymap.txt	Tue Feb 04 14:56:31 2003 +0000
@@ -91,7 +91,7 @@
 0367  '\\', '\\', '|',  '|',  0334, 0334, 0374, 0374, 0034, 0034, 0034, 0034, 0334, 0334, 0334, 0334, /* \ */
 0371  '-',  '-',  '_',  '_',  0255, 0255, 0337, 0337, 0037, 0037, 0037, 0037, 0337, 0337, 0337, 0337, /* - */
 0372  '[',  '[',  '{',  '{',  0333, 0333, 0373, 0373, 0033, 0033, 0033, 0033, 0333, 0333, 0333, 0333, /* [ */
-0373  '\'', '\'', '"',  '"',  0247, 0247, 0242, 0242, U,    U,    U,    U,    U,    U,    U,    U,    /* ' */  
+0373  '\'', '\'', '"',  '"',  0247, 0247, 0242, 0242, U,    U,    U,    U,    U,    U,    U,    U,    /* ' */
 #
 # local variables:
 # tab-width: 4
--- a/etc/calccard.tex	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/calccard.tex	Tue Feb 04 14:56:31 2003 +0000
@@ -91,7 +91,7 @@
 
 \def\ncolumns{\the\columnsperpage}
 
-\message{[\ncolumns\space 
+\message{[\ncolumns\space
   column\if 1\ncolumns\else s\fi\space per page]}
 
 \def\scaledmag#1{ scaled \magstep #1}
@@ -167,7 +167,7 @@
   \def\bye{\par\vfill\supereject
     \if a\abc \else\null\vfill\eject\fi
     \if a\abc \else\null\vfill\eject\fi
-    \end}  
+    \end}
 \fi
 
 % we won't be using math mode much, so redefine some of the characters
@@ -466,7 +466,7 @@
 \iline{distance: \kbd{m}, \kbd{cm}, \kbd{mm}, \kbd{km};
   \kbd{in}, \kbd{ft}, \kbd{mi}, \kbd{mfi};
   \kbd{point}, \kbd{lyr}}
-\iline{volume: \kbd{l} or \kbd{L}, \kbd{ml}; 
+\iline{volume: \kbd{l} or \kbd{L}, \kbd{ml};
   \kbd{gal}, \kbd{qt}, \kbd{pt}, \kbd{cup}, \kbd{floz},
   \kbd{tbsp}, \kbd{tsp}}
 \iline{mass: \kbd{g}, \kbd{mg}, \kbd{kg}, \kbd{t};
--- a/etc/condom.1	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/condom.1	Tue Feb 04 14:56:31 2003 +0000
@@ -3,7 +3,7 @@
 
 
 NAME
-	condom - Protection against viruses and prevention of child 
+	condom - Protection against viruses and prevention of child
 		 processes
 
 SYNOPSIS
@@ -62,8 +62,8 @@
 			latex (default)
 			saranwrap
 			membrane -- WARNING!  The membrane option is _not_
-			endorsed by the System Administrator General as an 
-			effective barrier against certain viruses.  It is 
+			endorsed by the System Administrator General as an
+			effective barrier against certain viruses.  It is
 			supported only for the sake of tradition.
 
 	-f FLAVOR	The following FLAVORs are currently supported...
@@ -90,7 +90,7 @@
 			A smaller value of STRENGTH increases interprocess
 			communication, but also increases the likelihood of a
 			security breach.  An extremely vigorous process or
-			one passing an enormous amount of data to _condom_ 
+			one passing an enormous amount of data to _condom_
 			will increase the chance of _condom_'s failure.  The
 			default STRENGTH is 80%.
 
@@ -99,7 +99,7 @@
 			rough (default)
 			ribbed
 			bumps
-			lubricated (provides smoother interaction between 
+			lubricated (provides smoother interaction between
 			            processes)
 
 	WARNING: The use of an external application to _condom_ in
@@ -116,9 +116,9 @@
 		the synchronous process).
 
 	 1	_condom_ failed and data was allowed through.  The
-		danger of transmission of an STV or the forking of a child 
-		process is inversely proportional to the number of other 
-		protections employed and is directly proportional to 
+		danger of transmission of an STV or the forking of a child
+		process is inversely proportional to the number of other
+		protections employed and is directly proportional to
 		the ages of the processes involved.
 
 BUGS
--- a/etc/cs-refcard.tex	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/cs-refcard.tex	Tue Feb 04 14:56:31 2003 +0000
@@ -96,7 +96,7 @@
 
 \def\ncolumns{\the\columnsperpage}
 
-\message{[\ncolumns\space 
+\message{[\ncolumns\space
   column\if 1\ncolumns\else s\fi\space per page]}
 
 \def\scaledmag#1{ scaled \magstep #1}
@@ -174,7 +174,7 @@
   \def\bye{\par\vfill\supereject
     \if a\abc \else\null\vfill\eject\fi
     \if a\abc \else\null\vfill\eject\fi
-    \end}  
+    \end}
 \fi
 
 % we won't be using math mode much, so redefine some of the characters
--- a/etc/cs-survival.tex	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/cs-survival.tex	Tue Feb 04 14:56:31 2003 +0000
@@ -2,8 +2,8 @@
 % Title:  GNU Emacs Survival Card
 % Author: Wlodek Bzyl <matwb@univ.gda.pl>
 %
-% $Revision: 1.8 $
-% $Date: 2000/05/05 22:00:48 $
+% $Revision: 1.1 $
+% $Date: 2001/04/18 13:59:16 $
 %
 %**start of header
 
@@ -14,7 +14,7 @@
 % optional paragraphs separated with \askip amount of vertical space
 % \key{KEY-NAME} description of key or
 % \mkey{M-x LONG-LISP-NAME} description of Elisp function
-%  
+%
 % \kbd{ARG} -- argument is typed literally
 
 \def\plainfmtname{plain}
@@ -22,7 +22,7 @@
 \else
   \errmessage{This file requires `plain' format to be typeset correctly}
   \endinput
-\fi 
+\fi
 
 % Copyright (c) 2000 Free Software Foundation, Inc.
 
@@ -93,7 +93,7 @@
 
 % The TeXbook, p. 257
 \let\lr=L \newbox\leftcolumn
-\output={\if L\lr 
+\output={\if L\lr
     \global\setbox\leftcolumn\columnbox \global\let\lr=R
   \else
        \doubleformat \global\let\lr=L\fi}
@@ -107,7 +107,7 @@
 
 \def\bye{\par\vfil\supereject
   \if R\lr \null\vfil\eject\fi
-  \end}  
+  \end}
 
 \outer\def\title#1#2{{\titlefont\centerline{#1}}\vskip 1ex plus 0.5ex
    \centerline{\ss#2}
@@ -136,7 +136,7 @@
 \def\nohyphens
    {\hyphenpenalty10000\exhyphenpenalty10000\pretolerance10000}
 \def\raggedspaces
-   {\spaceskip=0.3333em\relax 
+   {\spaceskip=0.3333em\relax
     \xspaceskip=0.5em\relax}
 \def\raggedright
    {\raggedstretch=6em
--- a/etc/de-refcard.tex	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/de-refcard.tex	Tue Feb 04 14:56:31 2003 +0000
@@ -81,7 +81,7 @@
 
 \def\ncolumns{\the\columnsperpage}
 
-\message{[\ncolumns\space 
+\message{[\ncolumns\space
   column\if 1\ncolumns\else s\fi\space per page]}
 
 \def\scaledmag#1{ scaled \magstep #1}
@@ -161,7 +161,7 @@
   \def\bye{\par\vfill\supereject
     \if a\abc \else\null\vfill\eject\fi
     \if a\abc \else\null\vfill\eject\fi
-    \end}  
+    \end}
 \fi
 
 % we won't be using math mode much, so redefine some of the characters
@@ -590,7 +590,7 @@
 
 \section{Einfaches Konfigurieren}
 
-% Das ist nur was fuer Leute die Lisp beherrschen 
+% Das ist nur was fuer Leute die Lisp beherrschen
 
 Ein Beispiel dafuer, wie man Tastenkombinationen definiert:
 
--- a/etc/edt-user.doc	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/edt-user.doc	Tue Feb 04 14:56:31 2003 +0000
@@ -39,10 +39,10 @@
 
 Quick Start:
 
-To start the EDT Emulation, first start Emacs and then enter 
+To start the EDT Emulation, first start Emacs and then enter
 
    M-x edt-emulation-on
-   
+
 to begin the emulation.  After initialization is complete, the
 following message will appear below the status line informing you
 that the emulation has been enabled: "Default EDT keymap active".
@@ -64,7 +64,7 @@
 edt-lk201.el     - Built-in support for DEC LK-201 Keyboards
 edt-vt100.el     - Built-in support for DEC VT-100 (and above) terminals
 edt-pc.el        - Built-in support for PC 101 Keyboards under MS-DOS
-edt-mapper.el    - Create an EDT LK-201 Map File for Keyboards Without 
+edt-mapper.el    - Create an EDT LK-201 Map File for Keyboards Without
                      Built-in Support
 
 Enhancements:
@@ -80,7 +80,7 @@
      following line
 
           (edt-set-scroll-margins "20%" "25%")
-      
+
      sets the top margin to 20% of the window and the bottom margin
      to 25% of the window.  To disable this feature, set each
      margin to 0%.  You can also invoke edt-set-scroll-margins
@@ -90,13 +90,13 @@
      NOTE: Another way to set the scroll margins is to use the
      Emacs customization feature (not available in Emacs 19) to set
      the following two variables directly:
-      
+
           edt-top-scroll-margin and edt-bottom-scroll-margin
 
      Enter the Emacs `customize' command.  First select the Editing
      group and then select the Emulations group.  Finally, select
      the Edt group and follow the directions.
-      
+
  2.  The SUBS command is now supported and bound to GOLD-Enter by
      default.  (This design was copied from tpu-edt.el.)  Note, in
      earlier versions of EDT Emulation, GOLD-Enter was assigned to
@@ -152,7 +152,7 @@
         1.  Emulate EDT Keypad Mode commands closely so that current EDT users
             will find that it easy and comfortable to use GNU Emacs with a
             small learning curve;
-   
+
         2.  Make it easy for a user to customize EDT emulation key bindings
             without knowing much about Emacs Lisp;
 
@@ -164,7 +164,7 @@
 
         5.  Provide an easy way to restore ALL original Emacs key bindings,
             just as they existed before the EDT emulation was first invoked.
-   
+
         6.  Support GNU Emacs 19 and higher.  (GNU Emacs 18 and below is no
 	        longer supported.)  XEmacs 19, and above, is also supported.
 
@@ -191,9 +191,9 @@
 
   (1) DEC VT-100 series and higher.  This includes well behaved VT clones and
       emulators.  If you are using a VT series terminal, be sure that the term
-      environment variable is set properly before invoking emacs. 
+      environment variable is set properly before invoking emacs.
 
-  (2) PC AT keyboard under MS-DOS.  
+  (2) PC AT keyboard under MS-DOS.
 
 Be sure to read the SPECIAL NOTES FOR SOME PLATFORMS sections to see if those
 notes apply to you.
@@ -251,14 +251,14 @@
 
      The Sun Type 5 and other more recent Sun keyboards, however, do have
      separate arrow keys.  This makes them candidates for setting up a
-     reasonable EDT keypad emulation.  
+     reasonable EDT keypad emulation.
 
      Depending upon the configuration of the version of X installed on your
      system, you may find the default X keynames for the keypad keys don't
      permit Emacs to interpret some or all the keypad keys as something other
      than arrow keys, numeric keys, Home, PgUP, etc.  Both Sun and HP have been
      particularly guilty of making bizarre keysym assignments to the keypad
-     keys. 
+     keys.
 
      In most cases, the X Windows command, xmodmap, can be used to correct the
      problem.  Here's a sample .xmodmaprc file which corrects this problem on
@@ -303,7 +303,7 @@
 
      changes the X Windows name of the keypad NumLock key to be known
      internally as the F24 key.  Doing so permits it to be configured to behave
-     as the PF1 (Gold) key.  
+     as the PF1 (Gold) key.
 
      The side effect of this change is that you will no longer have a NumLock
      key.  If you are using other software under X which requires a NumLock
@@ -332,11 +332,11 @@
      xmodmap.
 
      On one distribution on an Intel PC, the following .xmodmaprc set things up
-     nicely.  
+     nicely.
 
          ! File:  .xmodmaprc
          !
-         ! Set up PC keypad under GNU/Linux for the GNU Emacs EDT Emulation 
+         ! Set up PC keypad under GNU/Linux for the GNU Emacs EDT Emulation
          !
 	 clear  mod2
 	 keycode  77 = F12
@@ -411,7 +411,7 @@
 
          ! File:  .xmodmaprc
          !
-         ! Set up PC keypad under GNU/Linux for the GNU Emacs EDT Emulation 
+         ! Set up PC keypad under GNU/Linux for the GNU Emacs EDT Emulation
          !
 	 clear  mod2
 	 keycode  77 = F12
@@ -424,7 +424,7 @@
 
      Now, edt-mapper.el will see "f12" when the physical NumLock key
      is pressed, allowing the NumLock key to be used as the EDT PF1
-     (Gold) key. 
+     (Gold) key.
 
 V.    HOW DOES THIS EDT EMULATION DIFFER FROM REAL EDT?:
 
@@ -432,7 +432,7 @@
 all, of EDT's most used Keypad Mode editing functions and behavior.  It is not
 perfect, but most EDT users who have tried the emulation agree that it is
 quite good enough to make it easy for die-hard EDT users to move over to using
-GNU Emacs.  
+GNU Emacs.
 
 Here's a list of the most important differences between EDT and this GNU Emacs
 EDT Emulation.  The list is short but you must be aware of these differences
@@ -497,7 +497,7 @@
     to GOLD C-k in the default EDT mode when EDT control sequence bindings are
     enabled or one of the sample edt-user.el customization files is used.
 
-2.  Direction support is fully supported.  
+2.  Direction support is fully supported.
 
 3.  All original Emacs bindings are fully restored when EDT emulation is turned
     off.  So, if a fellow worker comes over to your terminal to help you with a
@@ -570,12 +570,12 @@
 
 15. The original EDT emulation package set up many default regular and GOLD
     bindings.  We tried to preserve most (but not all!) of these, so users of
-    the original emulation package will feel more at home.  
+    the original emulation package will feel more at home.
 
     Nevertheless, there are still many GOLD key sequences which are not bound
-    to any functions.  These are prime candidates to use for your own 
-    customizations.  
-    
+    to any functions.  These are prime candidates to use for your own
+    customizations.
+
     Also, there are several commands in edt.el not bound to any key.  So, you
     will find it worthwhile to look through edt.el for functions you may wish
     to add to your personal customized bindings.
@@ -630,7 +630,7 @@
 
 NOTE:  A few sites have different load-path requirements, so the above
        directions may need some modification if your site has such special
-       needs. 
+       needs.
 
 
 Creating your own edt-user.el file:
@@ -640,11 +640,11 @@
 bindings to your own liking.  Names used to identify the set of LK-201
 keypad and function keys are:
 
-Keypad Keys:   
+Keypad Keys:
                 PF1 PF2 PF3 PF4
                 KP7 KP8 KP9 KP-
                 KP4 KP5 KP6 KP,
-                KP1 KP2 KP3 
+                KP1 KP2 KP3
                 KP0     KPP KPE
 
 Arrow Keys:
@@ -654,7 +654,7 @@
                 F1 F2 F3 F4 F5  F6 F7 F8 F9 F10  F11 F12 F13 F14
                 HELP DO  F17 F18 F19 F20
 
-                FIND   INSERT   REMOVE 
+                FIND   INSERT   REMOVE
                 SELECT PREVIOUS NEXT
 
 Note:
@@ -737,7 +737,7 @@
 edt-set-scroll-margins in your .emacs file.  For example, the following line
 
           (edt-set-scroll-margins "20%" "25%")
-      
+
 sets the top margin to 20% of the window and the bottom margin to 25% of the
 window.  To disable this feature, set each margin to 0%.  You can also invoke
 edt-set-scroll-margins interactively while EDT Emulation is active to change
@@ -746,7 +746,7 @@
 NOTE: Another way to set the scroll margins is to use the Emacs customization
 feature (not available in Emacs 19) to set the following two variables
 directly:
-      
+
           edt-top-scroll-margin and edt-bottom-scroll-margin
 
 Enter the Emacs `customize' command.  First select the Editing group and then
@@ -762,7 +762,7 @@
  G-F9: Paste Rect Insert          +----------+----------+----------+----------+
   F10: Cut Rectangle
 G-F10: Paste Rectangle
-  F11: ESC                       
+  F11: ESC
   F12: Beginning of Line          +----------+----------+----------+----------+
 G-F12: Delete Other Windows       |   GOLD   |   HELP   |  FNDNXT  |  DEL L   |
   F13: Delete to Begin of Word    |   (PF1)  |   (PF2)  |   (PF3)  |  (PF4)   |
@@ -784,7 +784,7 @@
   C-t: Display the Time           |         (0)         |    (.)   |   Query  |
   C-u: Delete to Begin of Line    |      Open Line      |  RESET   |  Replace |
   C-v: Redraw Display             +---------------------+----------+----------+
-  C-w: Set Screen Width 132       
+  C-w: Set Screen Width 132
   C-z: Suspend Emacs                    +----------+----------+----------+
 G-C-\: Split Window                     |  FNDNXT  |   Yank   |   CUT    |
                                         |  (FIND)  | (INSERT) | (REMOVE) |
@@ -817,9 +817,9 @@
   G-`: What line
   G-/: Query-Replace
 
-;;; File:  edt-user.el   ---  Sample User Customizations for the Enhanced 
-;;;                             EDT Keypad Mode Emulation 
-;;;                             
+;;; File:  edt-user.el   ---  Sample User Customizations for the Enhanced
+;;;                             EDT Keypad Mode Emulation
+;;;
 ;;;                      For GNU Emacs 19 and Above
 ;;;
 ;; Copyright (C) 1986, 1992, 1993, 2000 Free Software Foundation, Inc.
@@ -875,7 +875,7 @@
   (edt-bind-function-key "KP6" 'edt-cut-or-copy 'yank)
   (edt-bind-function-key "KP8" 'edt-scroll-window 'fill-paragraph)
   (edt-bind-function-key "KP9" 'open-line 'edt-eliminate-all-tabs)
-  (edt-bind-function-key "KPP" 
+  (edt-bind-function-key "KPP"
 			 'edt-toggle-select 'edt-line-to-middle-of-window)
   (edt-bind-function-key "KPE" 'edt-change-direction 'overwrite-mode)
 
@@ -916,7 +916,7 @@
    F8: Cut Rect Overstrike        |   (UP)   |  (DOWN)  |  (LEFT)  | (RIGHT)  |
  G-F8: Paste Rect Overstrike      |Window Top|Window Bot|Bkwd Sent |Frwd Sent |
    F9: Cut Rect Insert            +----------+----------+----------+----------+
- G-F9: Paste Rect Insert         
+ G-F9: Paste Rect Insert
   F10: Cut Rectangle
 G-F10: Paste Rectangle
   F11: ESC                        +----------+----------+----------+----------+
@@ -940,7 +940,7 @@
   C-k: Define Key                 |         (0)         |    (.)   |  Toggle  |
 G-C-k: Restore Key                |      Open Line      |Center Lin|Insrt/Over|
   C-l: Learn                      +---------------------+----------+----------+
-  C-n: Set Screen Width 80       
+  C-n: Set Screen Width 80
   C-o: Open Line                       +----------+----------+----------+
   C-p: Fill Paragraph                  |  FNDNXT  |   Yank   |    CUT   |
   C-q: Quoted Insert                   |  (FIND)) | (INSERT) | (REMOVE) |
--- a/etc/emacs.1	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/emacs.1	Tue Feb 04 14:56:31 2003 +0000
@@ -32,9 +32,9 @@
 .br
 .SH DESCRIPTION
 .I GNU Emacs
-is a version of 
+is a version of
 .I Emacs,
-written by the author of the original (PDP-10) 
+written by the author of the original (PDP-10)
 .I Emacs,
 Richard Stallman.
 .br
@@ -46,8 +46,8 @@
 page takes away from other more useful projects.
 .br
 The user functionality of GNU Emacs encompasses
-everything other 
-.I Emacs 
+everything other
+.I Emacs
 editors do, and it is easily extensible since its
 editing commands are written in Lisp.
 .PP
@@ -58,8 +58,8 @@
 windows and buffers.
 CTRL-h or F1 enters the Help facility.  Help Tutorial (CTRL-h t)
 requests an interactive tutorial which can teach beginners the fundamentals
-of 
-.I Emacs 
+of
+.I Emacs
 in a few minutes.
 Help Apropos (CTRL-h a) helps you
 find a command given its functionality, Help Character (CTRL-h c)
@@ -114,7 +114,7 @@
 Do not load the site-wide startup file.
 .TP
 .BI \-debug-init
-Enable 
+Enable
 .I Emacs
 Lisp debugger during the processing of the user init file
 .BI ~/.emacs.
@@ -161,14 +161,14 @@
 options to specify files to execute and functions to call.
 .TP
 .B \-kill
-Exit 
-.I Emacs 
+Exit
+.I Emacs
 while in batch mode.
 .TP
 .BI \-L " directory"
 Add
 .I directory
-to the list of directories 
+to the list of directories
 .I Emacs
 searches for Lisp files.
 .\" START DELETING HERE IF YOU'RE NOT USING X
@@ -240,7 +240,7 @@
 .TP
 .BI \-ib " pixels"
 Set the window's internal border width to the number of pixels specified
-by 
+by
 .I pixels.
 Defaults to one pixel of padding on each side of the window.
 .PP
@@ -384,7 +384,7 @@
 the border color will be set to grey,
 and the text and mouse cursors will be set to black.
 .PP
-.SM Using the Mouse 
+.SM Using the Mouse
 .PP
 The following lists the mouse button bindings for the
 .I Emacs
@@ -400,13 +400,13 @@
 SHIFT-right	Paste text.
 CTRL-middle	Cut text into X cut buffer and kill it.
 CTRL-right	T{
-Select this window, then split it into 
+Select this window, then split it into
 two windows.  Same as typing CTRL-x 2.
 T}
 .\" START DELETING HERE IF YOU'RE NOT USING X MENUS
 CTRL-SHIFT-left	T{
 X buffer menu--hold the buttons and keys
-down, wait for menu to appear, select 
+down, wait for menu to appear, select
 buffer, and release.  Move mouse out of
 menu and release to cancel.
 T}
@@ -440,7 +440,7 @@
 /usr/local/share/emacs/$VERSION/lisp - Lisp source files and compiled files
 that define most editing commands.  Some are preloaded;
 others are autoloaded from this directory when used.
-  
+
 /usr/local/share/emacs/$VERSION/etc - various programs that are used with
 GNU Emacs, and some files of information.
 
@@ -495,15 +495,15 @@
 running in Raw mode on some Unix versions.
 .SH UNRESTRICTIONS
 .PP
-.I Emacs 
-is free; anyone may redistribute copies of 
-.I Emacs 
+.I Emacs
+is free; anyone may redistribute copies of
+.I Emacs
 to
-anyone under the terms stated in the 
-.I Emacs 
+anyone under the terms stated in the
+.I Emacs
 General Public License,
-a copy of which accompanies each copy of 
-.I Emacs 
+a copy of which accompanies each copy of
+.I Emacs
 and which also
 appears in the reference manual.
 .PP
@@ -514,11 +514,11 @@
 systems.  Such inclusion violates the terms on which distribution
 is permitted.  In fact, the primary purpose of the General Public
 License is to prohibit anyone from attaching any other restrictions
-to redistribution of 
+to redistribution of
 .I Emacs.
 .PP
-Richard Stallman encourages you to improve and extend 
-.I Emacs, 
+Richard Stallman encourages you to improve and extend
+.I Emacs,
 and urges that
 you contribute your extensions to the GNU library.  Eventually GNU
 (Gnu's Not Unix) will be a complete replacement for Berkeley
@@ -532,7 +532,7 @@
 was written by Richard Stallman and the Free Software Foundation.
 Joachim Martillo and Robert Krawitz added the X features.
 .SH COPYING
-Copyright 
+Copyright
 .if t \(co
 .if n (c)
 1995, 1999, 2000, 2001 Free Software Foundation, Inc.
--- a/etc/emacs.bash	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/emacs.bash	Tue Feb 04 14:56:31 2003 +0000
@@ -7,7 +7,7 @@
 # This function assumes the emacs program is named `emacs' and is somewhere
 # in your load path.  If either of these is not true, the most portable
 # (and convenient) thing to do is to make an alias called emacs which
-# refers to the real program, e.g. 
+# refers to the real program, e.g.
 #
 #        alias emacs=/usr/local/bin/gemacs
 #
@@ -33,7 +33,7 @@
       x ) (emacs "$@" &) ;;
       sun ) (emacstool "$@" &) ;;
     esac
- else   
+ else
     if jobs %emacs 2> /dev/null ; then
        echo "$(pwd)" "$@" >| ${HOME}/.emacs_args && fg %emacs
     else
--- a/etc/fr-drdref.tex	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/fr-drdref.tex	Tue Feb 04 14:56:31 2003 +0000
@@ -34,8 +34,8 @@
 % This is a bit of a dirty hack on the GNU Emacs reference card
 % to produce a Dired reference card instead.
 
-% I (Evgeny Roubinchtein, eroubinc@u.washington.edu) put this together 
-% because I wanted a Dired reference card, 
+% I (Evgeny Roubinchtein, eroubinc@u.washington.edu) put this together
+% because I wanted a Dired reference card,
 % but couldn't find anything on the 'net.
 % Based mostly off Dired's describe-mode.
 
@@ -75,7 +75,7 @@
 
 \def\ncolumns{\the\columnsperpage}
 
-\message{[\ncolumns\space 
+\message{[\ncolumns\space
   column\if 1\ncolumns\else s\fi\space per page]}
 
 \def\scaledmag#1{ scaled \magstep #1}
@@ -153,7 +153,7 @@
   \def\bye{\par\vfill\supereject
     \if a\abc \else\null\vfill\eject\fi
     \if a\abc \else\null\vfill\eject\fi
-    \end}  
+    \end}
 \fi
 
 % we won't be using math mode much, so redefine some of the characters
@@ -259,18 +259,18 @@
 % L'\'edition d'un r\'epertoire signifie que vous pouvez visiter,
 % renommer, copier, compresser, compiler des fichiers. Dans le tampon
 % d'\'edition, vous pouvez modifier les attributs des fichiers, leur
-% appliquer des commandes 
+% appliquer des commandes
 % shell ou ins\'erer des sous-r\'epertoires. Vous pouvez « marquer » des
 % fichiers pour qu'ils soient supprim\'es plus tard ou pour leur
 % appliquer des commandes ; cela peut \^etre fait pour un seul fichier \`a
 % la fois ou pour un ensemble de fichiers correspondant \`a certains
 % crit\`eres (fichiers correspondant \`a une expression rationnelle
 % donn\'ee, par exemple).
- 
+
 % On se d\'eplace dans le tampon \`a l'aide des commandes habituelles de
 % d\'eplacement du curseur. Les lettres ne s'ins\`erent plus mais servent
 % \`a ex\'ecuter des commandes, les chiffres (0-9) sont des param\`etres pr\'efixes.
- 
+
 % La plupart des commandes agissent soit sur tous les fichiers marqu\'es,
 % soit sur le fichier courant s'il n'y a pas de fichier marqu\'e. On
 % utilise un param\`etre pr\'efixe pour agir sur les NUM fichiers suivants
@@ -280,7 +280,7 @@
 % sous-processus sur un groupe de fichiers afficheront une liste des
 % fichiers pour lesquels le sous-processus a \'echou\'e. Taper y tentera
 % de vous expliquer ce qui a pos\'e probl\`eme.
- 
+
 % Lorsque l'on \'edite plusieurs fichiers dans un unique tampon, chaque
 % r\'epertoire agit comme une page : C-x [ et C-x ] peuvent donc servir
 % \`a se d\'eplacer dans ces r\'epertoires.
@@ -305,7 +305,7 @@
 
 \section{Commandes avec la souris}
 \metax{visiter le fichier}{Mouse_Button_2}
-\metax{ouvrir un menu}{Control-Mouse_Button_3} 
+\metax{ouvrir un menu}{Control-Mouse_Button_3}
 
 \section{Actions immediates sur les fichiers}
 
@@ -371,10 +371,10 @@
 \key{placer un flag sur tous les fichiers de sauvegarde automatique}{\#}
 \key{placer un flag sur les diff\'erents fichiers interm\'ediaires}{\&}
 \key{placer un flag sur les sauvegardes num\'erot\'ees (finissant par
-  .\~{}1\~{}, .\~{}2\~{}, etc.)}{.} 
+  .\~{}1\~{}, .\~{}2\~{}, etc.)}{.}
 \key{ex\'ecuter les suppressions demand\'ees (fichiers ayant un flag)}{x}
 \key{placer un flag sur les fichiers correspondant \`a une expression
-  rationnelle }{\% d} 
+  rationnelle }{\% d}
 
 \section{Modifier le tampon Dired}
 
@@ -391,7 +391,7 @@
 \section{Commandes sur les expressions rationnelles}
 
 \key{marquer les noms de fichiers correspondant \`a une expression
-  rationnelle}{\% m} 
+  rationnelle}{\% m}
 \key{copier les fichiers marqu\'es par une expression rationnelle}{\% C}
 \key{renommer les fichiers marqu\'es par une expression rationnelle}{\% R}
 \key{lien physique}{\% H}
@@ -401,7 +401,7 @@
 
 \section{Dired et Find}
 \metax{fichier(s) dired dont le nom correspond \`a un motif}{M-x
-  find-names-dired} 
+  find-names-dired}
 \metax{fichier(s) dired contenant un motif}{M-x find-grep-dired}
 \metax{fichier(s) dired bas\'es sur ce que produit \kbd{find}}{M-x find-dired}
 
--- a/etc/fr-refcard.tex	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/fr-refcard.tex	Tue Feb 04 14:56:31 2003 +0000
@@ -85,7 +85,7 @@
 
 \def\ncolumns{\the\columnsperpage}
 
-\message{[\ncolumns\space 
+\message{[\ncolumns\space
   column\if 1\ncolumns\else s\fi\space per page]}
 
 \def\scaledmag#1{ scaled \magstep #1}
@@ -163,7 +163,7 @@
   \def\bye{\par\vfill\supereject
     \if a\abc \else\null\vfill\eject\fi
     \if a\abc \else\null\vfill\eject\fi
-    \end}  
+    \end}
 \fi
 
 % we won't be using math mode much, so redefine some of the characters
--- a/etc/fr-survival.tex	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/fr-survival.tex	Tue Feb 04 14:56:31 2003 +0000
@@ -3,8 +3,8 @@
 % Title:  GNU Emacs Survival Card
 % Author: Wlodek Bzyl <matwb@univ.gda.pl>
 %
-% $Revision: 1.8 $
-% $Date: 2000/05/05 22:00:48 $
+% $Revision: 1.1 $
+% $Date: 2001/11/18 18:33:57 $
 %
 %**start of header
 
@@ -15,7 +15,7 @@
 % optional paragraphs separated with \askip amount of vertical space
 % \key{KEY-NAME} description of key or
 % \mkey{M-x LONG-LISP-NAME} description of Elisp function
-%  
+%
 % \kbd{ARG} -- argument is typed literally
 
 \def\plainfmtname{plain}
@@ -23,7 +23,7 @@
 \else
   \errmessage{This file requires `plain' format to be typeset correctly}
   \endinput
-\fi 
+\fi
 
 % Copyright (c) 2000 Free Software Foundation, Inc.
 
@@ -57,7 +57,7 @@
     Traduction fran\c{c}aise \'Eric Jacoboni (jaco@teaser.fr)
 
     Vous pouvez faire et distribuer des copies de cette carte, pourvu
-    que la note de copyright, ainsi que cette notice soient 
+    que la note de copyright, ainsi que cette notice soient
     pr\'eserv\'ees sur toutes les copies.\par}}
 
 \hsize 3.2in
@@ -88,7 +88,7 @@
 
 % The TeXbook, p. 257
 \let\lr=L \newbox\leftcolumn
-\output={\if L\lr 
+\output={\if L\lr
     \global\setbox\leftcolumn\columnbox \global\let\lr=R
   \else
        \doubleformat \global\let\lr=L\fi}
@@ -102,7 +102,7 @@
 
 \def\bye{\par\vfil\supereject
   \if R\lr \null\vfil\eject\fi
-  \end}  
+  \end}
 
 \outer\def\title#1#2{{\titlefont\centerline{#1}}\vskip 1ex plus 0.5ex
    \centerline{\ss#2}
@@ -131,7 +131,7 @@
 \def\nohyphens
    {\hyphenpenalty10000\exhyphenpenalty10000\pretolerance10000}
 \def\raggedspaces
-   {\spaceskip=0.3333em\relax 
+   {\spaceskip=0.3333em\relax
     \xspaceskip=0.5em\relax}
 \def\raggedright
    {\raggedstretch=6em
@@ -247,7 +247,7 @@
 \mkey{M-x tags-query-replace} lance query-replace sur tous les
 fichiers enregistr\'es dans le tableau des marqueurs
 \key{M-,} continue la derni\`ere recherche de marqueurs ou le dernier
-query-replace 
+query-replace
 
 \section{Compilation}
 
@@ -314,9 +314,9 @@
 \key{[\^{}$\ldots$]} compl\'emente la classe
 
 \key{\\{\it c}} prot\`ege les caract\`eres qui, sinon, auraient une
-  signification sp\'eciale dans les expressions rationnelles. 
+  signification sp\'eciale dans les expressions rationnelles.
 
-\key{$\ldots$\\|$\ldots$\\|$\ldots$} correspond \`a une 
+\key{$\ldots$\\|$\ldots$\\|$\ldots$} correspond \`a une
 alternative (``ou'') .
 \key{\\( $\ldots$ \\)} groupe une suite d'\'el\'ements de motif pour
 former un \'el\'ement unique.
@@ -372,7 +372,7 @@
 \mkey{M-x set-language-environment} pr\'ecise la langue principale
 
 \key{C-x RET c} fixe le syst\`eme de codage pour la commande suivante
-\mkey{M-x find-file-literally} visite un fichier sans aucune conversion 
+\mkey{M-x find-file-literally} visite un fichier sans aucune conversion
 
 \mkey{M-x list-coding-systems} affiche tous les syst\`emes de codage
 \mkey{M-x prefer-coding-system} choisit le syst\`eme de codage pr\'ef\'er\'e
@@ -391,7 +391,7 @@
 
 \section{Obtenir de l'aide}
 
-Emacs effectue pour vous la compl\'etion des commandes. En faisant \kbd{M-x} 
+Emacs effectue pour vous la compl\'etion des commandes. En faisant \kbd{M-x}
 {\it tab\/} ou {\it espace\/}, vous obtiendrez une liste des commandes
 Emacs.
 \askip
--- a/etc/future-bug	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/future-bug	Tue Feb 04 14:56:31 2003 +0000
@@ -8,7 +8,7 @@
 configured using `configure  --with-x-toolkit=yes'
 
         The `search-backward-in-time' function appears to be broken in
-Emacs 51.70.  
+Emacs 51.70.
 
         Unfortunately, I can never seem to start the debugger early
 enough to catch the error as it happens.  However I have traced the
--- a/etc/gnu.xpm	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/gnu.xpm	Tue Feb 04 14:56:31 2003 +0000
@@ -8,10 +8,10 @@
 /**/
 " 	s mask	c none",
 "B      c blue",
-"x      c black",          	    
-":      c sandy brown",  	    
+"x      c black",
+":      c sandy brown",
 "+      c saddle brown",
-"'      c grey",		       	    
+"'      c grey",
 ".      c white",
 "                                                  ",
 "                                                  ",
--- a/etc/gnus-tut.txt	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/gnus-tut.txt	Tue Feb 04 14:56:31 2003 +0000
@@ -57,7 +57,7 @@
 the news is to be found, and from *where*.
 
 Say you want to read news from you local, friendly nntp server
-"news.my.local.server". 
+"news.my.local.server".
 
 (setq gnus-select-method '(nntp "news.my.local.server"))
 
@@ -132,14 +132,14 @@
 
 (The same for the other methods, kind of.)
 
-You should also set `nnmail-split-methods' to something sensible: 
+You should also set `nnmail-split-methods' to something sensible:
 
-(setq nnmail-split-methods 
+(setq nnmail-split-methods
       '(("mail.junk" "From:.*Lars")
 	("mail.misc "")))
 
 This will put all mail from me in you junk mail group, and the rest in
-"mail.misc". 
+"mail.misc".
 
 These groups will be subscribe the same way as the normal groups, so
 you will probably find them among the zombie groups after you set
@@ -152,11 +152,11 @@
 Subject: Foreign newsgroups
 Message-ID: <lars-doc5@eyesore.no>
 
-These are groups that do not come from `gnus-select-method'. 
+These are groups that do not come from `gnus-select-method'.
 
 Say you want to read "alt.furniture.couches" from "news.funet.fi".  You
 can then either type `B news.funet.fi <RET>' to browse that server and
-subscribe to that group, or you can type 
+subscribe to that group, or you can type
 `G m alt.furniture.couches<RET>nntp<RET>news.funet.fi<RET>', if you
 like to type a lot.
 
@@ -178,7 +178,7 @@
 Gnus really isn't GNUS, even though it looks like it.  If you scrape
 the surface, you'll find that most things have changed.
 
-This means that old code that relies on GNUS internals will fail.  
+This means that old code that relies on GNUS internals will fail.
 
 In particular, `gnus-newsrc-hashtb', `gnus-newsrc-assoc',
 `gnus-killed-list', the `nntp-header-' macros and the display formats
@@ -196,7 +196,7 @@
 with Emacs 18.  It won't even work on Emacsen older than Emacs
 19.30/XEmacs 19.13.  Upgrade your Emacs or die.
 
-	
+
 From lars Thu Feb 23 23:20:38 1995
 From: larsi@ifi.uio.no (ding)
 Date: Fri Feb 24 13:40:45 1995
@@ -226,7 +226,7 @@
 
 This will create the group "nnvirtual:my.virtual.newsgroup", which
 will collect all articles from all the groups in the "rec.aquaria"
-hierarchy.  
+hierarchy.
 
 If you want to edit the regular expression, just type `M-e' on the
 group line.
@@ -258,7 +258,7 @@
 
 (setq gnus-select-group-hook
       (lambda ()
-  	(if (eq 'nnvirtual (car (gnus-find-method-for-group 
+  	(if (eq 'nnvirtual (car (gnus-find-method-for-group
 	                          gnus-newsgroup-name)))
 	    (progn
 	      (make-local-variable 'gnus-thread-sort-functions)
@@ -281,7 +281,7 @@
 When a bug occurs, I need a recipe for how to trigger the bug.  You
 have to tell me exactly what you do to uncover the bug, and you should
 (setq debug-on-error t) and send me the backtrace along with the bug
-report.  
+report.
 
 If I am not able to reproduce the bug, I won't be able to fix it.
 
--- a/etc/ledit.l	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/ledit.l	Tue Feb 04 14:56:31 2003 +0000
@@ -89,7 +89,7 @@
 		      (format ofile "(insert-file \"~A\")"
 			             *ledit-ppfile*)
 		      (format ofile "(lisp-mode)"))
-	   
+
 		 (t (format t "~&~A -- unknown option~%" (cdr args))))
 	   (close ofile))))
 
--- a/etc/ms-7bkermit	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/ms-7bkermit	Tue Feb 04 14:56:31 2003 +0000
@@ -16,7 +16,7 @@
 
 ;;; The following mappings affect certain special keys... all the keys
 ;;; are duplicated on the numeric keypad when NUM LOCK is off, but
-;;; the keypad versions are NOT mapped (string definition space too small 
+;;; the keypad versions are NOT mapped (string definition space too small
 ;;; for that)
 
 ;;; INSERT toggles overwrite mode
@@ -37,8 +37,8 @@
 set key scan \4432 \14
 set key scan \4429 \6
 
-;;; META versions of all the printing characters except uppercase 
-;;; letters are generated by using the ALT key.  The definition string 
+;;; META versions of all the printing characters except uppercase
+;;; letters are generated by using the ALT key.  The definition string
 ;;; consists of an ESC character followed by the META-ized character.
 ;;; The characters are listed roughly left-to-right and top-to-bottom
 ;;; as they appear on the keyboard
--- a/etc/pl-refcard.tex	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/pl-refcard.tex	Tue Feb 04 14:56:31 2003 +0000
@@ -1,20 +1,20 @@
 %&mex
 %=====================================================================
-% $Revision: 1.1 $
-% $Date: 2000/08/21 11:42:52 $
+% $Revision: 1.2 $
+% $Date: 2001/09/23 17:45:20 $
 %=====================================================================
 % Reference Card for GNU Emacs version 20 on Unix systems was
 % translated into Polish language by W{\l}odek Bzyl (matwb@univ.gda.pl)
 % who also added new section on `Dired' and added info about Polish
 % support in Emacs to section `International Character Sets'.
 
-% This file uses macros and fonts defined in the mex format. 
+% This file uses macros and fonts defined in the mex format.
 % These macros and fonts are part of a current WEB2C
 % distribution of TeX, for example teTeX (unix) fpTeX (windows).
 % TeTeX comes with texconfig utility which could be used in
 % particular to generate formats. Just run it and follow instructions.
 %
-% Note that the original Emacs refcard.tex uses macros and fonts 
+% Note that the original Emacs refcard.tex uses macros and fonts
 % defined in plain format. This file uses mex format which is
 % a Polish adaptation of plain.
 
@@ -26,7 +26,7 @@
  \endinput
 \else
   \prefixing
-\fi 
+\fi
 
 \newcount\columnsperpage
 
@@ -85,7 +85,7 @@
 \def\copyrightnotice{
 \vskip 1ex plus 2 fill\begingroup\small
 \centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.}
-\centerline{Wersja \versionnumber{} dla GNU Emacsa 20.3, 
+\centerline{Wersja \versionnumber{} dla GNU Emacsa 20.3,
   stycze/n 1999}
 \centerline{projekt Stephen Gildea}
 \centerline{t/lumaczenie W/lodek Bzyl}
@@ -109,7 +109,7 @@
 
 \def\ncolumns{\the\columnsperpage}
 
-\message{[\ncolumns\space 
+\message{[\ncolumns\space
   column\if 1\ncolumns\else s\fi\space per page]}
 
 \def\scaledmag#1{ scaled \magstep #1}
@@ -187,7 +187,7 @@
   \def\bye{\par\vfill\supereject
     \if a\abc \else\null\vfill\eject\fi
     \if a\abc \else\null\vfill\eject\fi
-    \end}  
+    \end}
 \fi
 
 % we won't be using math mode much, so redefine some of the characters
@@ -294,7 +294,7 @@
 \def\nohyphens
    {\hyphenpenalty10000\exhyphenpenalty10000\pretolerance10000}
 \def\raggedspaces
-   {\spaceskip=0.3333em\relax 
+   {\spaceskip=0.3333em\relax
     \xspaceskip=0.5em\relax}
 \def\raggedright
    {\raggedstretch=6em
@@ -655,7 +655,7 @@
 %Type \kbd{C-x ESC ESC} to edit and repeat the last command that used the
 %minibuffer.  Type \kbd{F10} to activate the menu bar using the minibuffer.
 Napisz \kbd{C-x ESC ESC} aby poprawia/c i wykona/c polecenie,
-kt/ore ostatnio u/zywa/lo minibufora. 
+kt/ore ostatnio u/zywa/lo minibufora.
 Napisz \kbd{F10} aby uaktywni/c menu w minibuforze.
 
 
@@ -773,7 +773,7 @@
 \key{zero lub wi/ecej powt/orze/n}{*}
 \key{jedno lub wi/ecej powt/orze/n}{+}
 \key{zero lub jedno powt/orzenie}{?}
-\key{traktuj dos/lownie nast/epny znak 
+\key{traktuj dos/lownie nast/epny znak
   (nawet je/sli znak ma specjalne znaczenie) {\it c\/}}{\\{\it c}}
 \key{alternatywa (`lub')}{\\|}
 \key{grupowanie}{\\( {\rm$\ldots$} \\)}
@@ -901,7 +901,7 @@
 %\key{search nodes for regexp}{M-s}
 \key{wywo/laj {\bf samouczek} Info}{h}
 \key{{\bf zako/ncz} Info}{q}
-\key{wyszukuj w~w/ez/lach tekst zgodny\newline 
+\key{wyszukuj w~w/ez/lach tekst zgodny\newline
   z~podanym wyra/zeniem regularnym}{M-s}
 
 \endindentedkeys
@@ -963,7 +963,7 @@
 
 \beginexample%
 (defun \<nazwa-funkcji> (\<argumenty>)
-  "\<dokumentacja>" 
+  "\<dokumentacja>"
   (interactive "\<wzorzec>")
   \<tre/s/c funkcji>)
 \endexample
--- a/etc/refcard.tex	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/refcard.tex	Tue Feb 04 14:56:31 2003 +0000
@@ -83,7 +83,7 @@
 
 \def\ncolumns{\the\columnsperpage}
 
-\message{[\ncolumns\space 
+\message{[\ncolumns\space
   column\if 1\ncolumns\else s\fi\space per page]}
 
 \def\scaledmag#1{ scaled \magstep #1}
@@ -161,7 +161,7 @@
   \def\bye{\par\vfill\supereject
     \if a\abc \else\null\vfill\eject\fi
     \if a\abc \else\null\vfill\eject\fi
-    \end}  
+    \end}
 \fi
 
 % we won't be using math mode much, so redefine some of the characters
--- a/etc/rgb.txt	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/rgb.txt	Tue Feb 04 14:56:31 2003 +0000
@@ -1,5 +1,5 @@
 #
-# This file is not a part of GNU Emacs.  It is from xc/programs/rgb/rgb.txt 
+# This file is not a part of GNU Emacs.  It is from xc/programs/rgb/rgb.txt
 # of the X11R6 X Consortium distribution, and is included here to support the
 # mapping of color names to RGB values on Windows NT and Windows 95.
 #
@@ -8,31 +8,31 @@
 #
 #
 # Copyright (C) 1994 X Consortium
-# 
+#
 # Permission is hereby granted, free of charge, to any person obtaining a copy
 # of this software and associated documentation files (the "Software"), to
 # deal in the Software without restriction, including without limitation the
 # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 # sell copies of the Software, and to permit persons to whom the Software is
 # furnished to do so, subject to the following conditions:
-# 
+#
 # The above copyright notice and this permission notice shall be included in
 # all copies or substantial portions of the Software.
-# 
+#
 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
 # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-# 
+#
 # Except as contained in this notice, the name of the X Consortium shall not
 # be used in advertising or otherwise to promote the sale, use or other deal-
 # ings in this Software without prior written authorization from the X Consor-
 # tium.
-# 
+#
 # X Window System is a trademark of X Consortium, Inc.
-# 
+#
 
 255 250 250		snow
 248 248 255		ghost white
--- a/etc/sk-refcard.tex	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/sk-refcard.tex	Tue Feb 04 14:56:31 2003 +0000
@@ -98,7 +98,7 @@
 
 \def\ncolumns{\the\columnsperpage}
 
-\message{[\ncolumns\space 
+\message{[\ncolumns\space
   column\if 1\ncolumns\else s\fi\space per page]}
 
 \def\scaledmag#1{ scaled \magstep #1}
@@ -176,7 +176,7 @@
   \def\bye{\par\vfill\supereject
     \if a\abc \else\null\vfill\eject\fi
     \if a\abc \else\null\vfill\eject\fi
-    \end}  
+    \end}
 \fi
 
 % we won't be using math mode much, so redefine some of the characters
--- a/etc/sk-survival.tex	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/sk-survival.tex	Tue Feb 04 14:56:31 2003 +0000
@@ -2,8 +2,8 @@
 % Title:  GNU Emacs Survival Card
 % Author: Wlodek Bzyl <matwb@univ.gda.pl>
 %
-% $Revision: 1.4 $
-% $Date: 2001/03/22 23:07:14 $
+% $Revision: 1.1 $
+% $Date: 2001/04/18 13:58:29 $
 %
 %**start of header
 
@@ -14,7 +14,7 @@
 % optional paragraphs separated with \askip amount of vertical space
 % \key{KEY-NAME} description of key or
 % \mkey{M-x LONG-LISP-NAME} description of Elisp function
-%  
+%
 % \kbd{ARG} -- argument is typed literally
 
 \def\plainfmtname{plain}
@@ -22,7 +22,7 @@
 \else
   \errmessage{This file requires `plain' format to be typeset correctly}
   \endinput
-\fi 
+\fi
 
 % Copyright (c) 2000 Free Software Foundation, Inc.
 
@@ -95,7 +95,7 @@
 
 % The TeXbook, p. 257
 \let\lr=L \newbox\leftcolumn
-\output={\if L\lr 
+\output={\if L\lr
     \global\setbox\leftcolumn\columnbox \global\let\lr=R
   \else
        \doubleformat \global\let\lr=L\fi}
@@ -109,7 +109,7 @@
 
 \def\bye{\par\vfil\supereject
   \if R\lr \null\vfil\eject\fi
-  \end}  
+  \end}
 
 \outer\def\title#1#2{{\titlefont\centerline{#1}}\vskip 1ex plus 0.5ex
    \centerline{\ss#2}
@@ -138,7 +138,7 @@
 \def\nohyphens
    {\hyphenpenalty10000\exhyphenpenalty10000\pretolerance10000}
 \def\raggedspaces
-   {\spaceskip=0.3333em\relax 
+   {\spaceskip=0.3333em\relax
     \xspaceskip=0.5em\relax}
 \def\raggedright
    {\raggedstretch=6em
--- a/etc/survival.tex	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/survival.tex	Tue Feb 04 14:56:31 2003 +0000
@@ -15,7 +15,7 @@
 % optional paragraphs separated with \askip amount of vertical space
 % \key{KEY-NAME} description of key or
 % \mkey{M-x LONG-LISP-NAME} description of Elisp function
-%  
+%
 % \kbd{ARG} -- argument is typed literally
 
 \def\plainfmtname{plain}
@@ -23,7 +23,7 @@
 \else
   \errmessage{This file requires `plain' format to be typeset correctly}
   \endinput
-\fi 
+\fi
 
 % Copyright (c) 2000 Free Software Foundation, Inc.
 
@@ -85,7 +85,7 @@
 
 % The TeXbook, p. 257
 \let\lr=L \newbox\leftcolumn
-\output={\if L\lr 
+\output={\if L\lr
     \global\setbox\leftcolumn\columnbox \global\let\lr=R
   \else
        \doubleformat \global\let\lr=L\fi}
@@ -99,7 +99,7 @@
 
 \def\bye{\par\vfil\supereject
   \if R\lr \null\vfil\eject\fi
-  \end}  
+  \end}
 
 \outer\def\title#1#2{{\titlefont\centerline{#1}}\vskip 1ex plus 0.5ex
    \centerline{\ss#2}
@@ -128,7 +128,7 @@
 \def\nohyphens
    {\hyphenpenalty10000\exhyphenpenalty10000\pretolerance10000}
 \def\raggedspaces
-   {\spaceskip=0.3333em\relax 
+   {\spaceskip=0.3333em\relax
     \xspaceskip=0.5em\relax}
 \def\raggedright
    {\raggedstretch=6em
@@ -168,7 +168,7 @@
 \section{Running Emacs}
 
 To enter GNU Emacs, just type its name: \kbd{emacs}.
-Emacs divides the frame into several areas: 
+Emacs divides the frame into several areas:
   menu line,
   buffer area with the edited text,
   mode line describing the buffer in the window above it,
@@ -181,7 +181,7 @@
 \key{C-x C-s} save the file
 \key{C-x k} kill a buffer
 \key{C-g} in most context: cancel, stop, abort partially typed or
-  executing command 
+  executing command
 \key{C-x u} undo
 
 \section{Moving About}
@@ -233,7 +233,7 @@
 
 Tags tables files record locations of function and
 procedure definitions, global variables, data types and anything
-else convenient. To create a tags table file, type 
+else convenient. To create a tags table file, type
 `{\tt etags} {\it input\_files}' as a shell command.
 \askip
 \key{M-.} find a definition
@@ -246,7 +246,7 @@
 \section{Compiling}
 
 \key{M-x compile} compile code in active window
-\key{C-c C-c} go to the next compiler error, when in 
+\key{C-c C-c} go to the next compiler error, when in
   the compile window or
 \key{C-x `} when in the window with source code
 
@@ -272,7 +272,7 @@
 
 \key{C-x m} begin composing a message
 \key{C-c C-c} send the message and switch to another buffer
-\key{C-c C-f C-c} move to the `CC' header field, creating one 
+\key{C-c C-f C-c} move to the `CC' header field, creating one
   if there is none
 
 \section{Miscellaneous}
@@ -309,9 +309,9 @@
 \key{[\^{}$\ldots$]} negates the class
 
 \key{\\{\it c}} quote characters otherwise having a special
-  meaning in regular expressions 
+  meaning in regular expressions
 
-\key{$\ldots$\\|$\ldots$\\|$\ldots$} matches one of 
+\key{$\ldots$\\|$\ldots$\\|$\ldots$} matches one of
   the alternatives (``or'')
 \key{\\( $\ldots$ \\)} groups a series of pattern elements to
   a single element
@@ -360,14 +360,14 @@
 
 \section{International Character Sets}
 
-\key{C-x RET C-\\} select and activate input method for 
+\key{C-x RET C-\\} select and activate input method for
   the current buffer
 \key{C-\\} enable or disable input method
 \mkey{M-x list-input-methods} show all input methods
 \mkey{M-x set-language-environment} specify principal language
 
 \key{C-x RET c} set coding system for next command
-\mkey{M-x find-file-literally} visit file with no conversion 
+\mkey{M-x find-file-literally} visit file with no conversion
   of any kind
 
 \mkey{M-x list-coding-systems} show all coding systems
@@ -387,7 +387,7 @@
 
 \section{Getting Help}
 
-Emacs does command completion for you. Typing \kbd{M-x} 
+Emacs does command completion for you. Typing \kbd{M-x}
 {\it tab\/} or {\it space\/} gives a list of Emacs commands.
 \askip
 \key{C-h} Emacs help
--- a/etc/tasks.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/tasks.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -82,7 +82,7 @@
 recently, please check for a newer version.  You can ftp the task list
 from any GNU FTP host in directory @file{/pub/gnu/tasks/}.  The task
 list is available there in several different formats: @file{tasks.text},
-@file{tasks.texi}, @file{tasks.info}, and @file{tasks.dvi}.  
+@file{tasks.texi}, @file{tasks.info}, and @file{tasks.dvi}.
 @c to fix an overfill, join the paragraphs -len
 The task list is also available on the GNU World Wide Web server:
 @uref{http://www.gnu.org/prep/tasks_toc.html}.
--- a/etc/termcap.src	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/termcap.src	Tue Feb 04 14:56:31 2003 +0000
@@ -10,7 +10,7 @@
 #
 #------------------------------------------------------------------------------
 #	Version 10.2.1
-#	$Date: 2002/01/12 17:31:53 $
+#	$Date: 2002/04/20 07:38:53 $
 #	terminfo syntax
 #
 #	Eric S. Raymond		(current maintainer)
@@ -44,7 +44,7 @@
 # This file assumes a US-ASCII character set. If you need to fix this, start
 # by global-replacing \E(B and \E)B with the appropriate ISO 6429 enablers
 # for your character set.  \E(A and \E)A enables the British character set
-# with the pound sign at position 2/3.  
+# with the pound sign at position 2/3.
 #
 # In a Japanese-processing environment using EUC/Japanese or Shift-JIS,
 # C1 characters are considered the first-byte set of the Japanese encodings,
@@ -70,7 +70,7 @@
 # string-table limit of archaic termcap libraries except where explicitly
 # noted below.  Note that the termcap translation assumes that your termcap
 # library can handle multiple tc capabilities in an entry. 4.4BSD has this
-# capability.  Older versions of GNU termcap, through 1.3, do not. 
+# capability.  Older versions of GNU termcap, through 1.3, do not.
 #
 # For details on these formats, see terminfo(5) in the ncurses distribution,
 # and termcap(5) in the 4.4BSD Unix Programmer's Manual.  Be aware that 4.4BSD
@@ -102,7 +102,7 @@
 # the master format).  Individual capabilities are commented out by
 # placing a period between the colon and the capability name.
 #
-# The file is divided up into major sections (headed by lines beginning with 
+# The file is divided up into major sections (headed by lines beginning with
 # the string "########") and minor sections (beginning with "####"); do
 #
 #	grep "^####" <file> | more
@@ -112,7 +112,7 @@
 # that important and frequently-encountered terminal types are near the
 # front (so that you'll get reasonable search efficiency from a linear
 # search of the termcap form even if you don't use reorder).  Minor sections
-# usually correspond to manufacturers or standard terminal classes. 
+# usually correspond to manufacturers or standard terminal classes.
 # Parenthesized words following manufacturer names are type prefixes or
 # product line names used by that manufacturers.
 #
@@ -145,18 +145,18 @@
 #	-s	Enable status line.
 #	-vb	Use visible bell (:vb:) rather than :bl:.
 #	-w	Wide - in 132 column mode.
-# If a name has multiple suffixes and one is a line height, that one should 
-# go first.  Thus `aaa-30-s-rv' is recommended over `aaa-s-rv-30'.  
-# 
+# If a name has multiple suffixes and one is a line height, that one should
+# go first.  Thus `aaa-30-s-rv' is recommended over `aaa-s-rv-30'.
+#
 # Entries with embedded plus signs are designed to be included through use/tc
-# capabilities, not used as standalone entries. 
+# capabilities, not used as standalone entries.
 #
 # To avoid search clashes, some older all-numeric names for terminals have
 # been removed (i.e., "33" for the Model 33 Teletype, "2621" for the HP2621).
 # All primary names of terminals now have alphanumeric prefixes.
 #
 # Comments marked "esr" are mostly results of applying the termcap-compiler
-# code packaged with ncurses and contemplating the resulting error messages. 
+# code packaged with ncurses and contemplating the resulting error messages.
 # In many cases, these indicated obvious fixes to syntax garbled by the
 # composers.  In a few cases, I was able to deduce corrected forms for garbled
 # capabilities by looking at context.  All the information in the original
@@ -191,7 +191,7 @@
 #	%c	Accept any character
 #	%[...]	Accept any number of characters in the given set
 #
-# The cursor position report (<u6>) string must contain two scanf(3)-style 
+# The cursor position report (<u6>) string must contain two scanf(3)-style
 # %d format elements.  The first of these must correspond to the Y coordinate
 # and the second to the %d.  If the string contains the sequence %i, it is
 # taken as an instruction to decrement each value after reading it (this is
@@ -206,12 +206,12 @@
 # All the entries in this file have been edited to assume that the tabset
 # files directory is /usr/share/tabset, in conformance with the File Hierarchy
 # Standard for Linux and open-source BSD systems.  Some vendors (notably Sun)
-# use /usr/lib/tabset or (more recently) /usr/share/lib/tabset.  
+# use /usr/lib/tabset or (more recently) /usr/share/lib/tabset.
 #
 # No curses package we know of actually uses these files.  If their location
 # is an issue, you will have to hand-patch the file locations before compiling
 # this file.
-# 
+#
 # REQUEST FOR CONTACT INFORMATION AND HISTORICAL MATERIAL
 #
 # As the ANSI/ECMA-48 standard and variants take firmer hold, and as
@@ -233,8 +233,8 @@
 # I'm especially interested in identifying the obscure entries listed under
 # `Miscellaneous obsolete terminals, manufacturers unknown' before the tribal
 # wisdom about them gets lost.  If you know a lot about obscure old terminals,
-# please go to the terminfo resource page, grab the UFO file (ufo.ti), and 
-# eyeball it for things you can identify and describe. 
+# please go to the terminfo resource page, grab the UFO file (ufo.ti), and
+# eyeball it for things you can identify and describe.
 #
 # If you have been around long enough to contribute, please read the file
 # with this in mind and send me your annotations.
@@ -245,7 +245,7 @@
 # California copyright with dates from 1980 to 1993.
 #
 # Some information has been merged in from a terminfo file SCO distributes.
-# It has an obnoxious boilerplate copyright which I'm ignoring because they 
+# It has an obnoxious boilerplate copyright which I'm ignoring because they
 # took so much of the content from the ancestral BSD versions of this file
 # and didn't attribute it, thereby violating the BSD Regents' copyright.
 #
@@ -255,7 +255,7 @@
 # graffiti -- it's legally dubious, ethically bogus, and patently ridiculous.
 #
 # This file deliberately has no copyright.  It belongs to no one and everyone.
-# If you claim you own it, you will merely succeed in looking like a fool. 
+# If you claim you own it, you will merely succeed in looking like a fool.
 # Use it as you like.  Use it at your own risk.  Copy and redistribute freely.
 # There are no guarantees anywhere.  Svaha!
 #
@@ -353,7 +353,7 @@
 	:ac=+\020,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376:\
 	:ae=\E[10m:as=\E[11m:
 
-# Highlight controls corresponding to the ANSI.SYS standard.  Most 
+# Highlight controls corresponding to the ANSI.SYS standard.  Most
 # console drivers for Intel boxes obey these.  Makes the same assumption
 # about \E[11m as klone+acs.  True ANSI/ECMA-48 would have :se=\E[27m:,
 # :ue=\E[24m:, but this isn't a documented feature of ANSI.SYS.
@@ -429,13 +429,13 @@
 	:am:xo:\
 	:co#80:li#24:tc=vanilla:tc=ansi+erase:tc=ansi+local1:
 
-# ansi-mini is a bare minimum ANSI terminal. This should work on anything, but 
+# ansi-mini is a bare minimum ANSI terminal. This should work on anything, but
 # beware of screen size problems and memory relative cursor addressing.
 ansi-mini|any ansi terminal with pessimistic assumptions:\
 	:am:xo:\
 	:co#80:li#24:tc=vanilla:tc=ansi+cup:tc=ansi+erase:
 
-# ansi-mtabs adds relative addressing and minimal tab support 
+# ansi-mtabs adds relative addressing and minimal tab support
 ansi-mtabs|any ansi terminal with pessimistic assumptions:\
 	:it#8:\
 	:ta=^I:tc=ansi+local1:tc=ansi-mini:
@@ -478,12 +478,12 @@
 	:sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:
 
 # Procomm and some other ANSI emulations don't recognize all of the ANSI-
-# standard capabilities.  This entry deletes :UP:, :RI:, :DO:, :LE:, and 
-# <vpa>/<hpa> capabilities, forcing curses to use repetitions of :up:, 
-# :nd:, :do: and :le:.  Also deleted :IC: and :ic:, as QModem up to 
+# standard capabilities.  This entry deletes :UP:, :RI:, :DO:, :LE:, and
+# <vpa>/<hpa> capabilities, forcing curses to use repetitions of :up:,
+# :nd:, :do: and :le:.  Also deleted :IC: and :ic:, as QModem up to
 # 5.03 doesn't recognize these.  Finally, we delete :rp: and :sr:, which seem
 # to confuse many emulators.  On the other hand, we can count on these programs
-# doing :ae:/:as:/:sa:. Older versions of this entry featured 
+# doing :ae:/:as:/:sa:. Older versions of this entry featured
 # <invis=\E[9m>, but <invis=\E[8m> now seems to be more common under
 # ANSI.SYS influence.
 # From: Eric S. Raymond <esr@snark.thyrsus.com> Oct 30 1995
@@ -531,12 +531,12 @@
 	:u6=\E[%i%d;%dR:u7=\E[6n:..u8=\E[?%[;0123456789]c:\
 	:u9=\E[c:tc=ecma+color:tc=klone+sgr:tc=ansi-m:
 
-# ansi-generic is a vanilla ANSI terminal. This is assumed to implement 
-# all the normal ANSI stuff with no extensions. It assumes 
-# insert/delete line/char is there, so it won't work with 
-# vt100 clones. It assumes video attributes for bold, blink, 
-# underline, and reverse, which won't matter much if the terminal 
-# can't do some of those. Padding is assumed to be zero, which 
+# ansi-generic is a vanilla ANSI terminal. This is assumed to implement
+# all the normal ANSI stuff with no extensions. It assumes
+# insert/delete line/char is there, so it won't work with
+# vt100 clones. It assumes video attributes for bold, blink,
+# underline, and reverse, which won't matter much if the terminal
+# can't do some of those. Padding is assumed to be zero, which
 # shouldn't hurt since xon/xoff is assumed.
 ansi-generic|generic ansi standard terminal:\
 	:am:xo:\
@@ -853,14 +853,14 @@
 # Unfortunately, the UNIX PC terminfo entry that comes with ncurses
 # is broken. All the special key sequences are broken, making it unusable
 # with Emacs. The problem stems from the following:
-# 
+#
 # The UNIX PC has a plethora of keys (103 of them, and there's no numeric
 # keypad!), loadable fonts, and strange highlighting modes ("dithered"
 # half-intensity, "smeared" bold, and real strike-out, for example.) It also
 # uses resizable terminal windows, but the bundled terminal program always
 # uses an 80x24 window (and doesn't support seem to support a 132-column
-# mode.) 
-# 
+# mode.)
+#
 # HISTORY: The UNIX PC was one of the first machines with a GUI, and used a
 # library which was a superset of SVr3.5 curses (called tam, for "terminal
 # access method".) tam includes support for real, overlapping windows,
@@ -876,44 +876,44 @@
 # (If you're interested in adding some of the tam calls to ncurses, btw, I
 # have the full documentation and several programs which use tam. It also
 # used an extended terminfo format to describe key sequences, special
-# highlighting modes, etc.) 
-# 
+# highlighting modes, etc.)
+#
 # KEYS: This means that ncurses would quite painful on the UNIX PC, since
 # there are two sequences for every key-modifier combination (local keyboard
 # sequence and remote "VT100" sequence.) But I doubt many people are trying
 # to use ncurses on the UNIX PC, since ncurses doesn't properly handle the
-# GUI. Unfortunately, the terminfo entry (and the termcap, too, I presume) 
-# seem to have been built from the manual describing the VT100 sequences. 
-# This means it doesn't work for a real live UNIX PC. 
-# 
+# GUI. Unfortunately, the terminfo entry (and the termcap, too, I presume)
+# seem to have been built from the manual describing the VT100 sequences.
+# This means it doesn't work for a real live UNIX PC.
+#
 # FONTS: The UNIX PC also has a strange interpretation of "alternate
 # character set". Rather than the VT100 graphics you might expect, it allows
 # up to 8 custom fonts to be loaded at any given time. This means that
 # programs expecting VT100 graphics will usually be disappointed. For this
 # reason I have disabled the smacs/rmacs sequences, but they could easily be
-# re-enabled. Here are the relevant control sequences (from the ESCAPE(7) 
-# manpage), should you wish to do so: 
-# 
+# re-enabled. Here are the relevant control sequences (from the ESCAPE(7)
+# manpage), should you wish to do so:
+#
 # SGR10 - Select font 0 - ESC [ 10 m or SO
 # SGR11 - Select font 1 - ESC [ 11 m or SI
 # SGR12 - Select font 2 - ESC [ 12 m
 # ... (etc.)
 # SGR17 - Select font 7 - ESC [ 17 m
-# 
+#
 # Graphics for line drawing are not reliably found at *any* character
 # location because the UNIX PC has dynamically reloadable fonts. I use font
 # 0 for regular text and font 1 for italics, but this is by no means
 # universal. So ASCII line drawing is in order if smacs/rmacs are enabled.
-# 
+#
 # MISC: The cursor visible/cursor invisible sequences were swapped in the
 # distributed terminfo.
-# 
+#
 # To ameliorate these problems (and fix a few highlighting bugs) I rewrote
 # the UNIX PC terminfo entry. The modified version works great with Lynx,
 # Emacs, and XEmacs running on my Linux PC and displaying on the UNIX PC
 # attached by serial cable. In Emacs, even the Undo key works, and many
-# applications can now use the F1-F8 keys. 
-# 
+# applications can now use the F1-F8 keys.
+#
 # esr's notes:
 #	Terminfo entry for the AT&T Unix PC 7300
 #	from escape(7) in Unix PC 7300 Manual.
@@ -928,8 +928,8 @@
 #	*     into font memory slot #1.  Once the font has been loaded,
 #	*     it can be used as an alternative character set.
 #	*
-#	*     The call to ioctl with the argument WIOCLFONT is the key 
-#	*     to this routine.  For more information, see window(7) in 
+#	*     The call to ioctl with the argument WIOCLFONT is the key
+#	*     to this routine.  For more information, see window(7) in
 #	*     the PC 7300 documentation.
 #	***************************************************************/
 #	#include <string.h>		/* needed for strcpy call */
@@ -944,7 +944,7 @@
 #	*     cfont <filename>.  For further information on fonts see
 #	*     cfont(1) in the PC 7300 documentation.
 #	*/
-#	
+#
 #	struct altfdata 	/* structure for alt font data */
 #	{
 #	short	altf_slot;		/* memory slot number */
@@ -1319,7 +1319,7 @@
 	:km:\
 	:co#80:li#25:tc=vt220:
 
-# `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and 
+# `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and
 # DECstation/pmax.
 rcons|BSD rasterconsole:\
 	:tc=sun-il:
@@ -1442,7 +1442,7 @@
 #### 386BSD and BSD/OS Consoles
 #
 
-# This was the original 386BSD console entry (I think).  
+# This was the original 386BSD console entry (I think).
 # Some places it's named oldpc3|oldibmpc3.
 # From: Alex R.N. Wetmore <aw2t@andrew.cmu.edu>
 origpc3|origibmpc3|IBM PC 386BSD Console:\
@@ -1469,7 +1469,7 @@
 # are described here.  This entry really ought to be upgraded.
 # Also note, the console will also work with fewer lines after doing
 # "stty rows NN", e.g. to use 24 lines.
-# (Color support from Kevin Rosenberg <kevin@cyberport.com>, 2 May 1996) 
+# (Color support from Kevin Rosenberg <kevin@cyberport.com>, 2 May 1996)
 # Bug: The <op> capability resets attributes.
 bsdos-pc|IBM PC BSD/OS Console:\
 	:..sa=\E[0;10%?%p1%t;7%;%?%p2%t;1%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m:\
@@ -1489,17 +1489,17 @@
 	:..sa=\E[0;10%?%p1%t;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m%?%p5%t\E[=8F%;:\
 	:sc=\E7:sf=^J:ta=^I:up=\E[A:tc=klone+sgr:
 
-# Old names for BSD/OS PC console used in releases before 4.1. 
+# Old names for BSD/OS PC console used in releases before 4.1.
 pc3|BSD/OS on the PC Console:\
 	:tc=bsdos-pc-nobold:
 ibmpc3|pc3-bold|BSD/OS on the PC Console with bold instead of underline:\
 	:tc=bsdos-pc:
- 
-# BSD/OS on the SPARC 
+
+# BSD/OS on the SPARC
 bsdos-sparc|Sun SPARC BSD/OS Console:\
 	:tc=sun:
-	 
-# BSD/OS on the PowerPC 
+
+# BSD/OS on the PowerPC
 bsdos-ppc|PowerPC BSD/OS Console:\
 	:tc=bsdos-pc:
 
@@ -1522,7 +1522,7 @@
 #
 # Except where noted, these entries are DEC's official terminfos.
 # Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support
-# Engineering for more information.  Updated terminfos and termcaps 
+# Engineering for more information.  Updated terminfos and termcaps
 # are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps.
 #
 # In October 1995 DEC sold its terminals business, including the VT and Dorio
@@ -1543,18 +1543,18 @@
 # you output the char in column 80, immediately output CR LF
 # and then assume you are in column 1 of the next line. If :xn:
 # is on, am should be on too.
-# 
+#
 # I assume you have smooth scroll off or are at a slow enough baud
 # rate that it doesn't matter (1200? or less). Also this assumes
-# that you set auto-nl to "on", if you set it off use vt100-nam 
+# that you set auto-nl to "on", if you set it off use vt100-nam
 # below.
-# 
+#
 # The padding requirements listed here are guesses. It is strongly
 # recommended that xon/xoff be enabled, as this is assumed here.
-# 
-# The vt100 uses <rs2> and <rf> rather than :is:/:ct:/:st: because the 
-# tab settings are in non-volatile memory and don't need to be 
-# reset upon login. Also setting the number of columns glitches 
+#
+# The vt100 uses <rs2> and <rf> rather than :is:/:ct:/:st: because the
+# tab settings are in non-volatile memory and don't need to be
+# reset upon login. Also setting the number of columns glitches
 # the screen annoyingly. You can type "reset" to get them set.
 #
 # The VT100 series terminals have cursor ("arrows") keys which can operate
@@ -1578,7 +1578,7 @@
 # The Numeric Keypad which can operate in two different modes: Numeric Mode and
 # Application Mode.  Numeric Mode is the reset state, and is assumed to be
 # the normal state.  Application Mode is the "set" state.  In Numeric Mode,
-# the numeric and punctuation keys transmit ASCII 7-bit characters, and the 
+# the numeric and punctuation keys transmit ASCII 7-bit characters, and the
 # Enter key transmits the same as the Return key (Note: the Return key
 # can be configured to send either LF (\015) or CR LF).  In Application Mode,
 # all the keypad keys transmit "Esc O {code}" sequences.  The PF1 - PF4 keys
@@ -1622,7 +1622,7 @@
 #
 # And here, for those of you with orphaned VT100s lacking documentation, is
 # a description of the soft switches invoked when you do `Set Up'.
-# 
+#
 #  Scroll 0-Jump               Shifted 3   0-#
 #  |      1-Smooth             |           1-British pound sign
 #  | Autorepeat 0-Off          | Wrap Around 0-Off
@@ -1699,7 +1699,7 @@
 	:ds=\E7\E[1;24r\E8:fs=\E8:ho=\E[2;1H:is=\E7\E[2;24r\E8:\
 	:ts=\E7\E[1;%dH\E[1K:tc=vt100-am:
 
-# Status line at bottom. 
+# Status line at bottom.
 # Clearing the screen will clobber status line.
 vt100-s-bot|vt100-bot-s|vt100 for use with bottom sysline:\
 	:es:hs:\
@@ -1709,7 +1709,7 @@
 
 # Most of the `vt100' emulators out there actually emulate a vt102
 # This entry (or vt102-nsgr) is probably the right thing to use for
-# these.  
+# these.
 vt102|dec vt102:\
 	:mi:\
 	:al=\E[L:dc=\E[P:dl=\E[M:ei=\E[4l:im=\E[4h:tc=vt100:
@@ -1722,7 +1722,7 @@
 # string in the canonical vt100 entry above leaves the screen littered
 # with little  snowflake or star characters (IBM PC ROM character \017 = ^O)
 # after highlight turnoffs.  This entry should fix that, and even leave
-# ACS support working, at the cost of making multiple-highlight changes 
+# ACS support working, at the cost of making multiple-highlight changes
 # slightly more expensive.
 # From: Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995
 vt102-nsgr|vt102 no sgr (use if you see snowflakes after highlight changes):\
@@ -1749,8 +1749,8 @@
 
 # vt132 - like vt100 but slower and has ins/del line and such.
 # I'm told that :im:/:ei: are backwards in the terminal from the
-# manual and from the ANSI standard, this describes the actual 
-# terminal. I've never actually used a vt132 myself, so this 
+# manual and from the ANSI standard, this describes the actual
+# terminal. I've never actually used a vt132 myself, so this
 # is untested.
 #
 vt132|DEC vt132:\
@@ -1839,7 +1839,7 @@
 # at the top of the keyboard.  This mapping follows the description given
 # in the VT220 Programmer Reference Manual and agrees with the labeling
 # on some terminals that emulate the vt220.  There is no support for an F5.
-# See vt220 for an alternate mapping. 
+# See vt220 for an alternate mapping.
 #
 vt220d|DEC VT220 in vt100 mode with DEC function key labeling:\
 	:F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\
@@ -1878,8 +1878,8 @@
 	:nw=^M\ED:r1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\
 	:rf=/usr/lib/tabset/vt100:sc=\E7:se=5\E[27m:sf=\ED:\
 	:so=5\E[7m:sr=\EM:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m:
- 
-# This was DEC's vt320.  Use the purpose-built one below instead 
+
+# This was DEC's vt320.  Use the purpose-built one below instead
 #vt320|DEC VT320 in vt100 emulation mode,
 #	use=vt220,
 
@@ -1890,9 +1890,9 @@
 	:am@:\
 	:rs=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h:tc=vt220:
 
-# These entries are not DEC's official ones, they were purpose-built for the 
+# These entries are not DEC's official ones, they were purpose-built for the
 # VT320.  Here are the designer's notes:
-# <kel> is end on a PC kbd.  Actually 'select' on a VT.  Mapped to 
+# <kel> is end on a PC kbd.  Actually 'select' on a VT.  Mapped to
 # 'Erase to End of Field'... since nothing seems to use 'end' anyways...
 # khome is Home on a PC kbd.  Actually 'FIND' on a VT.
 # Things that use <knxt> usually use tab anyways... and things that don't use
@@ -1902,7 +1902,7 @@
 # and the resulting fact that it causes the termcap translation of the entry
 # to SMASH the 1k-barrier...
 # From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
-# (vt320: uncommented :fs: --esr) 
+# (vt320: uncommented :fs: --esr)
 # (untranslatable capabilities removed to fit entry within 1023 bytes)
 # (sgr removed to fit entry within 1023 bytes)
 # (acsc removed to fit entry within 1023 bytes)
@@ -1957,7 +1957,7 @@
 # Emacs v18 terminal modes to deal with the cursor keys in that the arrow
 # keys were switched into application mode at the same time the numeric pad
 # is switched into application mode.  This changes the definitions of the
-# arrow keys.  Emacs v19 is smarter and mines its keys directly out of 
+# arrow keys.  Emacs v19 is smarter and mines its keys directly out of
 # your termcap or terminfo entry,
 #
 # From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
@@ -1985,8 +1985,8 @@
 
 # DEC doesn't supply a vt400 description, so we add Daniel Glasser's
 # (originally written with vt420 as its primary name, and usable for it).
-# 
-# VT400/420 -- This terminal is a superset of the vt320.  It adds the multiple 
+#
+# VT400/420 -- This terminal is a superset of the vt320.  It adds the multiple
 #    text pages and long text pages with selectable length of the vt340, along
 #    with left and right margins, rectangular area text copy, fill, and erase
 #    operations, selected region character attribute change operations,
@@ -1998,7 +1998,7 @@
 # Emacs v18 terminal modes to deal with the cursor keys in that the arrow
 # keys were switched into application mode at the same time the numeric pad
 # is switched into application mode.  This changes the definitions of the
-# arrow keys.  Emacs v19 is smarter and mines its keys directly out of 
+# arrow keys.  Emacs v19 is smarter and mines its keys directly out of
 # your termcap entry,
 #
 # From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
@@ -2055,13 +2055,13 @@
 # emulators define these):
 #
 #               if (key < 16) then  value = key;
-#               else if (key < 21) then value = key + 1; 
+#               else if (key < 21) then value = key + 1;
 #               else if (key < 25) then value = key + 2;
 #               else if (key < 27) then value = key + 3;
 #               else if (key < 30) then value = key + 4;
 #               else value = key + 5;
 #
-# The string must be the hexadecimal equivalent, e.g., "5052494E" for "PRINT". 
+# The string must be the hexadecimal equivalent, e.g., "5052494E" for "PRINT".
 # There's no provision in terminfo for emitting a string in this format, so the
 # application has to know it.
 #
@@ -2352,7 +2352,7 @@
 	:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:md=\E[1m:me=\E[m:\
 	:mr=\E[7m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\
 	:ue=\E[m:up=\E[A:us=\E[4m:
-# Compatible with the R5 xterm 
+# Compatible with the R5 xterm
 # (from the XFree86 3.2 distribution, <blink=@> removed)
 # added khome/kend, rmir/smir, rmul/smul, hts based on the R5 xterm code - TD
 # corrected typos in rs2 string - TD
@@ -2581,7 +2581,7 @@
 #	  12-fkey keyboard can support vt220's 20-fkeys.
 #	+ maps numeric keypad "+" to ",".
 #	+ uses DEC-style control sequences for the application keypad.
-#	  
+#
 xterm-vt220|XFree86 xterm emulating vt220:\
 	:@1=\EOu:@7=\E[4~:@8=\EOM:F1=\E[23~:F2=\E[24~:F3=\E[25~:\
 	:F4=\E[26~:F5=\E[28~:F6=\E[29~:F7=\E[31~:F8=\E[32~:\
@@ -2608,10 +2608,10 @@
 # This is xterm for ncurses.
 xterm|xterm terminal emulator (X Window System):\
 	:tc=xterm-r6:
-#	use=xterm-xfree86, 
-
-# These entries allow access to the X titlebar and icon name as a status line. 
-# Note that twm (and possibly window managers descended from it such as tvtwm, 
+#	use=xterm-xfree86,
+
+# These entries allow access to the X titlebar and icon name as a status line.
+# Note that twm (and possibly window managers descended from it such as tvtwm,
 # ctwm, and vtwm) track windows by icon-name; thus, you don't want to mess
 # with it.
 xterm+sl|access X title line and icon name:\
@@ -2646,7 +2646,7 @@
 # See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
 xterm-nic|xterm with ich/ich1 suppressed for non-curses programs:\
 	:IC@:ei=:ic@:im=:tc=xterm:
-# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996 
+# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996
 xterm1|xterm terminal emulator ignoring the alternate screen buffer:\
 	:te@:ti@:tc=xterm:
 
@@ -2809,7 +2809,7 @@
 #
 # rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM.
 # Since rxvt is not really compatible with xterm, it should be configured as
-# "rxvt" (monochrome) and "rxvt-color". 
+# "rxvt" (monochrome) and "rxvt-color".
 # (untranslatable capabilities removed to fit entry within 1023 bytes)
 # (sgr removed to fit entry within 1023 bytes)
 # (acsc removed to fit entry within 1023 bytes)
@@ -2927,7 +2927,7 @@
 # via the X resource setting "xterm*sunFunctionKeys:true"
 # To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same.
 # The <kf13>...<kf20> keys are L3-L10.  We don't set <kf16=\E[197z>
-# because we want it to be seen as <kcpy>. 
+# because we want it to be seen as <kcpy>.
 # The <kf31>...<kf45> keys are R1-R15.  We treat some of these in accordance
 # with their Sun keyboard labels instead.
 # From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996
@@ -2967,8 +2967,8 @@
 #### MGR
 #
 # MGR is a Bell Labs window system lighter-weight than X.
-# These entries describe MGR's xterm-equivalent. 
-# They are courtesy of Vincent Broman <broman@nosc.mil> 14 Jan 1997 
+# These entries describe MGR's xterm-equivalent.
+# They are courtesy of Vincent Broman <broman@nosc.mil> 14 Jan 1997
 #
 
 mgr|Bellcore MGR (non X) window system terminal emulation:\
@@ -2997,8 +2997,8 @@
 ######## UNIX VIRTUAL TERMINALS, VIRTUAL CONSOLES, AND TELNET CLIENTS
 #
 
-# Columbus UNIX virtual terminal. This terminal also appears in 
-# UNIX 4.0 and successors as line discipline 1 (?), but is 
+# Columbus UNIX virtual terminal. This terminal also appears in
+# UNIX 4.0 and successors as line discipline 1 (?), but is
 # undocumented and does not really work quite right.
 cbunix|cb unix virtual terminal:\
 	:am:bs:da:db:\
@@ -3015,7 +3015,7 @@
 pty|4bsd pseudo teletype:\
 	:cm=\EG%+ %+ :se=\Eb$:so=\Ea$:ue=\Eb!:us=\Ea!:tc=cbunix:
 
-# The codes supported by the term.el terminal emulation in GNU Emacs 19.30 
+# The codes supported by the term.el terminal emulation in GNU Emacs 19.30
 eterm|gnu emacs term.el terminal emulation:\
 	:am:mi:xn:\
 	:co#80:li#24:\
@@ -3027,7 +3027,7 @@
 	:sf=^J:so=\E[7m:ta=^I:te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:\
 	:ue=\E[m:up=\E[A:us=\E[4m:
 
-# Entries for use by the `screen' program by Juergen Weigert, 
+# Entries for use by the `screen' program by Juergen Weigert,
 # Michael Schroeder, Oliver Laumann.  The screen and
 # screen-w entries came with version 3.7.1.  The screen2 and screen3 entries
 # come from University of Wisconsin and may be older.
@@ -3338,8 +3338,8 @@
 # (wsiris: this had extension capabilities
 #	:HS=\E7F2:HE=\E7F7:\
 #	:CT#2:CZ=*Bblack,red,green,yellow,blue,magenta,cyan,*Fwhite:
-# See the note on Iris extensions near the end of this file.  
-# Finally, removed suboptimal :cl:=\EH\EJ and added :do: & 
+# See the note on Iris extensions near the end of this file.
+# Finally, removed suboptimal :cl:=\EH\EJ and added :do: &
 # :vb: from BRL -- esr)
 wsiris|iris40|iris emulating a 40 line visual 50 (approximately):\
 	:am:bs:nc:pt:\
@@ -3453,7 +3453,7 @@
 news-42-sjis:\
 	:tc=news-42:
 #
-#	NEWS-OS old termcap entry 
+#	NEWS-OS old termcap entry
 #
 # (news-old-unk: this had :KB=news:TY=sjis: --esr)
 news-old-unk|SONY NEWS vt100 emulator common entry:\
@@ -3684,7 +3684,7 @@
 # but the termcap entry is actually broken and unusable as given; the :do:
 # capability is misspelled "d".
 #
-# To use this, you need to a bunch of environment variables: 
+# To use this, you need to a bunch of environment variables:
 #
 # SET _POSIX_TERM=on
 # SET TERM=ansi
@@ -3696,7 +3696,7 @@
 # Important note: setting the TMP environment variable in POSIX style renders
 # it incompatible with a lot of other applications, including Visual C++. So
 # you should have a separate command window just for vi. All the other
-# variables may be permanently set in the Control Panel\System applet. 
+# variables may be permanently set in the Control Panel\System applet.
 #
 # You can find out more about the restrictions of this facility at
 # <http://www.nentug.org/unix-to-nt/ntposix.htm>.
@@ -3813,14 +3813,14 @@
 #### Hewlett-Packard (hp)
 #
 #	Hewlett-Packard
-#	8000 Foothills Blvd 
+#	8000 Foothills Blvd
 #	Roseville, CA 95747
 #	Vox: 1-(916)-785-4363	(Technical response line for VDTs)
 #	     1-(800)-633-3600	(General customer support)
 #
 #
 # As of March 1998, HP no longer has any terminals in production.
-# The 700 series (22, 32, 41, 44, 92, 94, 96, 98) is still being 
+# The 700 series (22, 32, 41, 44, 92, 94, 96, 98) is still being
 # supported (they still have parts). So are the 2392a and 2394a.
 # See the WORKSTATION CONSOLES section for the 700s.
 #
@@ -3845,9 +3845,9 @@
 hp+pfk-cr|hp function keys w/o CR:\
 	:k1=\Ep:k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:
 
-# The hp2621s use the same keys for the arrows and function keys, 
-# but not separate escape sequences. These definitions allow the 
-# user to use those keys as arrow keys rather than as function 
+# The hp2621s use the same keys for the arrows and function keys,
+# but not separate escape sequences. These definitions allow the
+# user to use those keys as arrow keys rather than as function
 # keys.
 hp+pfk+arrows|hp alternate arrow definitions:\
 	:k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:kF=\Er\r:kH=\Eq\r:kR=\Es\r:\
@@ -3871,16 +3871,16 @@
 # Due to severe 2621 braindamage, the only way to get the arrow keys to
 # transmit anything at all is to turn on the function key labels
 # with :ks:, and even then the user has to hold down shift!
-# The default 2621 turns off the labels except when it has to to 
-# enable the function keys. If your installation prefers labels 
-# on all the time, or off all the time (at the "expense" of the 
+# The default 2621 turns off the labels except when it has to to
+# enable the function keys. If your installation prefers labels
+# on all the time, or off all the time (at the "expense" of the
 # function keys), use 2621-nl or 2621-wl.
-# 
-# Note: there are newer ROMs for 2621's that allow you to set 
-# strap A so the regular arrow keys xmit \EA, etc, as with the 
-# 2645. However, even with this strap set, the terminal stops 
+#
+# Note: there are newer ROMs for 2621's that allow you to set
+# strap A so the regular arrow keys xmit \EA, etc, as with the
+# 2645. However, even with this strap set, the terminal stops
 # xmitting if you reset it, until you unset and reset the strap!
-# Since there is no way to set/unset the strap with an escape 
+# Since there is no way to set/unset the strap with an escape
 # sequence, we don't use it in the default.
 # If you like, you can use 2621-ba (brain-damaged arrow keys).
 hp2621-ba|2621 w/new rom and strap A set:\
@@ -3910,7 +3910,7 @@
 	:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:\
 	:ku=\EA:tc=hp2621:
 
-# 2621 using all 48 lines of memory, only 24 visible at any time.  
+# 2621 using all 48 lines of memory, only 24 visible at any time.
 hp2621-48|48 line 2621:\
 	:li#48:\
 	:cm=\E&a%r%dc%dR:cv=\E&a%dR:ho=\EH:tc=hp2621:
@@ -3919,38 +3919,38 @@
 hp2621-nl|hp 2621 with no labels:\
 	:kd@:ke@:kh@:kl@:kr@:ks@:ku@:tc=hp2621-fl:
 
-# Needed for UCB ARPAVAX console, since lsi-11 expands tabs 
+# Needed for UCB ARPAVAX console, since lsi-11 expands tabs
 # (wrong).
 #
 hp2621-nt|hp 2621 w/no tabs:\
 	:ta@:tc=hp2621:
 
 # Hp 2624 B with 4 or 10 pages of memory.
-# 
-# Some assumptions are made with this entry. These settings are 
+#
+# Some assumptions are made with this entry. These settings are
 # NOT set up by the initialization strings.
-# 
+#
 # Port Configuration
 # 	RecvPace=Xon/Xoff
 # 	XmitPace=Xon/Xoff
 # 	StripNulDel=Yes
-# 
+#
 # Terminal Configuration
 # 	InhHndShk=Yes
 # 	InhDC2=Yes
 # 	XmitFnctn(A)=No
 # 	InhEolWrp=No
-# 
+#
 # Note: the 2624 DOES have a true :ho:, believe it or not!
-# 
-# The 2624 has an "error line" to which messages can be sent. 
+#
+# The 2624 has an "error line" to which messages can be sent.
 # This is CLOSE to what is expected for a "status line". However,
-# after a message is sent to the "error line", the next carriage 
-# return is EATEN and the "error line" is turned back off again! 
+# after a message is sent to the "error line", the next carriage
+# return is EATEN and the "error line" is turned back off again!
 # So I guess we can't define :hs:, :es:, :ws:, :ds:, :fs:, :ts:.
-# 
-# This entry supports emacs (and any other program that uses raw 
-# mode) at 4800 baud and less. I couldn't get the padding right 
+#
+# This entry supports emacs (and any other program that uses raw
+# mode) at 4800 baud and less. I couldn't get the padding right
 # for 9600.
 #
 # (hp2624: replaced NUL sequences in flash with mandatory pauses -- esr)
@@ -3959,21 +3959,21 @@
 	:lm#96:\
 	:vb=\E&w13F\E&w12F\E&w13F\E&w12F:tc=hp+labels:tc=scrhp:
 
-# This hp2626 entry does not use any of the fancy windowing stuff 
+# This hp2626 entry does not use any of the fancy windowing stuff
 # of the 2626.
-# 
-# Indeed, terminfo does not yet handle such stuff. Since changing 
-# any window clears memory, it is probably not possible to use 
+#
+# Indeed, terminfo does not yet handle such stuff. Since changing
+# any window clears memory, it is probably not possible to use
 # this for screen opt.
-# 
-# ed is incredibly slow most of the time - I am guessing at the 
-# exact padding. Since the terminal uses xoff/xon this is intended 
-# only for cost computation, so that the terminal will prefer el 
+#
+# ed is incredibly slow most of the time - I am guessing at the
+# exact padding. Since the terminal uses xoff/xon this is intended
+# only for cost computation, so that the terminal will prefer el
 # or even dl1 which is probably faster!
-# 
-# \ED\EJ\EC hack for ed from Ed Bradford - apparently ed is only 
-# extra slow on the last line of the window. 
-# 
+#
+# \ED\EJ\EC hack for ed from Ed Bradford - apparently ed is only
+# extra slow on the last line of the window.
+#
 # The padding probably should be changed.
 #
 hp2626|hp2626a|hp2626p|hp 2626:\
@@ -3982,10 +3982,10 @@
 	:SF=\E&r%dD:SR=\E&r%dU:cd=\ED\EJ\EC:ip=:is=\E&j@\r:\
 	:tc=hp+pfk+cr:tc=hp+labels:tc=scrhp:
 
-# This entry is for sysline. It allocates a 23 line window with 
-# a 115 line workspace for regular use, and a 1 line window for 
+# This entry is for sysline. It allocates a 23 line window with
+# a 115 line workspace for regular use, and a 1 line window for
 # the status line.
-# 
+#
 # This assumes port 2 is being used.
 # Turn off horizontal line, Create ws #1 with 115 lines,
 # Create ws #2 with 1 line, Create window #1 lines 1-23,
@@ -4031,7 +4031,7 @@
 	:is=\E&v0m1a0b0c2i1a1b0c1i0a1b1c0i0S\E&j@\r\E3\r:\
 	:kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:tc=hp2627a:
 
-# hp2640a doesn't have the Y cursor addressing feature, and C is 
+# hp2640a doesn't have the Y cursor addressing feature, and C is
 # memory relative instead of screen relative, as we need.
 #
 hp2640a|hp 2640a:\
@@ -4066,14 +4066,14 @@
 hp2648|hp2648a|HP 2648a graphics terminal:\
 	:cl=\EH\EJ:cm=\E&a%r%dc%dY:dc=\EP:ip=:tc=hp2645:
 
-# The HP 150 terminal is a fairly vanilla HP terminal, with the 
-# clreol standout problem. It also has graphics capabilities and 
+# The HP 150 terminal is a fairly vanilla HP terminal, with the
+# clreol standout problem. It also has graphics capabilities and
 # a touch screen, which we don't describe here.
 hp150|hewlett packard Model 150:\
 	:bs:tc=hp2622:
 
-# HP 2382a terminals, "the little ones." They don't have any 
-# alternate character set support and sending out ^N/^O will 
+# HP 2382a terminals, "the little ones." They don't have any
+# alternate character set support and sending out ^N/^O will
 # leave the screen blank.
 hp2382a|hp2382|hewlett packard 2382a:\
 	:da:db:\
@@ -4132,8 +4132,8 @@
 
 
 # The new hp2621b is kind of a cross between the old 2621 and the
-# new 262x series of machines. It has dip-switched options. 
-# The firmware has a bug in it such that if you give it a null 
+# new 262x series of machines. It has dip-switched options.
+# The firmware has a bug in it such that if you give it a null
 # length label, the following character is eaten!
 hp2621b|hp 2621b with old style keyboard:\
 	:Nl#8:lh#1:lm#48:lw#8:\
@@ -4155,15 +4155,15 @@
 
 # Some assumptions are made in the following entries.
 # These settings are NOT set up by the initialization strings.
-# 
+#
 #    Port Configuration
 # RecvPace=Xon/Xoff	XmitPace=Xon/Xoff	StripNulDel=Yes
-# 
+#
 #    Terminal Configuration
 # InhHndShk(G)=Yes	InhDC2(H)=Yes
 # XmitFnctn(A)=No		InhEolWrp=No
 #
-# 
+#
 # Hp 2622a & hp2623a display and graphics terminals
 #
 hp2622|hp2622a|hp 2622:\
@@ -4197,7 +4197,7 @@
 hp2397a|hp2397|hewlett packard 2397A color terminal:\
 	:is=\E&w6f80X:tc=memhp:tc=hp+labels:tc=hp+color:
 
-#  HP 700/44 Setup parameters:  
+#  HP 700/44 Setup parameters:
 # Terminal Mode		HP-PCterm
 # Inhibit Auto Wrap	NO
 # Status Line		Host Writable
@@ -4207,7 +4207,7 @@
 # Keycode Mode 		NO   or YES (sc)
 # Backspace Key		BS or BS/DEL
 #
-# :is: 	sets pcterm; autowrap; 25 lines; pc char set; prog DEL key; 
+# :is: 	sets pcterm; autowrap; 25 lines; pc char set; prog DEL key;
 # \E\\? does not turn off keycode mode
 # <smsc>	sets alternate start/stop; keycode on
 hpansi|hp700|hewlett packard 700/44 in HP-PCterm mode:\
@@ -4246,10 +4246,10 @@
 
 # hpex:
 #	May be used for most 24 x 80 hp terminals,
-# but has no padding added, so may allow runover in some terminals at high 
-# baud rates.  Will not work for hp2640a or hp2640b terminals, hp98x6 and 
-# hp98x5 terminal emulators or hp98x6 consoles.  
-# 	Adds xy-cursor addressing, vertical cursor addressing, home, 
+# but has no padding added, so may allow runover in some terminals at high
+# baud rates.  Will not work for hp2640a or hp2640b terminals, hp98x6 and
+# hp98x5 terminal emulators or hp98x6 consoles.
+# 	Adds xy-cursor addressing, vertical cursor addressing, home,
 # last line, and underline capabilities.
 #
 # (hpex: removed memory-lock capabilities ":ml=\El:mu=\Em:",
@@ -4410,7 +4410,7 @@
 # emulations (usually their stupidest, and usually labeled adm3, though
 # these `adm3' emulations normally have adm3a+ capabilities).
 #
-# WARNING: Some early ADM terminals (including the ADM3 and ADM5) had a 
+# WARNING: Some early ADM terminals (including the ADM3 and ADM5) had a
 # `diagnostic feature' that sending them a ^G while pin 22 (`Ring Indicator')
 # was being held to ground would trigger a send of the top line on the screen.
 # A quick fix might be to drop back to a cheesy 4-wire cable with pin 22
@@ -4483,15 +4483,15 @@
 # Supervisor mode info by Ari Wuolle, <awuolle@delta.hut.fi>, 27 Aug 1996
 # (adm12: removed obsolete ":kn:ma=j^Jk^P^K^Pl ^R^L^L :".  This formerly had
 # :is:=\Eq but that looked wrong; this :is: is from Dave Yost <esquire!yost>
-# via BRL.  That entry asserted :sg#1:, but I've left that out because 
+# via BRL.  That entry asserted :sg#1:, but I've left that out because
 # neither earlier nor later ADMSs have it -- esr)
 #
 # You will need to get into the supervisor setup before you can set
 # baudrate etc. for your ADM-12+. Press Shift-Ctrl-Setup and you should
 # see a lot more setup options.
-# 
+#
 # While in supervisor setup you can also use following codes:
-# 
+#
 # Ctrl-P Personality character selections (configure for example what
 #        arrow keys send, if I recall correctly)
 # Ctrl-T tabs 1-80   use left&right to move and up to set and
@@ -4504,15 +4504,15 @@
 # Ctrl-S Save both setup and functions keys. Takes from 6 to 10 seconds.
 # Ctrl-R Reads both setup and functions keys from NVM.
 # Shift-Ctrl-X Unlock keyboard and cancel received X-OFF status
-# 
+#
 # ADM-12+ supports hardware handshaking, but it is DTR/CTS as opposed to
 # RTS/CTS used nowadays with virtually every modem and computer. 19200
 # bps works fine with hardware flow control.
-# 
+#
 # The following null-modem cable should fix this and enable you to use
 # RTS/CTS handshaking (which Linux supports, use CRTSCTS setting). Also
 # set ADM-12+ for DTR handshaking from supervisor setup.
-# 
+#
 # PC Serial   ADM-12+
 #  --------   -------
 #         2 - 3
@@ -4578,7 +4578,7 @@
 #   +                                          +
 # +-+                                          +-+
 # +                                              +
-# +                               S5 S6 S7       +   
+# +                               S5 S6 S7       +
 # +                               == == ==       +
 # +----------------------------------------------+
 #            front of case (keyboard)
@@ -4726,8 +4726,8 @@
 	:cr=^M:dc=\EW:dl=\ER:do=^J:ei=\Er:im=\Eq:ip=:kd=^J:kh=^^:\
 	:kl=^H:kr=^L:ku=^K:le=^H:mk@:nd=^L:pc=\177:sf=^J:ta=^I:ue@:\
 	:up=^K:us@:vs=\EC\E3 \E3(:tc=adm+sgr:
-# The following termcap for the Lear Siegler ADM-42 leaves the 
-# "system line" at the bottom of the screen blank (for those who 
+# The following termcap for the Lear Siegler ADM-42 leaves the
+# "system line" at the bottom of the screen blank (for those who
 # find it distracting otherwise)
 adm42-ns|lsi adm-42 with no system line:\
 	:al=\EE\EF \011:bt=\EI\EF \011:cd=\EY\EF \011:\
@@ -4816,11 +4816,11 @@
 	:sg#1:tc=qvt101+:
 
 # This used to have :vs=\E.2: but no :ve: or :vi:.  The BSD termcap
-# file had :vs=\EM4 \200\200\200:.  I've done the safe thing and yanked 
+# file had :vs=\EM4 \200\200\200:.  I've done the safe thing and yanked
 # both. The :mr: is from BSD, which also claimed bold=\E( and dim=\E).
 # What seems to be going on here is that this entry was designed so that
 # the normal highlight is bold and standout is dim plus something else
-# (reverse-video maybe?  But then, are there two :mr: sequences?)  
+# (reverse-video maybe?  But then, are there two :mr: sequences?)
 qvt101+|qvt101p|qume qvt 101 PLUS product:\
 	:am:bw:hs:ul:\
 	:co#80:li#24:sg#0:\
@@ -4911,7 +4911,7 @@
 
 # Vanilla tvi910 -- W. Gish <cswarren@violet> 10/29/86
 # Switch settings are:
-# 
+#
 # S1  1 2 3 4
 #     D D D D  9600
 #     D D D U    50
@@ -4929,7 +4929,7 @@
 #     U U D U  7200
 #     U U U D  9600
 #     U U U U 19200
-# 
+#
 # S1  5 6 7 8
 #     U D X D  7N1 (data bits, parity, stop bits) (X means ignored)
 #     U D X U  7N2
@@ -4941,51 +4941,51 @@
 #     D D X U  8N2
 #     D U D D  8O1
 #     D U U U  8E2
-# 
+#
 # S1  9  Autowrap
 #     U  on
 #     D  off
-# 
+#
 # S1 10  CR/LF
 #     U  do CR/LF when CR received
 #     D  do CR when CR received
-# 
+#
 # S2  1  Mode
 #     U  block
 #     D  conversational
-# 
+#
 # S2  2  Duplex
 #     U  half
 #     D  full
-# 
+#
 # S2  3  Hertz
 #     U  50
 #     D  60
-# 
+#
 # S2  4  Edit mode
 #     U  local
 #     D  duplex
-# 
+#
 # S2  5  Cursor type
 #     U  underline
 #     D  block
-# 
+#
 # S2  6  Cursor down key
 #     U  send ^J
 #     D  send ^V
-# 
+#
 # S2  7  Screen colour
 #     U  green on black
 #     D  black on green
-# 
+#
 # S2  8  DSR status (pin 6)
 #     U  disconnected
 #     D  connected
-# 
+#
 # S2  9  DCD status (pin 8)
 #     U  disconnected
 #     D  duplex
-# 
+#
 # S2 10  DTR status (pin 20)
 #     U  disconnected
 #     D  duplex
@@ -5016,7 +5016,7 @@
 #     U D X D  7N1     U D X U  7N2     U U D D  7O1     U U D U  7O2
 #     U U U D  7E1     U U U U  7E2     D D X D  8N1     D D X U  8N2
 #     D U D D  8O1     D U U U  8E2
-# 
+#
 # S1  9  Autowrap            (U = on, D = off)
 # S1 10  CR/LF               (U = CR/LF on CR received, D = CR on CR received)
 # S2  1  Mode                (U = block, D = conversational)
@@ -5056,8 +5056,8 @@
 # reset to page 0 when exiting curses application (\E-07 )
 tvi912-2p|tvi920-2p|tvi-2p|televideo w/2 pages:\
 	:te=\E-07\s:ti=\E-17\s:tc=tvi912:
-# We got some new tvi912c terminals that act really weird on the regular 
-# termcap, so one of our gurus worked this up. Seems that cursor 
+# We got some new tvi912c terminals that act really weird on the regular
+# termcap, so one of our gurus worked this up. Seems that cursor
 # addressing is broken.
 tvi912cc|tvi912 at cowell college:\
 	:cm@:tc=tvi912c:
@@ -5082,7 +5082,7 @@
 # 9:	     Even parity	     Odd parity
 # 10:	    Steady cursor	    Blinking cursor
 # 	(On Rev E or lower, use W25 instead of switch 10.)
-# 
+#
 # S5 UART/Terminal options:
 # 		Open			Closed
 # 1:	P3-6 Not connected	DSR received on P3-6
@@ -5108,10 +5108,10 @@
 #
 # S4/W31:	Enables automatic LF upon receipt of CR from
 # 		remote or keyboard.
-# S4/W32:	Enables transmission of EOT at the end of Send.  If not 
+# S4/W32:	Enables transmission of EOT at the end of Send.  If not
 # 		installed, a carriage return is sent.
 # S4/W33:	Disables automatic carriage return in column 80.
-# S4/W34:	Selects Page Print Mode as initial condition.  If not 
+# S4/W34:	Selects Page Print Mode as initial condition.  If not
 # 		installed, Extension Mode is selected.
 #
 tvi920b|tvi920c|new televideo 920:\
@@ -5195,19 +5195,19 @@
 # U	U	D	U	7200
 # U	U	U	D	9600
 # U	U	U	U	19200
-# 
-# 
+#
+#
 # Settings for word length and stop-bits (S1)
 #
 #  Position	Description
-# 5	6	
+# 5	6
 # ---------------------------
 # U	-	7-bit word
 # D	-	8-bit word
 # -	U	2 stop bits
 # -	D	1 stop bit
-# 
-# 
+#
+#
 # S2 (external) settings
 #
 # Position	Up	Dn	Description
@@ -5220,19 +5220,19 @@
 # --------------------------------------------
 # 3			X
 # 4			X	No parity
-# 5			X	
+# 5			X
 # --------------------------------------------
 # 3			X
 # 4			X	Odd parity
-# 5		X	
+# 5		X
 # --------------------------------------------
 # 3			X
 # 4		X		Even parity
-# 5		X	
+# 5		X
 # --------------------------------------------
-# 3		X	
+# 3		X
 # 4			X	Mark parity
-# 5		X		
+# 5		X
 # --------------------------------------------
 # 3		X
 # 4		X		Space parity
@@ -5245,47 +5245,47 @@
 # 8			X
 # --------------------------------------------
 # 7		X		Full Duplex
-# 8			X	
+# 8			X
 # --------------------------------------------
 # 7			X	Block mode
-# 8		X	
+# 8		X
 # --------------------------------------------
 # 9			X	50 Hz
 # 		X		60 Hz
 # --------------------------------------------
 # 10		X		CR/LF (Auto LF)
 # 			X	CR only
-# 
+#
 # S3 (internal switch) settings:
-# 
+#
 # Position	Up	Dn	Description
 # --------------------------------------------
-# 1		X		Keyclick off 
+# 1		X		Keyclick off
 # 			X	Keyclick on
 # --------------------------------------------
 # 2			X	English
-# 3			X	
+# 3			X
 # --------------------------------------------
 # 2			X	German
-# 3		X		
+# 3		X
 # --------------------------------------------
 # 2		X		French
-# 3			X	
+# 3			X
 # --------------------------------------------
 # 2		X		Spanish
-# 3		X	
+# 3		X
 # --------------------------------------------
 # 4			X	Blinking block cursor
-# 5			X	
+# 5			X
 # --------------------------------------------
 # 4			X	Blinking underline cursor
-# 5		X		
+# 5		X
 # --------------------------------------------
 # 4		X		Steady block cursor
-# 5			X	
+# 5			X
 # --------------------------------------------
 # 4		X		Steady underline cursor
-# 5		X	
+# 5		X
 # --------------------------------------------
 # 6		X		Screen blanking timer (ON)
 # 			X	Screen blanking timer (OFF)
@@ -5323,7 +5323,7 @@
 
 # From: Todd Litwin <litwin@litwin.jpl.nasa.gov> 28 May 1993
 # Originally Tim Curry, Univ. of Central Fla., <duke!ucf-cs!tim> 5/21/82
-# for additional capabilities, 
+# for additional capabilities,
 # The following tvi descriptions from B:pjphar and virus!mike
 # is for all 950s.  It sets the following attributes:
 # full duplex (\EDF)		write protect off (\E()
@@ -5342,11 +5342,11 @@
 #	start-protected field delimiter (\Ex2\200\200)
 #	end-protected field delimiter (\Ex3\200\200)
 # set end of text delimiter to carriage return/null (\Ex4\r\200)
-# 
+#
 #                     TVI 950 Switch Setting Reference Charts
-# 
+#
 #                                     TABLE 1:
-# 
+#
 #      S1     1     2     3     4     5     6     7     8     9    10
 #          +-----------------------+-----+-----+-----------------------+
 #          | Computer Baud Rate    |Data |Stop | Printer Baud Rate     |
@@ -5356,8 +5356,8 @@
 #   +------+-----------------------+-----+-----+-----------------------+
 #   | Down |      TABLE 2          |  8  |  1  |      TABLE 2          |
 #   +------+-----------------------+-----+-----+-----------------------+
-# 
-# 
+#
+#
 #      S2     1     2     3     4     5     6     7     8     9    10
 #          +-----+-----+-----------------+-----+-----------+-----+-----+
 #          |Edit |Cursr|    Parity       |Video|Transmiss'n| Hz  |Click|
@@ -5366,9 +5366,9 @@
 #   +------+-----+-----+-----------------+-----+-----------+-----+-----+
 #   | Down |Local|St'dy|    TABLE 3      |BkonG|  CHART    | 50  | On  |
 #   +------+-----+-----+-----------------+-----+-----------+-----+-----+
-#  
+#
 #                                    TABLE 2:
-# 
+#
 #             +-----------+-----+-----+-----+-----+-----------+
 #             | Display   |  1  |  2  |  3  |  4  |   Baud    |
 #             +-----------+-----+-----+-----+-----+           |
@@ -5391,7 +5391,7 @@
 #                         |  D  |  U  |  U  |  U  |   9600    |
 #                         |  U  |  U  |  U  |  U  |  19200    |
 #                         +-----+-----+-----+-----+-----------+
-# 
+#
 #                                    TABLE 3:
 #                         +-----+-----+-----+-----------+
 #                         |  3  |  4  |  5  |   Parity  |
@@ -5403,7 +5403,7 @@
 #                         |  U  |  U  |  U  |   Space   |
 #                         +-----+-----+-----+-----------+
 #                                 X = don't care
-# 
+#
 #                                     CHART:
 #                         +-----+-----+-----------------+
 #                         |  7  |  8  | Communication   |
@@ -5413,11 +5413,11 @@
 #                         |  U  |  D  |     Block       |
 #                         |  U  |  U  |     Local       |
 #                         +-----+-----+-----------------+
-# 
-# (tvi950: early versions had obsolete ":ma=^Vj^Kk^Hh^Ll^^H:". 
-# I also inserted :ic: and :kI:; the :ko: string indicated that :IC: 
+#
+# (tvi950: early versions had obsolete ":ma=^Vj^Kk^Hh^Ll^^H:".
+# I also inserted :ic: and :kI:; the :ko: string indicated that :IC:
 # should be present and all tvi native modes use the same string for this.
-# Finally, note that BSD has cud1=^V. -- esr) 
+# Finally, note that BSD has cud1=^V. -- esr)
 tvi950|televideo 950:\
 	:am:bs:hs:mi:ms:xn:xo:\
 	:co#80:it#8:li#24:sg#1:\
@@ -5532,11 +5532,11 @@
 	:te=\E[H\E[J\E[V:ti=\E[U\E[?20l\E[?7h\E[1Q:tc=tvi970:
 # Works with vi and rogue.  NOTE: Esc v sets autowrap on, Esc u sets 80 chars
 # per line (rather than 40), Esc K chooses the normal character set.  Not sure
-# padding is needed, but adapted from the tvi920c termcap.  The :so: and 
+# padding is needed, but adapted from the tvi920c termcap.  The :so: and
 # :us: strings are klutzy, but at least use no screen space.
 # (tvipt: removed obsolete ":ma=^Kk^Ll^R^L:".  I wish we knew <rmam>,
 # its absence means <smam>=\Ev isn't safe to use. -- esr)
-# From: Gene Rochlin <armsis@amber.berkeley.edu> 9/19/84. 
+# From: Gene Rochlin <armsis@amber.berkeley.edu> 9/19/84.
 # The :cd:/:k0:/:k1:/:kh:/<mc4>, and <mc5> caps are from BRL, which says:
 # F1 and F2 should be programmed as ^A and ^B; required for UNIFY.
 tvipt|televideo personal terminal:\
@@ -5582,7 +5582,7 @@
 # Visual 50 from Beau Shekita, BTL-Whippany <whuxlb!ejs>
 # Recently I hacked together the following termcap for Visual
 # Technology's Visual 50 terminal. It's a slight modification of
-# the vt52 termcap. 
+# the vt52 termcap.
 # It's intended to run when the Visual 50 is in vt52 emulation mode
 # (I know what you're thinking; if it's emulating a vt52, then why
 # another termcap? Well, it turns out that the Visual 50 can handle
@@ -5840,7 +5840,7 @@
 #	    To further complicate things one of the attributes must be
 #	black (either the foreground or the background).  In reverse video
 #	the background changes color with black letters.  In normal video
-#	the foreground changes colors on a black background.  
+#	the foreground changes colors on a black background.
 #	    This terminfo uses some of the more advanced features of curses
 #	to display both color and blink.  In the final analysis I am not
 #	sure that the wy350 runs better with this terminfo than it does
@@ -6322,7 +6322,7 @@
 # (instead of application), and change \E[ to \233 for all the keys in
 # terminfo. At one point, I found some reference indicating that this
 # terminal bug (not sending \E[) was acknowledged by Wyse (so it's not just
-# me), but I can't find that and the server under my bookmark to "Wyse 
+# me), but I can't find that and the server under my bookmark to "Wyse
 # Technical" isn't responding.  So there's the question of wether the wy85
 # terminfo should reflect the manufactuer's intended behaviour of the terminal
 # or the actual."
@@ -6433,7 +6433,7 @@
 	:up=^K:vb=\E`8\E`9:ve=\E`1:vi=\E`0:tc=adm+sgr:
 
 #
-# lines 24  columns 80  vb 
+# lines 24  columns 80  vb
 #
 wy325-vb|wyse325-vb|wyse-325 with visual bell:\
 	:bl@:tc=wy325:
@@ -6457,7 +6457,7 @@
 	:Nl@:lh@:li#25:lw@:\
 	:pn@:r3=\EwG\Ee):tc=wy325-w:
 #
-# lines 25  columns 132  vb 
+# lines 25  columns 132  vb
 #
 wy325-w-vb|wy325-wvb|wyse325-wvb|wyse-325 wide mode reverse video:\
 	:bl@:tc=wy325-w:
@@ -6475,7 +6475,7 @@
 	:Nl@:lh@:li#42:lw@:\
 	:pn@:r3=\EwG\Ee):tc=wy325-w:
 #
-# lines 42  columns 132  vb 
+# lines 42  columns 132  vb
 #
 wy325-42w-vb|wy325-42wvb|wyse-325 42 lines wide mode visual bell:\
 	:bl@:tc=wy325-w:
@@ -6492,7 +6492,7 @@
 	:Nl@:lh@:li#43:lw@:\
 	:pn@:r3=\EwG\Ee):tc=wy325-w:
 #
-# lines 43  columns 132  vb 
+# lines 43  columns 132  vb
 #
 wy325-43w-vb|wy325-43wvb|wyse-325 43 lines wide mode visual bell:\
 	:bl@:tc=wy325-w:
@@ -6621,7 +6621,7 @@
 #
 #TITLE:  TERMINFO ENTRY WY520
 #DATE:   8/5/93
-# The WY520 terminfo is based on the WY285 entry published on the WYSE 
+# The WY520 terminfo is based on the WY285 entry published on the WYSE
 # BBS with the addition of more function keys and special keys.
 #
 #               rs1 -> set personality
@@ -6951,7 +6951,7 @@
 #				level 0:
 # ^L		-- clear window/reset current attribute to default
 # ^V^A%p1%c	-- set current color attribute, parameter decodes as follows:
-# 
+#
 #      bit:         6   5   4   3   2   1   0
 #                   |       |   |   |       |
 #                   +---+---+   |   +---+---+
@@ -6962,8 +6962,8 @@
 #				level 0+:
 # ^V^J%p1%c%p2%c%p3%c%p4%c%p5%c	-- scroll (p2,p3) to (p4,p5) up by p1 lines
 # ^V^K%p1%c%p2%c%p3%c%p4%c%p5%c	-- scroll (p2,p3) to (p4,p5) down by p1 lines
-# ^V^L%p1%c%p2%c%p3%c		-- clear p2 lines and p3 cols w/attr %p1 
-# ^V^M%p1%c%p2%c%p3%c%p4%c	-- fill p3 lines & p4 cols w/char p2+attr %p1 
+# ^V^L%p1%c%p2%c%p3%c		-- clear p2 lines and p3 cols w/attr %p1
+# ^V^M%p1%c%p2%c%p3%c%p4%c	-- fill p3 lines & p4 cols w/char p2+attr %p1
 # (^V^L and ^V^M set the current attribute as a side-effect.)
 # ^V ^Y <a> [...] <c>	-- repeat pattern. <a> specifies the number of bytes
 #			   in the pattern, <c> the number of times the pattern
@@ -6980,7 +6980,7 @@
 # ^V^T			-- change highlight at current cursor poition to %c
 # ^V^U%p1%c%p2%c	-- highlight window <a> with attribute <b>
 # ^V^V%p1%c%p2%c%p3%c%p4%c%p5%c
-#			-- define window 
+#			-- define window
 #
 # From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
 # (The :mb:/:md:/:mr:/:as:/:us:/:so: capabilities exist only to
@@ -7041,14 +7041,14 @@
 # Command Character is 0xFE (decimal 254, octal 376)
 #
 # On this device, cursor addressability isn't possible.  The LCD expects:
-#      0xfe G <col> <row> 
+#      0xfe G <col> <row>
 #      for cup: %p1 == row and %p2 is column
 #
 # This line:
 #	cup=\376G%p2%c%p1%c
-# LOOKS like it will work, but sometimes only one of the two numbers is sent. 
+# LOOKS like it will work, but sometimes only one of the two numbers is sent.
 # See the terminfo (5) manpage commented regarding 'Terminals which use "%c"'.
-# 
+#
 # Alas, there is no cursor upline capability on this display.
 #
 # These entries add some 'sanity stuff' to the clear function.  That is, it
@@ -7109,7 +7109,7 @@
 # 	bold= reverse + underline = 2 | 3.
 # note that half-bright blinking doesn't look different from normal blinking.
 # NOTE:you must program the function keys first, label second!
-# (att4410: a BSD entry has been seen with the following capabilities: 
+# (att4410: a BSD entry has been seen with the following capabilities:
 # :is=\E[?6l:, :k1=\EOc:, :k2=\EOd:, :k3=\EOe:, :k4=\EOg:,
 # :k6=\EOh:, :k7=\EOi:, :k8=\EOj:, -- esr)
 # (untranslatable capabilities removed to fit entry within 1023 bytes)
@@ -7162,7 +7162,7 @@
 	:sc=\E7:se=\E[m:sf=^J:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\
 	:ue=\E[m:up=\E[A:us=\E[4m:
 
-# 
+#
 # Teletype Model 5420 -- A souped up 5410, with multiple windows,
 # even! the 5420 has three modes: scroll, window or page mode
 # this terminfo should work in scroll or window mode, but doesn't
@@ -7190,7 +7190,7 @@
 # :i3: set screen color to black,
 # No representation in terminfo for the delete word key: kdw1=\Ed
 # Key capabilities assume the power-up send sequence...
-# This :te: is not strictly necessary, but it helps maximize 
+# This :te: is not strictly necessary, but it helps maximize
 # memory usefulness: :te=\Ez:,
 # Alternate sgr0:	:me=\E[m\EW^O:,
 # Alternate sgr:	:sa=\E[%?%p1%t2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t^N%e^O%;:,
@@ -7232,7 +7232,7 @@
 
 # Note that this mode permits programming USER PF KEYS and labels
 # However, when you program user pf labels you have to reselect
-# user pf keys to make them appear! 
+# user pf keys to make them appear!
 att4415+nl|tty5420+nl|att5420+nl|generic AT&T 4415/5420 changes for not changing labels:\
 	:k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\
 	:..pn=\E[%p1%d;0;0;1q%p2%\:-16.16s:\
@@ -7309,13 +7309,13 @@
 #  The following is a terminfo entry for the Teletype 4424
 #  asynchronous keyboard-display terminal.  It supports
 #  the vi editor.  The terminal must be set up as follows,
-# 	
+#
 # 	HIGHLIGHT DEFINITION	3-TONE
 # 	DISPLAY FUNCTION	GROUP III
-# 	
+#
 #  The second entry below provides limited (a la adm3a)
 #  operation under GROUP II.
-# 	
+#
 #  This must be used with DISPLAY FUNCTION GROUP I or III
 # 	and HIGHLIGHT DEFINITION 3-TONE
 # The terminal has either bold or blink, depending on options
@@ -7356,12 +7356,12 @@
 	:nd=\E[C:nw=^M^J:se=\E[m:sf=^J:so=\E[7m:sr=\ET:ta=^I:\
 	:ue=\E[m:up=\E[A:us=\E[4m:
 
-# The Teletype 5425 is really version 2 of the Teletype 5420. It 
-# is quite similar, except for some minor differences. No page 
-# mode, for example, so all of the :cm: sequences used above have 
-# to change back to what's being used for the 5410. Many of the 
+# The Teletype 5425 is really version 2 of the Teletype 5420. It
+# is quite similar, except for some minor differences. No page
+# mode, for example, so all of the :cm: sequences used above have
+# to change back to what's being used for the 5410. Many of the
 # option settings have changed their numbering as well.
-# 
+#
 # This has been tested on a preliminary model.
 #
 # (att5425: added <rmam>/<smam> based on the init string -- esr)
@@ -7396,7 +7396,7 @@
 	:co#132:lm#54:ws#97:\
 	:i1=\E[?3h:tc=tty5425:
 
-# (att4426: his had bogus capabilities: :ri=\EM:, :ri=\E[1U:. 
+# (att4426: his had bogus capabilities: :ri=\EM:, :ri=\E[1U:.
 # I also added <rmam>/<smam> -- esr)
 att4426|tty4426|teletype 4426S:\
 	:am:da:db:xo:\
@@ -7417,7 +7417,7 @@
 	:us=\E[4m:
 
 # Terminfo entry for the AT&T 510 A Personal Terminal
-# Function keys 9 - 16 are available only after the 
+# Function keys 9 - 16 are available only after the
 # screen labeled (soft keys/action blocks) are labeled.  Function key
 # 9 corresponds to the leftmost touch target on the screen,
 # function key 16 corresponds to the rightmost.
@@ -7450,9 +7450,9 @@
 # Function key 9 corresponds to the leftmost touch target on the screen,
 # function key 16 corresponds to the rightmost.
 #
-# There are problems with soft key labeling.  These are due to 
+# There are problems with soft key labeling.  These are due to
 # strangenesses in the native terminal that are impossible to
-# describe in a terminfo.  
+# describe in a terminfo.
 # (untranslatable capabilities removed to fit entry within 1023 bytes)
 # (sgr removed to fit entry within 1023 bytes)
 # (acsc removed to fit entry within 1023 bytes)
@@ -7742,9 +7742,9 @@
 #	ESC [ 50;4|	set 700 native mode (really is 605)
 # x	ESC [ 56;ps| 	set lines to 24: ps=0; 40: ps=1 (plus status line)
 #	ESC [ 53;0|	set GenFlow to Xon/Xoff
-#	ESC [ 8 ;0|	set CR on NL 
+#	ESC [ 8 ;0|	set CR on NL
 # x	ESC [ ? 3 l/h	set workspace: 80 col(l); 132 col(h)
-#	ESC [ ? 4 l	jump scroll 
+#	ESC [ ? 4 l	jump scroll
 #	ESC [ ? 5 l/h	video: normal (l); reverse (h)
 #	ESC [ ?13 l	Labels on
 #	ESC [ ?15 l	parity check = no
@@ -7766,7 +7766,7 @@
 # and the rmso/smso settings from the 730.
 #
 # Note: For the same reason as above in rmso I changed exit under-score mode
-# to specifically turn off underscore, rather than return to all normal 
+# to specifically turn off underscore, rather than return to all normal
 # attributes
 #
 # Note: The following pkey_xmit is taken from the 605V2 which contained the
@@ -7838,7 +7838,7 @@
 # att730 has status line of 80 chars
 # These were commented out: :SF=\E[%p1%dS:, :SR=\E[%p1%dT:,
 # the <kf25> and up keys are used for shifted system Fkeys
-# NOTE: JWE 3/13/90 The 98 key keyboard translation for shift/HOME is 
+# NOTE: JWE 3/13/90 The 98 key keyboard translation for shift/HOME is
 # currently the same as :kh: (unshifted HOME or \E[H).  On the 102, 102+1
 # and 122 key keyboards, the 730's translation is \E[2J.  For consistency
 # <kHOM> has been commented out.  The user can uncomment <kHOM> if using the
@@ -7921,7 +7921,7 @@
 #
 #                                                          MAIL
 #
-# version 1 note: 
+# version 1 note:
 #	The character string sent by key 'kf26' may be user programmable
 #       to send either \E[16s, or \E[26s.
 #       The character string sent by key 'krfr' may be user programmable
@@ -8136,7 +8136,7 @@
 	:co#132:li#24:\
 	:bl=^G:cr=^M:do=^J:is=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h:\
 	:sf=^J:tc=ampex219:
-# (ampex232: removed :if=/usr/share/tabset/ampex:, no file and no :st: --esr) 
+# (ampex232: removed :if=/usr/share/tabset/ampex:, no file and no :st: --esr)
 ampex232|ampex-232|Ampex Model 232:\
 	:am:\
 	:co#80:li#24:sg#1:\
@@ -8145,7 +8145,7 @@
 	:k2=^AB\r:k3=^AC\r:k4=^AD\r:k5=^AE\r:k6=^AF\r:k7=^AG\r:\
 	:k8=^AH\r:k9=^AI\r:kb=^H:kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\
 	:mk@:nd=^L:ta=^I:up=^K:vb=\Eb\Ed:ve=\E.4:vi=\E.0:tc=adm+sgr:
-# (ampex: removed :if=/usr/share/tabset/amp-132:, no file and no :st: -- esr) 
+# (ampex: removed :if=/usr/share/tabset/amp-132:, no file and no :st: -- esr)
 ampex232w|Ampex Model 232 / 132 columns:\
 	:co#132:li#24:\
 	:is=\E\034Eg\El:tc=ampex232:
@@ -8505,8 +8505,8 @@
 #	Fax: (516)-342-7378
 #	Web: http://boundless.com
 #
-# Their voice mail used to describe the place as "SunRiver (formerly ADDS)". 
-# In 1995 Boundless acquired DEC's terminals business.  
+# Their voice mail used to describe the place as "SunRiver (formerly ADDS)".
+# In 1995 Boundless acquired DEC's terminals business.
 #
 
 # Regent: lowest common denominator, works on all regents.
@@ -8553,7 +8553,7 @@
 	:se@:so@:ue@:us@:vs@:tc=viewpoint:
 
 # From: Jay S. Rouman <jsr@dexter.mi.org> 5 Jul 92
-# The :vi:/:ve:/:sa:/:me: strings were added by ESR from specs.  
+# The :vi:/:ve:/:sa:/:me: strings were added by ESR from specs.
 # Theory; the vp3a+ wants \E0%c to set highlights, where normal=01000000,
 # underline=01100000, rev=01010000, blink=01000010,dim=01000001,
 # invis=01000100 and %c is the logical or of desired attributes.
@@ -8657,7 +8657,7 @@
 # terminal.  Then change any options you want (provided that they are
 # compatible with the termcap).  For my terminal I set: Screen
 # Background: light; Keyclicks: silent; Auto wraparound: on; CRT saver:
-# on.  I also set up mine for parity (but you may not need it).  Then 
+# on.  I also set up mine for parity (but you may not need it).  Then
 # save the setup with ^S.
 # (cit101e-rv: added empty :te: to suppress a tic warning. --esr)
 cit101e-rv|Citoh CIT-101e (sets reverse video):\
@@ -8791,7 +8791,7 @@
 # CDC 721 from Robert Viduya, Ga. Tech. <ihnp4!gatech!gitpyr!robert> via BRL.
 #
 # Part of the long initialization string defines the "DOWN" key to the left
-# of the tab key to send an ESC.  The real ESC key is positioned way out 
+# of the tab key to send an ESC.  The real ESC key is positioned way out
 # in right field.
 #
 # The termcap won't work in 132 column mode due to the way it it moves the
@@ -8814,7 +8814,7 @@
 
 #### Getronics
 #
-# Getronics is a Dutch electronics company that at one time was called 
+# Getronics is a Dutch electronics company that at one time was called
 # `Geveke' and made async terminals; but (according to the company itself!)
 # they've lost all their documentation on the command set.  The hardware
 # documentation suggests the terminals were actually manufactured by a
@@ -8866,7 +8866,7 @@
 #	Vox: (610)-277-8300
 #	Fax: (610)-275-5739
 #	Net: support@hds.com
-# 
+#
 # John Martin <john@hds.com> is their termcap expert.  They're mostly out of
 # the character-terminal business now (1995) and making X terminals.  In
 # particular, the whole `Concept' line described here was discontinued long
@@ -8879,29 +8879,29 @@
 #
 # There seem to be a number of different versions of the C108 PROMS
 # (with bug fixes in its Z-80 program).
-# 
+#
 # The first one that we had would lock out the keyboard of you
 # sent lots of short lines (like /usr/dict/words) at 9600 baud.
 # Try that on your C108 and see if it sends a ^S when you type it.
 # If so, you have an old version of the PROMs.
-# 
+#
 # You should configure the C108 to send ^S/^Q before running this.
 # It is much faster (at 9600 baud) than the c100 because the delays
 # are not fixed.
 # new status line display entries for c108-8p:
-# :i3: - init str #3 - setup term for status display - 
-# set programmer mode, select window 2, define window at last 
+# :i3: - init str #3 - setup term for status display -
+# set programmer mode, select window 2, define window at last
 # line of memory, set bkgnd stat mesg there, select window 0.
-# 
-# :ts: - to status line - select window 2, home cursor, erase to 
+#
+# :ts: - to status line - select window 2, home cursor, erase to
 # end-of-window, 1/2 bright on, goto(line#0, col#?)
-# 
+#
 # :fs: - from status line - 1/2 bright off, select window 0
-# 
-# :ds: - disable status display - set bkgnd status mesg with 
+#
+# :ds: - disable status display - set bkgnd status mesg with
 # illegal window #
-# 
-# There are probably more function keys that should be added but 
+#
+# There are probably more function keys that should be added but
 # I don't know what they are.
 #
 # No delays needed on c108 because of ^S/^Q handshaking
@@ -8929,42 +8929,42 @@
 	:ti=\EU\Ev  8\001D\Ep\r:tc=c108-8p:
 
 # Concept 100:
-# These have only window relative cursor addressing, not screen 
-# relative. To get it to work right here, smcup/rmcup (which 
-# were invented for the concept) lock you into a one page 
+# These have only window relative cursor addressing, not screen
+# relative. To get it to work right here, smcup/rmcup (which
+# were invented for the concept) lock you into a one page
 # window for screen style programs.
-# 
+#
 # To get out of the one page window, we use a clever trick:
-# we set the window size to zero ("\Ev    " in rmcup) which the 
-# terminal recognizes as an error and resets the window to all 
+# we set the window size to zero ("\Ev    " in rmcup) which the
+# terminal recognizes as an error and resets the window to all
 # of memory.
-# 
+#
 # This trick works on c100 but does not on c108, sigh.
-# 
-# Some tty drivers use cr3 for concept, others use nl3, hence 
-# the delays on cr and ind below. This padding is only needed at 
-# 9600 baud and up.  One or the other is commented out depending on 
+#
+# Some tty drivers use cr3 for concept, others use nl3, hence
+# the delays on cr and ind below. This padding is only needed at
+# 9600 baud and up.  One or the other is commented out depending on
 # local conventions.
-# 
-# 2 ms padding on :te: isn't always enough. 6 works fine. Maybe 
+#
+# 2 ms padding on :te: isn't always enough. 6 works fine. Maybe
 # less than 6 but more than 2 will work.
-# 
-# Note: can't use function keys f7-f10 because they are 
-# indistinguishable from arrow keys (!), also, del char and 
+#
+# Note: can't use function keys f7-f10 because they are
+# indistinguishable from arrow keys (!), also, del char and
 # clear eol use xon/xoff so they probably won't work very well.
-# 
-# Also note that we don't define insrt/del char/delline/eop/send 
-# because they don't transmit unless we reset them - I figured 
+#
+# Also note that we don't define insrt/del char/delline/eop/send
+# because they don't transmit unless we reset them - I figured
 # it was a bad idea to clobber their definitions.
-# 
-# The <mc5> sequence changes the escape character to ^^ so that 
-# escapes will be passed through to the printer. Only trouble 
-# is that ^^ won't be - ^^ was chosen to be unlikely. 
-# Unfortunately, if you're sending raster bits through to be 
+#
+# The <mc5> sequence changes the escape character to ^^ so that
+# escapes will be passed through to the printer. Only trouble
+# is that ^^ won't be - ^^ was chosen to be unlikely.
+# Unfortunately, if you're sending raster bits through to be
 # plotted, any character you choose will be likely, so we lose.
 #
-# \EQ"\EY(^W (send anything from printer to host, for xon/xoff) 
-# cannot be # in is2 because it will hang a c100 with no printer 
+# \EQ"\EY(^W (send anything from printer to host, for xon/xoff)
+# cannot be # in is2 because it will hang a c100 with no printer
 # if sent twice.
 c100|concept100|concept|c104|c100-4p|hds concept 100:\
 	:am:bs:eo:mi:ul:xn:\
@@ -9140,7 +9140,7 @@
 #
 #------- flash=\E[8;3!}^G\E[3;3!}
 #------- flash=\E[?5h$<100>\E[?5l
-# There are two ways to flash the screen, both of which have their drawbacks. 
+# There are two ways to flash the screen, both of which have their drawbacks.
 # The first is to set the bell mode to video, transmit a bell character, and
 # set the bell mode back - but to what?  There is no way of knowing what the
 # user's old bell setting was before we messed with it.  Worse, the command to
@@ -9164,7 +9164,7 @@
 #
 #-------   dim=			Not available in power on mode.
 # You have a choice of defining low intensity characters as "half bright" and
-# high intensity as "normal", or defining low as "normal" and high as "bold". 
+# high intensity as "normal", or defining low as "normal" and high as "bold".
 # No matter which you choose, only one of either "half bright" or "bold" is
 # available at any time, so taking the time to override the default is
 # pointless.
@@ -9193,7 +9193,7 @@
 #	 [DEL chosen as delimiter, but could be any character]
 #	 [implied:		ELSE	do nothing]
 #		%;		ENDIF
-#	
+#
 #-------   rs2=
 # Not defined since anything it might do could be done faster and easier with
 # either Meta-Shift-Reset or the main power switch.
@@ -9307,10 +9307,10 @@
 	:i1=\E[=103h\E[=205h:ti=\E[H\E[1;24;1;132w:\
 	:vb=\E[=205l\E[=205h:tc=avt+s:tc=avt-ns:
 
-#### Contel Business Systems. 
-#
-
-# Contel c300 and c320 terminals. 
+#### Contel Business Systems.
+#
+
+# Contel c300 and c320 terminals.
 contel300|contel320|c300|Contel Business Systems C-300 or C-320:\
 	:am:in:xo:\
 	:co#80:li#24:sg#1:\
@@ -9332,7 +9332,7 @@
 #
 # DG terminals have function keys that respond to the SHIFT and CTRL keys,
 # e.g., SHIFT-F1 generates a different code from F1.  To number the keys
-# sequentially, first the unmodified key codes are listed as F1 through F15. 
+# sequentially, first the unmodified key codes are listed as F1 through F15.
 # Then their SHIFT versions are listed as F16 through F30, their CTRL versions
 # are listed as F31 through F45, and their CTRL-SHIFT versions are listed as
 # F46 through F60.  This is done in the private "includes" below whose names
@@ -9425,7 +9425,7 @@
 	:tc=dgunix+fixed:
 
 # Video attributes are coordinated using static variables set by "sgr", then
-# checked by "op", "seta[bf]", and "set[bf]" to refresh the attribute settings. 
+# checked by "op", "seta[bf]", and "set[bf]" to refresh the attribute settings.
 # (D=dim, U=underline, B=blink, R=reverse.)
 dg+color8|Color info for Data General D220 and D230C terminals in ANSI mode:\
 	:ut:\
@@ -9540,12 +9540,12 @@
 	:mh=\E[2m:mr=\E[7m:nd=\E[C:nl=\ED:se=\E[m:sf=\E[S:so=\E[7m:\
 	:sr=\E[T:ta=^I:ue=\E[05:up=\E[A:us=\E[4m:
 # From: Wayne Throop <mcnc!rti-sel!rtp47!throopw> (not official)
-# Data General 605x     
+# Data General 605x
 # Ought to work for a Model 6242, Type D210 as well as a 605x.
 # Note that the cursor-down key transmits ^Z.  Job control users, beware!
 # This also matches a posted description of something called a `Dasher 100'
-# so there's a dg100 alias here. 
-# (dg6053: the 4.4BSD file had :le=^H:, :do=^J:, :nd=^S:. -- esr) 
+# so there's a dg100 alias here.
+# (dg6053: the 4.4BSD file had :le=^H:, :do=^J:, :nd=^S:. -- esr)
 dg6053-old|dg100|data general 6053:\
 	:am:bs:bw:ul:\
 	:co#80:li#24:\
@@ -10020,7 +10020,7 @@
 
 #### Datamedia (dm)
 #
-# Datamedia was headquartered in Nashua, New Hampshire until it went 
+# Datamedia was headquartered in Nashua, New Hampshire until it went
 # out of business in 1993, but the ID plates on the terminals referred
 # to the factory in Pennsauken, NJ.  The factory was sold to a PCB board
 # manufacturer which threw out all information about the terminals.
@@ -10043,7 +10043,7 @@
 	:co#80:it#8:li#24:\
 	:bl=^G:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :cr=^M:do=^J:ho=^Y:\
 	:kd=^J:kh=^Y:kl=^H:kr=^\:ku=^_:le=^H:nd=^\:sf=^J:ta=^I:up=^_:
-# dm2500: this terminal has both :IC: and :im:. Applications using 
+# dm2500: this terminal has both :IC: and :im:. Applications using
 # termcap/terminfo directly (rather than through ncurses) might be confused.
 dm2500|datamedia2500|datamedia 2500:\
 	:bs:nc:\
@@ -10080,27 +10080,27 @@
 # 	Autorepeat 	0=off  1=on
 # 	Screen		0=Dark 1=light
 # 	Cursor		0=u/l  1=block
-# 
+#
 # 2	Margin Bell	0=off  1=on
 # 	Keyclick	0=off  1=on
 # 	Ansi/VT52	0=VT52 1=Ansi
 # 	Xon/Xoff	0=Off  1=On
-# 
+#
 # 3	Shift3		0=Hash 1=UK Pound
 # 	Wrap		0=Off  1=On
 # 	Newline		0=Off  1=On
 # 	Interlace	0=Off  1=On
-# 	
+#
 # 4	Parity		0=Odd  1=Even
 # 	Parity		0=Off  1=On
 # 	Bits/Char	0=7    1=8
 # 	Power		0=60Hz 1=50Hz
-# 
+#
 # 5	Line Interface  0=EIA  1=Loop
 # 	Aux Interface   0=EIA  1=Loop
-# 	Local Copy    	0=Off  1=On	
+# 	Local Copy    	0=Off  1=On
 # 	Spare
-# 
+#
 # 6	Aux Parity	0=Odd  1=Even
 # 	Aux Parity	0=Off  1=On
 # 	Aux Bits/Char   0=7    1=8
@@ -10227,7 +10227,7 @@
 #### Fluke
 #
 
-# The f1720a differences from ANSI: no auto margin, destructive 
+# The f1720a differences from ANSI: no auto margin, destructive
 # tabs, # of lines, funny highlighting and underlining
 f1720|f1720a|fluke 1720A:\
 	:xt:\
@@ -10266,7 +10266,7 @@
 # as ^V, the Control Character Quoting capability (^V in insert mode)
 # is lost! It cannot be remapped in vi because it is necessary to enter
 # a ^V to to quote the ^V that is being remapped!!!
-# 
+#
 # f110/f200 users will have to decide whether
 # to lose the down cursor key or the quoting capability. We will opt
 # initially for leaving the quoting capability out, since use of VI
@@ -10369,58 +10369,58 @@
 # so we must have early Superbee2 (Model 600, according to phone conversation
 # with mfr.). It has proved reliable except for some missing padding
 # (notably after \EK and <nl> at bottom of screen).
-# 
-# The key idea is that AEP mode is poison for :cm: & that US's in 
-# the local memory should be avoided like the plague. That means 
-# that the 2048 character local buffer is used as 25 lines of 80 
-# characters, period. No scrolling local memory, folks. It also 
+#
+# The key idea is that AEP mode is poison for :cm: & that US's in
+# the local memory should be avoided like the plague. That means
+# that the 2048 character local buffer is used as 25 lines of 80
+# characters, period. No scrolling local memory, folks. It also
 # appears that we cannot use naked INS LINE feature since it uses
-# US. The sbi fakes :al: with an 80-space insert that may be too 
-# slow at low speeds; also spaces get converted to \040 which is 
+# US. The sbi fakes :al: with an 80-space insert that may be too
+# slow at low speeds; also spaces get converted to \040 which is
 # too long for some programs (not vi).  DEL LINE is ok but slow.
-# 
-# The <nl> string is designed for last line of screen ONLY; cup to 
+#
+# The <nl> string is designed for last line of screen ONLY; cup to
 # 25th line corrects the motion inherent in scrolling to Page 1.
-# 
+#
 # There is one understood bug. It is that the screen appears to
-# pop to a new (blank) page after a :nw:, or leave a half-line 
-# ellipsis to a quad that is the extra 48 memory locations. The 
-# data received is dumped into memory but not displayed.  Not to 
-# worry if :cm: is being used; the lines not displayed will be, 
-# whenever the cursor is moved up there. Since :cm: is addressed 
-# relative to MEMORY of window, nothing is lost; but beware of 
+# pop to a new (blank) page after a :nw:, or leave a half-line
+# ellipsis to a quad that is the extra 48 memory locations. The
+# data received is dumped into memory but not displayed.  Not to
+# worry if :cm: is being used; the lines not displayed will be,
+# whenever the cursor is moved up there. Since :cm: is addressed
+# relative to MEMORY of window, nothing is lost; but beware of
 # relative cursor motion (:up:,:do:,:nd:,:le:). Recommended,
 # therefore, is setenv MORE -c .
-# 
+#
 # WARNING: Not all features tested.
-# 
-# Timings are assembled from 3 sources. Some timings may reflect 
+#
+# Timings are assembled from 3 sources. Some timings may reflect
 # SB2/Model 300 that were used if more conservative.
 # Tested on a Model 600 at 1200 and 9600 bd.
-# 
-# The BACKSPACEkb option is cute. The NEWLINE key, so cleverly 
-# placed on the keyboard and useless because of AEP, is made 
+#
+# The BACKSPACEkb option is cute. The NEWLINE key, so cleverly
+# placed on the keyboard and useless because of AEP, is made
 # into a backspace key. In use ESC must be pressed twice (to send)
-# and sending ^C must be prefixed by ESC to avoid that weird 
+# and sending ^C must be prefixed by ESC to avoid that weird
 # transmit mode associated with ENTER key.
-# 
-# IF TERMINAL EVER GOES CATATONIC with the cursor buzzing across 
-# the screen, then it has dropped into ENTER mode; hit 
+#
+# IF TERMINAL EVER GOES CATATONIC with the cursor buzzing across
+# the screen, then it has dropped into ENTER mode; hit
 # RESET--ONLINE--!tset.
-# 
-# As delivered this machine has a FATAL feature that will throw 
-# it into that strange transmit state (SPOW) if the space bar is 
-# hit after a CR is received, but before receiving a LF (or a 
+#
+# As delivered this machine has a FATAL feature that will throw
+# it into that strange transmit state (SPOW) if the space bar is
+# hit after a CR is received, but before receiving a LF (or a
 # few others).
-# 
-# The circuits MUST be modified to eliminate the SPOW latch. 
-# This is done by strapping on chip A46 of the I/O board; cut 
-# the p.c. connection to Pin 5 and strap Pin 5 to Pin 8 of that 
+#
+# The circuits MUST be modified to eliminate the SPOW latch.
+# This is done by strapping on chip A46 of the I/O board; cut
+# the p.c. connection to Pin 5 and strap Pin 5 to Pin 8 of that
 # chip. This mod has been checked out on a Mod 600 of Superbee II.
-# With this modification absurdly high timings on cr are 
+# With this modification absurdly high timings on cr are
 # unnecessary.
-# 
-# NOTE WELL that the rear panel switch should be set to CR/LF, 
+#
+# NOTE WELL that the rear panel switch should be set to CR/LF,
 # not AEP!
 #
 sb1|beehive superbee:\
@@ -10578,7 +10578,7 @@
 	:kh=~^R:kl=^H:kr=^P:ku=~^L:le=^H:nd=^P:se=~^Y:sf=^J:so=~^_:\
 	:up=~^L:
 # h1510 assumed to be in sane escape mode.  Else use h1500.
-# (h1510: early versions of this entry apparently had ":se=\E^_:, 
+# (h1510: early versions of this entry apparently had ":se=\E^_:,
 # :so=\E^Y:, but these caps were commented out in 8.3; also,
 # removed incorrect and overridden ":do=^J:" -- esr)
 hz1510|hazeltine 1510:\
@@ -10628,7 +10628,7 @@
 # characters very fast vi seems not able to keep up and hangs while trying
 # to insert. That's in insert mode while trying to insert in the middle of
 # a line. It might be because the Esprit doesn't have insert char and delete
-# char as a built in function. Vi has to delete to end of line and then 
+# char as a built in function. Vi has to delete to end of line and then
 # redraw the rest of the line.
 esprit|Hazeltine Esprit I:\
 	:am:bs:bw:\
@@ -10685,7 +10685,7 @@
 	:ae=\E>B:as=\E>A:is=\E S:me=\E4@\E>B:rs=\E S:s0=\E>B:\
 	:..sa=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E>B%;:\
 	:te=\E>B:ti=\E>B:tc=ibm3162:
-# From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992 
+# From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992
 # removed kend, knp, kpp -TD
 ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display:\
 	:am:bs:mi:ms:\
@@ -10747,7 +10747,7 @@
 	:vb=\EG:
 ibm-apl|apl|IBM apl terminal simulator:\
 	:li#25:tc=dm1520:
-# (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'.  
+# (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'.
 # Also it had ":I0=f10:" which pretty obviously should be "l0=f10" -- esr)
 ibmmono|IBM workstation monochrome:\
 	:es:hs:\
@@ -10882,7 +10882,7 @@
 	:nw=^M^J:sf=^J:ta=^I:..ts=\Ej\EYI%+ \Eo:tc=ibmega-c:
 
 #
-# AIX entries.  IBM ships these with AIX 3.2.5. 
+# AIX entries.  IBM ships these with AIX 3.2.5.
 # -- added rc, sc based on manpage -TD
 aixterm|IBM Aixterm Terminal Emulator:\
 	:es:hs:\
@@ -10937,7 +10937,7 @@
 
 # The ICL6402 was actually the Kokusai Display System 6402.
 # The 6404 was the KDS7372 (color version of the 6402).
-# 
+#
 # ICL6404 control codes follow:
 #
 #code            function
@@ -11246,13 +11246,13 @@
 
 #### Kimtron (abm, kt)
 #
-# Kimtron seems to be history, but as March 1998 these people are still 
+# Kimtron seems to be history, but as March 1998 these people are still
 # offering repair services for Kimtron equipment:
 #
 #    Com/Pair Monitor Service
 #    1105 N. Cliff Ave.
 #    Sioux Falls, South Dakota 57103
-#     
+#
 #    WATS voice:  1-800/398-4946
 #    POTS   fax: +1 605/338-8709
 #    POTS voice: +1 605/338-9650
@@ -11346,7 +11346,7 @@
 # This was a line of terminals made by McDonnell-Douglas Information Systems.
 # These entries come direct from MDIS documentation.  I have edited them only
 # to move primary names of the form p[0-9] * to aliases, and to comment out
-# :ae:/:as: in a couple of entries without <acsc> strings.  I have 
+# :ae:/:as: in a couple of entries without <acsc> strings.  I have
 # also removed the change history; the last version indicates this is
 # version 4.3 by A.Barkus, September 1990 (earliest entry is October 1989).
 #
@@ -11706,7 +11706,7 @@
 	:al=\001:cd=^_:ce=^X:dl=\027:ta=\011:tc=mime3a:
 # Wed Mar  9 18:53:21 1983
 # We run our terminals at 2400 baud, so there might be some timing problems at
-# higher speeds. The major improvements in this model are the terminal now 
+# higher speeds. The major improvements in this model are the terminal now
 # scrolls down and insert mode works without redrawing the rest of the line
 # to the right of the cursor. This is done with a bit of a kludge using the
 # exit graphics mode to get out of insert, but it does not appear to hurt
@@ -11748,9 +11748,9 @@
 # This entry works for the ergo 4000 with the following setups:
 # ansi,wraparound,newline disabled, xon/xoff disabled in both
 # setup a & c.
-#	
+#
 # WARNING!!! There are multiple versions of ERGO 4000 microcode
-# Be advised that very early versions DO NOT WORK RIGHT !!  
+# Be advised that very early versions DO NOT WORK RIGHT !!
 # Microterm does have a ROM exchange program- use it or lose big
 # (ergo400: added <rmam>/<smam> based on the init string -- esr)
 ergo4000|microterm ergo 4000:\
@@ -11764,7 +11764,7 @@
 	:ks=\E=:ku=\E[A:l1=pf1:l2=pf2:l3=pf3:l4=pf4:le=^H:me=\E[m:\
 	:nd=\E[C:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:up=\E[A:
 
-#### NCR 
+#### NCR
 #
 # NCR's terminal group was merged with AT&T's when AT&T bought the company.
 # For what happened to that group, see the ADDS section.
@@ -11800,10 +11800,10 @@
 # This definition for ViewPoint supports several attributes.  This means
 # that it has magic cookies (extra spaces where the attributes begin).
 # Some applications do not function well with magic cookies.  The System
-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. 
+# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
 # If supporting various attributes is not vital, 'xmc#1' and the extra
-# attributes can be removed. 
-# Mapping to ASCII character set ('acsc' capability) can also be 
+# attributes can be removed.
+# Mapping to ASCII character set ('acsc' capability) can also be
 # restored if needed.
 # (untranslatable capabilities removed to fit entry within 1023 bytes)
 # (sgr removed to fit entry within 1023 bytes)
@@ -11955,19 +11955,19 @@
 	:is=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>:\
 	:rs=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>:\
 	:tc=ncr260vt300pp:
-# This terminfo file contains color capabilities for the Wyse325 emulation of 
+# This terminfo file contains color capabilities for the Wyse325 emulation of
 # the NCR 2900/260C color terminal.  Because of the structure of the command
 # (escape sequence) used to set color attributes, one of the fore/background
 # colors must be preset to a given value. I have set the background color to
 # black.  The user can change this setup by altering the last section of the
-# 'setf' definition.  The escape sequence to set color attributes is 
-#		ESC d y <foreground_color> <background_color> 1  
+# 'setf' definition.  The escape sequence to set color attributes is
+#		ESC d y <foreground_color> <background_color> 1
 # In addition, the background color can be changed through the desk accessories.
-# The capablitiy 'op' sets colors to green on black (default combination).  
+# The capablitiy 'op' sets colors to green on black (default combination).
 #
 # NOTE:  The NCR Unix System Administrator's Shell will not function properly
 # 	    if the 'pairs' capability is defined. Un-Comment the 'pairs'
-#	    capability and recompile if you wish to have it included. 
+#	    capability and recompile if you wish to have it included.
 #
 # (untranslatable capabilities removed to fit entry within 1023 bytes)
 # (sgr removed to fit entry within 1023 bytes)
@@ -11997,18 +11997,18 @@
 # This definition for Wyse 350 supports several attributes.  This means
 # that it has magic cookies (extra spaces where the attributes begin).
 # Some applications do not function well with magic cookies.  The System
-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. 
+# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
 # If supporting various attributes is not vital, 'xmc#1' and the extra
-# attributes can be removed. 
-# Mapping to ASCII character set ('acsc' capability) can also be 
+# attributes can be removed.
+# Mapping to ASCII character set ('acsc' capability) can also be
 # restored if needed.
 # In addition, color capabilities have been added to this file.  The drawback,
 # however, is that the background color has to be black.  The foreground colors
-# are numbered 0 through 15.  
+# are numbered 0 through 15.
 #
 # NOTE:  The NCR Unix System Administrator's Shell does not function properly
 # 	    with the 'pairs' capability defined as below.  If you wish to
-#	    have it included, Un-comment it and recompile (using 'tic'). 
+#	    have it included, Un-comment it and recompile (using 'tic').
 #
 # (untranslatable capabilities removed to fit entry within 1023 bytes)
 # (sgr removed to fit entry within 1023 bytes)
@@ -12038,12 +12038,12 @@
 # This definition for Wyse 50+ supports several attributes.  This means
 # that it has magic cookies (extra spaces where the attributes begin).
 # Some applications do not function well with magic cookies.  The System
-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. 
+# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
 # If supporting various attributes is not vital, 'xmc#1' and the extra
-# attributes can be removed. 
-# Mapping to ASCII character set ('acsc' capability) can also be 
+# attributes can be removed.
+# Mapping to ASCII character set ('acsc' capability) can also be
 # restored if needed.
-# (ncr260wy50+pp: originally contained commented-out 
+# (ncr260wy50+pp: originally contained commented-out
 # <acsc=j5k3l2m1n8q:t4u9v=w0x6>, as well as the commented-out one there -- esr)
 # (untranslatable capabilities removed to fit entry within 1023 bytes)
 # (sgr removed to fit entry within 1023 bytes)
@@ -12163,7 +12163,7 @@
 # 6   - Don't Send or Do Send Spaces
 # 7   - Parity Enable
 # 8   - Stop Bits (One/Two)
-# 
+#
 # Switch B:
 # 1   - Upper/Lower Shift
 # 2   - Typewriter Shift
@@ -12172,7 +12172,7 @@
 # 5-6 - Carriage Return Without / With Line Feed
 # 7   - Extended Mode
 # 8   - Suppress Keyboard Display
-# 
+#
 # Switch C:
 # 1   - End of line entry disabled/enabled
 # 2   - Conversational mode / (Local?) Mode
@@ -12182,7 +12182,7 @@
 # 6   - (50Hz?) / 60 Hz
 # 7   - Exit after level zero diagnostics
 # 8   - RS-232 interface
-# 
+#
 # Switch D:
 # 1   - Reverse Channel (yes / no)
 # 2   - Manual answer (no / yes)
@@ -12272,7 +12272,7 @@
 	:k5=\ERF:k6=\ERG:k7=\ERH:k8=\ERI:k9=\ERJ:k;=\ERK:le=\ED:\
 	:nd=\EC:sf=^J:st=\E1:up=\EA:
 # (pe7000m: this had
-# 	rmul=\E!\0, smul=\E!\040, 
+# 	rmul=\E!\0, smul=\E!\040,
 # which is probably wrong, it collides with kf0
 pe7000m|perkin elmer 7000 series monochrome monitor:\
 	:am:\
@@ -12292,8 +12292,8 @@
 # Sperry Univac has merged with Burroughs to form Unisys.
 #
 
-# This entry is for the Sperry UTS30 terminal running the TTY 
-# utility under control of CP/M Plus 1R1. The functionality 
+# This entry is for the Sperry UTS30 terminal running the TTY
+# utility under control of CP/M Plus 1R1. The functionality
 # provided is comparable to the DEC vt100.
 # (uts30: I added <rmam>/<smam> based on the init string -- esr)
 uts30|sperry uts30 with cp/m@1R1:\
@@ -12384,7 +12384,7 @@
 
 #### Tektronix (tek)
 #
-# Tektronix tubes are graphics terminals.  Most of them use modified 
+# Tektronix tubes are graphics terminals.  Most of them use modified
 # oscilloscope technology incorporating a long-persistence green phosphor,
 # and support vector graphics on a main screen with an attached "dialogue
 # area" for interactive text.
@@ -12428,14 +12428,14 @@
 # bottom of memory (try "cat /usr/dict/words"); ^S and ^Q typed
 # on keyboard don't work.  You have to hit BREAK twice to get
 # one break at any speed - this is a documented feature.
-# Can't use cursor motion because it's memory relative, and 
-# because it only works in the workspace, not the monitor.  
+# Can't use cursor motion because it's memory relative, and
+# because it only works in the workspace, not the monitor.
 # Same for home. Likewise, standout only works in the workspace.
-# 
-# :ce: was commented out since vi and rogue seem to work better 
+#
+# :ce: was commented out since vi and rogue seem to work better
 # simulating it with lots of spaces!
-# 
-# :al: and :AL: had 145ms of padding, but that slowed down vi's ^U 
+#
+# :al: and :AL: had 145ms of padding, but that slowed down vi's ^U
 # and didn't seem necessary.
 #
 tek4024|tek4025|tek4027|tektronix 4024/4025/4027:\
@@ -12645,14 +12645,14 @@
 # look good for screen editing.  In the dialog area, you can't move the cursor
 # off the bottom line.  Out of the dialog area, ^K moves it up, but there
 # is no way to scroll.
-# 
-# Note that there is a floppy for free from Tek that makes the 
+#
+# Note that there is a floppy for free from Tek that makes the
 # 4112 emulate the vt52 (use the vt52 termcap). There is also
 # an expected enhancement that will use ANSI standard sequences.
-# 
-# 4112 in non-dialog area pretending to scroll. It really wraps 
+#
+# 4112 in non-dialog area pretending to scroll. It really wraps
 # but vi is said to work (more or less) in this mode.
-# 
+#
 # 'vi' works reasonably well with this entry.
 #
 otek4112|o4112-nd|otek4113|otek4114|old tektronix 4110 series:\
@@ -12687,7 +12687,7 @@
 tek4113-34|tektronix 4113 color graphics with 34 line dialog area:\
 	:li#34:\
 	:is=\EKA1\ELLB2\ELV0\ELV1:tc=tek4113:
-# :ns: left off to allow vi visual mode. APL font (:as=\E^N:/:ae=\E^O:) not 
+# :ns: left off to allow vi visual mode. APL font (:as=\E^N:/:ae=\E^O:) not
 # supported here. :uc: is slow, but looks nice. Suggest setenv MORE -up .
 # :vb: needs enough delay to let you see the background color being toggled.
 tek4113-nd|tektronix 4113 color graphics with no dialog area:\
@@ -12770,9 +12770,9 @@
 	:te=\E[1;1H\E[0J\E[?6h\E[?1l:\
 	:ti=\E%\E!1\E[1;32r\E[?6l\E>:ue=\E[m:up=\E[A:us=\E[4m:
 # Some unknown person wrote:
-# I added the is string - straight Unix has ESC ; in the login 
-# string which sets a ct8500 into monitor mode (aka 4025 snoopy 
-# mode). The is string here cleans up a few things (but not 
+# I added the is string - straight Unix has ESC ; in the login
+# string which sets a ct8500 into monitor mode (aka 4025 snoopy
+# mode). The is string here cleans up a few things (but not
 # everything).
 ct8500|tektronix ct8500:\
 	:am:bw:da:db:\
@@ -12792,7 +12792,7 @@
 # Bold, dim, and standout are simulated by colors and thus not allowed
 # with colors.  The tektronix color table is mapped into the RGB color
 # table by setf/setb. All colors are reset to factory specifications by oc.
-# The <initc> cap uses RGB notation to define colors.  for arguments 1-3 the 
+# The <initc> cap uses RGB notation to define colors.  for arguments 1-3 the
 # interval (0-1000) is broken into 8 smaller sub-intervals (125).  Each sub-
 # interval then maps into pre-defined value.
 # (untranslatable capabilities removed to fit entry within 1023 bytes)
@@ -12963,7 +12963,7 @@
 
 #### Apple II
 #
-# Apple II firmware console first, then various 80-column cards and 
+# Apple II firmware console first, then various 80-column cards and
 # terminal emulators.  For two cents I'd toss all these in the UFO file
 # along with the 40-column apple entries.
 #
@@ -12971,7 +12971,7 @@
 # From: brsmith@umn-cs.cs.umn.edu (Brian R. Smith) via BRL
 #	'it#8' tells UNIX that you have tabs every 8 columns.  This is a
 #		function of TIC, not the firmware.
-#	The clear key on a IIgs will do something like clear-screen, 
+#	The clear key on a IIgs will do something like clear-screen,
 #		depending on what you're in.
 appleIIgs|appleIIe|appleIIc|Apple 80 column firmware interface:\
 	:am:bs:bw:eo:ms:\
@@ -13173,20 +13173,20 @@
 # line. Please note that non-ASCII characters don't work right in the
 # status line, since Terminal.app incorrectly interprets their Unicode
 # codepoints as MacRoman codepoints.
-# 
+#
 # * Renamed the AppKit Terminal.app entry from "Apple_Terminal" to
 #   "nsterm" to comply with the name length and case conventions and
 #   limitations of various software packages [notably Solaris terminfo
 #   and UNIX.] A single Apple_Terminal alias is retained for
 #   backwards-compatbility.
-# 
+#
 # * Added function key support (F1-F4). These only work in Terminal.app
 #   version 51, hopefully the capabilities won't cause problems for people
 #   using version 41.
-# 
+#
 # * Added "full color" (-c) entries which support the 16-color mode in
 #   version 51.
-# 
+#
 # * By default, version 51 uses UTF-8 encoding with broken altcharset
 #   support, so "ASCII" (-7) entries without altcharset support were
 #   added.
@@ -13719,7 +13719,7 @@
 	:l0=f10:le=\ED:me=\Eq:nd=\EC:nw=^M^J:r1=\Ez_\Eb@\EcA:\
 	:rc=\Ek:sc=\Ej:se=\Eq:sf=^J:so=\Ep:sr=\EI:ta=^I:te=:ti=\Ee:\
 	:up=\EA:ve=\Ee:vi=\Ef:
- 
+
 #### Commodore Business Machines
 #
 # Formerly located in West Chester, PA; went spectacularly bust in 1994
@@ -13840,16 +13840,16 @@
 #### Osborne
 #
 # Thu Jul  7 03:55:16 1983
-#	
-# As an aside, be careful; it may sound like an anomaly on the 
-# Osborne, but with the 80-column upgrade, it's too easy to 
+#
+# As an aside, be careful; it may sound like an anomaly on the
+# Osborne, but with the 80-column upgrade, it's too easy to
 # enter lines >80 columns!
-#	
+#
 # I've already had several comments...
-# The Osborne-1 with the 80-col option is capable of being 
-# 52, 80, or 104 characters wide; default to 80 for compatibility 
+# The Osborne-1 with the 80-col option is capable of being
+# 52, 80, or 104 characters wide; default to 80 for compatibility
 # with most systems.
-#	
+#
 # The tab is destructive on the Ozzie; make sure to 'stty -tabs'.
 osborne-w|osborne1-w|osborne I in 104-column mode:\
 	:ms:ul:xt:\
@@ -13886,7 +13886,7 @@
 # Memory-segmentation limits and a strong tendency to look like V7 long after
 # it was obsolete made all three pretty lame.  Venix croaked early.  Coherent
 # and Minix were ported to 32-bit Intel boxes, only to be run over by a
-# steamroller named `Linux' (which, to be fair, traces some lineage to Minix). 
+# steamroller named `Linux' (which, to be fair, traces some lineage to Minix).
 # Coherent's vendor, the Mark Williams Company, went belly-up in 1994.  There
 # are also, I'm told, Minix ports that ran on Amiga and Atari machines and
 # even as single processes under SunOS and the Macintosh OS.
@@ -13938,7 +13938,7 @@
 	:sr=\EI:ta=^I:up=\EA:
 
 # According to the Venix 1.1 manual, the PC console is similar
-# to a DEC vt52.  Differences seem to be (1) arrow keys send 
+# to a DEC vt52.  Differences seem to be (1) arrow keys send
 # different strings, (2) enhanced standout, (3) added insert/delete line.
 # Note in particular that it doesn't have automatic margins.
 # There are other keys (f1-f10, kpp, knp, kcbt, kich1, kdch1) but they
@@ -13955,11 +13955,11 @@
 #
 
 # The MAI Basic Four computer was obsolete at the end of the 1980s.
-# It may be used as a terminal by putting it in "line" mode as seen on 
+# It may be used as a terminal by putting it in "line" mode as seen on
 # one of the status lines.
-# Initialization is similar to CIT80. :is: will set ANSI mode for you.  
+# Initialization is similar to CIT80. :is: will set ANSI mode for you.
 # Hardware tabs set by :if: at 8-spacing.  Auto line wrap causes glitches so
-# wrap mode is reset by :vs:.  Using :sf:=\E[S caused errors so I 
+# wrap mode is reset by :vs:.  Using :sf:=\E[S caused errors so I
 # used \ED instead.
 # From: bf347@lafn.org (David Lawyer), 28 Jun 1997
 mai|basic4|MAI Basic Four in ansi mode:\
@@ -13979,7 +13979,7 @@
 #
 # On Sat, 7 Aug 1999, Torsten Jerzembeck <toje@nightingale.ms.sub.org> wrote:
 # The Basis 108 was a Apple II clone, manufactured by the "Basis
-# Mikrocomputer GmbH" in Munster, Germany (the company still exists today,  
+# Mikrocomputer GmbH" in Munster, Germany (the company still exists today,
 # about 1,5 km from where I live, but doesn't build own computers any
 # more). A Basis 108 featured a really heavy (cast aluminium?) case, was
 # equipped with one or two 5.25" disk drives, had a monochrome and colour
@@ -13999,7 +13999,7 @@
 megatek|pegasus workstation terminal emulator:\
 	:am:os:\
 	:co#83:li#60:
-# The Xerox 820 was a Z80 micro with a snazzy XEROX PARC-derived 
+# The Xerox 820 was a Z80 micro with a snazzy XEROX PARC-derived
 # interface (pre-Macintosh by several years) that went nowhere.
 xerox820|x820|Xerox 820:\
 	:am:\
@@ -14090,7 +14090,7 @@
 
 #### Bell Labs blit terminals
 #
-# These were AT&T's official entries.  The 5620 FAQ maintained by 
+# These were AT&T's official entries.  The 5620 FAQ maintained by
 # David Breneman <daveb@dgtl.com> has this to say:
 #
 #  Actually, in the beginning was the Jerq, and the Jerq was white with a
@@ -14149,17 +14149,17 @@
 # small screen (it had a 17" crisp beauty) and a real OS. They (Bolt
 # Beranek and Neuman) sold at most a few hundred of them to the real
 # world.  DOD may have bought more...
-# 
-
-# Entries for the BitGraph terminals.  The problem 
-# with scrolling in vi can only be fixed by getting BBN to put 
-# smarter scroll logic in the terminal or changing vi or padding 
+#
+
+# Entries for the BitGraph terminals.  The problem
+# with scrolling in vi can only be fixed by getting BBN to put
+# smarter scroll logic in the terminal or changing vi or padding
 # scrolls with about 500 ms delay.
-#	
-# I always thought the problem was related to the terminal 
-# counting newlines in its input buffer before scrolling and 
-# then moving the screen that much. Then vi comes along and 
-# paints lines in on the bottom line of the screen, so you get 
+#
+# I always thought the problem was related to the terminal
+# counting newlines in its input buffer before scrolling and
+# then moving the screen that much. Then vi comes along and
+# paints lines in on the bottom line of the screen, so you get
 # this big white gap.
 
 bitgraph|bg2.0nv|bg3.10nv|bbn bitgraph 2.0 or later (normal video):\
@@ -14302,17 +14302,17 @@
 #       Copyright (c) 1989 BULL SA
 #---------------------------------------------------------------------------
 #  This entry is used for terminals with vt320 emulation mode
-#  and following set-up : 
+#  and following set-up :
 #    8 bit ISO Latin Character Set (ISO 8859-1),
-#    7 bit Control Characters, 
-#    80 columns screen.    
+#    7 bit Control Characters,
+#    80 columns screen.
 #  Hereafter are some DEC vt terminals' commands. (valid on vt200 and 300)
 #  They are used in string capabilities with vt220-320 emulation mode.
 #  In the following DEC definitions, two kinds of terminfo databases are
 #    provided :
-#    1. the first with Command Sequence Introducer starting with escape 
+#    1. the first with Command Sequence Introducer starting with escape
 #       sequence in 7 bits characters ex. ESC [ : 2 chars. in 7-bit mode.
-#    2. the second with Command Sequence Introducer starting with escape 
+#    2. the second with Command Sequence Introducer starting with escape
 #       sequence in 8 bits characters ex. ESC [ : 1 char. 'CSI' =x9B.
 #	Soft Terminal Reset		esc [ ! p
 #	RIS (erases screen):		esc c
@@ -14347,11 +14347,11 @@
 #	RM DECAWM auto right margin:	esc [ ? 7 l
 #	SM DECARM auto repeat:		esc [ ? 8 h
 #	RM DECARM auto repeat:		esc [ ? 8 l
-#	DECSASD Select active main:	esc [ 0 $ } 
-#	DECSASD Select active status:	esc [ 1 $ } 
-#	DECSSDT Select status none:	esc [ 0 $ ~ 
-#	DECSSDT Select status indic.:	esc [ 1 $ ~ 
-#	DECSSDT Select status host-wr:	esc [ 2 $ ~ 
+#	DECSASD Select active main:	esc [ 0 $ }
+#	DECSASD Select active status:	esc [ 1 $ }
+#	DECSSDT Select status none:	esc [ 0 $ ~
+#	DECSSDT Select status indic.:	esc [ 1 $ ~
+#	DECSSDT Select status host-wr:	esc [ 2 $ ~
 #	SM DECTCEM Visible cursor:	esc [ ? 2 5 h
 #	RM DECTCEM Invisible cursor:	esc [ ? 2 5 l
 #	SM DECNCRM 7 bits NCR set:	esc [ ? 4 2 h
@@ -14407,10 +14407,10 @@
 	:rs=\E[?3h:vb=\E[?5l\E[?5h:tc=bq300:
 
 #  This entry is used for terminals with vt320 emulation mode
-#  and following set-up : 
+#  and following set-up :
 #    8 bit ISO Latin Character Set (ISO 8859-1),
 #    8 bit Control Characters, (CSI coded as x9B for ESC [)
-#    80 columns screen.    
+#    80 columns screen.
 #	Soft Terminal Reset		csi ! p
 #	RIS (erases screen):		esc c
 #	DECKPNM numeric keypad mode:	esc >
@@ -14444,11 +14444,11 @@
 #	RM DECAWM auto right margin:	csi ? 7 l
 #	SM DECARM auto repeat:		csi ? 8 h
 #	RM DECARM auto repeat:		csi ? 8 l
-#	DECSASD Select active main:	csi 0 $ } 
-#	DECSASD Select active status:	csi 1 $ } 
-#	DECSSDT Select status none:	csi 0 $ ~ 
-#	DECSSDT Select status indic.:	csi 1 $ ~ 
-#	DECSSDT Select status host-wr:	csi 2 $ ~ 
+#	DECSASD Select active main:	csi 0 $ }
+#	DECSASD Select active status:	csi 1 $ }
+#	DECSSDT Select status none:	csi 0 $ ~
+#	DECSSDT Select status indic.:	csi 1 $ ~
+#	DECSSDT Select status host-wr:	csi 2 $ ~
 #	SM DECTCEM Visible cursor:	csi ? 2 5 h
 #	RM DECTCEM Invisible cursor:	csi ? 2 5 l
 #	SM DECNCRM 7 bits NCR set:	csi ? 4 2 h
@@ -14498,10 +14498,10 @@
 	:rs=\233?3h:vb=\233?5l\233?5h:tc=bq300-8:
 
 #  This entry is used for terminals with vt320 emulation mode
-#  a 102 keys keyboard (PC scancode !) and following set-up : 
+#  a 102 keys keyboard (PC scancode !) and following set-up :
 #    8 bit ISO Latin Character Set (ISO 8859-1),
-#    7 bit Control Characters, 
-#    80 columns screen.    
+#    7 bit Control Characters,
+#    80 columns screen.
 bq300-pc|Questar 303 with PC keyboard ISO Latin 1 80 columns:\
 	:%0@:%1@:*6@:@0@:@7=\E[4~:F1=\E[29~:F2=\E[31~:F3@:F4@:F5@:F6@:\
 	:F7@:F8@:F9@:FA@:k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:\
@@ -14520,8 +14520,8 @@
 	:is=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\
 	:rs=\E[?3h:vb=\E[?5l\E[?5h:tc=bq300-pc:
 #    8 bit ISO Latin Character Set (ISO 8859-1),
-#    8 bit Control Characters, 
-#    80 columns screen.    
+#    8 bit Control Characters,
+#    80 columns screen.
 bq300-8-pc|Q306-8-pc|Questar 303 with PC keyboard in full 8 bits 80 columns:\
 	:%0@:%1@:*6@:@0@:@7=\2334~:F1=\23329~:F2=\23331~:F3@:F4@:F5@:\
 	:F6@:F7@:F8@:F9@:FA@:k1=\23317~:k2=\23318~:k3=\23319~:\
@@ -14629,13 +14629,13 @@
 #### Chromatics
 #
 
-# I have put the long strings in :ti:/:te:. Ti sets up a window 
-# that is smaller than the screen, and puts up a warning message 
-# outside the window. Te erases the warning message, puts the 
+# I have put the long strings in :ti:/:te:. Ti sets up a window
+# that is smaller than the screen, and puts up a warning message
+# outside the window. Te erases the warning message, puts the
 # window back to be the whole screen, and puts the cursor at just
-# below the small window. I defined :ve: and :vi: to really turn 
-# the cursor on and off, but I have taken this out since I don't 
-# like the cursor being turned off when vi exits.   
+# below the small window. I defined :ve: and :vi: to really turn
+# the cursor on and off, but I have taken this out since I don't
+# like the cursor being turned off when vi exits.
 cg7900|chromatics|chromatics 7900:\
 	:am:\
 	:co#80:li#40:\
@@ -14688,17 +14688,17 @@
 	:sf=^J:up=^Z:
 
 # From: Jan Willem Stumpel <jw.stumpel@inter.nl.net>, 11 May 1997
-# The Datapoint 8242 Workstation was sold at least between 1985 
-# and 1989. To make the terminal work with this entry, press 
-# CONTROL-INT-INT to take the terminal off-line, and type (opt). 
-# Set the options AUTO ROLL, ROLL DN, and ESC KBD on, and AUTO 
-# CR/LF off. Use control-shift-[] as escape key, control-I as tab, 
+# The Datapoint 8242 Workstation was sold at least between 1985
+# and 1989. To make the terminal work with this entry, press
+# CONTROL-INT-INT to take the terminal off-line, and type (opt).
+# Set the options AUTO ROLL, ROLL DN, and ESC KBD on, and AUTO
+# CR/LF off. Use control-shift-[] as escape key, control-I as tab,
 # shift-F1 to shift-F5 as F6 to F10 (unshifted F1 to F5 are in
 # fact unusable because the strings sent by the terminal conflict
 # with other keys).
 # The terminal is capable of displaying "box draw" characters.
-# For each graphic character you must send 2 ESC's (\E\E) followed 
-# by a control character as follows: 
+# For each graphic character you must send 2 ESC's (\E\E) followed
+# by a control character as follows:
 #         character        meaning
 #         =========        =======
 #         ctrl-E           top tee
@@ -14712,8 +14712,8 @@
 #         ctrl-M           bottom right corner
 #         ctrl-N           horizontal line
 #         ctrl-O           vertical line
-# Unfortunately this cannot be fitted into the termcap/terminfo 
-# description scheme. 
+# Unfortunately this cannot be fitted into the termcap/terminfo
+# description scheme.
 dp8242|datapoint 8242:\
 	:ms:\
 	:co#80:li#25:\
@@ -14732,7 +14732,7 @@
 #
 # These entries are DEC's official terminfos for its older terminals.
 # Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support
-# Engineering for more information.  Updated terminfos and termcaps 
+# Engineering for more information.  Updated terminfos and termcaps
 # are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps.
 #
 
@@ -14808,7 +14808,7 @@
 # \E[4g		clear vertical tab stops
 # \E>		disable alternate keypad mode (so it transmits numbers!)
 # \E[%i%p1%du	set tab stop at column %d (origin == 1)
-#		(Full syntax is \E[n;n;n;n;n;...;nu where each 'n' is 
+#		(Full syntax is \E[n;n;n;n;n;...;nu where each 'n' is
 #		a tab stop)
 #
 #       The dw3 does standout with wide characters.
@@ -14900,22 +14900,22 @@
 #
 # S401
 # 0-3 = baud rate as follows:
-# 
+#
 #         3       2       1       0
-#	---	---	---	--- 
+#	---	---	---	---
 #         0       0       1       1       300 baud
 #         0       1       0       1       1200 baud
 #         1       0       0       0       2400 baud
 #         1       0       1       0       4800 baud
 #         1       1       0       0       9600 baud
 #         1       1       0       1       19.2K baud
-# 
+#
 # 4 = parity (0 = no parity)
 # 5 = even parity (0 = odd parity)
 # 6 = stick parity (0 = normal parity)
 # 7 = full duplex (0 = half duplex)
-# 
-# S402 
+#
+# S402
 # 0 = block cursor (0 = underscore cursor)
 # 1 = no key click (0 = keyclick)
 # 2 = wrap at end of line (0 = no wrap)
@@ -14924,7 +14924,7 @@
 # 5 = ANSI mode (0 = VT52 mode)
 # 6 = keypad shifted (0 = keypad unshifted)
 # 7 = 50Hz refresh (1 = 60Hz refresh)
-# 
+#
 # Factory Default settings are as follows:
 #          7 6 5 4 3 2 1 0
 # S401     1 0 0 0 1 1 0 0
@@ -14948,14 +14948,14 @@
 	:ke=\Eu:ks=\Et:tc=h19-u:
 # (h19: merged in :ip: from BSDI hp19-e entry>;
 # also added empty <acsc> to suppress a tic warning --esr)
-# From: Tim Pierce <twp@skepsis.com>, 23 Feb 1998 
+# From: Tim Pierce <twp@skepsis.com>, 23 Feb 1998
 # Tim tells us that:
 # I have an old Zenith-19 terminal at home that still gets a lot of use.
 # This terminal suffers from the same famous insert-mode padding lossage
 # that has been acknowledged for the Z29 terminal.  Emacs is nearly
 # unusable on this box, since even a half-scroll up or down the window
 # causes flaming terminal death.
-#   
+#
 # On the Z19, the only way I have found around this problem is to remove
 # the :al: and :dl: entries entirely.  No amount of extra padding will
 # help (I have tried up to 20000).  Removing :al=\EL$: and :dl=\EM$:
@@ -14985,37 +14985,37 @@
 # it needs more padding. It especially loses if a program attempts
 # to put the Z29 into insert mode and insert text at 9600 baud. It
 # even loses worse if the program attempts to insert tabs at 9600
-# baud. Adding padding to text that is inserted loses because in 
+# baud. Adding padding to text that is inserted loses because in
 # order to make the Z29 not die, one must add so much padding that
-# whenever the program tries to use insert mode, the effective 
+# whenever the program tries to use insert mode, the effective
 # rate is about 110 baud.
-# 
-# What program would want to put the terminal into insert mode 
-# and shove stuff at it at 9600 baud you ask?  
-# 
-# Emacs. Emacs seems to want to do the mathematically optimal 
+#
+# What program would want to put the terminal into insert mode
+# and shove stuff at it at 9600 baud you ask?
+#
+# Emacs. Emacs seems to want to do the mathematically optimal
 # thing in doing a redisplay rather than the practical thing.
-# When it is about to output a line on top of a line that is 
-# already on the screen, instead of just killing to the end of 
-# the line and outputting the new line, it compares the old line 
-# and the new line and if there are any similarities, it 
-# constructs the new line by deleting the text on the old line 
+# When it is about to output a line on top of a line that is
+# already on the screen, instead of just killing to the end of
+# the line and outputting the new line, it compares the old line
+# and the new line and if there are any similarities, it
+# constructs the new line by deleting the text on the old line
 # on the terminal that is already there and then inserting new
-# text into the line to transform it into the new line that is 
+# text into the line to transform it into the new line that is
 # to be displayed. The Z29 does not react kindly to this.
-# 
+#
 # But don't cry for too long.... There is a solution. You can make
 # a termcap entry for the Z29 that says the Z29 has no insert mode.
-# Then Emacs cannot use it. "Oh, no, but now inserting into a 
+# Then Emacs cannot use it. "Oh, no, but now inserting into a
 # line will be really slow", you say. Well there is a sort of a
-# solution to that too. There is an insert character option on 
-# the Z29 that will insert one character. Unfortunately, it 
-# involves putting the terminal into ansi mode, inserting the 
-# character, and changing it back to H19 mode. All this takes 12 
-# characters. Pretty expensive to insert one character, but it 
-# works. Either Emacs doesn't try to use its inserting hack when 
-# it's only given an insert character ability or the Z29 doesn't 
-# require padding with this (the former is probably more likely, 
+# solution to that too. There is an insert character option on
+# the Z29 that will insert one character. Unfortunately, it
+# involves putting the terminal into ansi mode, inserting the
+# character, and changing it back to H19 mode. All this takes 12
+# characters. Pretty expensive to insert one character, but it
+# works. Either Emacs doesn't try to use its inserting hack when
+# it's only given an insert character ability or the Z29 doesn't
+# require padding with this (the former is probably more likely,
 # but I haven't checked it out).
 # (z29: added empty <acsc> to suppress a tic warning, merged in
 # status line capabilities from BRL entry --esr)
@@ -15113,9 +15113,9 @@
 
 #### IMS International (ims)
 #
-# There was a company called IMS International located in Carson City, 
+# There was a company called IMS International located in Carson City,
 # Nevada, that flourished from the mid-70s to mid-80s.  They made S-100
-# bus/Z80 hardware and a line of terminals called Ultimas.  
+# bus/Z80 hardware and a line of terminals called Ultimas.
 #
 
 # From: Erik Fair <fair@ucbarpa.berkeley.edu>  Sun Oct 27 07:21:05 1985
@@ -15153,7 +15153,7 @@
 	:bc=^U:bl=^G:cd=\E~k<10*>:ce=\E~K:cl=\014:cm=\EY%+ %+ :\
 	:cr=^M:do=^J:kd=^J:kl=^U:kr=^F:ku=^K:le=^H:nd=^F:sf=^J:ta=^I:\
 	:te=^L:ti=^L:up=^K:
-# (intertube: a Gould entry via BRL asserted smul=\E0@$<200/>, 
+# (intertube: a Gould entry via BRL asserted smul=\E0@$<200/>,
 # rmul=\E0A$<200/>; my guess is the highlight letter is bit-coded like an ADM,
 # and the reverse is actually true.  Try it. -- esr)
 intertube|intertec|Intertec InterTube:\
@@ -15182,12 +15182,12 @@
 #
 
 # The Graphos III was a color graphics terminal from Ithaca Intersystems.
-# These entries were written (originally in termcap syntax) by Brian Yandell 
-# <yandell@stat.wisc.edu> and Mike Meyer <mikem@stat.wisc.edu> at the 
+# These entries were written (originally in termcap syntax) by Brian Yandell
+# <yandell@stat.wisc.edu> and Mike Meyer <mikem@stat.wisc.edu> at the
 # University of Wisconsin.
 
-# (graphos: removed obsolete and syntactically incorrect :kn=4:, 
-# removed :if=/usr/share/tabset/init.graphos: and 
+# (graphos: removed obsolete and syntactically incorrect :kn=4:,
+# removed :if=/usr/share/tabset/init.graphos: and
 # <rf=/usr/share/tabset/init.graphos> no such file & no :st: -- esr)
 graphos|graphos III:\
 	:am:mi:\
@@ -15215,7 +15215,7 @@
 #	Vox: (617)-890-5796.
 #
 # However, if you call that number today you'll get an insurance company.
-# I have mail from "Michael Berman, V.P. Sales, Modgraph" dated 
+# I have mail from "Michael Berman, V.P. Sales, Modgraph" dated
 # 26 Feb 1997 that says:
 #
 # Modgraph GX-1000, replaced by GX-2000.  Both are out of production, have been
@@ -15266,7 +15266,7 @@
 	:us=\E[4m:vb=\E[?5h\E[0q\E[1;2q\E[?5l\E[0q\E[4;3q:
 
 #### Morrow Designs
-# 
+#
 # This was George Morrow's company.  They started in the late 1970s making
 # S100-bus machines.  They used to be reachable at:
 #
@@ -15277,7 +15277,7 @@
 # but they're long gone now (1995).
 #
 
-# The mt70 terminal was shipped with the Morrow MD-3 microcomputer. 
+# The mt70 terminal was shipped with the Morrow MD-3 microcomputer.
 # Jeff's specimen was dated June 1984.
 # From: Jeff Wieland <wieland@acn.purdue.edu> 24 Feb 1995
 mt70|mt-70|Morrow MD-70; native Morrow mode:\
@@ -15417,17 +15417,17 @@
 # consisted of a circle with a slightly smaller 15 degree (approx.)
 # wedge with rounded corners inside it.   The color was sort of
 # a metallic gold/yellow.
-# 
+#
 # If I had been more of a beer drinker it might have been obvious
 # to me, but it took a clue from their service department to make
 # me exclaim, "Of course!"   The circular object was the top of
 # a beer can (the old removable pop-top style) and "Soroc" was an
 # anagram for "Coors".
-# 
+#
 # I can just imagine the founders of the company sitting around
 # one evening, tossing back a few and trying to decide what to
 # call their new company and what to use for a logo.
-# 
+#
 
 # (soroc120: removed obsolete ":ma=^K^P^R^L^L :" -- esr)
 soroc120|iq120|soroc|soroc iq120:\
@@ -15444,7 +15444,7 @@
 
 #### Southwest Technical Products
 #
-# These guys made an early personal micro called the M6800.  
+# These guys made an early personal micro called the M6800.
 # The ct82 was probably its console terminal.
 #
 
@@ -15483,7 +15483,7 @@
 # CRT). It wasn't much different from the KTM-2 hardware-wise, but the
 # control and escape sequences are very different. The KTM-3 was always
 # real broken, at least according to the folks I've talked to about it.
-# 
+#
 # The padding in the entry is probably off--these terminals were very
 # slow (it takes like 100ms for the KTM-2 to clear the screen...) And
 # anyone with any sanity replaced the ROMs with something that provided
@@ -15491,7 +15491,7 @@
 # obviously very primitive... oh, you could get an upgraded ROM from
 # Synertek for some incredible amount of money, but what hacker with an
 # EPROM burner would do that? :)
-# 
+#
 # Sorry I don't have any contact info; I believe they were located in
 # Sunnyvale, and I'm fairly sure they are still manufacturing ICs
 # (they've gone to ASICs and FPGAs), but I doubt they're in the computer
@@ -15725,7 +15725,7 @@
 #
 
 # (zen30: removed obsolete :ma=^L ^R^L^K^P:.  This entry originally
-# had just :so:=\EG6 which I think means standout was supposed to be 
+# had just :so:=\EG6 which I think means standout was supposed to be
 # dim-reverse using ADM12-style attributes. ADM12 :us:/:ue: and
 # <invis> might work-- esr)
 zen30|z30|zentec 30:\
@@ -15761,7 +15761,7 @@
 
 #### Apollo consoles
 #
-# Apollo got bought by Hewlett-Packard.  The Apollo workstations are 
+# Apollo got bought by Hewlett-Packard.  The Apollo workstations are
 # labeled HP700s now.
 #
 
@@ -15844,7 +15844,7 @@
 # to force both magic cookie glitches off.  Once upon a time, I
 # used a Fortune myself, so I know the capabilities of the form ^A[a-z]\r are
 # function keys; thus the "Al" value for HM was certainly an error.  I renamed
-# EN/PD/PU/CO/CF/RT according to the XENIX/TC mappings, but not HM/DL/RF/RC.  
+# EN/PD/PU/CO/CF/RT according to the XENIX/TC mappings, but not HM/DL/RF/RC.
 # I think :rv: and :re: are start/end reverse video and :rg: is a nonexistent
 # "reverse-video-glitch" capability; I have put :rv: and :re: in with standard
 # names below.  I've removed obsolete ":nl=5^J:" as there is a :do: -- esr)
@@ -15890,7 +15890,7 @@
 #
 
 # CTRM terminal emulator
-# 1. underlining is not allowed with colors: first, is is simulated by 
+# 1. underlining is not allowed with colors: first, is is simulated by
 # black on white, second, it disables background color manipulations.
 # 2. BLINKING, REVERSE and BOLD are allowed with colors,
 # so we have to save their status in the static registers A, B and H
@@ -15898,7 +15898,7 @@
 # (because any color change turns off ALL attributes)
 # 3. :md: and :mr: sequences alternate modes,
 # rather then simply  entering them.  Thus we have to check the
-# static register B and H to determine the status, before sending the 
+# static register B and H to determine the status, before sending the
 # escape sequence.
 # 4. :me: now must set the status of all 3 register (A,B,H) to zero
 # and then reset colors
@@ -16022,7 +16022,7 @@
 # (diablo1640: removed :if=/usr/share/tabset/xerox1730:, no such file -- esr)
 diablo1640|diablo1730|diablo1740|diablo630|x1700|diablo|xerox|diablo 1640:\
 	:bl=^G:se=\E&:so=\EW:ue=\ER:us=\EE:tc=diablo1620:
-# (diablo1640-lm: removed :if=/usr/share/tabset/xerox1730-lm:, no such 
+# (diablo1640-lm: removed :if=/usr/share/tabset/xerox1730-lm:, no such
 # file -- esr)
 diablo1640-lm|diablo-lm|xerox-lm|diablo 1640 with indented left margin:\
 	:co#124:\
@@ -16031,7 +16031,7 @@
 	:tc=diablo1640-lm:
 # DTC 382 with VDU.  Has no :cd: so we fake it with :ce:.  Standout
 # :so=^P\s\002^PF: works but won't go away without dynamite :se=^P\s\0:.
-# The terminal has tabs, but I'm getting tired of fighting the braindamage. 
+# The terminal has tabs, but I'm getting tired of fighting the braindamage.
 # If no tab is set or the terminal's in a bad mood, it glitches the screen
 # around all of memory.  Note that return puts a blank ("a return character")
 # in the space the cursor was at, so we use ^P return (and thus ^P newline for
@@ -16089,7 +16089,7 @@
 
 #### Miscellaneous obsolete terminals, manufacturers unknown
 #
-# If you have any information about these (like, a manufacturer's name, 
+# If you have any information about these (like, a manufacturer's name,
 # and a date on the serial-number plate) please send it!
 
 cad68-3|cgc3|cad68 basic monitor transparent mode size 3 chars:\
@@ -16206,7 +16206,7 @@
 #
 # Kenneth Randell <kenr@datametrics.com> writes on 31 Dec 1998:
 # I had a couple of scopes (3221) like this once where I used to work, around
-# the 1987 time frame if memory serves me correctly.  These scopes were made  
+# the 1987 time frame if memory serves me correctly.  These scopes were made
 # by an outfit called LANPAR Technologies, and were meant to me DEC VT 220
 # compatible.  The 3220 was a plain text terminal like the VT-220, the 3221
 # was a like the VT-240 (monochrome with Regis + Sixel graphics), and the 3222
@@ -16262,18 +16262,18 @@
 # receive the document in due course.  Don't expect an email acknowledgement.
 #
 # Related standards include "X3.4-1977: American National Standard Code for
-# Information Interchange" (the ASCII standard) and "X3.41.1974: 
+# Information Interchange" (the ASCII standard) and "X3.41.1974:
 # Code-Extension Techniques for Use with the 7-Bit Coded Character Set of
 # American National Standard for Information Interchange."  I believe (but
 # am not certain) that these are effectively identical to ECMA-6 and ECMA-35
-# respectively. 
+# respectively.
 #
 
 #### VT100/ANSI/ECMA-48
 #
 # ANSI Standard (X3.64) Control Sequences for Video Terminals and Peripherals
 # and ECMA-48 Control Functions for Coded Character Sets.
-# 
+#
 # Much of the content of this comment is adapted from a table prepared by
 # Richard Shuford, based on a 1984 Byte article.  Terminfo correspondences,
 # discussion of some terminfo-related issues, and updates to capture ECMA-48
@@ -16444,13 +16444,13 @@
 # VPR  Vert. Position Relative   \E [ Pn e           1         FE     -   (R)
 # VT   Vertical Tabulation *     ^K                  -         FE     -
 # VTS  Vertical Tabulation Set   \E J                -         FE     -
-# 
+#
 # ---------------------------------------------------------------------------
 #
 # Notes:
 #
-# Some control characters are listed in the ECMA-48 standard without 
-# being assigned functions relevant to terminal control there (they 
+# Some control characters are listed in the ECMA-48 standard without
+# being assigned functions relevant to terminal control there (they
 # referred to other standards such as ISO 1745 or ECMA-35).  They are listed
 # here anyway for completeness.
 #
@@ -16468,11 +16468,11 @@
 #
 # (D) terminfo (nel) is usually \r\n rather than ANSI \EE.
 #
-# (E) ECMA-48 calls this "Active Position Report" but preserves the CPR 
+# (E) ECMA-48 calls this "Active Position Report" but preserves the CPR
 # abbreviation.
-# 
+#
 # (F) CTC parameter values: 0 = set char tab, 1 = set line tab, 2 = clear
-# char tab, 3 = clear line tab, 4 = clear all char tabs on current line, 
+# char tab, 3 = clear line tab, 4 = clear all char tabs on current line,
 # 5 = clear all char tabs, 6 = clear all line tabs.
 #
 # (G) CUP and HVP are identical in effect.  Some ANSI.SYS versions accept
@@ -16488,7 +16488,7 @@
 #
 # (J) ECMA calls ED "Erase In Page". EA/ED/EL parameters: 0 = clear to end,
 # 1 = clear from beginning, 2 = clear.
-# 
+#
 # (K) ECMA calls this "End of Guarded Area" but preserves the EPA abbreviation.
 #
 # (L) The GSM parameters are vertical and horizontal parameters to scale by.
@@ -16525,7 +16525,7 @@
 #
 # (S) MC parameters: 0 = start xfer to primary aux device, 1 = start xfer from
 # primary aux device, 2 = start xfer to secondary aux device, 3 = start xfer
-# from secondary aux device, 4 = stop relay to primary aux device, 5 = 
+# from secondary aux device, 4 = stop relay to primary aux device, 5 =
 # start relay to primary aux device, 6 = stop relay to secondary aux device,
 # 7 = start relay to secondary aux device.
 #
@@ -16537,13 +16537,13 @@
 #
 # (V) ECMA-48 calls this "Reverse Line Feed" but retains the RI abbreviation.
 #
-# (W) RM/SM modes are as follows: 1 = Guarder Area Transfer Mode (GATM), 
-# 2 = Keyboard Action Mode (KAM), 3 = Control Representation Mode (CRM), 
+# (W) RM/SM modes are as follows: 1 = Guarder Area Transfer Mode (GATM),
+# 2 = Keyboard Action Mode (KAM), 3 = Control Representation Mode (CRM),
 # 4 = Insertion Replacement Mode, 5 = Status Report Transfer Mode (SRTM),
 # 6 = Erasure Mode (ERM), 7 = Line Editing Mode (LEM), 8 = Bi-Directional
-# Support Mode (BDSM), 9 = Device Component Select Mode (DCSM), 
+# Support Mode (BDSM), 9 = Device Component Select Mode (DCSM),
 # 10 = Character Editing Mode (HEM), 11 = Positioning Unit Mode (PUM),
-# 12 = Send/Receive Mode, 13 = Format Effector Action Mode (FEAM), 
+# 12 = Send/Receive Mode, 13 = Format Effector Action Mode (FEAM),
 # 14 = Format Effector Transfer Mode (FETM), 15 = Multiple Area Transfer
 # Mode (MATM), 16 = Transfer Termination Mode, 17 = Selected Area Transfer
 # Mode, 18 = Tabulation Stop Mode, 19 = Editing Boundary Mode, 20 = Line Feed
@@ -16560,68 +16560,68 @@
 # abbreviation.
 #
 # ---------------------------------------------------------------------------
-# 
+#
 # Abbreviations:
 #
 # Intro  an Introducer of some kind of defined sequence; the normal 7-bit
 #        X3.64 Control Sequence Introducer is the two characters "Escape ["
-# 
+#
 # Delim  a Delimiter
-# 
+#
 # x/y    identifies a character by position in the ASCII table (column/row)
-# 
+#
 # eF     editor function (see explanation)
-# 
+#
 # FE     format effector (see explanation)
 #
 # F      is a Final character in
 #             an Escape sequence (F from 3/0 to 7/14 in the ASCII table)
 #             a control sequence (F from 4/0 to 7/14)
-# 
+#
 # Gs     is a graphic character appearing in strings (Gs ranges from
 #        2/0 to 7/14) in the ASCII table
-# 
+#
 # Ce     is a control represented as a single bit combination in the C1 set
 #        of controls in an 8-bit character set
-# 
+#
 # C0     the familiar set of 7-bit ASCII control characters
-# 
+#
 # C1     roughly, the set of control chars available only in 8-bit systems.
 #        This is too complicated to explain fully here, so read Jim Fleming's
 #        article in the February 1983 BYTE, especially pages 214 through 224.
-# 
+#
 # Fe     is a Final character of a 2-character Escape sequence that has an
 #        equivalent representation in an 8-bit environment as a Ce-type
 #        (Fe ranges from 4/0 to 5/15)
-# 
+#
 # Fs     is a Final character of a 2-character Escape sequence that is
 #        standardized internationally with identical representation in 7-bit
 #        and 8-bit environments and is independent of the currently
 #        designated C0 and C1 control sets (Fs ranges from 6/0 to 7/14)
-# 
+#
 # I      is an Intermediate character from 2/0 to 2/15 (inclusive) in the
 #        ASCII table
-# 
+#
 # P      is a parameter character from 3/0 to 3/15 (inclusive) in the ASCII
 #        table
-# 
+#
 # Pn     is a numeric parameter in a control sequence, a string of zero or
 #        more characters ranging from 3/0 to 3/9 in the ASCII table
-# 
+#
 # Ps     is a variable number of selective parameters in a control sequence
 #        with each selective parameter separated from the other by the code
 #        3/11 (which usually represents a semicolon); Ps ranges from
 #        3/0 to 3/9 and includes 3/11
 #
 # *      Not relevant to terminal control, listed for completeness only.
-# 
+#
 # Format Effectors versus Editor Functions
-# 
+#
 # A format effector specifies how following output is to be displayed.
 # An editor function allows you to modify the display.  Informally
 # format effectors may be destructive; format effectors should not be.
-# 
-# For instance, a format effector that moves the "active position" (the 
+#
+# For instance, a format effector that moves the "active position" (the
 # cursor or equivalent) one space to the left would be useful when you want to
 # create an overstrike, a compound character made of two standard characters
 # overlaid. Control-H, the Backspace character, is actually supposed to be a
@@ -16635,16 +16635,16 @@
 # return, linefeed, formfeed, etc., are defined as format effectors.
 #
 # NOTES ON THE DEC VT100 IMPLEMENTATION
-# 
+#
 # Control sequences implemented in the VT100 are as follows:
-# 
+#
 #      CPR, CUB, CUD, CUF, CUP, CUU, DA, DSR, ED, EL, HTS, HVP, IND,
 #      LNM, NEL, RI, RIS, RM, SGR, SM, TBC
-# 
+#
 # plus several private DEC commands.
-# 
+#
 # Erasing parts of the display (EL and ED) in the VT100 is performed thus:
-# 
+#
 #      Erase from cursor to end of line           Esc [ 0 K    or Esc [ K
 #      Erase from beginning of line to cursor     Esc [ 1 K
 #      Erase line containing cursor               Esc [ 2 K
@@ -16654,32 +16654,32 @@
 #
 # Some brain-damaged terminal/emulators respond to Esc [ J as if it were
 # Esc [ 2 J, but this is wrong; the default is 0.
-# 
+#
 # The VT100 responds to receiving the DA (Device Attributes) control
-# 
+#
 #      Esc [ c    (or Esc [ 0 c)
-# 
+#
 # by transmitting the sequence
-# 
+#
 #      Esc [ ? l ; Ps c
-# 
+#
 # where Ps is a character that describes installed options.
-# 
+#
 # The VT100's cursor location can be read with the DSR (Device Status
 # Report) control
-# 
+#
 #      Esc [ 6 n
-# 
+#
 # The VT100 reports by transmitting the CPR sequence
-# 
+#
 #      Esc [ Pl ; Pc R
-# 
+#
 # where Pl is the line number and Pc is the column number (in decimal).
-# 
+#
 # The specification for the DEC VT100 is document EK-VT100-UG-003.
 
 #### ANSI.SYS
-# 
+#
 # Here is a description of the color and attribute controls supported in the
 # the ANSI.SYS driver under MS-DOS.  Most console drivers and ANSI
 # terminal emulators for Intel boxes obey these.  They are a proper subset
@@ -16716,7 +16716,7 @@
 
 #### Intel Binary Compatibility Standard
 #
-# For comparison, here are the capabilities implied by the Intel Binary 
+# For comparison, here are the capabilities implied by the Intel Binary
 # Compatibility Standard for UNIX systems (Intel order number 468366-001).
 # These recommendations are optional.  IBCS2 allows the leading escape to
 # be either the 7-bit \E[ or 8-bit \0233 introducer, in accordance with
@@ -16779,7 +16779,7 @@
 #	CSI c   	(clear) clear screen
 #
 # The lack of any specification for attributes in SGR (among other things)
-# makes this a wretchedly weak standard. The table above is literally 
+# makes this a wretchedly weak standard. The table above is literally
 # everything iBSC2 has to say about terminal escape sequences; there is
 # no further discussion of their meaning or how to set the parameters
 # in these sequences at all.
@@ -16838,12 +16838,12 @@
 #
 # Finally, XENIX also used the following forms-drawing capabilities:
 #
-#	single	double  type             ASCII approximation 
+#	single	double  type             ASCII approximation
 #	------	------	-------------    -------------------
 #	GV	Gv	vertical line             |
 #	GH	Gv	horizontal line       -   _
 #	G1	G5	top right corner       _   |
-#	G2	G6	top left corner       | 
+#	G2	G6	top left corner       |
 #	G3	G7	bottom left corner         |_
 #	G4	G8	bottom right corner   _|
 #	GD	Gd	down-tick character        T
@@ -16892,7 +16892,7 @@
 # correspond to acsc chars, here is the mapping:
 #
 #	box1[0]  = ACS_ULCORNER
-#	box1[1]  = ACS_HLINE	
+#	box1[1]  = ACS_HLINE
 #	box1[2]  = ACS_URCORNER
 #	box1[3]  = ACS_VLINE
 #	box1[4]  = ACS_LRCORNER
@@ -16930,7 +16930,7 @@
 # project.
 #
 # This file contains all the capability information present in John Kunze's
-# last version of the termcap master file, except as noted in the change 
+# last version of the termcap master file, except as noted in the change
 # comments at end of file.  Some information about very ancient obsolete
 # capabilities has been moved to comments.  Some all-numeric names of older
 # terminals have been retired.
@@ -16998,7 +16998,7 @@
 #	* Replaced the translated BBN Bitgraph entries with purpose-built
 #	  ones from AT&T's SVr3.
 #	* Replaced the AT&T entries with AT&T's official terminfos.
-#	* Added teleray 16, vc415, cops10. 
+#	* Added teleray 16, vc415, cops10.
 #	* Merged in many individual capabilities from SCO terminfo files.
 # 9.4.3 (Mon Mar 13 02:37:53 EST 1995):
 #	* Typo fixes.
@@ -17022,7 +17022,7 @@
 # 9.4.7 (Tue Apr  4 11:27:11 EDT 1995)
 #	* Added apple (Videx card), adm1a, oadm31.
 #	* Fixed malformed ampex csr.
-#	* Fixed act4, cyb110; they had old-style prefix padding left in. 
+#	* Fixed act4, cyb110; they had old-style prefix padding left in.
 #	* Changed mandatory to advisory padding in many entries.
 #	* Replaced HP entries up to hpsub with purpose-built ones.
 #	* Blank rmir/smir/rmdc/smdc capabilities removed.
@@ -17052,7 +17052,7 @@
 #	* Comment fixes from David MacKenzie.
 #	* Added the new BSDI pc3 entry.
 # 9.5.2 (Tue Apr 25 17:27:52 EDT 1995)
-#	* A change in the tic -C logic now ensures that all entries in 
+#	* A change in the tic -C logic now ensures that all entries in
 #	  the termcap translation will fit in < 1024 bytes.
 #	* Added `bobcat' and `gator' HP consoles and the Nu machine entries
 #	  from GNU termcap file.  This merges in all their local information.
@@ -17103,7 +17103,7 @@
 #	* Added csr capability to linux entry.
 #	* Peter Wemm says the at386 hpa should be \E[%i%p1%dG, not \E[%p1%dG.
 #	* Added vt102-nsgr to cope with stupid IBM PC `VT100' emulators.
-#	* Some commented-out caps in long entries come back in, my code 
+#	* Some commented-out caps in long entries come back in, my code
 #	  for computing string-table lengths had a bug in it.
 #	* pcansi series modified to fit comm-program reality better.
 # 9.8.2 (Sat Sep  9 23:35:00 EDT 1995):
@@ -17140,7 +17140,7 @@
 #	* fixed cup in adm22 entry and parametrized strings in vt320-k3.
 #	* added it#8 to entries that used to have :pt: -- tvi912, vi200,
 #	  ampex80,
-#	* Translate all home=\E[;H capabilities to home=\E[H, they're 
+#	* Translate all home=\E[;H capabilities to home=\E[H, they're
 #	  equivalent.
 #	* Translate \E[0m -> \E[m in [rs]mso, [rs]mul, and init strings of
 #	  vt100 and ANSI-like terminals.
@@ -17149,7 +17149,7 @@
 #	  does this now, too.
 #	* fviewpoint is gone, it duplicated screwpoint.
 #	* Added hp2627, graphos, graphos-30, hpex, ibmega, ibm8514, ibm8514-c,
-#	  ibmvga, ibmvga-c, minix, mm340, mt4520-rv, screen2, screen3, 
+#	  ibmvga, ibmvga-c, minix, mm340, mt4520-rv, screen2, screen3,
 #	  versaterm, vi500, vsc, vt131, vt340, vt400 entries from UW.
 #	  The UW vi50 replaces the old one, which becomes vi50adm,
 #	* No more embedded commas in name fields.
@@ -17174,7 +17174,7 @@
 #	* Hand-translate more XENIX capabilities.
 #	* Added hpterm entry for HP's X terminal emulator.
 #	* Added aixterm entries.
-#	* Shortened four names so everything fits in 14 chars.  
+#	* Shortened four names so everything fits in 14 chars.
 #
 # 9.11.0 (Thu Nov  2 17:29:35 EST 1995):
 #	* Added ibcs2 entry and info on iBCS2 standard.
@@ -17198,23 +17198,23 @@
 #	* Exiled some utterly unidentifiable custom and homebrew types to the
 #	  UFO file; also, obsolete small-screen hardware; also, entries which
 #	  look flat-out incorrect, garbled, or redundant.  These include the
-#	  following entries: carlock, cdc456tst, microkit, qdss, ramtek, tec, 
+#	  following entries: carlock, cdc456tst, microkit, qdss, ramtek, tec,
 #	  tec400, tec500, ubell, wind, wind16, wind40, wind50, plasma, agile,
 #	  apple, bch, daleblit, nucterm, ttywilliams, nuterminal, nu24, bnu,
-#	  fnu, nunix-30, nunix-61, exidy, ex3000, sexidy, pc52, sanyo55, 
-#	  yterm10, yterm11, yterm10nat, aed, aed-ucb, compucolor, compucolor2, 
-#	  vic20, dg1, act5s, netx, smartvid, smarterm, sol, sol2, dt200, 
-#	  trs80, trs100, trs200, trs600, xitex, rsvidtx, vid, att2300-x40, 
-#	  att2350-x40, att4410-nfk, att5410-ns, otty5410, att5425-nl-w, 
-#	  tty5425-fk, tty5425-w-fk, cita, c108-na, c108-rv-na, c100-rv-na, 
-#	  c108-na-acs, c108-rv-na-acs, ims950-ns, infotonKAS, ncr7900i-na, 
-#	  regent60na, scanset-n, tvi921-g, tvi925n, tvi925vbn, tvi925vb, 
-#	  vc404-na, vc404-s-na, vt420nam, vt420f-nam, vt420pc-nam, vt510nam, 
+#	  fnu, nunix-30, nunix-61, exidy, ex3000, sexidy, pc52, sanyo55,
+#	  yterm10, yterm11, yterm10nat, aed, aed-ucb, compucolor, compucolor2,
+#	  vic20, dg1, act5s, netx, smartvid, smarterm, sol, sol2, dt200,
+#	  trs80, trs100, trs200, trs600, xitex, rsvidtx, vid, att2300-x40,
+#	  att2350-x40, att4410-nfk, att5410-ns, otty5410, att5425-nl-w,
+#	  tty5425-fk, tty5425-w-fk, cita, c108-na, c108-rv-na, c100-rv-na,
+#	  c108-na-acs, c108-rv-na-acs, ims950-ns, infotonKAS, ncr7900i-na,
+#	  regent60na, scanset-n, tvi921-g, tvi925n, tvi925vbn, tvi925vb,
+#	  vc404-na, vc404-s-na, vt420nam, vt420f-nam, vt420pc-nam, vt510nam,
 #	  vt510pc-nam, vt520nam, vt525nam, xterm25, xterm50, xterm65, xterms.
 #	* Corrected pcvt25h as suggested by Brian C. Grayson
 #	  <bgrayson@pine.ece.utexas.edu>.
 # 9.11.3 (Thu Nov  9 12:14:40 EST 1995):
-#	* Added kspd=\E[P, kcbt=\E[Z, to linux entry, changed kbs back to ^H. 
+#	* Added kspd=\E[P, kcbt=\E[Z, to linux entry, changed kbs back to ^H.
 #	* Added kent=\EOM to xterm entry.
 #
 # 9.11.4 (Fri Nov 10 08:31:35 EST 1995):
@@ -17234,13 +17234,13 @@
 #	* Improved iris-ansi and sun entries.
 #	* More flash string improvements.
 #	* Corrected wy160 & wy160 as suggested by Robert Dunn
-#	* Added dim to at386.  
+#	* Added dim to at386.
 #	* Reconciled pc3 and ibmpc3 with the BSDI termcap file.  Keith says
 #	  he's ready to start using the termcap generated from this one.
 #	* Added vt102-w, vt220-w, xterm-bold, wyse-vp, wy75ap, att4424m,
 #	  ln03, lno3-w, h19-g, z29a*, qdss.  Made vt200 an alias of vt220.
 #	* Improved hpterm, apollo consoles, fos, qvt101, tvi924. tvi925,
-#	  att610, att620, att630, 
+#	  att610, att620, att630,
 #	* Changed hazeltine name prefix from h to hz.
 #	* Sent t500 to the UFI file.
 #	* I think we've sucked all the juice out of BSDI's termcap file now.
@@ -17305,7 +17305,7 @@
 #	* Sun console entry correction from J.T. Conklin.
 #	* Changed all DEC VT300 and up terminals to use VT300 tab set
 # 9.13.7 (Mon Jul  8 20:14:32 EDT 1996):
-#	* Added smul to linux entry (we never noticed it was missing 
+#	* Added smul to linux entry (we never noticed it was missing
 #	  because of sgr!).
 #	* Added rmln to hp+labels (deduced from other HP entries).
 #	* Added vt100 acsc capability to vt220, vt340, vt400, d800, dt80-sas,
@@ -17318,7 +17318,7 @@
 #	  adm12, adm20, adm21, adm22, adm31, adm36, adm42, pt100, pt200,
 #	  qvt101, tvi910, tvi921, tvi92B, tvi925, tvi950, tvi970, wy30-mc,
 #	  wy50-mc, wy100, wyse-vp, ampex232, regent100, viewpoint, vp90,
-#	  adds980, cit101, cit500, contel300, cs10, dm80, falco, falco-p, 
+#	  adds980, cit101, cit500, contel300, cs10, dm80, falco, falco-p,
 #	  f1720a, go140, sb1, superbeeic, microb, ibm8512, kt7, ergo4000,
 #	  owl, uts30, dmterm, dt100, dt100, dt110, appleII, apple-videx,
 #	  lisa, trsII, atari, st52, pc-coherent, basis, m2-man, bg2.0, bg1.25,
@@ -17335,7 +17335,7 @@
 #	* Aha! The BRL terminals file told us what the Iris extensions mean.
 #	* Added, from the BRL termcap file: rt6221, rt6221-w, northstar,
 #	  commodore, cdc721-esc, excel62, osexec.  Replaced from the BRL file:
-#	  cit500, adm11. 
+#	  cit500, adm11.
 # 9.13.9 (Mon Jul 15 00:32:51 EDT 1996):
 #	* Added, from the BRL termcap file: cdc721, cdc721l, cdc752, cdc756,
 #	  aws, awsc, zentec8001, modgraph48, rca vp3301/vp3501, ex155.
@@ -17362,7 +17362,7 @@
 #	* corrected pairs#8 typo in dtterm entry.
 #	* added tvi9065.
 # 9.13.15 (Sun Sep 15 02:47:05 EDT 1996):
-#	* updated xterm entry to cover 3.1.2E's new features.  
+#	* updated xterm entry to cover 3.1.2E's new features.
 # 9.13.16 (Tue Sep 24 12:47:43 EDT 1996):
 #	* Added new minix entry
 #	* Removed aliases of the form ^[0-9]* for obsolete terminals.
--- a/etc/vipcard.tex	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/vipcard.tex	Tue Feb 04 14:56:31 2003 +0000
@@ -87,7 +87,7 @@
 
 \def\ncolumns{\the\columnsperpage}
 
-\message{[\ncolumns\space 
+\message{[\ncolumns\space
   column\if 1\ncolumns\else s\fi\space per page]}
 
 \def\scaledmag#1{ scaled \magstep #1}
@@ -172,7 +172,7 @@
   \def\bye{\par\vfill\supereject
     \if a\abc \else\null\vfill\eject\fi
     \if a\abc \else\null\vfill\eject\fi
-    \end}  
+    \end}
 \fi
 
 % we won't be using math mode much, so redefine some of the characters
--- a/etc/viperCard.tex	Tue Feb 04 13:30:45 2003 +0000
+++ b/etc/viperCard.tex	Tue Feb 04 14:56:31 2003 +0000
@@ -95,7 +95,7 @@
 
 \def\ncolumns{\the\columnsperpage}
 
-\message{[\ncolumns\space 
+\message{[\ncolumns\space
   column\if 1\ncolumns\else s\fi\space per page]}
 
 \def\scaledmag#1{ scaled \magstep #1}
@@ -180,7 +180,7 @@
   \def\bye{\par\vfill\supereject
     \if a\abc \else\null\vfill\eject\fi
     \if a\abc \else\null\vfill\eject\fi
-    \end}  
+    \end}
 \fi
 
 % we won't be using math mode much, so redefine some of the characters
@@ -279,7 +279,7 @@
 
 \section{Viper States}
 
-Viper has four states: {\it emacs state}, {\it vi state}, {\it insert state}, 
+Viper has four states: {\it emacs state}, {\it vi state}, {\it insert state},
 {\it replace state}.
 Mode line tells you which state you are in.
 In emacs state you can do all the normal GNU Emacs editing.
@@ -668,7 +668,7 @@
 
 \section{Ex Commands}
 
-Avoid Ex text manipulation commands except substitute. 
+Avoid Ex text manipulation commands except substitute.
 There are better VI equivalents
 for all of them. Also note that all Ex commands expand \% to
 current file name. To include a \% in the command, escape it with a $\backslash$.
--- a/install-sh	Tue Feb 04 13:30:45 2003 +0000
+++ b/install-sh	Tue Feb 04 14:56:31 2003 +0000
@@ -115,7 +115,7 @@
 if [ x"$dir_arg" != x ]; then
 	dst=$src
 	src=""
-	
+
 	if [ -d $dst ]; then
 		instcmd=:
 	else
@@ -124,7 +124,7 @@
 else
 
 # Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad 
+# might cause directories to be created, which would be especially bad
 # if $src (and thus $dsttmp) contains '*'.
 
 	if [ -f $src -o -d $src ]
@@ -134,7 +134,7 @@
 		echo "install:  $src does not exist"
 		exit 1
 	fi
-	
+
 	if [ x"$dst" = x ]
 	then
 		echo "install:	no destination specified"
@@ -162,7 +162,7 @@
 
 # Skip lots of stat calls in the usual case.
 if [ ! -d "$dstdir" ]; then
-defaultIFS='	
+defaultIFS='
 '
 IFS="${IFS-${defaultIFS}}"
 
@@ -201,17 +201,17 @@
 
 # If we're going to rename the final executable, determine the name now.
 
-	if [ x"$transformarg" = x ] 
+	if [ x"$transformarg" = x ]
 	then
 		dstfile=`basename $dst`
 	else
-		dstfile=`basename $dst $transformbasename | 
+		dstfile=`basename $dst $transformbasename |
 			sed $transformarg`$transformbasename
 	fi
 
 # don't allow the sed command to completely eliminate the filename
 
-	if [ x"$dstfile" = x ] 
+	if [ x"$dstfile" = x ]
 	then
 		dstfile=`basename $dst`
 	else
@@ -242,7 +242,7 @@
 # Now rename the file to the real destination.
 
 	$doit $rmcmd -f $dstdir/$dstfile &&
-	$doit $mvcmd $dsttmp $dstdir/$dstfile 
+	$doit $mvcmd $dsttmp $dstdir/$dstfile
 
 fi &&
 
--- a/leim/ChangeLog	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/ChangeLog	Tue Feb 04 14:56:31 2003 +0000
@@ -75,7 +75,7 @@
 
 	* quail/vntelex.el: Use proper charset.
 
-2002-04-22  Koaunghi Un <koaunghi@ling.cnu.ac.kr>
+2002-04-22  Koaunghi Un  <koaunghi@ling.cnu.ac.kr>
 
 	* quail/hanja.el ("Od"): Remove rule.
 
@@ -189,7 +189,7 @@
 
 	* makefile.nt (INDIAN): Likewise.
 
-2001-11-21  KAWABATA, Taichi <batta@beige.ocn.ne.jp>
+2001-11-21  KAWABATA, Taichi  <batta@beige.ocn.ne.jp>
 
 	* quail/devanagari.el: Renamed to indian.el.
 
@@ -680,7 +680,7 @@
 	* quail/tibetan.el: Change all tibetan-1-column characters to
 	tibetan.  Quail map for "tibetan-wylie" fixed.
 
-2000-03-31  Wlodzimierz Bzyl <matwb@monika.univ.gda.pl>
+2000-03-31  Wlodzimierz Bzyl  <matwb@monika.univ.gda.pl>
 
 	* quail/latin-pre.el ("polish-slash"): New input method.
 
@@ -726,7 +726,7 @@
 
 	* makefile.nt: New file.
 
-1999-10-26  Gerd Moellmann <gerd@gnu.org>
+1999-10-26  Gerd Moellmann  <gerd@gnu.org>
 
 	* Makefile.noleim: New.
 
@@ -958,7 +958,7 @@
 	* Makefile.in (${TIT}): To byte-compile quail packages, use just
 	built quail.
 
-1997-12-09  Koaunghi Un <koanughi.un@zdv.uni-tuebingen.de>
+1997-12-09  Koaunghi Un  <koanughi.un@zdv.uni-tuebingen.de>
 
 	* quail/hanja3.el: New file.
 
--- a/leim/Makefile.in	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/Makefile.in	Tue Feb 04 14:56:31 2003 +0000
@@ -78,7 +78,7 @@
 
 CHINESE-GB=${TIT-GB} ${NON-TIT-GB}
 
-CHINESE-BIG5=${TIT-BIG5} ${NON-TIT-BIG5} 
+CHINESE-BIG5=${TIT-BIG5} ${NON-TIT-BIG5}
 
 JAPANESE=${srcdir}/quail/japanese.elc ${srcdir}/ja-dic/ja-dic.elc
 
--- a/leim/makefile.nt	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/makefile.nt	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
-# 
+#
 # Sets up the system dependent macros.
 #
 !include ..\nt\makefile.def
@@ -74,7 +74,7 @@
 
 CHINESE_GB=$(TIT_GB) $(NON_TIT_GB)
 
-CHINESE_BIG5=$(TIT_BIG5) $(NON_TIT_BIG5) 
+CHINESE_BIG5=$(TIT_BIG5) $(NON_TIT_BIG5)
 
 JAPANESE=$(srcdir)/quail/japanese.elc $(srcdir)/ja-dic/ja-dic.elc
 
--- a/leim/makefile.w32-in	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/makefile.w32-in	Tue Feb 04 14:56:31 2003 +0000
@@ -72,7 +72,7 @@
 
 CHINESE_GB=$(TIT_GB) $(NON_TIT_GB)
 
-CHINESE_BIG5=$(TIT_BIG5) $(NON_TIT_BIG5) 
+CHINESE_BIG5=$(TIT_BIG5) $(NON_TIT_BIG5)
 
 JAPANESE=$(srcdir)/quail/japanese.elc $(srcdir)/ja-dic/ja-dic.elc
 
--- a/leim/quail/cyril-jis.el	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/quail/cyril-jis.el	Tue Feb 04 14:56:31 2003 +0000
@@ -88,7 +88,7 @@
  ("," ?$B'R(B)
  ("." ?$B'p(B)
  ("/" ?$B!?(B)
- 
+
  ("!" ?$B!*(B)
  ("@" ?$B!w(B)
  ("#" ?$B!t(B)
--- a/leim/quail/cyrillic.el	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/quail/cyrillic.el	Tue Feb 04 14:56:31 2003 +0000
@@ -104,7 +104,7 @@
  ("," ?,LQ(B)
  ("." ?,Ln(B)
  ("/" ?/)
- 
+
  ("!" ?!)
  ("@" ?\")
  ("#" ?')
@@ -266,7 +266,7 @@
  (">" ?,LN(B)
  ("?" ?,))
 
-;; Mikhailian couldn't check the next two.  
+;; Mikhailian couldn't check the next two.
 
 ;; This seems to have the same layout for letters as mk in XKB, but at
 ;; least the top row is different.
@@ -328,7 +328,7 @@
  ("," ?,)
  ("." ?.)
  ("/" ?-)
- 
+
  ("!" ?!)
  ("@" ?\")
  ("#" ?#)
@@ -437,7 +437,7 @@
  ("," ?,)
  ("." ?.)
  ("/" ?-)
- 
+
  ("!" ?!)
  ("@" ?\")
  ("#" ?#)
@@ -545,7 +545,7 @@
 ;;  ("n" ?,L](B)
 ;;  ("m" ?,L\(B)
 ;;  ("/" ?-)
- 
+
 ;;  ("@" ?\")
 ;;  ("^" ?&)
 ;;  ("&" ?')
@@ -605,7 +605,7 @@
 ;; happily with this little change.  [See "ukrainian-computer" below.]
 
 ;; Fixme: add GHE_WITH_UPTURN.
-(quail-define-package 
+(quail-define-package
  "cyrillic-ukrainian" "Ukrainian" ",L6(BU" nil
  ",L$'5@B7(B-,L&.(B UKRAINIAN (ISO 8859-5 encoding)
 
@@ -665,7 +665,7 @@
  ("," ?,)
  ("." ?.)
  ("/" ?-)
- 
+
  ("!" ?!)
  ("@" ?\")
  ("#" ?#)
@@ -826,7 +826,7 @@
 ;; Alexander Mikhailian says this is of limited use.  It has been
 ;; popular among emigrants or foreigners who have to type in Cyrillic
 ;; (mostly Russian) from time to time.
-(quail-define-package 
+(quail-define-package
  "cyrillic-yawerty" "Cyrillic" ",L6O(B" nil
  ",LO25@BK(B Roman transcription (ISO 8859-5 encoding)
 
@@ -897,7 +897,7 @@
  ("," ?,)
  ("." ?.)
  ("/" ?/)
- 
+
  ("!" ?!)
  ("@" ?,Lq(B)
  ("#" ?,Lj(B)
@@ -945,7 +945,7 @@
  ("<" ?<)
  (">" ?>)
  ("?" ??)
- 
+
  ("/q" ?,Lr(B)
  ("/w" ?,Ls(B)
  ("/e" ?,Lt(B)
@@ -959,7 +959,7 @@
  ("/a" ?,L|(B)
  ("/s" ?,L~(B)
  ("/d" ?,L(B)
- 
+
  ("/Q" ?,L"(B)
  ("/W" ?,L#(B)
  ("/E" ?,L$(B)
@@ -1005,53 +1005,53 @@
 Russian alphabet: a b v=w g d e yo=jo zh z i j=j' k l m n o p r s t
 u f h=kh=x c ch sh shch=sj=/s=/sht ~ y ' e' yu=ju ya=ja=q
 
-Also included are Ukrainian ,Lt(B (YE) = \"/e\" and ,Lw(B (YI) = \"yi\", 
+Also included are Ukrainian ,Lt(B (YE) = \"/e\" and ,Lw(B (YI) = \"yi\",
 Belarusian ,L~(B (SHORT U) = \"u'\",
-Serbo-Croatian ,Lr(B (DJE) = \"/d\", ,L{(B (CHJE)= \"/ch\", 
+Serbo-Croatian ,Lr(B (DJE) = \"/d\", ,L{(B (CHJE)= \"/ch\",
 Macedonian ,Ls(B (GJE) = \"/g\", ,Lu(B (DZE) = \"/s\", ,L|(B (KJE) = \"/k\",
-cyrillic ,Lv(B (I DECIMAL) = \"/i\", ,Lx(B (JE) = \"/j\", 
+cyrillic ,Lv(B (I DECIMAL) = \"/i\", ,Lx(B (JE) = \"/j\",
 ,Ly(B (LJE) = \"/l\", ,Lz(B (NJE) = \"/n\" and ,L(B (DZE) =\"/z\"."
  nil t t t t nil nil nil nil nil t)
 
 (quail-define-rules
- ("a" ?,LP(B)("b" ?,LQ(B) ("v" ?,LR(B) ("w" ?,LR(B) ("g" ?,LS(B) ("d" ?,LT(B) 
- ("e" ?,LU(B) ("je" ?,LU(B) 
+ ("a" ?,LP(B)("b" ?,LQ(B) ("v" ?,LR(B) ("w" ?,LR(B) ("g" ?,LS(B) ("d" ?,LT(B)
+ ("e" ?,LU(B) ("je" ?,LU(B)
  ("yo" ?,Lq(B) ("jo" ?,Lq(B)
- ("zh" ?,LV(B) ("z" ?,LW(B) ("i" ?,LX(B) 
+ ("zh" ?,LV(B) ("z" ?,LW(B) ("i" ?,LX(B)
  ("j" ?,LY(B) ("j'" ?,LY(B) ("j`" ?,LY(B) ("k" ?,LZ(B) ("l" ?,L[(B)
  ("m" ?,L\(B) ("n" ?,L](B) ("o" ?,L^(B) ("p" ?,L_(B) ("r" ?,L`(B) ("s" ?,La(B) ("t" ?,Lb(B) ("u" ?,Lc(B)
  ("f" ?,Ld(B) ("x" ?,Le(B) ("h" ?,Le(B) ("kh" ?,Le(B)
  ("c" ?,Lf(B) ("ch" ?,Lg(B)
- ("sh" ?,Lh(B) 
- ("shch" ?,Li(B) ("sj" ?,Li(B) 
- ("/sht" ?,Li(B) ("/t" ?,Li(B) 
- ("~" ?,Lj(B) ("y" ?,Lk(B) ("'" ?,Ll(B) ("`" ?,Ll(B) 
- ("e'" ?,Lm(B) ("e`" ?,Lm(B) ("@" ?,Lm(B) 
- ("yu" ?,Ln(B) ("ju" ?,Ln(B) 
+ ("sh" ?,Lh(B)
+ ("shch" ?,Li(B) ("sj" ?,Li(B)
+ ("/sht" ?,Li(B) ("/t" ?,Li(B)
+ ("~" ?,Lj(B) ("y" ?,Lk(B) ("'" ?,Ll(B) ("`" ?,Ll(B)
+ ("e'" ?,Lm(B) ("e`" ?,Lm(B) ("@" ?,Lm(B)
+ ("yu" ?,Ln(B) ("ju" ?,Ln(B)
  ("ya" ?,Lo(B) ("ja" ?,Lo(B) ("q" ?,Lo(B)
 
- ("A" ?,L0(B) ("B" ?,L1(B) ("V" ?,L2(B) ("W" ?,L2(B) ("G" ?,L3(B) ("D" ?,L4(B) 
+ ("A" ?,L0(B) ("B" ?,L1(B) ("V" ?,L2(B) ("W" ?,L2(B) ("G" ?,L3(B) ("D" ?,L4(B)
  ("E" ?,L5(B) ("Je" ?,L5(B) ("JE" ?,L5(B)
- ("Yo" ?,L!(B) ("YO" ?,L!(B) ("Jo" ?,L!(B) ("JO" ?,L!(B) 
- ("Zh" ?,L6(B) ("ZH" ?,L6(B) ("Z" ?,L7(B) ("I" ?,L8(B) 
+ ("Yo" ?,L!(B) ("YO" ?,L!(B) ("Jo" ?,L!(B) ("JO" ?,L!(B)
+ ("Zh" ?,L6(B) ("ZH" ?,L6(B) ("Z" ?,L7(B) ("I" ?,L8(B)
  ("J" ?,L9(B) ("J'" ?,L9(B) ("J`" ?,L9(B) ("K" ?,L:(B) ("L" ?,L;(B)
  ("M" ?,L<(B) ("N" ?,L=(B) ("O" ?,L>(B) ("P" ?,L?(B) ("R" ?,L@(B) ("S" ?,LA(B) ("T" ?,LB(B) ("U" ?,LC(B)
  ("F" ?,LD(B) ("X" ?,LE(B) ("H" ?,LE(B) ("Kh" ?,LE(B) ("KH" ?,LE(B)
- ("C" ?,LF(B) ("Ch" ?,LG(B) ("CH" ?,LG(B) 
- ("Sh" ?,LH(B) ("SH" ?,LH(B) 
- ("Shch" ?,LI(B) ("SHCH" ?,LI(B) ("Sj" ?,LI(B) ("SJ" ?,LI(B) 
- ("/Sht" ?,LI(B) ("/SHT" ?,LI(B) ("/T" ?,LI(B) 
- ("~~" ",LJ(B") ("Y" ?,LK(B) ("''" ",LL(B") ("E'" ?,LM(B) ("E`" ?,LM(B) 
- ("Yu" ?,LN(B) ("YU" ?,LN(B) ("Ju" ?,LN(B) ("JU" ?,LN(B) 
+ ("C" ?,LF(B) ("Ch" ?,LG(B) ("CH" ?,LG(B)
+ ("Sh" ?,LH(B) ("SH" ?,LH(B)
+ ("Shch" ?,LI(B) ("SHCH" ?,LI(B) ("Sj" ?,LI(B) ("SJ" ?,LI(B)
+ ("/Sht" ?,LI(B) ("/SHT" ?,LI(B) ("/T" ?,LI(B)
+ ("~~" ",LJ(B") ("Y" ?,LK(B) ("''" ",LL(B") ("E'" ?,LM(B) ("E`" ?,LM(B)
+ ("Yu" ?,LN(B) ("YU" ?,LN(B) ("Ju" ?,LN(B) ("JU" ?,LN(B)
  ("Ya" ?,LO(B) ("YA" ?,LO(B) ("Ja" ?,LO(B) ("JA" ?,LO(B) ("Q" ?,LO(B)
 
  ("/e" ?,Lt(B) ("yi" ?,Lw(B) ("u'" ?,L~(B)
  ("/d" ?,Lr(B) ("/ch" ?,L{(B)
  ("/g" ?,Ls(B) ("/s" ?,Lu(B) ("/k" ?,L|(B)
  ("/i" ?,Lv(B) ("/j" ?,Lx(B) ("/l" ?,Ly(B) ("/n" ?,Lz(B) ("/z" ?,L(B)
- ("/E" ?,L$(B) ("YE" ?,L$(B) ("Yi" ?,L'(B) ("YI" ?,L'(B) ("U'" ?,L.(B) 
+ ("/E" ?,L$(B) ("YE" ?,L$(B) ("Yi" ?,L'(B) ("YI" ?,L'(B) ("U'" ?,L.(B)
  ("/D" ?,L"(B) ("/Ch" ?,L+(B) ("/CH" ?,L+(B)
- ("/G" ?,L#(B) ("/S" ?,L%(B) ("/K" ?,L,(B) 
+ ("/G" ?,L#(B) ("/S" ?,L%(B) ("/K" ?,L,(B)
  ("/I" ?,L&(B) ("/J" ?,L((B) ("/L" ?,L)(B) ("/N" ?,L*(B) ("/Z" ?,L/(B)
 )
 
--- a/leim/quail/ethiopic.el	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/quail/ethiopic.el	Tue Feb 04 14:56:31 2003 +0000
@@ -30,7 +30,7 @@
 
 (require 'quail)
 (require 'ethio-util)
-		
+
 ;;
 ;; The package "ethiopic"
 ;;
@@ -342,7 +342,7 @@
  ("qqee" ?$(3%-(B)
  ("qq" ?$(3%.(B)
  ("qqo" ?$(3%/(B)
- 
+
  ("Qe" ?$(3!q(B)
  ("Qu" ?$(3!r(B)
  ("Qi" ?$(3!s(B)
@@ -1141,7 +1141,7 @@
 
 (defun ethio-select-a-translation ()
   ;; The translation of `a' depends on the language
-  ;; (either Tigrigna or Amharic). 
+  ;; (either Tigrigna or Amharic).
   (quail-defrule "a"
 		 (if (ethio-prefer-amharic-p) ?$(3"c(B ?$(3"f(B)
 		 "ethiopic"))
--- a/leim/quail/greek.el	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/quail/greek.el	Tue Feb 04 14:56:31 2003 +0000
@@ -84,7 +84,7 @@
  ("," ?, )
  ("." ?. )
  ("/" ?$B!?(B)
-  
+
  ("!" ?$B!*(B)
  ("@" ?$B!w(B)
  ("#" ?$B!t(B)
@@ -248,7 +248,7 @@
  ("m" ?$,1'<(B)
  ("n" ?$,1'=(B)
  ("o" ?$,1'?(B)
- 
+
  ("p" ?$,1'@(B)
  ("q" ?$,1'8(B)
  ("r" ?$,1'A(B)
@@ -1049,7 +1049,7 @@
 ;; 1!  2@  3#  4$  5%  6^  7&  8*  9(  0)  -_  =+  `~
 ;;  ;:  ,FrS(B  ,FeE(B  ,FqQ(B  ,FtT(B  ,FuU(B  ,FhH(B  ,FiI(B  ,FoO(B  ,FpP(B  [{  ]}
 ;;   ,FaA(B  ,FsS(B  ,FdD(B  ,FvV(B  ,FcC(B  ,FgG(B  ,FnN(B  ,FjJ(B  ,FkK(B  ,F4((B  '"  \|
-;;    ,FfF(B  ,FwW(B  ,FxX(B  ,FyY(B  ,FbB(B  ,FmM(B  ,FlL(B  ,<  .>  /?  
+;;    ,FfF(B  ,FwW(B  ,FxX(B  ,FyY(B  ,FbB(B  ,FmM(B  ,FlL(B  ,<  .>  /?
 
 (quail-define-rules
  ("1" ?1)
@@ -1099,7 +1099,7 @@
  ("," ?,)
  ("." ?.)
  ("/" ?/)
- 
+
  ("!" ?!)
  ("@" ?@)
  ("#" ?#)
@@ -1147,7 +1147,7 @@
  ("<" ?<)
  (">" ?>)
  ("?" ??)
- 
+
  (";a" ?,F\(B)
  (";e" ?,F](B)
  (";h" ?,F^(B)
@@ -1189,7 +1189,7 @@
 ;; 1!  2@  3#  4$  5%  6^  7&  8*  9(  0)  -_  =+  `~
 ;;  ,F7/(B  ,FrS(B  ,FeE(B  ,FqQ(B  ,FtT(B  ,FuU(B  ,FhH(B  ,FiI(B  ,FoO(B  ,FpP(B  [{  ]}
 ;;   ,FaA(B  ,FsS(B  ,FdD(B  ,FvV(B  ,FcC(B  ,FgG(B  ,FnN(B  ,FjJ(B  ,FkK(B  ,F4((B  '"  \|
-;;    ,FfF(B  ,FwW(B  ,FxX(B  ,FyY(B  ,FbB(B  ,FmM(B  ,FlL(B  ,;  .:  /?  
+;;    ,FfF(B  ,FwW(B  ,FxX(B  ,FyY(B  ,FbB(B  ,FmM(B  ,FlL(B  ,;  .:  /?
 
 (quail-define-rules
  ("1" ?1)
@@ -1239,7 +1239,7 @@
  ("," ?,)
  ("." ?.)
  ("/" ?/)
- 
+
  ("!" ?!)
  ("@" ?@)
  ("#" ?#)
@@ -1287,7 +1287,7 @@
  ("<" ?<)
  (">" ?>)
  ("?" ??)
- 
+
  ("a;" ?,F\(B)
  ("e;" ?,F](B)
  ("h;" ?,F^(B)
--- a/leim/quail/hangul.el	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/quail/hangul.el	Tue Feb 04 14:56:31 2003 +0000
@@ -74,14 +74,14 @@
  ("x"	?$(C$<(B)
  ("v"	?$(C$=(B)
  ("g"	?$(C$>(B)
- 
+
  ("R"	?$(C$"(B)
  ("E"	?$(C$((B)
  ("Q"	?$(C$3(B)
  ("W"	?$(C$9(B)
  ("T"	?$(C$6(B)
  ("P"	?$(C$F(B)
- 
+
  ("k"	?$(C$?(B)
  ("i"	?$(C$A(B)
  ("j"	?$(C$C(B)
@@ -95,7 +95,7 @@
  ("l"	?$(C$S(B)
  ("o"	?$(C$@(B)
  ("O"	?$(C$B(B)
- 
+
  ("rk"	?$(C0!(B)
  ("rkr"	?$(C0"(B)
  ("rks"	?$(C0#(B)
@@ -942,7 +942,7 @@
  ("ahkT"	?$(C8|(B)
  ("ahkd"	?$(C8}(B)
  ("ahl"	?$(C8~(B)
- 
+
  ("ahls"	?$(C9!(B)
  ("ahlf"	?$(C9"(B)
  ("ahlq"	?$(C9#(B)
@@ -977,7 +977,7 @@
  ("anls"	?$(C9@(B)
  ("anlf"	?$(C9A(B)
  ("ab"	?$(C9B(B)
- 
+
  ("abs"	?$(C9C(B)
  ("abf"	?$(C9D(B)
  ("aba"	?$(C9E(B)
@@ -2448,7 +2448,7 @@
  ("glq"	?$(CH|(B)
  ("glt"	?$(CH}(B)
  ("gld"	?$(CH~(B)
- 
+
  ("Z!"	?$(C#!(B)
  ("Z\""	?$(C#"(B)
  ("Z#"	?$(C##(B)
@@ -2543,7 +2543,7 @@
  ("Z|"	?$(C#|(B)
  ("Z}"	?$(C#}(B)
  ("Z^-"	?$(C#~(B)
- 
+
  ("HS"	?$(C$U(B)
  ("Hse"	?$(C$V(B)
  ("Hst"	?$(C$W(B)
@@ -2586,7 +2586,7 @@
  ("Hbl"	?$(C$|(B)
  ("H."	?$(C$}(B)
  ("H.l"	?$(C$~(B)
- 
+
  ("SY"	?$(C!M(B)
  ("SP"	?$(C!L(B)
  ("S%"	?$(C"6(B)
--- a/leim/quail/hangul3.el	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/quail/hangul3.el	Tue Feb 04 14:56:31 2003 +0000
@@ -39,15 +39,15 @@
    (?\; . "$(C$2(B") (?n . "$(C$5(B") (?j . "$(C$7(B") (?l . "$(C$8(B") (?o . "$(C$:(B")
    (?0 . "$(C$;(B") (?' . "$(C$<(B") (?p . "$(C$=(B") (?m . "$(C$>(B")
    ;; second character
-   (?f . "$(C$?(B") (?r . "$(C$@(B") (?6 . "$(C$A(B") (?R . "$(C$B(B") (?t . "$(C$C(B") 
+   (?f . "$(C$?(B") (?r . "$(C$@(B") (?6 . "$(C$A(B") (?R . "$(C$B(B") (?t . "$(C$C(B")
    (?c . "$(C$D(B") (?e . "$(C$E(B") (?7 . "$(C$F(B") (?v . "$(C$G(B") (?/ . "$(C$G(B")
    (?4 . "$(C$K(B") (?b . "$(C$L(B") (?9 . "$(C$L(B") (?5 . "$(C$P(B") (?g . "$(C$Q(B")
    (?8 . "$(C$R(B") (?d . "$(C$S(B")
    ;; third character
    (?x . "$(C$!(B") (?F . "$(C$"(B") (?s . "$(C$$(B") (?S . "$(C$&(B") (?A . "$(C$'(B")
-   (?w . "$(C$)(B") (?D . "$(C$*(B") (?C . "$(C$+(B") (?V . "$(C$0(B") (?z . "$(C$1(B") 
+   (?w . "$(C$)(B") (?D . "$(C$*(B") (?C . "$(C$+(B") (?V . "$(C$0(B") (?z . "$(C$1(B")
    (?3 . "$(C$2(B") (?X . "$(C$4(B") (?q . "$(C$5(B") (?2 . "$(C$6(B") (?a . "$(C$7(B")
-   (?! . "$(C$8(B") (?Z . "$(C$:(B") (?e . "$(C$;(B") (?W . "$(C$<(B") (?Q . "$(C$=(B") 
+   (?! . "$(C$8(B") (?Z . "$(C$:(B") (?e . "$(C$;(B") (?W . "$(C$<(B") (?Q . "$(C$=(B")
    (?1 . "$(C$>(B")
    ;; other bindings
    (?G . "/")  (?T . ";")   (?H . "'")   (?B . "!")  (?Y . "<")
@@ -91,7 +91,7 @@
  ("'" ?$(C$<(B)
  ("p" ?$(C$=(B)
  ("m" ?$(C$>(B)
- 
+
  ("f" ?$(C$?(B)
  ("r" ?$(C$@(B)
  ("6" ?$(C$A(B)
@@ -120,7 +120,7 @@
  ("g" ?$(C$Q(B)
  ("8" ?$(C$R(B)
  ("d" ?$(C$S(B)
- 
+
  ("x" ?$(C$!(B)
  ("F" ?$(C$"(B)
  ("xx" ?$(C$"(B)
@@ -154,7 +154,7 @@
  ("W" ?$(C$<(B)
  ("Q" ?$(C$=(B)
  ("1" ?$(C$>(B)
- 
+
  ("G" ?/)
  ("T" ?\;)
  ("H" ?')
@@ -175,7 +175,7 @@
  ("U" ?7)
  ("I" ?8)
  ("O" ?9)
- 
+
  ("kf" ?$(C0!(B)
  ("kfx" ?$(C0"(B)
  ("kfs" ?$(C0#(B)
@@ -620,7 +620,7 @@
  ("kkd3" ?$(C3'(B)
  ("kkdq" ?$(C3((B)
  ("kkda" ?$(C3)(B)
- 
+
  ("hf" ?$(C3*(B)
  ("hfx" ?$(C3+(B)
  ("hfF" ?$(C3,(B)
@@ -817,7 +817,7 @@
  ("hdq" ?$(C4V(B)
  ("hda" ?$(C4W(B)
  ("hdQ" ?$(C4X(B)
- 
+
  ("uf" ?$(C4Y(B)
  ("ufx" ?$(C4Z(B)
  ("ufF" ?$(C4[(B)
@@ -1004,7 +1004,7 @@
  ("udqq" ?$(C5x(B)
  ("uda" ?$(C5y(B)
  ("ud!" ?$(C5z(B)
- 
+
  ("uuf" ?$(C5{(B)
  ("uufx" ?$(C5|(B)
  ("uufs" ?$(C5}(B)
@@ -1122,7 +1122,7 @@
  ("uud3" ?$(C6p(B)
  ("uudq" ?$(C6q(B)
  ("uuda" ?$(C6r(B)
- 
+
  ("yf" ?$(C6s(B)
  ("yfx" ?$(C6t(B)
  ("yfs" ?$(C6u(B)
@@ -1294,7 +1294,7 @@
  ("yd3" ?$(C83(B)
  ("ydq" ?$(C84(B)
  ("yda" ?$(C85(B)
- 
+
  ("if" ?$(C86(B)
  ("ifx" ?$(C87(B)
  ("ifs" ?$(C88(B)
@@ -1487,7 +1487,7 @@
  ("ida" ?$(C9V(B)
  ("idZ" ?$(C9W(B)
  ("idW" ?$(C9X(B)
- 
+
  (";f" ?$(C9Y(B)
  (";fx" ?$(C9Z(B)
  (";fF" ?$(C9[(B)
@@ -1773,7 +1773,7 @@
  (";;d3" ?$(C;d(B)
  (";;dq" ?$(C;e(B)
  (";;da" ?$(C;f(B)
- 
+
  ("nf" ?$(C;g(B)
  ("nfx" ?$(C;h(B)
  ("nfxq" ?$(C;i(B)
@@ -2138,7 +2138,7 @@
  ("nnd3" ?$(C>C(B)
  ("nndq" ?$(C>D(B)
  ("nnda" ?$(C>E(B)
- 
+
  ("jf" ?$(C>F(B)
  ("jfx" ?$(C>G(B)
  ("jfs" ?$(C>H(B)
@@ -2444,7 +2444,7 @@
  ("jda" ?$(C@W(B)
  ("jd!" ?$(C@X(B)
  ("jdQ" ?$(C@Y(B)
- 
+
  ("lf" ?$(C@Z(B)
  ("lfx" ?$(C@[(B)
  ("lfs" ?$(C@\(B)
@@ -2770,7 +2770,7 @@
  ("llda" ?$(CBt(B)
  ("lld!" ?$(CBu(B)
  ("lld1" ?$(CBv(B)
- 
+
  ("of" ?$(CBw(B)
  ("ofx" ?$(CBx(B)
  ("ofs" ?$(CBy(B)
@@ -2928,7 +2928,7 @@
  ("od3" ?$(CD((B)
  ("odq" ?$(CD)(B)
  ("oda" ?$(CD*(B)
- 
+
  ("0f" ?$(CD+(B)
  ("0fx" ?$(CD,(B)
  ("0fs" ?$(CD-(B)
@@ -3077,7 +3077,7 @@
  ("0d3" ?$(CE5(B)
  ("0dq" ?$(CE6(B)
  ("0da" ?$(CE7(B)
- 
+
  ("'f" ?$(CE8(B)
  ("'fx" ?$(CE9(B)
  ("'fs" ?$(CE:(B)
@@ -3226,7 +3226,7 @@
  ("'d3" ?$(CFA(B)
  ("'dq" ?$(CFB(B)
  ("'da" ?$(CFC(B)
- 
+
  ("pf" ?$(CFD(B)
  ("pfx" ?$(CFE(B)
  ("pfF" ?$(CFF(B)
@@ -3369,7 +3369,7 @@
  ("pd3" ?$(CGL(B)
  ("pdq" ?$(CGM(B)
  ("pda" ?$(CGN(B)
- 
+
  ("mf" ?$(CGO(B)
  ("mfx" ?$(CGP(B)
  ("mfs" ?$(CGQ(B)
--- a/leim/quail/hanja.el	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/quail/hanja.el	Tue Feb 04 14:56:31 2003 +0000
@@ -32,7 +32,7 @@
 (require 'quail)
 (require 'korea-util)
 
-(quail-define-package 
+(quail-define-package
  "korean-hanja" "Korean" "$(CyS(B2" t
  "2$(C9z=D(BKSC$(CySm.(B: $(Cz1SWGO4B(B $(CySm.@G(B $(Cj$@;(B $(CGQ1[(B2$(C9zcR@87N(B $(C{<usGO?)(B $(C`TwI(B"
 		      nil nil nil nil nil nil t)
--- a/leim/quail/hebrew.el	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/quail/hebrew.el	Tue Feb 04 14:56:31 2003 +0000
@@ -39,7 +39,7 @@
 ;;   /Q 'W ,Hw(BE ,Hx(BR ,H`(BT ,Hh(BY ,He(BU ,Ho(BI ,Hm(BO ,Ht(BP {[ {]
 ;;    ,Hy(BA ,Hc(BS ,Hb(BD ,Hk(BF ,Hr(BG ,Hi(BH ,Hg(BJ ,Hl(BK ,Hj(BL :,Hs(B ", |\
 ;;     ,Hf(BZ ,Hq(BX ,Ha(BC ,Hd(BV ,Hp(BB ,Hn(BN ,Hv(BM <,Hz(B >,Hu(B ?.
-;;		         
+;;
 
 (quail-define-rules
  ("`" ?\;)
--- a/leim/quail/japanese.el	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/quail/japanese.el	Tue Feb 04 14:56:31 2003 +0000
@@ -56,7 +56,7 @@
 	      (setq unread-command-events
 		    (list (aref quail-current-key control-flag)))))))
   control-flag)
-	 
+
 ;; Convert Hiragana <-> Katakana in the current translation region.
 (defun quail-japanese-toggle-kana ()
   (interactive)
@@ -139,7 +139,7 @@
     ("ra" "$B$i(B") ("ri" "$B$j(B") ("ru" "$B$k(B") ("re" "$B$l(B") ("ro" "$B$m(B")
     ("la" "$B$i(B") ("li" "$B$j(B") ("lu" "$B$k(B") ("le" "$B$l(B") ("lo" "$B$m(B")
     ("wa" "$B$o(B") ("wi" "$B$p(B") ("wu" "$B$&(B") ("we" "$B$q(B") ("wo" "$B$r(B")
-    ("n'" "$B$s(B")	 			     
+    ("n'" "$B$s(B")
     ("ga" "$B$,(B") ("gi" "$B$.(B") ("gu" "$B$0(B") ("ge" "$B$2(B") ("go" "$B$4(B")
     ("za" "$B$6(B") ("zi" "$B$8(B") ("zu" "$B$:(B") ("ze" "$B$<(B") ("zo" "$B$>(B")
     ("da" "$B$@(B") ("di" "$B$B(B") ("du" "$B$E(B") ("de" "$B$G(B") ("do" "$B$I(B")
@@ -461,7 +461,7 @@
 ("p" "$B#p(B") ("q" "$B#q(B") ("r" "$B#r(B") ("s" "$B#s(B")
 ("t" "$B#t(B") ("u" "$B#u(B") ("v" "$B#v(B") ("w" "$B#w(B")
 ("x" "$B#x(B") ("y" "$B#y(B") ("z" "$B#z(B") ("{" "$B!P(B")
-("|" "$B!C(B") ("}" "$B!Q(B") ("~" "$B!A(B") 
+("|" "$B!C(B") ("}" "$B!Q(B") ("~" "$B!A(B")
 
 ("qq" quail-japanese-switch-package)
 ("qh" quail-japanese-switch-package)
@@ -527,7 +527,7 @@
       (setq quail-current-str (japanese-katakana quail-current-str)))
   control-flag)
 
-(quail-define-package 
+(quail-define-package
  "japanese-katakana" "Japanese" "$B%"(B"
  nil
  "Japanese katakana input method by Roman transliteration."
--- a/leim/quail/latin-alt.el	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/quail/latin-alt.el	Tue Feb 04 14:56:31 2003 +0000
@@ -1552,7 +1552,7 @@
              | prefix  |
  ------------+---------+----------
   diaeresis  |    \"    | \"a -> ,Ad(B
- 
+
 Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t nil nil nil nil nil nil nil nil t)
 
@@ -1560,64 +1560,64 @@
  ("fl." ?$,1!R(B) ;; LATIN SMALL LETTER F WITH HOOK (florin currency symbol)
  ("eur." ?$,1tL(B) ;; EURO SIGN
  ;; $,1r|(BThe 25th letter of the Dutch alphabet.$,1r}(B
- ("ij" ?$,1 S(B) ;; LATIN SMALL LIGATURE IJ   
- ("IJ" ?$,1 R(B) ;; LATIN CAPITAL LIGATURE IJ   
+ ("ij" ?$,1 S(B) ;; LATIN SMALL LIGATURE IJ
+ ("IJ" ?$,1 R(B) ;; LATIN CAPITAL LIGATURE IJ
  ;; $,1r|(BTrema on the second letter of vowel pair.$,1r}(B  Yudit uses `:', not `"'.
- ("\"a" ?,Ad(B) ;; LATIN SMALL LETTER A WITH DIAERESIS 
- ("\"e" ?,Ak(B) ;; LATIN SMALL LETTER E WITH DIAERESIS 
- ("\"i" ?,Ao(B) ;; LATIN SMALL LETTER I WITH DIAERESIS 
- ("\"o" ?,Av(B) ;; LATIN SMALL LETTER O WITH DIAERESIS 
- ("\"u" ?,A|(B) ;; LATIN SMALL LETTER U WITH DIAERESIS 
- ("\"A" ?,AD(B) ;; LATIN CAPITAL LETTER A WITH DIAERESIS 
- ("\"E" ?,AK(B) ;; LATIN CAPITAL LETTER E WITH DIAERESIS 
- ("\"I" ?,AO(B) ;; LATIN CAPITAL LETTER I WITH DIAERESIS 
- ("\"O" ?,AV(B) ;; LATIN CAPITAL LETTER O WITH DIAERESIS 
- ("\"U" ?,A\(B) ;; LATIN CAPITAL LETTER U WITH DIAERESIS 
+ ("\"a" ?,Ad(B) ;; LATIN SMALL LETTER A WITH DIAERESIS
+ ("\"e" ?,Ak(B) ;; LATIN SMALL LETTER E WITH DIAERESIS
+ ("\"i" ?,Ao(B) ;; LATIN SMALL LETTER I WITH DIAERESIS
+ ("\"o" ?,Av(B) ;; LATIN SMALL LETTER O WITH DIAERESIS
+ ("\"u" ?,A|(B) ;; LATIN SMALL LETTER U WITH DIAERESIS
+ ("\"A" ?,AD(B) ;; LATIN CAPITAL LETTER A WITH DIAERESIS
+ ("\"E" ?,AK(B) ;; LATIN CAPITAL LETTER E WITH DIAERESIS
+ ("\"I" ?,AO(B) ;; LATIN CAPITAL LETTER I WITH DIAERESIS
+ ("\"O" ?,AV(B) ;; LATIN CAPITAL LETTER O WITH DIAERESIS
+ ("\"U" ?,A\(B) ;; LATIN CAPITAL LETTER U WITH DIAERESIS
  ;; $,1r|(BAcute, marking emphasis on long vowels$,1r}(B:
- ("a'" ?,Aa(B) ;; LATIN SMALL LETTER A WITH ACUTE 
- ("e'" ?,Ai(B) ;; LATIN SMALL LETTER E WITH ACUTE 
- ("i'" ?,Am(B) ;; LATIN SMALL LETTER I WITH ACUTE 
- ("o'" ?,As(B) ;; LATIN SMALL LETTER O WITH ACUTE 
- ("u'" ?,Az(B) ;; LATIN SMALL LETTER U WITH ACUTE 
- ("A'" ?,AA(B) ;; LATIN CAPITAL LETTER A WITH ACUTE 
- ("E'" ?,AI(B) ;; LATIN CAPITAL LETTER E WITH ACUTE 
- ("I'" ?,AM(B) ;; LATIN CAPITAL LETTER I WITH ACUTE 
- ("O'" ?,AS(B) ;; LATIN CAPITAL LETTER O WITH ACUTE 
- ("U'" ?,AZ(B) ;; LATIN CAPITAL LETTER U WITH ACUTE 
+ ("a'" ?,Aa(B) ;; LATIN SMALL LETTER A WITH ACUTE
+ ("e'" ?,Ai(B) ;; LATIN SMALL LETTER E WITH ACUTE
+ ("i'" ?,Am(B) ;; LATIN SMALL LETTER I WITH ACUTE
+ ("o'" ?,As(B) ;; LATIN SMALL LETTER O WITH ACUTE
+ ("u'" ?,Az(B) ;; LATIN SMALL LETTER U WITH ACUTE
+ ("A'" ?,AA(B) ;; LATIN CAPITAL LETTER A WITH ACUTE
+ ("E'" ?,AI(B) ;; LATIN CAPITAL LETTER E WITH ACUTE
+ ("I'" ?,AM(B) ;; LATIN CAPITAL LETTER I WITH ACUTE
+ ("O'" ?,AS(B) ;; LATIN CAPITAL LETTER O WITH ACUTE
+ ("U'" ?,AZ(B) ;; LATIN CAPITAL LETTER U WITH ACUTE
  ;; $,1r|(BGrave, marking emphasis on short vowels$,1r}(B:
  ("a`" ?,A`(B) ;; LATIN SMALL LETTER A WITH GRAVE
- ("e`" ?,Ah(B) ;; LATIN SMALL LETTER E WITH GRAVE 
- ("i`" ?,Al(B) ;; LATIN SMALL LETTER I WITH GRAVE 
- ("o`" ?,Ar(B) ;; LATIN SMALL LETTER O WITH GRAVE 
- ("u`" ?,Ay(B) ;; LATIN SMALL LETTER U WITH GRAVE 
- ("A`" ?,A@(B) ;; LATIN CAPITAL LETTER A WITH GRAVE 
- ("E`" ?,AH(B) ;; LATIN CAPITAL LETTER E WITH GRAVE 
- ("I`" ?,AL(B) ;; LATIN CAPITAL LETTER I WITH GRAVE 
- ("O`" ?,AR(B) ;; LATIN CAPITAL LETTER O WITH GRAVE 
+ ("e`" ?,Ah(B) ;; LATIN SMALL LETTER E WITH GRAVE
+ ("i`" ?,Al(B) ;; LATIN SMALL LETTER I WITH GRAVE
+ ("o`" ?,Ar(B) ;; LATIN SMALL LETTER O WITH GRAVE
+ ("u`" ?,Ay(B) ;; LATIN SMALL LETTER U WITH GRAVE
+ ("A`" ?,A@(B) ;; LATIN CAPITAL LETTER A WITH GRAVE
+ ("E`" ?,AH(B) ;; LATIN CAPITAL LETTER E WITH GRAVE
+ ("I`" ?,AL(B) ;; LATIN CAPITAL LETTER I WITH GRAVE
+ ("O`" ?,AR(B) ;; LATIN CAPITAL LETTER O WITH GRAVE
  ("U`" ?,AY(B) ;; LATIN CAPITAL LETTER U WITH GRAVE
  ;; $,1r|(BCater for the use of many French words and use of the circumflex
  ;; in Frisian.$,1r}(B  Yudit used `;' for cedilla.
- ("c," ?,Ag(B) ;; LATIN SMALL LETTER C WITH CEDILLA 
- ("C," ?,AG(B) ;; LATIN CAPITAL LETTER C WITH CEDILLA 
- ("a^" ?,Ab(B) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX 
- ("e^" ?,Aj(B) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX 
- ("i^" ?,An(B) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX 
- ("o^" ?,At(B) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX 
- ("u^" ?,A{(B) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX 
- ("A^" ?,AB(B) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX 
- ("E^" ?,AJ(B) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX 
- ("I^" ?,AN(B) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX 
- ("O^" ?,AT(B) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX 
+ ("c," ?,Ag(B) ;; LATIN SMALL LETTER C WITH CEDILLA
+ ("C," ?,AG(B) ;; LATIN CAPITAL LETTER C WITH CEDILLA
+ ("a^" ?,Ab(B) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX
+ ("e^" ?,Aj(B) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX
+ ("i^" ?,An(B) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX
+ ("o^" ?,At(B) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX
+ ("u^" ?,A{(B) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX
+ ("A^" ?,AB(B) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ ("E^" ?,AJ(B) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ ("I^" ?,AN(B) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ ("O^" ?,AT(B) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX
  ("U^" ?,A[(B) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX
  ;; $,1r|(BFollow the example of the Dutch POSIX locale, using ISO-8859-9 to
  ;; cater to the many Turks in Dutch society.$,1r}(B  Perhaps German methods
  ;; should do so too.  Follow turkish-alt-postfix here.
  ("i/" ?$,1 Q(B) ;; LATIN SMALL LETTER I WITH NO DOT
- ("s," ?$,1 (B) ;; LATIN SMALL LETTER S WITH CEDILLA 
- ("g^" ?$,1 ?(B) ;; LATIN SMALL LETTER G WITH BREVE 
+ ("s," ?$,1 (B) ;; LATIN SMALL LETTER S WITH CEDILLA
+ ("g^" ?$,1 ?(B) ;; LATIN SMALL LETTER G WITH BREVE
  ("I/" ?$,1 P(B) ;; LATIN CAPITAL LETTER I WITH DOT ABOVE
- ("S," ?$,1 ~(B) ;; LATIN CAPITAL LETTER S WITH CEDILLA 
- ("G^" ?$,1 >(B) ;; LATIN CAPITAL LETTER G WITH BREVE 
+ ("S," ?$,1 ~(B) ;; LATIN CAPITAL LETTER S WITH CEDILLA
+ ("G^" ?$,1 >(B) ;; LATIN CAPITAL LETTER G WITH BREVE
  )
 
 ;; Originally from Yudit, discussed with Albertas Agejevas
--- a/leim/quail/latin-ltx.el	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/quail/latin-ltx.el	Tue Feb 04 14:56:31 2003 +0000
@@ -62,7 +62,7 @@
  ("$^1$" ?,A9(B)
  ("$^o$" ?,A:(B)
  ("?`" ?,A?(B)
- 
+
  ("\\`{A}" ?,A@(B)  ("\\`A" ?,A@(B)
  ("\\'{A}" ?,AA(B)  ("\\'A" ?,AA(B)
  ("\\^{A}" ?,AB(B)  ("\\^A" ?,AB(B)
--- a/leim/quail/latin-pre.el	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/quail/latin-pre.el	Tue Feb 04 14:56:31 2003 +0000
@@ -26,7 +26,7 @@
 ;;; Commentary:
 
 ;; Key translation maps were originally copied from iso-acc.el.
-;; latin-1-prefix: extra special characters added, adapted from the vim 
+;; latin-1-prefix: extra special characters added, adapted from the vim
 ;;                 digraphs (from J.H.M.Dassen <jdassen@wi.leidenuniv.nl>)
 ;;                 by R.F. Smith <rsmith@xs4all.nl>
 ;;
@@ -710,7 +710,7 @@
  ("/e" ?,Bj(B)
  ("/l" ?,B3(B)
  ("/n" ?,Bq(B)
- ("/o" ?,Bs(B) 
+ ("/o" ?,Bs(B)
  ("/s" ?,B6(B)
  ("/x" ?,B<(B)
  ("/z" ?,B?(B)
@@ -719,7 +719,7 @@
  ("/E" ?,BJ(B)
  ("/L" ?,B#(B)
  ("/N" ?,BQ(B)
- ("/O" ?,BS(B) 
+ ("/O" ?,BS(B)
  ("/S" ?,B&(B)
  ("/X" ?,B,(B)
  ("/Z" ?,B/(B))
--- a/leim/quail/lrt.el	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/quail/lrt.el	Tue Feb 04 14:56:31 2003 +0000
@@ -69,10 +69,10 @@
   '((base-state (lao-transcription-consonant-alist . sv-state)
 		lao-transcription-vowel-alist
 		lao-transcription-tone-alist)
-    (sv-state (lao-transcription-semi-vowel-alist . v-state) 
+    (sv-state (lao-transcription-semi-vowel-alist . v-state)
 	      (lao-transcription-vowel-alist . mt-state))
     (v-state (lao-transcription-vowel-alist . mt-state))
-    (mt-state (lao-transcription-maa-sakod-alist . t-state) 
+    (mt-state (lao-transcription-maa-sakod-alist . t-state)
 	      lao-transcription-tone-alist)
     (t-state lao-transcription-tone-alist))))
 
--- a/leim/quail/thai.el	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/quail/thai.el	Tue Feb 04 14:56:31 2003 +0000
@@ -82,7 +82,7 @@
     Don't know where to assign characters ',Tz(B' and ',T{(B'."
  nil t t t t nil nil nil 'quail-thai-update-translation nil t)
 
-(quail-install-map 
+(quail-install-map
  (thai-generate-quail-map
   [
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	; control codes
@@ -110,7 +110,7 @@
  "Thai Pattachote input method with TIS620 keyboard layout"
  nil t t t t nil nil nil 'quail-thai-update-translation nil t)
 
-(quail-install-map 
+(quail-install-map
  (thai-generate-quail-map
   [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	; control codes
     0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	; control codes
--- a/leim/quail/tibetan.el	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/quail/tibetan.el	Tue Feb 04 14:56:31 2003 +0000
@@ -210,7 +210,7 @@
     ("O" . "T")				; Ta
     ("p" . "th")			; tha
     ("P" . "TH")			; THa
-    ("[" . "d")				; da 
+    ("[" . "d")				; da
     ("{" . "D")				; Da
     ("]" . "n")				; na
     ("}" . "N")				; Na
@@ -259,11 +259,11 @@
     ("hO" . "+T")			; Ta
     ("hp" . "+th")			; tha
     ("hP" . "+TH")			; THa
-    ("h[" . "+d")			; da 
+    ("h[" . "+d")			; da
     ("h{" . "+D")			; Da
     ("h]" . "+n")			; na
     ("h}" . "+N")			; Na
-    ("ha" . "+p")			; pa 
+    ("ha" . "+p")			; pa
     ("hs" . "+ph")			; pha
     ("hd" . "+b")			; ba
     ("hf" . "+m")			; ma
@@ -335,7 +335,7 @@
     ("(" . "$(7!l(B")
     ("0" . "$(7!P(B")
     (")" . "$(7!m(B")
-;;; ("-" ) ; enphatic, not yet supported 
+;;; ("-" ) ; enphatic, not yet supported
 ;;; ("_" ) ; id.
 ;;; ("=" ) ; special sign, not yet supported
     ("+" . "$(7!A(B")
@@ -419,7 +419,7 @@
       |A  |S  |D  |F$(7"_(B|G$(7"S(B|H$(7"e(B|J$(7"[(B|K  |L  |:$(7"`(B|\"$(7#>(B|
       +-------------------------------------------+
          |Z  |X  |C$(7"R(B|V$(7#B(B|B$(7#C(B|N$(7#D(B|M$(7"F(B|<  |>  |?$(7!=(B |
-         +---------------------------------------+        
+         +---------------------------------------+
 
   DIFFERENCE FROM THE ORIGINAL TIBKEY:
 
--- a/leim/quail/vntelex.el	Tue Feb 04 13:30:45 2003 +0000
+++ b/leim/quail/vntelex.el	Tue Feb 04 14:56:31 2003 +0000
@@ -400,7 +400,7 @@
 ;("$$$" ["$$"])
 
  ;; escape from composition
- ("\\w" ?w)	; breve or horn 
+ ("\\w" ?w)	; breve or horn
  ("\\W" ?W)
  ("\\a" ?a)	; a circumflex
  ("\\A" ?A)	; A circumflex
--- a/lib-src/ChangeLog	Tue Feb 04 13:30:45 2003 +0000
+++ b/lib-src/ChangeLog	Tue Feb 04 14:56:31 2003 +0000
@@ -3746,7 +3746,7 @@
 	* b2m.c: Use <...> to include config.h.
 	Don't include stdlib.h.
 
-1994-03-03  Heiko Muenkel (muenkel@tnt.uni-hannover.de)
+1994-03-03  Heiko Muenkel  (muenkel@tnt.uni-hannover.de)
 
 	* b2m.c (main): Change delimiter from "^L" to "^_^L".
 	Allow for text following "BABYL OPTIONS:".
@@ -3963,7 +3963,7 @@
 
 	* Version 19.20 released.
 
-1993-11-08  Tom Hageman (tom@basil.icce.rug.nl)
+1993-11-08  Tom Hageman  (tom@basil.icce.rug.nl)
 
 	* etags.c: (C_entries): Keep track of ()-parenthesis level so that
 	functions returning a pointer to a function, a la `signal', can be
--- a/lib-src/b2m.pl	Tue Feb 04 13:30:45 2003 +0000
+++ b/lib-src/b2m.pl	Tue Feb 04 14:56:31 2003 +0000
@@ -30,7 +30,7 @@
 use Date::Parse;
 
 my($whoami) = basename $0;
-my($version) = '$Revision: 1.3 $';
+my($version) = '$Revision: 1.4 $';
 my($usage) = "Usage: $whoami [--help] [--version] [--[no]full-headers] [Babyl-file]
 \tBy default, full headers are printed.\n";
 
@@ -80,7 +80,7 @@
     $labels = $1;
 
     # Strip the integer indicating whether the header is pruned
-    $labels =~ s/^(\d+)[,\s]*//; 
+    $labels =~ s/^(\d+)[,\s]*//;
     $pruned = $1;
 
     s/(?:((?:.+\n)+)\n*)?\*\*\* EOOH \*\*\*\n+// || goto malformatted;
@@ -113,7 +113,7 @@
     $labels =~ s/[,\s]+$//;
     # Now collapse extra commas and whitespace in the remaining label string
     $labels =~ s/[,\s]+/, /g;
-    
+
     foreach my $rmail_header qw(summary-line x-coding-system) {
 	$full_header =~ s/(^|\n)$rmail_header:.*\n/$1/i;
     }
--- a/lib-src/ebrowse.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/lib-src/ebrowse.c	Tue Feb 04 14:56:31 2003 +0000
@@ -2511,7 +2511,7 @@
     {
       switch (LA1)
         {
-	  /* Skip over grouping parens or parameter lists in parameter 
+	  /* Skip over grouping parens or parameter lists in parameter
 	     declarations.  */
         case '(':
           skip_matching ();
@@ -3148,7 +3148,7 @@
      settings.  */
   if ((tag != CLASS && !f_structs) || (nested && !f_nested_classes))
     current = NULL;
-  else 
+  else
     {
       current = add_sym (yytext, containing);
       current->pos = BUFFER_POS ();
@@ -3167,7 +3167,7 @@
         {
           switch (LA1)
             {
-            case VIRTUAL: case PUBLIC: case PROTECTED: case PRIVATE: 
+            case VIRTUAL: case PUBLIC: case PROTECTED: case PRIVATE:
               MATCH ();
               break;
 
--- a/lib-src/emacstool.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/lib-src/emacstool.c	Tue Feb 04 14:56:31 2003 +0000
@@ -189,7 +189,7 @@
 /*
  * Filter function to translate selected input events for emacs
  * Mouse button events become ^X^@(button x-col y-line time-delta) .
- * Function keys: ESC-*{c}{lrt} l,r,t for Left, Right, Top; 
+ * Function keys: ESC-*{c}{lrt} l,r,t for Left, Right, Top;
  * {c} encodes the keynumber as a character [a-o]
  */
 static Notify_value
--- a/lib-src/make-docfile.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/lib-src/make-docfile.c	Tue Feb 04 14:56:31 2003 +0000
@@ -299,7 +299,7 @@
 	  while (ch != ' ' && ch != ')');
 	  put_char ('f', state);
 	  put_char ('n', state);
-	  
+
 	  /* Put back the last character.  */
 	  ungetc (ch, state->in_file);
 	}
--- a/lib-src/makefile.nt	Tue Feb 04 13:30:45 2003 +0000
+++ b/lib-src/makefile.nt	Tue Feb 04 14:56:31 2003 +0000
@@ -3,24 +3,24 @@
 #  Copyright (C) 1994 Free Software Foundation, Inc.
 #
 #  This file is part of GNU Emacs.
-#  
+#
 #  GNU Emacs is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
 #  the Free Software Foundation; either version 2, or (at your option)
 #  any later version.
-#  
+#
 #  GNU Emacs is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU General Public License for more details.
-#  
+#
 #  You should have received a copy of the GNU General Public License
 #  along with GNU Emacs; see the file COPYING.  If not, write to the
 #  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 #  Boston, MA 02111-1307, USA.
 #
 
-# 
+#
 # Sets up the system dependent macros.
 #
 !include ..\nt\makefile.def
@@ -139,7 +139,7 @@
 #
 # From ..\src\makefile.nt.
 #
-obj = abbrev.c alloc.c alloca.c buffer.c bytecode.c callint.c callproc.c casefiddle.c cm.c cmds.c charset.c coding.c category.c ccl.c data.c dired.c dispnew.c doc.c  doprnt.c editfns.c emacs.c eval.c fileio.c filelock.c filemode.c fns.c fontset.c indent.c insdel.c keyboard.c keymap.c lastfile.c lread.c macros.c marker.c minibuf.c xfaces.c print.c process.c regex.c scroll.c search.c syntax.c sysdep.c term.c termcap.c tparam.c undo.c unexw32.c window.c xdisp.c casetab.c floatfns.c frame.c gmalloc.c intervals.c ralloc.c textprop.c vm-limit.c region-cache.c strftime.c w32.c w32console.c w32faces.c w32fns.c w32heap.c w32inevt.c w32proc.c w32reg.c w32menu.c w32select.c w32term.c w32xfns.c 
+obj = abbrev.c alloc.c alloca.c buffer.c bytecode.c callint.c callproc.c casefiddle.c cm.c cmds.c charset.c coding.c category.c ccl.c data.c dired.c dispnew.c doc.c  doprnt.c editfns.c emacs.c eval.c fileio.c filelock.c filemode.c fns.c fontset.c indent.c insdel.c keyboard.c keymap.c lastfile.c lread.c macros.c marker.c minibuf.c xfaces.c print.c process.c regex.c scroll.c search.c syntax.c sysdep.c term.c termcap.c tparam.c undo.c unexw32.c window.c xdisp.c casetab.c floatfns.c frame.c gmalloc.c intervals.c ralloc.c textprop.c vm-limit.c region-cache.c strftime.c w32.c w32console.c w32faces.c w32fns.c w32heap.c w32inevt.c w32proc.c w32reg.c w32menu.c w32select.c w32term.c w32xfns.c
 
 #
 # These are the lisp files that are loaded up in loadup.el
@@ -224,7 +224,7 @@
 	$(lispsource)version.el
 
 
-DOC	      = DOC 
+DOC	      = DOC
 $(DOC):		$(BLD)\make-docfile.exe
 		- $(DEL) $(DOC)
 		$(BLD)\make-docfile -d ..\src $(obj) > $(DOC)
@@ -261,7 +261,7 @@
 
 #
 # Maintenance
-# 
+#
 clean:;		- $(DEL) *~ *.pdb DOC*
 		- $(DEL) *.orig *.rej *.crlf ctags.c
 		- $(DEL_TREE) deleted
--- a/lib-src/movemail.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/lib-src/movemail.c	Tue Feb 04 14:56:31 2003 +0000
@@ -39,11 +39,11 @@
  * "po:username".  This will cause movemail to open a connection to
  * a pop server running on $MAILHOST (environment variable).  Movemail
  * must be setuid to root in order to work with POP.
- * 
+ *
  * New module: popmail.c
  * Modified routines:
  *	main - added code within #ifdef MAIL_USE_POP; added setuid (getuid ())
- *		after POP code. 
+ *		after POP code.
  * New routines in movemail.c:
  *	get_errmsg - return pointer to system error message
  *
@@ -458,7 +458,7 @@
 
 	  pfatal_with_name (inname);
 	}
-  
+
       {
 	char buf[1024];
 
@@ -838,7 +838,7 @@
       error ("Error from POP server: %s", pop_error, 0);
       return (1);
     }
-    
+
   return (0);
 }
 
@@ -913,7 +913,7 @@
       line++;
       len--;
     }
-  if (fwrite (line, 1, len, mbf) != len) 
+  if (fwrite (line, 1, len, mbf) != len)
     return (NOTOK);
   if (fputc (0x0a, mbf) == EOF)
     return (NOTOK);
--- a/lib-src/ntlib.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/lib-src/ntlib.c	Tue Feb 04 14:56:31 2003 +0000
@@ -59,20 +59,20 @@
   DWORD result;
 
   ppid = getenv ("EM_PARENT_PROCESS_ID");
-  if (!ppid) 
+  if (!ppid)
     {
       printf("no pid.\n");
       return 0;
-    } 
-  else 
+    }
+  else
     {
       getppid_ppid = atoi (ppid);
     }
 
-  if (!getppid_parent) 
+  if (!getppid_parent)
     {
       getppid_parent = OpenProcess (SYNCHRONIZE, FALSE, atoi(ppid));
-      if (!getppid_parent) 
+      if (!getppid_parent)
 	{
 	  printf ("Failed to open handle to parent process: %d\n",
 		 GetLastError());
@@ -81,7 +81,7 @@
     }
 
   result = WaitForSingleObject (getppid_parent, 0);
-  switch (result) 
+  switch (result)
     {
     case WAIT_TIMEOUT:
       /* The parent is still alive.  */
@@ -188,7 +188,7 @@
 }
 
 /* Place a wrapper around the MSVC version of ctime.  It returns NULL
-   on network directories, so we handle that case here.  
+   on network directories, so we handle that case here.
    (Ulrich Leodolter, 1/11/95).  */
 char *
 sys_ctime (const time_t *t)
--- a/lib-src/pop.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/lib-src/pop.c	Tue Feb 04 14:56:31 2003 +0000
@@ -261,7 +261,7 @@
 #else
 #define DONT_NEED_PASSWORD 0
 #endif
- 
+
   if ((! password) && (! DONT_NEED_PASSWORD))
     {
       if (! (flags & POP_NO_GETPASS))
@@ -560,7 +560,7 @@
  * 		of lines with '>'.
  *	msg_buf	Output parameter to which a buffer containing the
  * 		message is assigned.
- * 
+ *
  * Return value: The number of bytes in msg_buf, which may contain
  * 	embedded nulls, not including its final null, or -1 on error
  * 	with pop_error set.
@@ -643,7 +643,7 @@
 
   free (ptr);
   return (-1);
-}     
+}
 
 int
 pop_retrieve_first (server, message, response)
--- a/lib-src/profile.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/lib-src/profile.c	Tue Feb 04 14:56:31 2003 +0000
@@ -48,7 +48,7 @@
 }
 
 /* This call returns the time since the last reset_watch call.  The time
-   is returned as a string with the format  <seconds>.<micro-seconds> 
+   is returned as a string with the format  <seconds>.<micro-seconds>
    If reset_watch was not called yet, exit.  */
 
 char *
--- a/lib-src/rcs-checkin	Tue Feb 04 13:30:45 2003 +0000
+++ b/lib-src/rcs-checkin	Tue Feb 04 14:56:31 2003 +0000
@@ -31,7 +31,7 @@
 # is not deleted, as under VC with vc-keep-workfiles at its default of t, but
 # all the version files are.
 #
-# If an argument file is already version-controlled under RCS, any version 
+# If an argument file is already version-controlled under RCS, any version
 # files are added to the list of deltas and deleted, and then the workfile
 # is checked in again as the latest version.  This is probably not quite
 # what was wanted, and is the main reason VC doesn't simply call this to
--- a/lib-src/update-game-score.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/lib-src/update-game-score.c	Tue Feb 04 14:56:31 2003 +0000
@@ -216,13 +216,13 @@
   user_id = get_user_id ();
   if (user_id == NULL)
     lose_syserr ("Couldn't determine user id");
-  
+
   if (stat (scorefile, &buf) < 0)
     lose_syserr ("Failed to access scores file");
-		
+
   if (lock_file (scorefile, &lockstate) < 0)
     lose_syserr ("Failed to lock scores file");
-		  
+
   if (read_scores (scorefile, &scores, &scorecount) < 0)
     {
       unlock_file (scorefile, lockstate);
@@ -283,7 +283,7 @@
     char *username = malloc (unamelen);
     if (!username)
       return -1;
-    
+
     while ((c = getc (f)) != EOF
 	   && !isspace (c))
       {
@@ -293,7 +293,7 @@
 	username[unameread] = c;
 	unameread++;
       }
-    if (c == EOF)    
+    if (c == EOF)
       return -1;
     username[unameread] = '\0';
     score->username = username;
@@ -342,12 +342,12 @@
   int readval, scorecount, cursize;
   struct score_entry *ret;
   FILE *f = fopen (filename, "r");
-  if (!f) 
+  if (!f)
     return -1;
   scorecount = 0;
   cursize = 16;
   ret = (struct score_entry *) malloc (sizeof (struct score_entry) * cursize);
-  if (!ret) 
+  if (!ret)
     return -1;
   while ((readval = read_score (f, &ret[scorecount])) == 0)
     {
@@ -388,7 +388,7 @@
 }
 
 int
-push_score (scores, count, newscore, username, newdata) 
+push_score (scores, count, newscore, username, newdata)
      struct score_entry **scores;
      int *count; int newscore;
      char *username;
@@ -406,12 +406,12 @@
   *scores = newscores;
   return 0;
 }
-  
+
 void
 sort_scores (scores, count, reverse)
      struct score_entry *scores;
      int count;
-     int reverse; 
+     int reverse;
 {
   qsort (scores, count, sizeof (struct score_entry),
 	reverse ? score_compare_reverse : score_compare);
@@ -421,9 +421,9 @@
 write_scores (filename, scores, count)
      const char *filename;
      const struct score_entry * scores;
-     int count; 
+     int count;
 {
-  FILE *f;  
+  FILE *f;
   int i;
   char *tempfile = malloc (strlen (filename) + strlen (".tempXXXXXX") + 1);
   if (!tempfile)
@@ -448,7 +448,7 @@
     return -1;
   return 0;
 }
-  
+
 int
 lock_file (filename, state)
   const char *filename;
@@ -491,7 +491,7 @@
   close (fd);
   return 0;
 }
- 
+
 int
 unlock_file (filename, state)
   const char *filename;
--- a/lib-src/yow.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/lib-src/yow.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1,12 +1,12 @@
 /*
  * yow.c
- * 
+ *
  * Print a quotation from Zippy the Pinhead.
  * Qux <Kaufman-David@Yale> March 6, 1986
  *
  * This file is in the public domain because the author published it
  * with no copyright notice before the US signed the Bern Convention.
- * 
+ *
  * With dynamic memory allocation.
  */
 
@@ -114,7 +114,7 @@
   header_len = ftell(fp);
   if (header_len > AVG_LEN)
     header_len -= AVG_LEN;	/* allow the first quotation to appear */
-	
+
   if (fseek(fp, 0L, 2) == -1) {
     perror("yow");
     exit(1);
@@ -167,7 +167,7 @@
   buf[i++] = c;
   while ((c = getc(fp)) != SEP && c != EOF) {
     buf[i++] = c;
-	
+
     if (i == bufsize-1) {
       /* Yow! Is this quotation too long yet? */
       bufsize *= 2;
--- a/lispintro/INSTALL	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispintro/INSTALL	Tue Feb 04 14:56:31 2003 +0000
@@ -22,7 +22,7 @@
     ./configure
     make dvi
 
-    # To create an HTML file, execute the following 
+    # To create an HTML file, execute the following
     #   (presumably you have already executed the `./configure' command
     #    before running `make dvi'; if not execute `./configure' now);
     # this will place HTML files into a emacs-lisp-intro/ subdirectory:
--- a/lispintro/Makefile.old	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispintro/Makefile.old	Tue Feb 04 14:56:31 2003 +0000
@@ -67,7 +67,7 @@
 
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_CLEAN_FILES = 
+CONFIG_CLEAN_FILES =
 TEXI2DVI = texi2dvi
 INFO_DEPS = emacs-lisp-intro.info
 DVIS = emacs-lisp-intro.dvi
@@ -83,14 +83,14 @@
 all: all-redirect
 .SUFFIXES:
 .SUFFIXES: .dvi .info .ps .texi .texinfo .txi
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
 	cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps Makefile
 
 Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
 	cd $(top_builddir) \
 	  && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
 
-$(ACLOCAL_M4):  configure.in 
+$(ACLOCAL_M4):  configure.in
 	cd $(srcdir) && $(ACLOCAL)
 
 config.status: $(srcdir)/configure.in $(CONFIG_STATUS_DEPENDENCIES)
--- a/lispintro/README	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispintro/README	Tue Feb 04 14:56:31 2003 +0000
@@ -9,7 +9,7 @@
 GNU Emacs 21.
 
 The Texinfo source file `emacs-lisp-intro.texi', formats without
-error using TeX version 3.14159, `kpathsea' version 3.3.1, 
+error using TeX version 3.14159, `kpathsea' version 3.3.1,
 `texinfo.tex' version 2001-05-24.08, and `makeinfo' version 4.0b.
 
 Also, this tar file contains the following optional Encapsulated Post
--- a/lispintro/configure	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispintro/configure	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 #! /bin/sh
 
 # Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13 
+# Generated automatically using autoconf version 2.13
 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
 #
 # This configure script is free software; the Free Software Foundation
--- a/lispintro/install-sh	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispintro/install-sh	Tue Feb 04 14:56:31 2003 +0000
@@ -115,7 +115,7 @@
 if [ x"$dir_arg" != x ]; then
 	dst=$src
 	src=""
-	
+
 	if [ -d $dst ]; then
 		instcmd=:
 	else
@@ -124,7 +124,7 @@
 else
 
 # Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad 
+# might cause directories to be created, which would be especially bad
 # if $src (and thus $dsttmp) contains '*'.
 
 	if [ -f $src -o -d $src ]
@@ -134,7 +134,7 @@
 		echo "install:  $src does not exist"
 		exit 1
 	fi
-	
+
 	if [ x"$dst" = x ]
 	then
 		echo "install:	no destination specified"
@@ -162,7 +162,7 @@
 
 # Skip lots of stat calls in the usual case.
 if [ ! -d "$dstdir" ]; then
-defaultIFS='	
+defaultIFS='
 '
 IFS="${IFS-${defaultIFS}}"
 
@@ -201,17 +201,17 @@
 
 # If we're going to rename the final executable, determine the name now.
 
-	if [ x"$transformarg" = x ] 
+	if [ x"$transformarg" = x ]
 	then
 		dstfile=`basename $dst`
 	else
-		dstfile=`basename $dst $transformbasename | 
+		dstfile=`basename $dst $transformbasename |
 			sed $transformarg`$transformbasename
 	fi
 
 # don't allow the sed command to completely eliminate the filename
 
-	if [ x"$dstfile" = x ] 
+	if [ x"$dstfile" = x ]
 	then
 		dstfile=`basename $dst`
 	else
@@ -242,7 +242,7 @@
 # Now rename the file to the real destination.
 
 	$doit $rmcmd -f $dstdir/$dstfile &&
-	$doit $mvcmd $dsttmp $dstdir/$dstfile 
+	$doit $mvcmd $dsttmp $dstdir/$dstfile
 
 fi &&
 
--- a/lispintro/texinfo.tex	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispintro/texinfo.tex	Tue Feb 04 14:56:31 2003 +0000
@@ -35,10 +35,10 @@
 %   ftp://tug.org/tex/texinfo.tex
 %     (and all CTAN mirrors, see http://www.ctan.org),
 %   and /home/gd/gnu/doc/texinfo.tex on the GNU machines.
-% 
+%
 % The texinfo.tex in any given Texinfo distribution could well be out
 % of date, so if that's what you're using, please check.
-% 
+%
 % Texinfo has a small home page at http://texinfo.org/ and also
 % http://www.gnu.org/software/texinfo.
 %
@@ -175,7 +175,7 @@
 
 % add check for \lastpenalty to plain's definitions.  If the last thing
 % we did was a \nobreak, we don't want to insert more space.
-% 
+%
 \def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount
   \removelastskip\penalty-50\smallskip\fi\fi}
 \def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount
@@ -730,10 +730,10 @@
 % @inmargin{TEXT [, RIGHT-TEXT]}
 % (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right;
 % else use TEXT for both).
-% 
+%
 \def\inmargin#1{\parseinmargin #1,,\finish}
 \def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing.
-  \setbox0 = \hbox{\ignorespaces #2}% 
+  \setbox0 = \hbox{\ignorespaces #2}%
   \ifdim\wd0 > 0pt
     \def\lefttext{#1}%  have both texts
     \def\righttext{#2}%
@@ -797,7 +797,7 @@
 % @paragraphindent NCHARS
 % We'll use ems for NCHARS, close enough.
 % We cannot implement @paragraphindent asis, though.
-% 
+%
 \def\asisword{asis} % no translation, these are keywords
 \def\noneword{none}
 %
@@ -840,7 +840,7 @@
 % We don't use $'s directly in the definition of \math because we need
 % to set catcodes according to plain TeX first, to allow for subscripts,
 % superscripts, special math chars, etc.
-% 
+%
 % @math does not do math typesetting in section titles, index
 % entries, and other such contexts where the catcodes are set before
 % @math gets a chance to work.  This could perhaps be fixed, but for now
@@ -852,7 +852,7 @@
 % an actual _ character, as in @math{@var{some_variable} + 1}.  So make
 % _ within @math be active (mathcode "8000), and distinguish by seeing
 % if the current family is \slfam, which is what @var uses.
-% 
+%
 {\catcode95 = \active  % 95 = _
 \gdef\mathunderscore{%
   \catcode95=\active
@@ -863,7 +863,7 @@
 % FYI, plain.tex uses \\ as a temporary control sequence (why?), but
 % this is not advertised and we don't care.  Texinfo does not
 % otherwise define @\.
-% 
+%
 % The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\.
 \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
 %
@@ -986,11 +986,11 @@
   \def\pdfmakeoutlines{{%
     \openin 1 \jobname.toc
     \ifeof 1\else\begingroup
-      \closein 1 
+      \closein 1
       \indexnofonts
       \def\tt{}
       \let\_ = \normalunderscore
-      % Thanh's hack / proper braces in bookmarks  
+      % Thanh's hack / proper braces in bookmarks
       \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
       \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
       %
@@ -1032,7 +1032,7 @@
       \let\nextmakelinks=\makelinks
       \ifnum\lnkcount>0,\fi
       \picknum{#1}%
-      \startlink attr{/Border [0 0 0]} 
+      \startlink attr{/Border [0 0 0]}
         goto name{\pdfmkpgn{\the\pgn}}%
       \linkcolor #1%
       \advance\lnkcount by 1%
@@ -1087,7 +1087,7 @@
     \ifx\first0\adn0
     \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
     \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
-    \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 
+    \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
     \else
       \ifnum0=\countA\else\makelink\fi
       \ifx\first.\let\next=\done\else
@@ -1522,7 +1522,7 @@
 
 % rms does not like angle brackets --karl, 17may97.
 % So now @email is just like @uref, unless we are pdf.
-% 
+%
 %\def\email#1{\angleleft{\tt #1}\angleright}
 \ifpdf
   \def\email#1{\doemail#1,,\finish}
@@ -2743,10 +2743,10 @@
 
 % @synindex foo bar    makes index foo feed into index bar.
 % Do this instead of @defindex foo if you don't want it as a separate index.
-% 
+%
 % @syncodeindex foo bar   similar, but put all entries made for index foo
 % inside @code.
-% 
+%
 \def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}}
 \def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}}
 
@@ -2788,13 +2788,13 @@
 % Take care of texinfo commands likely to appear in an index entry.
 % (Must be a way to avoid doing expansion at all, and thus not have to
 % laboriously list every single command here.)
-% 
+%
 \def\indexdummies{%
 \def\ { }%
 \def\@{@}% change to @@ when we switch to @ as escape char in aux files.
 % Need these in case \tex is in effect and \{ is a \delimiter again.
 % But can't use \lbracecmd and \rbracecmd because texindex assumes
-% braces and backslashes are used only as delimiters.  
+% braces and backslashes are used only as delimiters.
 \let\{ = \mylbrace
 \let\} = \myrbrace
 \def\_{{\realbackslash _}}%
@@ -3349,7 +3349,7 @@
   \wd0=\hsize \wd2=\hsize
   \hbox to\pagewidth{\box0\hfil\box2}%
 }
-% 
+%
 % All done with double columns.
 \def\enddoublecolumns{%
   \output = {%
@@ -4150,7 +4150,7 @@
 % @foo ... @end foo.
 
 % @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
-% 
+%
 % Since these characters are used in examples, it should be an even number of
 % \tt widths. Each \tt character is 1en, so two makes it 1em.
 %
@@ -4162,7 +4162,7 @@
 
 % The @error{} command.
 % Adapted from the TeXbook's \boxit.
-% 
+%
 \newbox\errorbox
 %
 {\tentt \global\dimen0 = 3em}% Width of the box.
@@ -4470,7 +4470,7 @@
 
 
 % LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}
-% If we want to allow any <char> as delimiter, 
+% If we want to allow any <char> as delimiter,
 % we need the curly braces so that makeinfo sees the @verb command, eg:
 % `@verbx...x' would look like the '@verbx' command.  --janneke@gnu.org
 %
@@ -4544,8 +4544,8 @@
   \everypar{\starttabbox}%
 }
 
-% Do the @verb magic: verbatim text is quoted by unique 
-% delimiter characters.  Before first delimiter expect a 
+% Do the @verb magic: verbatim text is quoted by unique
+% delimiter characters.  Before first delimiter expect a
 % right brace, after last delimiter expect closing brace:
 %
 %    \def\doverb'{'<char>#1<char>'}'{#1}
@@ -4564,7 +4564,7 @@
 %
 %     \def\doverbatim#1@end verbatim{#1}
 %
-% For Texinfo it's a lot easier than for LaTeX, 
+% For Texinfo it's a lot easier than for LaTeX,
 % because texinfo's \verbatim doesn't stop at '\end{verbatim}':
 % we need not redefine '\', '{' and '}'
 %
@@ -4622,7 +4622,7 @@
 
 % @copying ... @end copying.
 % Save the text away for @insertcopying later.
-% 
+%
 \newbox\copyingbox
 %
 \def\copying{\begingroup
@@ -4632,7 +4632,7 @@
 }
 
 % @insertcopying.
-% 
+%
 \def\insertcopying{\unvcopy\copyingbox}
 
 
@@ -4788,7 +4788,7 @@
 % to account for this both in the \...x definition and in parsing the
 % input at hand.  Thus also need a control sequence (passed as #5) for
 % the \E... definition to assign the category name to.
-% 
+%
 \def\deftypeopparsebody#1#2#3#4#5 #6 {\begingroup\inENV
   \medbreak
   \def#1{\endgraf\endgroup\medbreak}%
@@ -5172,7 +5172,7 @@
 
 % These definitions are used if you use @defunx (etc.)
 % anywhere other than immediately after a @defun or @defunx.
-% 
+%
 \def\defcvx#1 {\errmessage{@defcvx in invalid context}}
 \def\deffnx#1 {\errmessage{@deffnx in invalid context}}
 \def\defivarx#1 {\errmessage{@defivarx in invalid context}}
@@ -5973,7 +5973,7 @@
     \nobreak\bigskip
     % Usually we'll have text after the image which will insert
     % \parskip glue, so insert it here too to equalize the space
-    % above and below. 
+    % above and below.
     \nobreak\vskip\parskip
     \nobreak
     \line\bgroup\hss
@@ -6089,7 +6089,7 @@
 }
 
 % Use `small' versions.
-% 
+%
 \def\smallenvironments{%
   \let\smalldisplay = \smalldisplayx
   \let\smallexample = \smalllispx
@@ -6346,7 +6346,7 @@
 % Say @foo, not \foo, in error messages.
 @escapechar = `@@
 
-% These look ok in all fonts, so just make them not special.  
+% These look ok in all fonts, so just make them not special.
 @catcode`@& = @other
 @catcode`@# = @other
 @catcode`@% = @other
--- a/lispref/Makefile.in	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/Makefile.in	Tue Feb 04 14:56:31 2003 +0000
@@ -44,7 +44,7 @@
 manual = elisp-manual-21-$(VERSION)
 
 # Uncomment this line for permuted index.
-# permuted_index = 1 
+# permuted_index = 1
 
 # List of all the texinfo files in the manual:
 
@@ -144,7 +144,7 @@
 clean:
 	rm -f *.toc *.aux *.log *.cp *.cps *.fn *.fns *.tp *.tps \
               *.vr *.vrs *.pg *.pgs *.ky *.kys
-	rm -f make.out core 
+	rm -f make.out core
 	rm -f index.texi
 
 distclean: clean
--- a/lispref/README	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/README	Tue Feb 04 14:56:31 2003 +0000
@@ -15,7 +15,7 @@
 2.5 megabytes.
 
 * You can format this manual either for Info or for printing hardcopy
-using TeX.  
+using TeX.
 
 * You can buy nicely printed copies from the Free Software Foundation.
 For info, send mail to gnu@gnu.org or phone 617-542-5942.  Buying a
@@ -42,7 +42,7 @@
 % make elisp.dvi
 
 *** To create a DVI file with a permuted index, you may experiment
-with `make-permuted-index'.  
+with `make-permuted-index'.
 
 ** To make an Info file, you need to install Texinfo, then run
 `./configure' and `make info'.  To install the Info files, run
--- a/lispref/abbrevs.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/abbrevs.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1999 
-@c   Free Software Foundation, Inc. 
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1999
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/abbrevs
 @node Abbrevs, Processes, Syntax Tables, Top
@@ -46,7 +46,7 @@
 
 @node Abbrev Mode, Abbrev Tables, Abbrevs, Abbrevs
 @comment  node-name,  next,  previous,  up
-@section Setting Up Abbrev Mode    
+@section Setting Up Abbrev Mode
 
   Abbrev mode is a minor mode controlled by the value of the variable
 @code{abbrev-mode}.
--- a/lispref/advice.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/advice.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1998, 1999 Free Software Foundation, Inc. 
+@c Copyright (C) 1998, 1999 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/advising
 @node Advising Functions, Debugging, Byte Compilation, Top
@@ -726,7 +726,7 @@
 according to their specified order.  The forms of around-advice @var{l}
 are included in one of the forms of around-advice @var{l} @minus{} 1.
 
-The innermost part of the around advice onion is 
+The innermost part of the around advice onion is
 
 @display
 apply original definition to @var{arglist}
--- a/lispref/anti.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/anti.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1999 Free Software Foundation, Inc. 
+@c Copyright (C) 1999 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 
 @c This node must have no pointers.
@@ -176,7 +176,7 @@
 current buffer.
 
 @item
-The function @code{assq-delete-all} has itself been deleted. 
+The function @code{assq-delete-all} has itself been deleted.
 So there!
 
 @item
@@ -270,13 +270,13 @@
 they use the current input method if the argument is if @code{nil}.
 
 @item
-The function @code{with-temp-message} has been eliminated. 
+The function @code{with-temp-message} has been eliminated.
 
 @item
-The function @code{clear-this-command-keys} has been eliminated. 
+The function @code{clear-this-command-keys} has been eliminated.
 
 @item
-The functions @code{gap-position} and @code{gap-size} have been eliminated. 
+The functions @code{gap-position} and @code{gap-size} have been eliminated.
 
 @item
 In @code{modify-face}, an argument of @code{(nil)} has no special
--- a/lispref/backups.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/backups.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/backups
 @node Backups and Auto-Saving, Buffers, Files, Top
@@ -78,9 +78,9 @@
 
 @smallexample
 @group
-(add-hook 'rmail-mode-hook 
+(add-hook 'rmail-mode-hook
           (function (lambda ()
-                      (make-local-variable 
+                      (make-local-variable
                        'make-backup-files)
                       (setq make-backup-files nil))))
 @end group
@@ -157,7 +157,7 @@
 @subsection Backup by Renaming or by Copying?
 @cindex backup files, how to make them
 
-  There are two ways that Emacs can make a backup file: 
+  There are two ways that Emacs can make a backup file:
 
 @itemize @bullet
 @item
@@ -405,7 +405,7 @@
 
 Some file comparison commands use this function so that they can
 automatically compare a file with its most recent backup.
-@end defun 
+@end defun
 
 @node Auto-Saving
 @section Auto-Saving
--- a/lispref/buffers.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/buffers.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/buffers
 @node Buffers, Windows, Backups and Auto-Saving, Top
@@ -138,7 +138,7 @@
 @code{insert-buffer-substring} copies the string from the original
 current buffer to the specified (and now current) buffer.
 
-  If the buffer appended to happens to be displayed in some window, 
+  If the buffer appended to happens to be displayed in some window,
 the next redisplay will show how its text has changed.  Otherwise, you
 will not see the change immediately on the screen.  The buffer becomes
 current temporarily during the execution of the command, but this does
@@ -307,7 +307,7 @@
 This function returns the buffer specified by @var{buffer-or-name}.
 If @var{buffer-or-name} is a string and there is no buffer with that
 name, the value is @code{nil}.  If @var{buffer-or-name} is a buffer, it
-is returned as given; that is not very useful, so the argument is usually 
+is returned as given; that is not very useful, so the argument is usually
 a name.  For example:
 
 @example
@@ -534,7 +534,7 @@
 @comment  node-name,  next,  previous,  up
 @section Comparison of Modification Time
 @cindex comparison of modification time
-@cindex modification time, comparison of 
+@cindex modification time, comparison of
 
   Suppose that you visit a file and make changes in its buffer, and
 meanwhile the file itself is changed on disk.  At this point, saving the
@@ -602,7 +602,7 @@
 Depending on the user's answer, the function may return normally, in
 which case the modification of the buffer proceeds, or it may signal a
 @code{file-supersession} error with data @code{(@var{filename})}, in which
-case the proposed buffer modification is not allowed.  
+case the proposed buffer modification is not allowed.
 
 This function is called automatically by Emacs on the proper
 occasions.  It exists so you can customize Emacs by redefining it.
@@ -617,7 +617,7 @@
 @cindex buffer, read-only
 
   If a buffer is @dfn{read-only}, then you cannot change its contents,
-although you may change your view of the contents by scrolling and 
+although you may change your view of the contents by scrolling and
 narrowing.
 
   Read-only buffers are used in two kinds of situations:
@@ -716,7 +716,7 @@
 ;; @r{Note that the name of the minibuffer}
 ;;   @r{begins with a space!}
 (mapcar (function buffer-name) (buffer-list))
-    @result{} ("buffers.texi" " *Minibuf-1*" 
+    @result{} ("buffers.texi" " *Minibuf-1*"
         "buffer.c" "*Help*" "TAGS")
 @end group
 @end example
@@ -982,7 +982,7 @@
 This creates an indirect buffer named @var{name} whose base buffer
 is @var{base-buffer}.  The argument @var{base-buffer} may be a buffer
 or a string.
- 
+
 If @var{base-buffer} is an indirect buffer, its base buffer is used as
 the base for the new buffer.
 @end deffn
--- a/lispref/calendar.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/calendar.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998 Free Software Foundation, Inc. 
+@c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Calendar, System Interface, Display, Top
 @chapter Customizing the Calendar and Diary
@@ -16,7 +16,7 @@
 * Daylight Savings::       Changing the default.
 * Diary Customizing::      Defaults you can set.
 * Hebrew/Islamic Entries:: How to obtain them.
-* Fancy Diary Display::    Enhancing the diary display, sorting entries, 
+* Fancy Diary Display::    Enhancing the diary display, sorting entries,
                              using included diary files.
 * Sexp Diary Entries::     Fancy things you can do.
 * Appt Customizing::	   Customizing appointment reminders.
@@ -543,7 +543,7 @@
 well as entries based on the world-standard Gregorian calendar.
 However, because recognition of such entries is time-consuming and most
 people don't use them, you must explicitly enable their use.  If you
-want the diary to recognize Hebrew-date diary entries, for example, 
+want the diary to recognize Hebrew-date diary entries, for example,
 you must do this:
 
 @vindex nongregorian-diary-listing-hook
@@ -603,7 +603,7 @@
 selected date.
 @item i h y
 Add a diary entry for the day of the Hebrew year corresponding to the
-selected date (@code{insert-yearly-hebrew-diary-entry}).  This diary 
+selected date (@code{insert-yearly-hebrew-diary-entry}).  This diary
 entry matches any date which has the same Hebrew month and day-within-month
 as the selected date.
 @item i i d
@@ -626,7 +626,7 @@
   These commands work much like the corresponding commands for ordinary
 diary entries: they apply to the date that point is on in the calendar
 window, and what they do is insert just the date portion of a diary entry
-at the end of your diary file.  You must then insert the rest of the 
+at the end of your diary file.  You must then insert the rest of the
 diary entry.
 
 @node Fancy Diary Display
--- a/lispref/commands.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/commands.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/commands
 @node Command Loop, Keymaps, Minibuffers, Top
@@ -12,7 +12,7 @@
   When you run Emacs, it enters the @dfn{editor command loop} almost
 immediately.  This loop reads key sequences, executes their definitions,
 and displays the results.  In this chapter, we describe how these things
-are done, and the subroutines that allow Lisp programs to do them.  
+are done, and the subroutines that allow Lisp programs to do them.
 
 @menu
 * Command Overview::    How the command loop reads commands.
@@ -442,7 +442,7 @@
 @comment  node-name,  next,  previous,  up
 @subsection Examples of Using @code{interactive}
 @cindex examples of using @code{interactive}
-@cindex @code{interactive}, examples of using 
+@cindex @code{interactive}, examples of using
 
   Here are some examples of @code{interactive}:
 
@@ -501,7 +501,7 @@
 
 @defun commandp object
 Returns @code{t} if @var{object} is suitable for calling interactively;
-that is, if @var{object} is a command.  Otherwise, returns @code{nil}.  
+that is, if @var{object} is a command.  Otherwise, returns @code{nil}.
 
 The interactively callable objects include strings and vectors (treated
 as keyboard macros), lambda expressions that contain a top-level call to
@@ -664,7 +664,7 @@
 @section Information from the Command Loop
 
 The editor command loop sets several Lisp variables to keep status
-records for itself and for commands that are run.  
+records for itself and for commands that are run.
 
 @defvar last-command
 This variable records the name of the previous command executed by the
@@ -1272,7 +1272,7 @@
 @key{meta} held down comes to the Lisp program as
 @code{M-double-mouse-2}.  If a double-click event has no binding, the
 binding of the corresponding ordinary click event is used to execute
-it.  Thus, you need not pay attention to the double click feature 
+it.  Thus, you need not pay attention to the double click feature
 unless you really want to.
 
 When the user performs a double click, Emacs generates first an ordinary
@@ -2131,7 +2131,7 @@
 For example, the function that implements numeric prefix arguments reads
 any number of digits.  When it finds a non-digit event, it must unread
 the event so that it can be read normally by the command loop.
-Likewise, incremental search uses this feature to unread events with no 
+Likewise, incremental search uses this feature to unread events with no
 special meaning in a search, because these events should exit the search
 and then execute normally.
 
@@ -2200,7 +2200,7 @@
 
 In the following example, the user may type a number of characters right
 after starting the evaluation of the form.  After the @code{sleep-for}
-finishes sleeping, @code{discard-input} discards any characters typed 
+finishes sleeping, @code{discard-input} discards any characters typed
 during the sleep.
 
 @example
@@ -2251,7 +2251,7 @@
 This function performs redisplay (provided there is no pending input
 from the user), then waits @var{seconds} seconds, or until input is
 available.  The value is @code{t} if @code{sit-for} waited the full
-time with no input arriving (see @code{input-pending-p} in @ref{Event 
+time with no input arriving (see @code{input-pending-p} in @ref{Event
 Input Misc}).  Otherwise, the value is @code{nil}.
 
 The argument @var{seconds} need not be an integer.  If it is a floating
@@ -2334,7 +2334,7 @@
   At the level of C code, quitting cannot happen just anywhere; only at the
 special places that check @code{quit-flag}.  The reason for this is
 that quitting at other places might leave an inconsistency in Emacs's
-internal state.  Because quitting is delayed until a safe place, quitting 
+internal state.  Because quitting is delayed until a safe place, quitting
 cannot make Emacs crash.
 
   Certain functions such as @code{read-key-sequence} or
@@ -2343,7 +2343,7 @@
 input.  In the case of @code{read-key-sequence}, this serves to bring
 about the special behavior of @kbd{C-g} in the command loop.  In the
 case of @code{read-quoted-char}, this is so that @kbd{C-q} can be used
-to quote a @kbd{C-g}.  
+to quote a @kbd{C-g}.
 
 @cindex prevent quitting
   You can prevent quitting for a portion of a Lisp function by binding
@@ -2399,7 +2399,7 @@
 
   You can specify a character other than @kbd{C-g} to use for quitting.
 See the function @code{set-input-mode} in @ref{Terminal Input}.
- 
+
 @node Prefix Command Arguments
 @section Prefix Command Arguments
 @cindex prefix argument
@@ -2468,11 +2468,11 @@
 
 M-3     M-x display-prefix  @print{} 3      ; @r{(Same as @code{C-u 3}.)}
 
-C-u -   M-x display-prefix  @print{} -      
+C-u -   M-x display-prefix  @print{} -
 
 M--     M-x display-prefix  @print{} -      ; @r{(Same as @code{C-u -}.)}
 
-C-u - 7 M-x display-prefix  @print{} -7     
+C-u - 7 M-x display-prefix  @print{} -7
 
 M-- 7   M-x display-prefix  @print{} -7     ; @r{(Same as @code{C-u -7}.)}
 @end example
@@ -2633,12 +2633,12 @@
 @deffn Command exit-recursive-edit
 This function exits from the innermost recursive edit (including
 minibuffer input).  Its definition is effectively @code{(throw 'exit
-nil)}.  
+nil)}.
 @end deffn
 
 @deffn Command abort-recursive-edit
 This function aborts the command that requested the innermost recursive
-edit (including minibuffer input), by signaling @code{quit} 
+edit (including minibuffer input), by signaling @code{quit}
 after exiting the recursive edit.  Its definition is effectively
 @code{(throw 'exit t)}.  @xref{Quitting}.
 @end deffn
@@ -2780,7 +2780,7 @@
 The argument @var{count} is a repeat count; @var{kbdmacro} is executed that
 many times.  If @var{count} is omitted or @code{nil}, @var{kbdmacro} is
 executed once.  If it is 0, @var{kbdmacro} is executed over and over until it
-encounters an error or a failing search.  
+encounters an error or a failing search.
 
 @xref{Reading One Event}, for an example of using @code{execute-kbd-macro}.
 @end defun
--- a/lispref/compile.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/compile.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc. 
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/compile
 @node Byte Compilation, Advising Functions, Loading, Top
@@ -64,7 +64,7 @@
 (defun silly-loop (n)
   "Return time before and after N iterations of a loop."
   (let ((t1 (current-time-string)))
-    (while (> (setq n (1- n)) 
+    (while (> (setq n (1- n))
               0))
     (list t1 (current-time-string))))
 @result{} silly-loop
@@ -530,7 +530,7 @@
 @group
 0   constant 1              ; @r{Push 1 onto stack.}
 
-1   varref   integer        ; @r{Get value of @code{integer}} 
+1   varref   integer        ; @r{Get value of @code{integer}}
                             ;   @r{from the environment}
                             ;   @r{and push the value}
                             ;   @r{onto the stack.}
@@ -573,7 +573,7 @@
 @group
                             ; @r{Stack now contains:}
                             ;   @minus{} @r{decremented value of @code{integer}}
-                            ;   @minus{} @r{@code{factorial}} 
+                            ;   @minus{} @r{@code{factorial}}
                             ;   @minus{} @r{value of @code{integer}}
                             ;   @minus{} @r{@code{*}}
 @end group
@@ -616,7 +616,7 @@
 (defun silly-loop (n)
   "Return time before and after N iterations of a loop."
   (let ((t1 (current-time-string)))
-    (while (> (setq n (1- n)) 
+    (while (> (setq n (1- n))
               0))
     (list t1 (current-time-string))))
      @result{} silly-loop
@@ -717,7 +717,7 @@
 @end group
 
 @group
-19  constant current-time-string  ; @r{Push} 
+19  constant current-time-string  ; @r{Push}
                                   ;   @r{@code{current-time-string}}
                                   ;   @r{onto top of stack.}
 @end group
--- a/lispref/configure	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/configure	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 #! /bin/sh
 
 # Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13 
+# Generated automatically using autoconf version 2.13
 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
 #
 # This configure script is free software; the Free Software Foundation
--- a/lispref/control.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/control.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c  Free Software Foundation, Inc. 
+@c  Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/control
 @node Control Structures, Variables, Evaluation, Top
@@ -154,7 +154,7 @@
 non-@code{nil}, @var{then-form} is evaluated and the result returned.
 Otherwise, the @var{else-forms} are evaluated in textual order, and the
 value of the last one is returned.  (The @var{else} part of @code{if} is
-an example of an implicit @code{progn}.  @xref{Sequencing}.) 
+an example of an implicit @code{progn}.  @xref{Sequencing}.)
 
 If @var{condition} has the value @code{nil}, and no @var{else-forms} are
 given, @code{if} returns @code{nil}.
@@ -165,8 +165,8 @@
 
 @example
 @group
-(if nil 
-    (print 'true) 
+(if nil
+    (print 'true)
   'very-false)
 @result{} very-false
 @end group
@@ -260,7 +260,7 @@
 never @code{nil}, so this clause never fails, provided the @code{cond}
 gets to it at all.
 
-For example, 
+For example,
 
 @example
 @group
@@ -376,7 +376,7 @@
 @var{conditions} turned out @code{nil}.  (Think about it; which one
 did not?)
 
-For example, this expression tests whether @code{x} is either 
+For example, this expression tests whether @code{x} is either
 @code{nil} or the integer zero:
 
 @example
@@ -401,7 +401,7 @@
 @example
 @group
 (if @var{arg1} @var{arg1}
-  (if @var{arg2} @var{arg2} 
+  (if @var{arg2} @var{arg2}
     @var{arg3}))
 @end group
 @end example
@@ -663,7 +663,7 @@
 @end group
 
 @group
-(catch 'hack 
+(catch 'hack
   (print (catch2 'hack))
   'no)
 @print{} yes
@@ -745,7 +745,7 @@
 buffer.  You can also signal errors explicitly with the functions
 @code{error} and @code{signal}.
 
-  Quitting, which happens when the user types @kbd{C-g}, is not 
+  Quitting, which happens when the user types @kbd{C-g}, is not
 considered an error, but it is handled almost like an error.
 @xref{Quitting}.
 
@@ -1000,9 +1000,9 @@
 @smallexample
 @group
 (defun safe-divide (dividend divisor)
-  (condition-case err                
+  (condition-case err
       ;; @r{Protected form.}
-      (/ dividend divisor)              
+      (/ dividend divisor)
 @end group
 @group
     ;; @r{The handler.}
@@ -1046,7 +1046,7 @@
       ;; @r{This is a call to the function @code{error}.}
       (error "Rats!  The variable %s was %s, not 35" 'baz baz))
   ;; @r{This is the handler; it is not a form.}
-  (error (princ (format "The error was: %s" err)) 
+  (error (princ (format "The error was: %s" err))
          2))
 @print{} The error was: (error "Rats!  The variable baz was 34, not 35")
 @result{} 2
@@ -1096,7 +1096,7 @@
 @group
 (put 'new-error
      'error-conditions
-     '(error my-own-errors new-error))       
+     '(error my-own-errors new-error))
 @result{} (error my-own-errors new-error)
 @end group
 @group
@@ -1112,7 +1112,7 @@
 
   The error string should start with a capital letter but it should
 not end with a period.  This is for consistency with the rest of Emacs.
- 
+
   Naturally, Emacs will never signal @code{new-error} on its own; only
 an explicit call to @code{signal} (@pxref{Signaling Errors}) in your
 code can do this:
--- a/lispref/customize.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/customize.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc. 
+@c Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/customize
 @node Customization, Loading, Macros, Top
@@ -13,8 +13,8 @@
 
 @menu
 * Common Keywords::
-* Group Definitions::            
-* Variable Definitions::         
+* Group Definitions::
+* Variable Definitions::
 * Customization Types::
 @end menu
 
@@ -502,7 +502,7 @@
 @end smallexample
 
 @noindent
-instead of 
+instead of
 
 @smallexample
 (defcustom cons-alist '(("foo" . 1) ("bar" . 2) ("baz" . 3))
@@ -527,14 +527,14 @@
 key, using variations of this trick:
 
 @smallexample
-(defcustom person-data '(("brian"  50 t) 
+(defcustom person-data '(("brian"  50 t)
                          ("dorith" 55 nil)
                          ("ken"    52 t))
   "Alist of basic info about people.
 Each element has the form (NAME AGE MALE-FLAG)."
   :type '(alist :value-type (group age boolean)))
 
-(defcustom pets '(("brian") 
+(defcustom pets '(("brian")
                   ("dorith" "dog" "guppy")
                   ("ken" "cat"))
   "Alist of people's pets.
@@ -930,7 +930,7 @@
 keyword.
 
 @item %%
-Display a literal @samp{%}. 
+Display a literal @samp{%}.
 @end table
 
 @item :action @var{action}
@@ -1033,7 +1033,7 @@
 @item
 Widgets with tabbing order @code{-1} are ignored.
 
-@item 
+@item
 (Unimplemented) When on a widget with tabbing order @var{n}, go to the
 next widget in the buffer with tabbing order @var{n+1} or @code{nil},
 whichever comes first.
--- a/lispref/debugging.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/debugging.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/debugging
 @node Debugging, Read and Print, Advising Functions, Top
--- a/lispref/display.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/display.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, 2002
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/display
 @node Display, Calendar, Processes, Top
@@ -409,9 +409,9 @@
 
 @example
 ;; @r{If you want to display an ellipsis:}
-(add-to-invisibility-spec '(my-symbol . t)) 
+(add-to-invisibility-spec '(my-symbol . t))
 ;; @r{If you don't want ellipsis:}
-(add-to-invisibility-spec 'my-symbol) 
+(add-to-invisibility-spec 'my-symbol)
 
 (overlay-put (make-overlay beginning end)
              'invisible 'my-symbol)
@@ -483,7 +483,7 @@
 
 @defvar selective-display
 This buffer-local variable enables selective display.  This means that
-lines, or portions of lines, may be made invisible.  
+lines, or portions of lines, may be made invisible.
 
 @itemize @bullet
 @item
@@ -1336,7 +1336,7 @@
 customize using the Customization buffer (@pxref{Easy Customization,,,
 emacs, The GNU Emacs Manual}).
 
-@defmac defface face spec doc [keyword value]... 
+@defmac defface face spec doc [keyword value]...
 This declares @var{face} as a customizable face that defaults according
 to @var{spec}.  You should not quote the symbol @var{face}.  The
 argument @var{doc} specifies the face documentation.  The keywords you
@@ -1473,13 +1473,13 @@
 @code{extra-condensed}, @code{condensed}, @code{semi-condensed},
 @code{normal}, @code{semi-expanded}, @code{expanded},
 @code{extra-expanded}, or @code{ultra-expanded}.
-   
+
 @item :height
 Either the font height, an integer in units of 1/10 point, a floating
 point number specifying the amount by which to scale the height of any
 underlying face, or a function, which is called with the old height
 (from the underlying face), and should return the new height.
-   
+
 @item :weight
 Font weight---a symbol from this series (from most dense to most faint):
 @code{ultra-bold}, @code{extra-bold}, @code{bold}, @code{semi-bold},
@@ -1499,7 +1499,7 @@
 
 @item :foreground
 Foreground color, a string.
-   
+
 @item :background
 Background color, a string.
 
@@ -1852,7 +1852,7 @@
 highlighted with the face @code{region} (@pxref{Standard Faces}).
 
 @item
-With special glyphs.  Each glyph can specify a particular face 
+With special glyphs.  Each glyph can specify a particular face
 number.  @xref{Glyphs}.
 @end itemize
 
@@ -2285,7 +2285,7 @@
 @menu
 * Specified Space::     Displaying one space with a specified width.
 * Other Display Specs:: Displaying an image; magnifying text; moving it
-                          up or down on the page; adjusting the width 
+                          up or down on the page; adjusting the width
                           of spaces within text.
 * Display Margins::     Displaying text or images to the side of the main text.
 * Conditional Display:: Making any of the above features conditional
@@ -2465,7 +2465,7 @@
 @defun set-window-margins window left &optional right
 @tindex set-window-margins
 This function specifies the margin widths for window @var{window}.
-The argument @var{left} controls the left margin and 
+The argument @var{left} controls the left margin and
 @var{right} controls the right margin (default @code{0}).
 @end defun
 
@@ -3409,7 +3409,7 @@
 
 @defvar glyph-table
 The value of this variable is the current glyph table.  It should be a
-vector; the @var{g}th element defines glyph code @var{g}.  
+vector; the @var{g}th element defines glyph code @var{g}.
 
 If a glyph code is greater than or equal to the length of the glyph
 table, that code is automatically simple.  If the value of
--- a/lispref/edebug.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/edebug.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,10 +1,10 @@
 @comment -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1992, 1993, 1994, 1998, 1999 Free Software Foundation, Inc. 
+@c Copyright (C) 1992, 1993, 1994, 1998, 1999 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 
-@c This file can also be used by an independent Edebug User 
-@c Manual in which case the Edebug node below should be used 
+@c This file can also be used by an independent Edebug User
+@c Manual in which case the Edebug node below should be used
 @c with the following links to the Bugs section and to the top level:
 
 @c , Bugs and Todo List, Top, Top
@@ -35,7 +35,7 @@
 Display expression results and evaluate expressions as if outside of
 Edebug.
 
-@item 
+@item
 Automatically re-evaluate a list of expressions and
 display their results each time Edebug updates the display.
 
@@ -117,7 +117,7 @@
 @cindex stop points
 The places within a function where Edebug can stop execution are called
 @dfn{stop points}.  These occur both before and after each subexpression
-that is a list, and also after each variable reference.  
+that is a list, and also after each variable reference.
 Here we use periods to show the stop points in the function
 @code{fac}:
 
@@ -142,7 +142,7 @@
 @end example
 
 When Edebug stops execution after an expression, it displays the
-expression's value in the echo area. 
+expression's value in the echo area.
 
 Other frequently used commands are @kbd{b} to set a breakpoint at a stop
 point, @kbd{g} to execute until a breakpoint is reached, and @kbd{q} to
@@ -445,7 +445,7 @@
 program.
 
 @item u
-Unset the breakpoint (if any) at the stop point at or after 
+Unset the breakpoint (if any) at the stop point at or after
 point (@code{edebug-unset-breakpoint}).
 
 @item x @var{condition} @key{RET}
@@ -490,7 +490,7 @@
 point in the buffer.
 
 @menu
-* Global Break Condition::	Breaking on an event. 
+* Global Break Condition::	Breaking on an event.
 * Source Breakpoints::  	Embedding breakpoints in source code.
 @end menu
 
@@ -692,7 +692,7 @@
 
   The expressions you enter interactively (and their results) are lost
 when you continue execution; but you can set up an @dfn{evaluation list}
-consisting of expressions to be evaluated each time execution stops. 
+consisting of expressions to be evaluated each time execution stops.
 
 @cindex evaluation list group
   To do this, write one or more @dfn{evaluation list groups} in the
@@ -771,7 +771,7 @@
 printing results.  The default value is @code{50}.
 @end defopt
 
-@defopt edebug-print-level 
+@defopt edebug-print-level
 If non-@code{nil}, Edebug binds @code{print-level} to this value while
 printing results.  The default value is @code{50}.
 @end defopt
@@ -794,7 +794,7 @@
 structure.  This notation is used for any shared elements of lists or
 vectors.
 
-@defopt edebug-print-circle 
+@defopt edebug-print-circle
 If non-@code{nil}, Edebug binds @code{print-circle} to this value while
 printing results.  The default value is @code{nil}.
 @end defopt
@@ -900,13 +900,13 @@
 @example
 (defun fac (n)
   (if (= n 0) (edebug))
-;#6           1      0 =5 
+;#6           1      0 =5
   (if (< 0 n)
-;#5         = 
+;#5         =
       (* n (fac (1- n)))
-;#    5               0  
+;#    5               0
     1))
-;#   0 
+;#   0
 @end example
 
 The comment lines show that @code{fac} was called 6 times.  The
@@ -939,12 +939,12 @@
 program.
 
 @itemize @bullet
-@item 
+@item
 @code{max-lisp-eval-depth} and @code{max-specpdl-size} are both
 incremented once to reduce Edebug's impact on the stack.  You could,
 however, still run out of stack space when using Edebug.
 
-@item 
+@item
 The state of keyboard macro execution is saved and restored.  While
 Edebug is active, @code{executing-macro} is bound to
 @code{edebug-continue-kbd-macro}.
@@ -958,7 +958,7 @@
 @c This paragraph is not filled, because LaLiberte's conversion script
 @c needs an xref to be on just one line.
 When Edebug needs to display something (e.g., in trace mode), it saves
-the current window configuration from ``outside'' Edebug 
+the current window configuration from ``outside'' Edebug
 (@pxref{Window Configurations}).  When you exit Edebug (by continuing
 the program), it restores the previous window configuration.
 
@@ -974,12 +974,12 @@
 error or quit signal occurs).
 
 @itemize @bullet
-@item 
+@item
 @cindex current buffer point and mark (Edebug)
 Which buffer is current, and the positions of point and the mark in the
 current buffer, are saved and restored.
 
-@item 
+@item
 @cindex window configuration (Edebug)
 The outside window configuration is saved and restored if
 @code{edebug-save-windows} is non-@code{nil} (@pxref{Edebug Display Update}).
@@ -1002,7 +1002,7 @@
 @code{overlay-arrow-string} are saved and restored.  So you can safely
 invoke Edebug from the recursive edit elsewhere in the same buffer.
 
-@item 
+@item
 @code{cursor-in-echo-area} is locally bound to @code{nil} so that
 the cursor shows up in the window.
 @end itemize
@@ -1047,7 +1047,7 @@
 by the @code{recursive-edit}, but Edebug temporarily restores them during
 evaluations.
 
-@item 
+@item
 The state of keyboard macro definition is saved and restored.  While
 Edebug is active, @code{defining-kbd-macro} is bound to
 @code{edebug-continue-kbd-macro}.
@@ -1187,7 +1187,7 @@
 @item &optional
 @kindex &optional @r{(Edebug)}
 All following elements in the specification list are optional; as soon
-as one does not match, Edebug stops matching at this level.  
+as one does not match, Edebug stops matching at this level.
 
 To make just a few elements optional followed by non-optional elements,
 use @code{[&optional @var{specs}@dots{}]}.  To specify that several
@@ -1222,7 +1222,7 @@
 of them match, nothing is matched, but the @code{&not} specification
 succeeds.
 
-@item &define 
+@item &define
 @kindex &define @r{(Edebug)}
 Indicates that the specification is for a defining form.  The defining
 form itself is not instrumented (that is, Edebug does not stop before and
@@ -1302,7 +1302,7 @@
 
 @table @code
 @item name
-The argument, a symbol, is the name of the defining form. 
+The argument, a symbol, is the name of the defining form.
 
 A defining form is not required to have a name field; and it may have
 multiple name fields.
@@ -1349,7 +1349,7 @@
 exhausted.  Eventually every element of the argument list must be
 matched by some element in the specification, and every required element
 in the specification must match some argument.
-  
+
 When a syntax error is detected, it might not be reported until much
 later after higher-level alternatives have been exhausted, and with the
 point positioned further from the real error.  But if backtracking is
@@ -1405,8 +1405,8 @@
 
 @smallexample
 (def-edebug-spec defmacro defun) ; @r{Indirect ref to @code{defun} spec.}
-(def-edebug-spec defun 
-  (&define name lambda-list 
+(def-edebug-spec defun
+  (&define name lambda-list
            [&optional stringp]   ; @r{Match the doc string, if present.}
            [&optional ("interactive" interactive)]
            def-body))
@@ -1479,7 +1479,7 @@
 variable to @code{nil}.
 
 If the value is a list, only the listed windows are saved and
-restored.  
+restored.
 
 You can use the @kbd{W} command in Edebug to change this variable
 interactively.  @xref{Edebug Display Update}.
@@ -1505,26 +1505,26 @@
 @code{step}, @code{next}, @code{go}, @code{Go-nonstop}, @code{trace},
 @code{Trace-fast}, @code{continue}, and @code{Continue-fast}.
 
-The default value is @code{step}.  
+The default value is @code{step}.
 @xref{Edebug Execution Modes}.
 @end defopt
 
 @defopt edebug-trace
 Non-@code{nil} means display a trace of function entry and exit.
 Tracing output is displayed in a buffer named @samp{*edebug-trace*}, one
-function entry or exit per line, indented by the recursion level.  
+function entry or exit per line, indented by the recursion level.
 
-The default value is @code{nil}.  
+The default value is @code{nil}.
 
 Also see @code{edebug-tracing}, in @ref{Trace Buffer}.
 @end defopt
 
-@defopt edebug-test-coverage 
+@defopt edebug-test-coverage
 If non-@code{nil}, Edebug tests coverage of all expressions debugged.
 @xref{Coverage Testing}.
 @end defopt
 
-@defopt edebug-continue-kbd-macro 
+@defopt edebug-continue-kbd-macro
 If non-@code{nil}, continue defining or executing any keyboard macro
 that is executing outside of Edebug.   Use this with caution since it is not
 debugged.
--- a/lispref/elisp-covers.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/elisp-covers.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -24,7 +24,7 @@
 @sp 2
 @center @titlefont{Volume 1}
 @sp 2
-@center by Bil Lewis, Dan LaLiberte, 
+@center by Bil Lewis, Dan LaLiberte,
 @center and the GNU Manual Group
 
 @page
@@ -47,7 +47,7 @@
 @sp 2
 @center @titlefont{Volume 2}
 @sp 2
-@center by Bil Lewis, 
+@center by Bil Lewis,
 @center Dan LaLiberte, and
 @center the GNU Manual Group
 
@@ -78,7 +78,7 @@
 @sp 2
 @center @titlefont{Volume 1}
 @sp 2
-@center by Bil Lewis, Dan LaLiberte, 
+@center by Bil Lewis, Dan LaLiberte,
 @center and the GNU Manual Group
 
 @page
@@ -112,7 +112,7 @@
 @sp 2
 @center @titlefont{Volume 1}
 @sp 2
-@center by Bil Lewis, 
+@center by Bil Lewis,
 @center Dan LaLiberte, and
 @center the GNU Manual Group
 
@@ -143,7 +143,7 @@
 @sp 2
 @center @titlefont{Volume 1}
 @sp 2
-@center by Bil Lewis, Dan LaLiberte, 
+@center by Bil Lewis, Dan LaLiberte,
 @center and the GNU Manual Group
 
 @page
@@ -173,7 +173,7 @@
 @sp 2
 @center @titlefont{Volume 2}
 @sp 2
-@center by Bil Lewis, Dan LaLiberte, 
+@center by Bil Lewis, Dan LaLiberte,
 @center and the GNU Manual Group
 
 @page
@@ -203,7 +203,7 @@
 @sp 2
 @center @titlefont{Volume 2}
 @sp 2
-@center by Bil Lewis, Dan LaLiberte, 
+@center by Bil Lewis, Dan LaLiberte,
 @center and the GNU Manual Group
 
 
@@ -216,7 +216,7 @@
 @center for Unix Users
 @center Edition 2.3, June 1994
 @sp 4
-@center by Bil Lewis, Dan LaLiberte, 
+@center by Bil Lewis, Dan LaLiberte,
 @center and the GNU Manual Group
 
 @sp 4
@@ -225,7 +225,7 @@
 @author FSF
 
 @author
- 
+
 @page
 @c ================  Spine 2 ================
 
@@ -235,7 +235,7 @@
 @center for Unix Users
 @center Edition 2.3, June 1994
 @sp 4
-@center by Bil Lewis, Dan LaLiberte, 
+@center by Bil Lewis, Dan LaLiberte,
 @center and the GNU Manual Group
 
 
--- a/lispref/elisp.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/elisp.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -35,7 +35,7 @@
 Boston, MA  02111-1307  USA
 
 Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999,@*
-              2000, 2002 Free Software Foundation, Inc. 
+              2000, 2002 Free Software Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1 or
@@ -207,8 +207,8 @@
 
 Format of Descriptions
 
-* A Sample Function Description::       
-* A Sample Variable Description::   
+* A Sample Function Description::
+* A Sample Variable Description::
 
 Lisp Data Types
 
@@ -317,7 +317,7 @@
 * Intro Eval::              Evaluation in the scheme of things.
 * Eval::                    How to invoke the Lisp interpreter explicitly.
 * Forms::                   How various sorts of objects are evaluated.
-* Quoting::                 Avoiding evaluation (to put constants in 
+* Quoting::                 Avoiding evaluation (to put constants in
                               the program).
 
 Kinds of Forms
@@ -370,11 +370,11 @@
 
 Scoping Rules for Variable Bindings
 
-* Scope::                   Scope means where in the program a value 
+* Scope::                   Scope means where in the program a value
                               is visible.  Comparison with other languages.
 * Extent::                  Extent means how long in time a value exists.
 * Impl of Scope::           Two ways to implement dynamic scoping.
-* Using Scoping::           How to use dynamic scoping carefully and 
+* Using Scoping::           How to use dynamic scoping carefully and
                               avoid problems.
 
 Buffer-Local Variables
@@ -392,11 +392,11 @@
 * Defining Functions::      Lisp expressions for defining functions.
 * Calling Functions::       How to use an existing function.
 * Mapping Functions::       Applying a function to each element of a list, etc.
-* Anonymous Functions::     Lambda-expressions are functions with no names.    
+* Anonymous Functions::     Lambda-expressions are functions with no names.
 * Function Cells::          Accessing or setting the function definition
                               of a symbol.
 * Related Topics::          Cross-references to specific Lisp primitives
-                              that have a special bearing on how 
+                              that have a special bearing on how
                               functions work.
 
 Lambda Expressions
@@ -445,10 +445,10 @@
 
 * Debugger::                How the Emacs Lisp debugger is implemented.
 * Syntax Errors::           How to find syntax errors.
-* Compilation Errors::      How to find errors that show up in 
+* Compilation Errors::      How to find errors that show up in
                               byte compilation.
 * Edebug::                  A source-level Emacs Lisp debugger.
-                                
+
 The Lisp Debugger
 
 * Error Debugging::         Entering the debugger when an error happens.
@@ -467,10 +467,10 @@
 Reading and Printing Lisp Objects
 
 * Streams Intro::           Overview of streams, reading and printing.
-* Input Streams::           Various data types that can be used as 
+* Input Streams::           Various data types that can be used as
                               input streams.
 * Input Functions::         Functions to read Lisp objects from text.
-* Output Streams::          Various data types that can be used as 
+* Output Streams::          Various data types that can be used as
                               output streams.
 * Output Functions::        Functions to print Lisp objects as text.
 
@@ -542,7 +542,7 @@
 * Major Modes::             Defining major modes.
 * Minor Modes::             Defining minor modes.
 * Mode Line Format::        Customizing the text that appears in the mode line.
-* Hooks::                   How to use hooks; how to write code that 
+* Hooks::                   How to use hooks; how to write code that
                               provides hooks.
 
 Major Modes
@@ -602,7 +602,7 @@
 * File Name Components::    The directory part of a file name, and the rest.
 * Directory Names::         A directory's name as a directory
                               is different from its name as a file.
-* Relative File Names::     Some file names are relative to a 
+* Relative File Names::     Some file names are relative to a
                               current directory.
 * File Name Expansion::     Converting relative file names to absolute ones.
 * Unique File Names::       Generating names for temporary files.
@@ -610,17 +610,17 @@
 
 Backups and Auto-Saving
 
-* Backup Files::            How backup files are made; how their names 
+* Backup Files::            How backup files are made; how their names
                               are chosen.
 * Auto-Saving::             How auto-save files are made; how their
                               names are chosen.
-* Reverting::               @code{revert-buffer}, and how to customize 
+* Reverting::               @code{revert-buffer}, and how to customize
                               what it does.
 
 Backup Files
 
 * Making Backups::          How Emacs makes backup files, and when.
-* Rename or Copy::          Two alternatives: renaming the old file 
+* Rename or Copy::          Two alternatives: renaming the old file
                               or copying it.
 * Numbered Backups::        Keeping multiple backups for each source file.
 * Backup Names::            How backup file names are computed; customization.
@@ -654,7 +654,7 @@
                               and choosing a window for it.
 * Window Point::            Each window has its own location of point.
 * Window Start::            The display-start position controls which text
-                              is on-screen in the window. 
+                              is on-screen in the window.
 * Vertical Scrolling::      Moving text up and down in the window.
 * Horizontal Scrolling::    Moving text sideways on the window.
 * Size of Window::          Accessing the size of a window.
@@ -710,7 +710,7 @@
 * Predicates on Markers::   Testing whether an object is a marker.
 * Creating Markers::        Making empty markers or markers at certain places.
 * Information from Markers::  Finding the marker's buffer or character
-                                position. 
+                                position.
 * Moving Markers::          Moving the marker to a new buffer or position.
 * The Mark::                How ``the mark'' is implemented with a marker.
 * The Region::              How to access ``the region''.
@@ -739,7 +739,7 @@
 * Registers::               How registers are implemented.  Accessing
                               the text or position stored in a register.
 * Change Hooks::            Supplying functions to be run when text is changed.
-                              
+
 The Kill Ring
 
 * Kill Ring Concepts::      What text looks like in the kill ring.
--- a/lispref/errors.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/errors.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1999 Free Software Foundation, Inc. 
+@c Copyright (C) 1990, 1991, 1992, 1993, 1999 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/errors
 @node Standard Errors, Standard Buffer-Local Variables, GNU Emacs Internals, Top
@@ -87,7 +87,7 @@
 condition @code{file-error} is present.@*
 @xref{Files}.
 
-@item file-locked     
+@item file-locked
 This is a subcategory of @code{file-error}.@*
 @xref{File Locks}.
 
@@ -131,7 +131,7 @@
 @xref{Searching and Matching}.
 
 @item setting-constant
-@code{"Attempt to set a constant symbol"}@* 
+@code{"Attempt to set a constant symbol"}@*
 The values of the symbols @code{nil} and @code{t},
 and any symbols that start with @samp{:},
 may not be changed.@*
--- a/lispref/eval.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/eval.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998 Free Software Foundation, Inc. 
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/eval
 @node Evaluation, Control Structures, Symbols, Top
@@ -30,7 +30,7 @@
 @section Introduction to Evaluation
 
   The Lisp interpreter, or evaluator, is the program that computes
-the value of an expression that is given to it.  When a function 
+the value of an expression that is given to it.  When a function
 written in Lisp is called, the evaluator computes the value of the
 function by evaluating the expressions in the function body.  Thus,
 running any Lisp program really means running the Lisp interpreter.
@@ -300,7 +300,7 @@
 @smallexample
 @group
 ((lambda (arg) (erste arg))
- '(1 2 3)) 
+ '(1 2 3))
      @result{} 1
 @end group
 @end smallexample
--- a/lispref/files.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/files.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/files
 @node Files, Backups and Auto-Saving, Documentation, Top
@@ -92,7 +92,7 @@
 
 @deffn Command find-file filename &optional wildcards
 This command selects a buffer visiting the file @var{filename},
-using an existing buffer if there is one, and otherwise creating a 
+using an existing buffer if there is one, and otherwise creating a
 new buffer and reading the file into it.  It also returns that buffer.
 
 The body of the @code{find-file} function is very simple and looks
@@ -548,7 +548,7 @@
 
 If @var{mustbenew} is non-@code{nil}, then @code{write-region} asks
 for confirmation if @var{filename} names an existing file.
-Starting in Emacs 21, if @var{mustbenew} is the symbol @code{excl}, 
+Starting in Emacs 21, if @var{mustbenew} is the symbol @code{excl},
 then @code{write-region} does not ask for confirmation, but instead
 it signals an error @code{file-already-exists} if the file already
 exists.
@@ -865,7 +865,7 @@
 may be a nonexistent file name.
 
 If the file @var{filename} is not a symbolic link (or there is no such file),
-@code{file-symlink-p} returns @code{nil}.  
+@code{file-symlink-p} returns @code{nil}.
 
 @example
 @group
@@ -1107,11 +1107,11 @@
 @example
 @group
 (file-attributes "files.texi")
-     @result{}  (nil 1 2235 75 
-          (8489 20284) 
-          (8489 20284) 
+     @result{}  (nil 1 2235 75
+          (8489 20284)
+          (8489 20284)
           (8489 20285)
-          14906 "-rw-rw-rw-" 
+          14906 "-rw-rw-rw-"
           nil 129500 -32252)
 @end group
 @end example
@@ -1530,7 +1530,7 @@
 @end defun
 
 @ignore
-Andrew Innes says that this 
+Andrew Innes says that this
 
 @c @defvar directory-sep-char
 @c @tindex directory-sep-char
@@ -1974,12 +1974,12 @@
 @example
 @group
 (file-name-all-completions "f" "")
-     @result{} ("foo" "file~" "file.c.~2~" 
+     @result{} ("foo" "file~" "file.c.~2~"
                 "file.c.~1~" "file.c")
 @end group
 
 @group
-(file-name-all-completions "fo" "")  
+(file-name-all-completions "fo" "")
      @result{} ("foo")
 @end group
 @end example
@@ -2126,7 +2126,7 @@
 @group
 (directory-files "~lewis")
      @result{} ("#foo#" "#foo.el#" "." ".."
-         "dired-mods.el" "files.texi" 
+         "dired-mods.el" "files.texi"
          "files.texi.~1~")
 @end group
 @end example
@@ -2388,7 +2388,7 @@
         @dots{}
         ;; @r{Handle any operation we don't know about.}
         (t (let ((inhibit-file-name-handlers
-                  (cons 'my-file-handler 
+                  (cons 'my-file-handler
                         (and (eq inhibit-file-name-operation operation)
                              inhibit-file-name-handlers)))
                  (inhibit-file-name-operation operation))
--- a/lispref/frames.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/frames.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/frames
 @node Frames, Positions, Windows, Top
@@ -70,7 +70,7 @@
 * Display Feature Testing::     Determining the features of a terminal.
 @end menu
 
-  @xref{Display}, for information about the related topic of 
+  @xref{Display}, for information about the related topic of
 controlling Emacs redisplay.
 
 @node Creating Frames
--- a/lispref/front-cover-1.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/front-cover-1.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -24,7 +24,7 @@
 @sp 2
 @center @titlefont{Volume 1}
 @sp 2
-@center by Bil Lewis, Dan LaLiberte, 
+@center by Bil Lewis, Dan LaLiberte,
 @center and the GNU Manual Group
 @page
 .
@@ -45,7 +45,7 @@
 @sp 2
 @center @titlefont{Volume 2}
 @sp 2
-@center by Bil Lewis, Dan LaLiberte, 
+@center by Bil Lewis, Dan LaLiberte,
 @center and the GNU Manual Group
 
 @end titlepage
--- a/lispref/functions.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/functions.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/functions
 @node Functions, Macros, Variables, Top
@@ -18,7 +18,7 @@
 * Defining Functions::    Lisp expressions for defining functions.
 * Calling Functions::     How to use an existing function.
 * Mapping Functions::     Applying a function to each element of a list, etc.
-* Anonymous Functions::   Lambda expressions are functions with no names.    
+* Anonymous Functions::   Lambda expressions are functions with no names.
 * Function Cells::        Accessing or setting the function definition
                             of a symbol.
 * Inline Functions::	  Defining functions that the compiler will open code.
@@ -746,10 +746,10 @@
   "Apply FUNCTION to successive cars of all ARGS.
 Return the list of results."
   ;; @r{If no list is exhausted,}
-  (if (not (memq 'nil args))              
+  (if (not (memq 'nil args))
       ;; @r{apply function to @sc{car}s.}
-      (cons (apply function (mapcar 'car args))  
-            (apply 'mapcar* function             
+      (cons (apply function (mapcar 'car args))
+            (apply 'mapcar* function
                    ;; @r{Recurse for rest of elements.}
                    (mapcar 'cdr args)))))
 @end group
@@ -779,7 +779,7 @@
 argument and return a string.  The argument @var{sequence} can be any
 kind of sequence except a char-table; that is, a list, a vector, a
 bool-vector, or a string.
-  
+
 @smallexample
 @group
 (mapconcat 'symbol-name
@@ -841,7 +841,7 @@
 the function @code{mapcar}, which applies any given function to each
 element of a list.
 
-  Here we define a function @code{change-property} which 
+  Here we define a function @code{change-property} which
 uses a function as its third argument:
 
 @example
@@ -915,7 +915,7 @@
 
 @cindex @samp{#'} syntax
   The read syntax @code{#'} is a short-hand for using @code{function}.
-For example, 
+For example,
 
 @example
 #'(lambda (x) (* x x))
--- a/lispref/gpl.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/gpl.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -366,7 +366,7 @@
 Gnomovision version 69, Copyright (C) @var{year} @var{name of author}
 Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
 type `show w'.  This is free software, and you are welcome
-to redistribute it under certain conditions; type `show c' 
+to redistribute it under certain conditions; type `show c'
 for details.
 @end smallexample
 
@@ -384,7 +384,7 @@
 @group
 Yoyodyne, Inc., hereby disclaims all copyright
 interest in the program `Gnomovision'
-(which makes passes at compilers) written 
+(which makes passes at compilers) written
 by James Hacker.
 
 @var{signature of Ty Coon}, 1 April 1989
--- a/lispref/hash.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/hash.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1999 Free Software Foundation, Inc. 
+@c Copyright (C) 1999 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/hash
 @node Hash Tables, Symbols, Sequences Arrays Vectors, Top
@@ -176,7 +176,7 @@
 @end defun
 
 @tindex puthash
-@defun puthash key value table 
+@defun puthash key value table
 This function enters an association for @var{key} in @var{table}, with
 value @var{value}.  If @var{key} already has an association in
 @var{table}, @var{value} replaces the old associated value.
@@ -270,7 +270,7 @@
 (defun case-fold-string-hash (a)
   (sxhash (upcase a)))
 
-(define-hash-table-test 'case-fold 'case-fold-string= 
+(define-hash-table-test 'case-fold 'case-fold-string=
                         'case-fold-string-hash))
 
 (make-hash-table :test 'case-fold)
--- a/lispref/help.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/help.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/help
 @node Documentation, Files, Modes, Top
@@ -164,7 +164,7 @@
 in the `*Help*' buffer."
   (interactive "sDescribe symbols matching: ")
   (let ((describe-func
-         (function 
+         (function
           (lambda (s)
 @end group
 @group
@@ -172,30 +172,30 @@
             (if (fboundp s)             ; @r{It is a function.}
                 (princ
                  (format "%s\t%s\n%s\n\n" s
-                   (if (commandp s) 
+                   (if (commandp s)
                        (let ((keys (where-is-internal s)))
                          (if keys
                              (concat
                               "Keys: "
-                              (mapconcat 'key-description 
+                              (mapconcat 'key-description
                                          keys " "))
                            "Keys: none"))
                      "Function")
 @end group
 @group
-                   (or (documentation s) 
+                   (or (documentation s)
                        "not documented"))))
-            
+
             (if (boundp s)              ; @r{It is a variable.}
 @end group
 @group
                 (princ
                  (format "%s\t%s\n%s\n\n" s
-                   (if (user-variable-p s) 
+                   (if (user-variable-p s)
                        "Option " "Variable")
 @end group
 @group
-                   (or (documentation-property 
+                   (or (documentation-property
                          s 'variable-documentation)
                        "not documented")))))))
         sym-list)
@@ -203,7 +203,7 @@
 
 @group
     ;; @r{Build a list of symbols that match pattern.}
-    (mapatoms (function 
+    (mapatoms (function
                (lambda (sym)
                  (if (string-match pattern (symbol-name sym))
                      (setq sym-list (cons sym sym-list))))))
@@ -225,7 +225,7 @@
 (describe-symbols "goal")
 
 ---------- Buffer: *Help* ----------
-goal-column     Option 
+goal-column     Option
 *Semipermanent goal column for vertical motion, as set by @dots{}
 @end group
 @c Do not blithely break or fill these lines.
@@ -306,11 +306,11 @@
 stands for a key sequence that will invoke @var{command}, or @samp{M-x
 @var{command}} if @var{command} has no key bindings.
 
-@item \@{@var{mapvar}@} 
+@item \@{@var{mapvar}@}
 stands for a summary of the keymap which is the value of the variable
 @var{mapvar}.  The summary is made using @code{describe-bindings}.
 
-@item \<@var{mapvar}> 
+@item \<@var{mapvar}>
 stands for no text itself.  It is used only for a side effect: it
 specifies @var{mapvar}'s value as the keymap for any following
 @samp{\[@var{command}]} sequences in this documentation string.
@@ -335,13 +335,13 @@
 
 @smallexample
 @group
-(substitute-command-keys 
+(substitute-command-keys
    "To abort recursive edit, type: \\[abort-recursive-edit]")
 @result{} "To abort recursive edit, type: C-]"
 @end group
 
 @group
-(substitute-command-keys 
+(substitute-command-keys
    "The keys that are defined for the minibuffer here are:
   \\@{minibuffer-local-must-match-map@}")
 @result{} "The keys that are defined for the minibuffer here are:
@@ -605,7 +605,7 @@
 
 @c Emacs 19 feature
 @defmac make-help-screen fname help-line help-text help-map
-This macro defines a help command named @var{fname} that acts like a 
+This macro defines a help command named @var{fname} that acts like a
 prefix key that shows a list of the subcommands it offers.
 
 When invoked, @var{fname} displays @var{help-text} in a window, then
--- a/lispref/hooks.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/hooks.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,13 +1,13 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1998 Free Software Foundation, Inc. 
+@c Copyright (C) 1990, 1991, 1992, 1993, 1998 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/hooks
 @node Standard Hooks, Index, Standard Keymaps, Top
 @appendix Standard Hooks
 
 The following is a list of hook variables that let you provide
-functions to be called from within Emacs on suitable occasions. 
+functions to be called from within Emacs on suitable occasions.
 
 Most of these variables have names ending with @samp{-hook}.  They are
 @dfn{normal hooks}, run by means of @code{run-hooks}.  The value of such
--- a/lispref/index.perm	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/index.perm	Tue Feb 04 14:56:31 2003 +0000
@@ -23,7 +23,7 @@
 
 
 All variables, functions, keys, programs, files, and concepts are
-in this one index.  
+in this one index.
 
 All names and concepts are permuted, so they appear several times, one
 for each permutation of the parts of the name.  For example,
--- a/lispref/intro.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/intro.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 2002
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/intro
 
@@ -337,7 +337,7 @@
                                           function, @code{foo}.
 * A Sample Variable Description::       A description of an imaginary
                                           variable,
-                                          @code{electric-future-map}.  
+                                          @code{electric-future-map}.
 @end menu
 
 @node A Sample Function Description
--- a/lispref/keymaps.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/keymaps.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/keymaps
 @node Keymaps, Modes, Command Loop, Top
@@ -175,28 +175,28 @@
 @example
 @group
 lisp-mode-map
-@result{} 
+@result{}
 @end group
 @group
-(keymap 
+(keymap
  ;; @key{TAB}
- (9 . lisp-indent-line)                 
+ (9 . lisp-indent-line)
 @end group
 @group
  ;; @key{DEL}
- (127 . backward-delete-char-untabify)  
+ (127 . backward-delete-char-untabify)
 @end group
 @group
- (3 keymap 
+ (3 keymap
     ;; @kbd{C-c C-l}
-    (12 . run-lisp))                    
+    (12 . run-lisp))
 @end group
 @group
- (27 keymap 
+ (27 keymap
      ;; @r{@kbd{M-C-q}, treated as @kbd{@key{ESC} C-q}}
-     (17 . indent-sexp)                 
+     (17 . indent-sexp)
      ;; @r{@kbd{M-C-x}, treated as @kbd{@key{ESC} C-x}}
-     (24 . lisp-send-defun)))           
+     (24 . lisp-send-defun)))
 @end group
 @end example
 
@@ -280,7 +280,7 @@
 @end group
 @group
      ;; @r{(This implements meta characters.)}
-     (27 keymap         
+     (27 keymap
          (83 . center-paragraph)
          (115 . center-line))
      (9 . tab-to-tab-stop))
@@ -529,7 +529,7 @@
 when the minor mode is enabled.
 
   The variable @code{overriding-local-map}, if non-@code{nil}, specifies
-another local keymap that overrides the buffer's local map and all the 
+another local keymap that overrides the buffer's local map and all the
 minor mode keymaps.
 
   All the active keymaps are used together to determine what command to
@@ -584,7 +584,7 @@
 @example
 @group
 (current-global-map)
-@result{} (keymap [set-mark-command beginning-of-line @dots{} 
+@result{} (keymap [set-mark-command beginning-of-line @dots{}
             delete-backward-char])
 @end group
 @end example
@@ -600,14 +600,14 @@
 @example
 @group
 (current-local-map)
-@result{} (keymap 
-    (10 . eval-print-last-sexp) 
-    (9 . lisp-indent-line) 
-    (127 . backward-delete-char-untabify) 
+@result{} (keymap
+    (10 . eval-print-last-sexp)
+    (9 . lisp-indent-line)
+    (127 . backward-delete-char-untabify)
 @end group
 @group
-    (27 keymap 
-        (24 . eval-defun) 
+    (27 keymap
+        (24 . eval-defun)
         (17 . indent-sexp)))
 @end group
 @end example
@@ -1004,7 +1004,7 @@
 @end group
 @group
 (setq meta-prefix-char 24)
-     @result{} 24      
+     @result{} 24
 @end group
 @group
 (key-binding "\M-b")
@@ -1111,7 +1111,7 @@
 @end group
 @group
 map
-@result{} (keymap 
+@result{} (keymap
     (24 keymap                ; @kbd{C-x}
         (102 . forward-word)) ;      @kbd{f}
     (6 . forward-char))       ; @kbd{C-f}
@@ -1121,7 +1121,7 @@
 ;; @r{Bind @kbd{C-p} to the @code{ctl-x-map}.}
 (define-key map "\C-p" ctl-x-map)
 ;; @code{ctl-x-map}
-@result{} [nil @dots{} find-file @dots{} backward-kill-sentence] 
+@result{} [nil @dots{} find-file @dots{} backward-kill-sentence]
 @end group
 
 @group
@@ -1133,7 +1133,7 @@
 map
 @result{} (keymap     ; @r{Note @code{foo} in @code{ctl-x-map}.}
     (16 keymap [nil @dots{} foo @dots{} backward-kill-sentence])
-    (24 keymap 
+    (24 keymap
         (102 . forward-word))
     (6 . forward-char))
 @end group
@@ -1157,7 +1157,7 @@
 
 @smallexample
 @group
-(substitute-key-definition 
+(substitute-key-definition
  'find-file 'find-file-read-only (current-global-map))
 @end group
 @end smallexample
@@ -1190,9 +1190,9 @@
 
 @smallexample
 @group
-(setq map '(keymap 
-            (?1 . olddef-1) 
-            (?2 . olddef-2) 
+(setq map '(keymap
+            (?1 . olddef-1)
+            (?2 . olddef-2)
             (?3 . olddef-1)))
 @result{} (keymap (49 . olddef-1) (50 . olddef-2) (51 . olddef-1))
 @end group
@@ -1220,8 +1220,8 @@
 @code{negative-argument}.  Otherwise it makes them undefined like the
 rest of the printing characters.
 
-@cindex yank suppression 
-@cindex @code{quoted-insert} suppression 
+@cindex yank suppression
+@cindex @code{quoted-insert} suppression
 The @code{suppress-keymap} function does not make it impossible to
 modify a buffer, as it does not suppress commands such as @code{yank}
 and @code{quoted-insert}.  To prevent any modification of a buffer, make
@@ -1423,7 +1423,7 @@
 @smallexample
 @group
 (accessible-keymaps (current-local-map))
-@result{}(("" keymap 
+@result{}(("" keymap
       (27 keymap   ; @r{Note this keymap for @key{ESC} is repeated below.}
           (83 . center-paragraph)
           (115 . center-line))
@@ -1431,8 +1431,8 @@
 @end group
 
 @group
-   ("^[" keymap 
-    (83 . center-paragraph) 
+   ("^[" keymap
+    (83 . center-paragraph)
     (115 . foo)))
 @end group
 @end smallexample
@@ -1447,7 +1447,7 @@
 @smallexample
 @group
 (accessible-keymaps (current-global-map))
-@result{} (("" keymap [set-mark-command beginning-of-line @dots{} 
+@result{} (("" keymap [set-mark-command beginning-of-line @dots{}
                    delete-backward-char])
 @end group
 @group
@@ -2240,7 +2240,7 @@
 To define items in some local map, bind @code{`tool-bar-map} with
 @code{let} around calls of this function:
 @example
-(defvar foo-tool-bar-map 
+(defvar foo-tool-bar-map
   (let ((tool-bar-map (make-sparse-keymap)))
     (tool-bar-add-item @dots{})
     @dots{}
--- a/lispref/lists.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/lists.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/lists
 @node Lists, Sequences Arrays Vectors, Strings and Characters, Top
@@ -498,7 +498,7 @@
 It is new in Emacs 21.
 
 @example
-(setq l '(a b)) 
+(setq l '(a b))
      @result{} (a b)
 (push 'c l)
      @result{} (c a b)
@@ -738,7 +738,7 @@
 @cindex destructive list operations
 
   You can modify the @sc{car} and @sc{cdr} contents of a cons cell with the
-primitives @code{setcar} and @code{setcdr}.  We call these ``destructive'' 
+primitives @code{setcar} and @code{setcdr}.  We call these ``destructive''
 operations because they change existing list structure.
 
 @cindex CL note---@code{rplaca} vrs @code{setcar}
--- a/lispref/loading.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/loading.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/loading
 @node Loading, Byte Compilation, Customization, Top
@@ -391,7 +391,7 @@
 (autoload @var{filename} @var{docstring} @var{interactive} @var{type})
 @end example
 
-For example, 
+For example,
 
 @example
 @group
@@ -580,7 +580,7 @@
 @code{features}; if it fails to do so, @code{require} signals an error.
 @cindex load error with require
 
-  For example, in @file{emacs/lisp/prolog.el}, 
+  For example, in @file{emacs/lisp/prolog.el},
 the definition for @code{run-prolog} includes the following code:
 
 @smallexample
--- a/lispref/locals.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/locals.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1999 Free Software Foundation, Inc. 
+@c Copyright (C) 1990, 1991, 1992, 1993, 1999 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/locals
 @node Standard Buffer-Local Variables, Standard Keymaps, Standard Errors, Top
--- a/lispref/macros.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/macros.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998 Free Software Foundation, Inc. 
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/macros
 @node Macros, Customization, Functions, Top
@@ -446,7 +446,7 @@
 @end group
 @end smallexample
 
-Here is a macro definition that creates this expansion: 
+Here is a macro definition that creates this expansion:
 
 @smallexample
 @group
--- a/lispref/maps.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/maps.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1999 Free Software Foundation, Inc. 
+@c Copyright (C) 1990, 1991, 1992, 1993, 1999 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/maps
 @node Standard Keymaps, Standard Hooks, Standard Buffer-Local Variables, Top
--- a/lispref/markers.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/markers.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/markers
 @node Markers, Text, Positions, Top
@@ -595,7 +595,7 @@
 @example
 @group
 mark-ring
-@result{} (#<marker at 11050 in markers.texi> 
+@result{} (#<marker at 11050 in markers.texi>
     #<marker at 10832 in markers.texi>
     @dots{})
 @end group
--- a/lispref/minibuf.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/minibuf.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/minibuf
 @node Minibuffers, Command Loop, Read and Print, Top
@@ -374,7 +374,7 @@
 @group
 (edit-and-eval-command "Please edit: " '(forward-word 1))
 
-;; @r{After evaluation of the preceding expression,} 
+;; @r{After evaluation of the preceding expression,}
 ;;   @r{the following appears in the minibuffer:}
 @end group
 
@@ -582,7 +582,7 @@
 
 @smallexample
 @group
-(try-completion 
+(try-completion
  "foo"
  '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4)))
      @result{} "fooba"
@@ -612,14 +612,14 @@
 
 @smallexample
 @group
-(defun test (s) 
+(defun test (s)
   (> (length (car s)) 6))
      @result{} test
 @end group
 @group
-(try-completion 
+(try-completion
  "foo"
- '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4)) 
+ '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4))
  'test)
      @result{} "foobar"
 @end group
@@ -642,13 +642,13 @@
 
 @smallexample
 @group
-(defun test (s) 
+(defun test (s)
   (> (length (car s)) 6))
      @result{} test
 @end group
 
 @group
-(all-completions  
+(all-completions
  "foo"
  '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4))
  'test)
@@ -658,7 +658,7 @@
 @end defun
 
 @defvar completion-ignore-case
-If the value of this variable is 
+If the value of this variable is
 non-@code{nil}, Emacs does not consider case significant in completion.
 @end defvar
 
@@ -738,7 +738,7 @@
 @end group
 
 @group
-;; @r{After evaluation of the preceding expression,} 
+;; @r{After evaluation of the preceding expression,}
 ;;   @r{the following appears in the minibuffer:}
 
 ---------- Buffer: Minibuffer ----------
@@ -923,7 +923,7 @@
 @example
 (read-buffer "Buffer name? " "foo" t)
 @group
-;; @r{After evaluation of the preceding expression,} 
+;; @r{After evaluation of the preceding expression,}
 ;;   @r{the following prompt appears,}
 ;;   @r{with an empty minibuffer:}
 @end group
@@ -965,13 +965,13 @@
 (read-command "Command name? ")
 
 @group
-;; @r{After evaluation of the preceding expression,} 
+;; @r{After evaluation of the preceding expression,}
 ;;   @r{the following prompt appears with an empty minibuffer:}
 @end group
 
 @group
----------- Buffer: Minibuffer ---------- 
-Command name?  
+---------- Buffer: Minibuffer ----------
+Command name?
 ---------- Buffer: Minibuffer ----------
 @end group
 @end example
@@ -990,7 +990,7 @@
 @group
 (read-command @var{prompt})
 @equiv{}
-(intern (completing-read @var{prompt} obarray 
+(intern (completing-read @var{prompt} obarray
                          'commandp t nil))
 @end group
 @end example
@@ -1010,8 +1010,8 @@
 @group
 (read-variable "Variable name? ")
 
-;; @r{After evaluation of the preceding expression,} 
-;;   @r{the following prompt appears,} 
+;; @r{After evaluation of the preceding expression,}
+;;   @r{the following prompt appears,}
 ;;   @r{with an empty minibuffer:}
 @end group
 
@@ -1080,13 +1080,13 @@
 @var{initial} does, try the command @kbd{C-x C-v}.  @strong{Note:} we
 recommend using @var{default} rather than @var{initial} in most cases.
 
-Here is an example: 
+Here is an example:
 
 @example
 @group
 (read-file-name "The file is ")
 
-;; @r{After evaluation of the preceding expression,} 
+;; @r{After evaluation of the preceding expression,}
 ;;   @r{the following appears in the minibuffer:}
 @end group
 
@@ -1275,13 +1275,13 @@
 @group
 (y-or-n-p "Do you need a lift? ")
 
-;; @r{After evaluation of the preceding expression,} 
+;; @r{After evaluation of the preceding expression,}
 ;;   @r{the following prompt appears in the echo area:}
 @end group
 
 @group
 ---------- Echo area ----------
-Do you need a lift? (y or n) 
+Do you need a lift? (y or n)
 ---------- Echo area ----------
 @end group
 
@@ -1289,7 +1289,7 @@
 
 @group
 ---------- Echo area ----------
-Please answer y or n.  Do you need a lift? (y or n) 
+Please answer y or n.  Do you need a lift? (y or n)
 ---------- Echo area ----------
 @end group
 
@@ -1335,14 +1335,14 @@
 @group
 (yes-or-no-p "Do you really want to remove everything? ")
 
-;; @r{After evaluation of the preceding expression,} 
-;;   @r{the following prompt appears,} 
+;; @r{After evaluation of the preceding expression,}
+;;   @r{the following prompt appears,}
 ;;   @r{with an empty minibuffer:}
 @end group
 
 @group
 ---------- Buffer: minibuffer ----------
-Do you really want to remove everything? (yes or no) 
+Do you really want to remove everything? (yes or no)
 ---------- Buffer: minibuffer ----------
 @end group
 @end smallexample
--- a/lispref/modes.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/modes.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/modes
 @node Modes, Documentation,  Keymaps, Top
@@ -99,7 +99,7 @@
 * Example Major Modes::     Text mode and Lisp modes.
 * Auto Major Mode::         How Emacs chooses the major mode automatically.
 * Mode Help::               Finding out how to use a mode.
-* Derived Modes::           Defining a new major mode based on another major 
+* Derived Modes::           Defining a new major mode based on another major
                               mode.
 @end menu
 
@@ -253,7 +253,7 @@
 would affect buffers that do not use this mode.  It is undesirable for a
 mode to have such global effects.  @xref{Buffer-Local Variables}.
 
-With rare exceptions, the only reasonable way to use 
+With rare exceptions, the only reasonable way to use
 @code{make-variable-buffer-local} in a Lisp package is for a variable
 which is used only within that package.  Using it on a variable used by
 other packages would interfere with them.
@@ -324,7 +324,7 @@
 @smallexample
 @group
 ;; @r{Create mode-specific tables.}
-(defvar text-mode-syntax-table nil 
+(defvar text-mode-syntax-table nil
   "Syntax table used while in text mode.")
 @end group
 
@@ -403,7 +403,7 @@
 @smallexample
 @group
 ;; @r{Create mode-specific table variables.}
-(defvar lisp-mode-syntax-table nil "")  
+(defvar lisp-mode-syntax-table nil "")
 (defvar emacs-lisp-mode-syntax-table nil "")
 (defvar lisp-mode-abbrev-table nil "")
 @end group
@@ -419,7 +419,7 @@
       ;; @r{Set syntax of chars up to 0 to class of chars that are}
       ;;   @r{part of symbol names but not words.}
       ;;   @r{(The number 0 is @code{48} in the @sc{ascii} character set.)}
-      (while (< i ?0) 
+      (while (< i ?0)
         (modify-syntax-entry i "_   " emacs-lisp-mode-syntax-table)
         (setq i (1+ i)))
       @dots{}
@@ -513,7 +513,7 @@
 @end smallexample
 
   Finally, here is the complete major mode function definition for
-Lisp mode.  
+Lisp mode.
 
 @smallexample
 @group
@@ -601,7 +601,7 @@
 How Major Modes are Chosen, emacs, The GNU Emacs Manual}.
 @end defun
 
-@defopt default-major-mode 
+@defopt default-major-mode
 This variable holds the default major mode for new buffers.  The
 standard value is @code{fundamental-mode}.
 
@@ -649,7 +649,7 @@
 @end group
 @group
  ("\\.el\\'" . emacs-lisp-mode)
- ("\\.c\\'" . c-mode) 
+ ("\\.c\\'" . c-mode)
  ("\\.h\\'" . c-mode)
  @dots{})
 @end group
@@ -675,11 +675,11 @@
 @smallexample
 @group
 (setq auto-mode-alist
-  (append 
+  (append
    ;; @r{File name (within directory) starts with a dot.}
-   '(("/\\.[^/]*\\'" . fundamental-mode)  
+   '(("/\\.[^/]*\\'" . fundamental-mode)
      ;; @r{File name has no dot.}
-     ("[^\\./]*\\'" . fundamental-mode)   
+     ("[^\\./]*\\'" . fundamental-mode)
      ;; @r{File name ends in @samp{.C}.}
      ("\\.C\\'" . c++-mode))
    auto-mode-alist))
@@ -742,7 +742,7 @@
 The new command @var{variant} is defined to call the function
 @var{parent}, then override certain aspects of that parent mode:
 
-@itemize @bullet 
+@itemize @bullet
 @item
 The new mode has its own keymap, named @code{@var{variant}-map}.
 @code{define-derived-mode} initializes this map to inherit from
@@ -751,25 +751,25 @@
 @item
 The new mode has its own syntax table, kept in the variable
 @code{@var{variant}-syntax-table}.
-@code{define-derived-mode} initializes this variable by copying 
+@code{define-derived-mode} initializes this variable by copying
 @code{@var{parent}-syntax-table}, if it is not already set.
 
 @item
 The new mode has its own abbrev table, kept in the variable
 @code{@var{variant}-abbrev-table}.
-@code{define-derived-mode} initializes this variable by copying 
+@code{define-derived-mode} initializes this variable by copying
 @code{@var{parent}-abbrev-table}, if it is not already set.
 
 @item
 The new mode has its own mode hook, @code{@var{variant}-hook},
 which it runs in standard fashion as the very last thing that it does.
-(The new mode also runs the mode hook of @var{parent} as part 
+(The new mode also runs the mode hook of @var{parent} as part
 of calling @var{parent}.)
 @end itemize
 
 In addition, you can specify how to override other aspects of
 @var{parent} with @var{body}.  The command @var{variant}
-evaluates the forms in @var{body} after setting up all its usual 
+evaluates the forms in @var{body} after setting up all its usual
 overrides, just before running @code{@var{variant}-hook}.
 
 The argument @var{docstring} specifies the documentation string for the
@@ -1011,7 +1011,7 @@
 @smallexample
 (define-minor-mode hungry-mode
   "Toggle Hungry mode.
-With no argument, this command toggles the mode. 
+With no argument, this command toggles the mode.
 Non-null prefix argument turns on the mode.
 Null prefix argument turns off the mode.
 
@@ -1025,7 +1025,7 @@
  ;; The minor mode bindings.
  '(("\C-\^?" . hungry-electric-delete)
    ("\C-\M-\^?"
-    . (lambda () 
+    . (lambda ()
         (interactive)
         (hungry-electric-delete t)))))
 @end smallexample
@@ -1213,22 +1213,22 @@
    'mode-line-mule-info
    'mode-line-modified
    'mode-line-frame-identification
-   "%b--" 
+   "%b--"
 @end group
 @group
    ;; @r{Note that this is evaluated while making the list.}
    ;; @r{It makes a mode line construct which is just a string.}
    (getenv "HOST")
 @end group
-   ":" 
+   ":"
    'default-directory
    "   "
    'global-mode-string
    "   %[("
    '(:eval (mode-line-mode-name))
-   'mode-line-process  
-   'minor-mode-alist 
-   "%n" 
+   'mode-line-process
+   'minor-mode-alist
+   "%n"
    ")%]--"
 @group
    '(which-func-mode ("" which-func-format "--"))
@@ -1325,9 +1325,9 @@
 @group
 minor-mode-alist
 @result{} ((vc-mode vc-mode)
-    (abbrev-mode " Abbrev") 
-    (overwrite-mode overwrite-mode) 
-    (auto-fill-function " Fill")         
+    (abbrev-mode " Abbrev")
+    (overwrite-mode overwrite-mode)
+    (auto-fill-function " Fill")
     (defining-kbd-macro " Def")
     (isearch-mode isearch-mode))
 @end group
@@ -1386,8 +1386,8 @@
  ;; @r{properties to make it mouse-sensitive.}
  (:eval (mode-line-mode-name))
  mode-line-process
- minor-mode-alist 
- "%n" 
+ minor-mode-alist
+ "%n"
  ")%]--"
 @end group
 @group
@@ -2146,7 +2146,7 @@
 @item font-lock-function-name-face
 @vindex font-lock-function-name-face
 Used (typically) for the name of a function being defined or declared,
-in a function definition or declaration. 
+in a function definition or declaration.
 
 @item font-lock-variable-name-face
 @vindex font-lock-variable-name-face
--- a/lispref/nonascii.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/nonascii.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1998, 1999 Free Software Foundation, Inc. 
+@c Copyright (C) 1998, 1999 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/characters
 @node Non-ASCII Characters, Searching and Matching, Text, Top
--- a/lispref/numbers.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/numbers.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/numbers
 @node Numbers, Strings and Characters, Lisp Data Types, Top
@@ -40,14 +40,14 @@
 @ifnottex
 -2**27
 @end ifnottex
-@tex 
+@tex
 @math{-2^{27}}
 @end tex
-to 
+to
 @ifnottex
 2**27 - 1),
 @end ifnottex
-@tex 
+@tex
 @math{2^{27}-1}),
 @end tex
 but some machines may provide a wider range.  Many examples in this
@@ -746,7 +746,7 @@
 (lsh 3 2)
      @result{} 12
 ;; @r{Decimal 3 becomes decimal 12.}
-00000011 @result{} 00001100       
+00000011 @result{} 00001100
 @end group
 @end example
 
@@ -757,14 +757,14 @@
 (lsh 6 -1)
      @result{} 3
 ;; @r{Decimal 6 becomes decimal 3.}
-00000110 @result{} 00000011       
+00000110 @result{} 00000011
 @end group
 
 @group
 (lsh 5 -1)
      @result{} 2
 ;; @r{Decimal 5 becomes decimal 2.}
-00000101 @result{} 00000010       
+00000101 @result{} 00000010
 @end group
 @end example
 
@@ -787,7 +787,7 @@
 @example
 @group
 ;; @r{Decimal 134,217,727}
-0111  1111 1111  1111 1111  1111 1111         
+0111  1111 1111  1111 1111  1111 1111
 @end group
 @end example
 
@@ -797,7 +797,7 @@
 @example
 @group
 ;; @r{Decimal @minus{}2}
-1111  1111 1111  1111 1111  1111 1110         
+1111  1111 1111  1111 1111  1111 1110
 @end group
 @end example
 @end defun
@@ -818,10 +818,10 @@
 
 @example
 @group
-(ash -6 -1) @result{} -3            
+(ash -6 -1) @result{} -3
 ;; @r{Decimal @minus{}6 becomes decimal @minus{}3.}
 1111  1111 1111  1111 1111  1111 1010
-     @result{} 
+     @result{}
 1111  1111 1111  1111 1111  1111 1101
 @end group
 @end example
@@ -834,7 +834,7 @@
 (lsh -6 -1) @result{} 134217725
 ;; @r{Decimal @minus{}6 becomes decimal 134,217,725.}
 1111  1111 1111  1111 1111  1111 1010
-     @result{} 
+     @result{}
 0111  1111 1111  1111 1111  1111 1101
 @end group
 @end example
@@ -992,7 +992,7 @@
 @var{integer}, and vice-versa.
 
 @example
-(lognot 5)             
+(lognot 5)
      @result{} -6
 ;;  5  =  @r{0000  0000 0000  0000 0000  0000 0101}
 ;; @r{becomes}
--- a/lispref/objects.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/objects.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/objects
 @node Lisp Data Types, Numbers, Introduction, Top
@@ -248,7 +248,7 @@
   The usual read syntax for alphanumeric characters is a question mark
 followed by the character; thus, @samp{?A} for the character
 @kbd{A}, @samp{?B} for the character @kbd{B}, and @samp{?a} for the
-character @kbd{a}.  
+character @kbd{a}.
 
   For example:
 
@@ -397,7 +397,7 @@
 character.  This distinction is possible only when you use X terminals
 or other special terminals; ordinary terminals do not report the
 distinction to the computer in any way.  The Lisp syntax for
-the shift bit is @samp{\S-}; thus, @samp{?\C-\S-o} or @samp{?\C-\S-O} 
+the shift bit is @samp{\S-}; thus, @samp{?\C-\S-o} or @samp{?\C-\S-O}
 represents the shifted-control-o character.
 
 @cindex hyper characters
@@ -899,8 +899,8 @@
 in documentation strings,
 but the newline is \
 ignored if escaped."
-     @result{} "It is useful to include newlines 
-in documentation strings, 
+     @result{} "It is useful to include newlines
+in documentation strings,
 but the newline is ignored if escaped."
 @end example
 
@@ -932,7 +932,7 @@
 represent a unibyte non-@sc{ascii} character with its character code,
 which must be in the range from 128 (0200 octal) to 255 (0377 octal).
 This forces a unibyte string.
-  
+
   @xref{Text Representations}, for more information about the two
 text representations.
 
@@ -1071,7 +1071,7 @@
 constant that follows actually specifies the contents of the bool-vector
 as a bitmap---each ``character'' in the string contains 8 bits, which
 specify the next 8 elements of the bool-vector (1 stands for @code{t},
-and 0 for @code{nil}).  The least significant bits of the character 
+and 0 for @code{nil}).  The least significant bits of the character
 correspond to the lowest indices in the bool-vector.  If the length is not a
 multiple of 8, the printed representation shows extra elements, but
 these extras really make no difference.
--- a/lispref/permute-index	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/permute-index	Tue Feb 04 14:56:31 2003 +0000
@@ -36,7 +36,7 @@
 echo "Extract raw index from texinfo fn index."
 # Let texindex combine duplicate entries, later.
 # But it wants to protect non-alphanumerics thus confusing ptx.
-# Also change `\ ' to just a ` ', since texindex will fail. This is produced 
+# Also change `\ ' to just a ` ', since texindex will fail. This is produced
 # by `@findex two words' in an example environment (no doubt among others).
 # delete wrapper parens
 # change dots {} to dots{}
@@ -114,7 +114,7 @@
 ${TEXINDEX} permuted.fn
 #mv permuted.fns ${MANUAL}.fns
 
-# The resulting permuted.fns will be read when we run TeX 
+# The resulting permuted.fns will be read when we run TeX
 # on the manual the second time.  Or you can use permuted.texinfo here.
 #${TEX} permuted.texinfo
 
--- a/lispref/positions.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/positions.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001
-@c  Free Software Foundation, Inc. 
+@c  Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/positions
 @node Positions, Markers, Frames, Top
@@ -631,7 +631,7 @@
 
 @node List Motion
 @comment  node-name,  next,  previous,  up
-@subsection Moving over Balanced Expressions 
+@subsection Moving over Balanced Expressions
 @cindex sexp motion
 @cindex Lisp expression motion
 @cindex list motion
--- a/lispref/processes.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/processes.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/processes
 @node Processes, Display, Abbrevs, Top
@@ -108,7 +108,7 @@
 specify overrides for it with @code{process-environment}.  @xref{System
 Environment}.
 
-@defvar exec-directory 
+@defvar exec-directory
 @pindex movemail
 The value of this variable is a string, the name of a directory that
 contains programs that come with GNU Emacs, programs intended for Emacs
@@ -355,8 +355,8 @@
 
 @smallexample
 @group
-(call-process-region 
- start end         
+(call-process-region
+ start end
  shell-file-name      ; @r{Name of program.}
  nil                  ; @r{Do not delete region.}
  buffer               ; @r{Send output to @code{buffer}.}
@@ -866,7 +866,7 @@
 called the @dfn{filter function} can be called to act on the output.  If
 the process has no buffer and no filter function, its output is
 discarded.
- 
+
   When a subprocess terminates, Emacs reads any pending output,
 then stops reading output from that subprocess.  Therefore, if the
 subprocess has children that are still live and still producing
@@ -1205,7 +1205,7 @@
   The string describing the event looks like one of the following:
 
 @itemize @bullet
-@item 
+@item
 @code{"finished\n"}.
 
 @item
@@ -1301,7 +1301,7 @@
 @end defun
 
 @node Query Before Exit
-@section Querying Before Exit 
+@section Querying Before Exit
 
   When Emacs exits, it terminates all its subprocesses by sending them
 the @code{SIGHUP} signal.  Because some subprocesses are doing
--- a/lispref/searching.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/searching.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/searching
 @node Searching and Matching, Syntax Tables, Non-ASCII Characters, Top
@@ -325,7 +325,7 @@
 is @samp{@var{c}..?\377}, the other is @samp{@var{c1}..@var{c2}}, where
 @var{c1} is the first character of the charset to which @var{c2}
 belongs.
- 
+
 You cannot always match all non-@sc{ascii} characters with the regular
 expression @code{"[\200-\377]"}.  This works when searching a unibyte
 buffer or string (@pxref{Text Representations}), but not in a multibyte
@@ -670,7 +670,7 @@
 
   Here is a complicated regexp, used by Emacs to recognize the end of a
 sentence together with any whitespace that follows.  It is the value of
-the variable @code{sentence-end}.  
+the variable @code{sentence-end}.
 
   First, we show the regexp as a string in Lisp syntax to distinguish
 spaces from tab characters.  The string constant begins and ends with a
@@ -689,7 +689,7 @@
 @example
 @group
 sentence-end
-     @result{} "[.?!][]\"')@}]*\\($\\| $\\|  \\|  \\)[       
+     @result{} "[.?!][]\"')@}]*\\($\\| $\\|  \\|  \\)[
 ]*"
 @end group
 @end example
@@ -1325,7 +1325,7 @@
 @group
 (string-match "\\(qu\\)\\(ick\\)"
               "The quick fox jumped quickly.")
-              ;0123456789      
+              ;0123456789
      @result{} 4
 @end group
 
--- a/lispref/sequences.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/sequences.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/sequences
 @node Sequences Arrays Vectors, Hash Tables, Lists, Top
@@ -222,7 +222,7 @@
   Emacs defines four types of array, all one-dimensional: @dfn{strings},
 @dfn{vectors}, @dfn{bool-vectors} and @dfn{char-tables}.  A vector is a
 general array; its elements can be any Lisp objects.  A string is a
-specialized array; its elements must be characters.  Each type of array 
+specialized array; its elements must be characters.  Each type of array
 has its own read syntax.
 @xref{String Type}, and @ref{Vector Type}.
 
--- a/lispref/streams.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/streams.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/streams
 @node Read and Print, Minibuffers, Debugging, Top
@@ -489,7 +489,7 @@
 
 @group
 last-output
-     @result{} (10 34 116 117 112 116 117 111 32 101 104 
+     @result{} (10 34 116 117 112 116 117 111 32 101 104
     116 32 115 105 32 115 105 104 84 34 10)
 @end group
 @end example
@@ -566,13 +566,13 @@
 (progn (print 'The\ cat\ in)
        (print "the hat")
        (print " came back"))
-     @print{} 
+     @print{}
      @print{} The\ cat\ in
-     @print{} 
+     @print{}
      @print{} "the hat"
-     @print{} 
+     @print{}
      @print{} " came back"
-     @print{} 
+     @print{}
      @result{} " came back"
 @end group
 @end example
@@ -586,8 +586,8 @@
 
 @example
 @group
-(progn (prin1 'The\ cat\ in) 
-       (prin1 "the hat") 
+(progn (prin1 'The\ cat\ in)
+       (prin1 "the hat")
        (prin1 " came back"))
      @print{} The\ cat\ in"the hat"" came back"
      @result{} " came back"
@@ -771,12 +771,12 @@
 @code{nil} (which is the default) means no limit.
 @end defvar
 
-  These variables are used for detecting and reporting circular 
+  These variables are used for detecting and reporting circular
 and shared structure---but they are only defined in Emacs 21.
 
 @tindex print-circle
 @defvar print-circle
-If non-@code{nil}, this variable enables detection of circular 
+If non-@code{nil}, this variable enables detection of circular
 and shared structure in printing.
 @end defvar
 
--- a/lispref/strings.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/strings.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/strings
 @node Strings and Characters, Lists, Numbers, Top
@@ -158,7 +158,7 @@
 is 3 is actually the fourth character in the string.
 
 A negative number counts from the end of the string, so that @minus{}1
-signifies the index of the last character of the string.  For example: 
+signifies the index of the last character of the string.  For example:
 
 @example
 @group
@@ -410,7 +410,7 @@
 (string< "abc" "ab")
      @result{} nil
 (string< "" "")
-     @result{} nil                   
+     @result{} nil
 @end group
 @end example
 @end defun
@@ -597,7 +597,7 @@
 
 @defun format string &rest objects
 This function returns a new string that is made by copying
-@var{string} and then replacing any format specification 
+@var{string} and then replacing any format specification
 in the copy with encodings of the corresponding @var{objects}.  The
 arguments @var{objects} are the computed values to be formatted.
 
@@ -707,9 +707,9 @@
 (format "The buffer object prints as %s." (current-buffer))
      @result{} "The buffer object prints as strings.texi."
 
-(format "The octal value of %d is %o, 
+(format "The octal value of %d is %o,
          and the hex value is %x." 18 18 18)
-     @result{} "The octal value of 18 is 22, 
+     @result{} "The octal value of 18 is 22,
          and the hex value is 12."
 @end group
 @end example
@@ -745,32 +745,32 @@
 second case, the string @code{"specification"} is 13 letters wide but is
 not truncated.  In the third case, the padding is on the right.
 
-@smallexample 
+@smallexample
 @group
 (format "The word `%7s' actually has %d letters in it."
         "foo" (length "foo"))
-     @result{} "The word `    foo' actually has 3 letters in it."  
+     @result{} "The word `    foo' actually has 3 letters in it."
 @end group
 
 @group
 (format "The word `%7s' actually has %d letters in it."
-        "specification" (length "specification")) 
-     @result{} "The word `specification' actually has 13 letters in it."  
+        "specification" (length "specification"))
+     @result{} "The word `specification' actually has 13 letters in it."
 @end group
 
 @group
 (format "The word `%-7s' actually has %d letters in it."
         "foo" (length "foo"))
-     @result{} "The word `foo    ' actually has 3 letters in it."  
+     @result{} "The word `foo    ' actually has 3 letters in it."
 @end group
 @end smallexample
 
 @node Case Conversion
-@comment node-name, next, previous, up 
+@comment node-name, next, previous, up
 @section Case Conversion in Lisp
-@cindex upper case 
-@cindex lower case 
-@cindex character case 
+@cindex upper case
+@cindex lower case
+@cindex character case
 @cindex case conversion in Lisp
 
   The character case functions change the case of single characters or
--- a/lispref/symbols.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/symbols.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/symbols
 @node Symbols, Evaluation, Hash Tables, Top
--- a/lispref/syntax.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/syntax.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/syntax
 @node Syntax Tables, Abbrevs, Searching and Matching, Top
@@ -664,36 +664,36 @@
 the parse:
 
 @enumerate 0
-@item 
+@item
 The depth in parentheses, counting from 0.
 
-@item 
+@item
 @cindex innermost containing parentheses
 The character position of the start of the innermost parenthetical
 grouping containing the stopping point; @code{nil} if none.
 
-@item 
+@item
 @cindex previous complete subexpression
 The character position of the start of the last complete subexpression
 terminated; @code{nil} if none.
 
-@item 
+@item
 @cindex inside string
 Non-@code{nil} if inside a string.  More precisely, this is the
 character that will terminate the string, or @code{t} if a generic
 string delimiter character should terminate it.
 
-@item 
+@item
 @cindex inside comment
 @code{t} if inside a comment (of either style),
 or the comment nesting level if inside a kind of comment
 that can be nested.
 
-@item 
+@item
 @cindex quote character
 @code{t} if point is just after a quote character.
 
-@item 
+@item
 The minimum parenthesis depth encountered during this scan.
 
 @item
--- a/lispref/text.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/text.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/text
 @node Text, Non-ASCII Characters, Markers, Top
@@ -429,7 +429,7 @@
 loop handles this function specially.
 @end deffn
 
-@deffn Command newline &optional number-of-newlines 
+@deffn Command newline &optional number-of-newlines
 This command inserts newlines into the current buffer before point.
 If @var{number-of-newlines} is supplied, that many newline characters
 are inserted.
@@ -614,7 +614,7 @@
 @end example
 @end deffn
 
-@deffn Command delete-indentation &optional join-following-p 
+@deffn Command delete-indentation &optional join-following-p
 This function joins the line point is on to the previous line, deleting
 any whitespace at the join and in some cases replacing it with one
 space.  If @var{join-following-p} is non-@code{nil},
@@ -945,7 +945,7 @@
 
   The variable @code{kill-ring} holds the kill ring contents, in the
 form of a list of strings.  The most recent kill is always at the front
-of the list. 
+of the list.
 
   The @code{kill-ring-yank-pointer} variable points to a link in the
 kill ring list, whose @sc{car} is the text to yank next.  We say it
@@ -970,7 +970,7 @@
 
   Here is a diagram that shows the variable @code{kill-ring-yank-pointer}
 pointing to the second entry in the kill ring @code{("some text" "a
-different piece of text" "yet older text")}.  
+different piece of text" "yet older text")}.
 
 @example
 @group
@@ -980,11 +980,11 @@
   |     --- ---          --- ---      --- ---
    --> |   |   |------> |   |   |--> |   |   |--> nil
         --- ---          --- ---      --- ---
-         |                |            |            
-         |                |            |            
-         |                |             -->"yet older text" 
+         |                |            |
+         |                |            |
+         |                |             -->"yet older text"
          |                |
-         |                 --> "a different piece of text" 
+         |                 --> "a different piece of text"
          |
           --> "some text"
 @end group
@@ -1040,7 +1040,7 @@
 
 @item (@var{beg} . @var{end})
 This kind of element indicates how to delete text that was inserted.
-Upon insertion, the text occupied the range @var{beg}--@var{end} in the 
+Upon insertion, the text occupied the range @var{beg}--@var{end} in the
 buffer.
 
 @item (@var{text} . @var{position})
@@ -2123,7 +2123,7 @@
   These commands, primarily for interactive use, act based on the
 indentation in the text.
 
-@deffn Command back-to-indentation 
+@deffn Command back-to-indentation
 @comment !!SourceFile simple.el
 This command moves point to the first non-whitespace character in the
 current line (which is the line in which point is located).  It returns
@@ -2509,7 +2509,7 @@
 @var{pos}.
 
 If @var{limit} is non-@code{nil}, then the scan ends at position
-@var{limit}.  If there is no property change before that point, 
+@var{limit}.  If there is no property change before that point,
 @code{next-property-change} returns @var{limit}.
 
 The value is @code{nil} if the properties remain unchanged all the way
@@ -2540,7 +2540,7 @@
 @var{pos}.
 
 If @var{limit} is non-@code{nil}, then the scan ends at position
-@var{limit}.  If there is no property change before that point, 
+@var{limit}.  If there is no property change before that point,
 @code{next-single-property-change} returns @var{limit}.
 
 The value is @code{nil} if the property remains unchanged all the way to
@@ -3052,7 +3052,7 @@
 
 We invite users to write Lisp programs to store and retrieve text
 properties in files, using these hooks, and thus to experiment with
-various data formats and find good ones.  Eventually we hope users 
+various data formats and find good ones.  Eventually we hope users
 will produce good, general extensions we can install in Emacs.
 
 We suggest not trying to handle arbitrary Lisp objects as text property
--- a/lispref/tindex.pl	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/tindex.pl	Tue Feb 04 14:56:31 2003 +0000
@@ -52,7 +52,7 @@
 my $version = 0;
 my $old;
 
-my $rc = GetOptions ('help' => \$help, 'version' => \$version, 
+my $rc = GetOptions ('help' => \$help, 'version' => \$version,
                      'old=s' => \$old);
 if ($version) {
     print "0.1\n";
@@ -86,14 +86,14 @@
     close IN;
 }
 
-# Process current files and remove those @tindex lines which we 
+# Process current files and remove those @tindex lines which we
 # know were already present in the files scanned above.
 
 print "Removing old \@tindex lines\n";
 foreach $file (@new_files) {
     my $modified = 0;
     my $contents = "";
-    
+
     open (IN, "< $file") or fatal "Cannot open $file.orig for reading: $!";
     while (<IN>) {
 	if (/^\s*\@tindex\s+(\S+)/ && $tindex{$1}) {
@@ -103,7 +103,7 @@
 	    $contents = $contents . $_;
 	}
     }
-    
+
     close IN;
 
     if ($modified) {
--- a/lispref/tips.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/tips.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/tips
 @node Tips, GNU Emacs Internals, GPL, Top
@@ -435,7 +435,7 @@
 search functions can be used.
 
 @item
-Certain built-in functions are handled specially in byte-compiled code, 
+Certain built-in functions are handled specially in byte-compiled code,
 avoiding the need for an ordinary function call.  It is a good idea to
 use these functions rather than alternatives.  To see whether a function
 is handled specially by the compiler, examine its @code{byte-compile}
@@ -537,7 +537,7 @@
 
 @item
 Do not start or end a documentation string with whitespace.
- 
+
 @item
 @strong{Do not} indent subsequent lines of a documentation string so
 that the text is lined up in the source code with the text of the first
--- a/lispref/two-volume-cross-refs.txt	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/two-volume-cross-refs.txt	Tue Feb 04 14:56:31 2003 +0000
@@ -28,7 +28,7 @@
     list motion .........117
 
 All other references and the table of contents work the same way.  I
-find this *very* helpful. 
+find this *very* helpful.
 
 
 In brief: you run tex on a .texi file with
@@ -126,16 +126,16 @@
 % cp elisp-toc-2vol.toc elisp1-toc.toc
 % cp elisp-toc-2vol.toc elisp2-toc.toc
 
-Use keyboard macro to put I: in first half of elisp1-toc.toc and 
+Use keyboard macro to put I: in first half of elisp1-toc.toc and
 II: in first half of elisp2-toc.toc
 
 Copy the tocs to something you can remember more easily
 
-% cp elisp2-toc.toc elisp1-toc-ready.toc 
-% cp elisp1-toc.toc elisp2-toc-ready.toc 
+% cp elisp2-toc.toc elisp1-toc-ready.toc
+% cp elisp1-toc.toc elisp2-toc-ready.toc
 
-Then, edit vol1.texi to input elisp1-toc-ready.toc 
-and vol2.texi to input elisp2-toc-ready.toc 
+Then, edit vol1.texi to input elisp1-toc-ready.toc
+and vol2.texi to input elisp2-toc-ready.toc
 
 
 ### Now format the two volumes:
@@ -217,7 +217,7 @@
 
 (defun volume-index-markup (arg)
   "Prepend  `NUMBER:' to page number.  Use Roman Numeral.
-Apply only to unsorted index file, 
+Apply only to unsorted index file,
 Then insert marked file into other volume's unsorted index file.
 Then run texindex on that file and save."
   (interactive
@@ -236,11 +236,11 @@
 1. Run TeX, texindex and TeX on file1.
 2. Run TeX, texindex and TeX on file2.
 
-3. Copy both .aux files into specially named files 
+3. Copy both .aux files into specially named files
 
-4. In the case of the elisp ref manual, 
+4. In the case of the elisp ref manual,
 
-   copy the *unsorted* function index files into specially named files 
+   copy the *unsorted* function index files into specially named files
    (no other index used in elisp ref manual)
 
 
@@ -249,7 +249,7 @@
    Run a function on the specially named .aux files to label each
    entry according to volume.  Save these files.
 
-   i.e., convert     
+   i.e., convert
    'xrdef {Special-pg}{7}  to 'xrdef {Special-pg}{7, vol.'tie1}
 
 5a.Insert each specially named .aux file into the regular .aux file of
--- a/lispref/two.el	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/two.el	Tue Feb 04 14:56:31 2003 +0000
@@ -14,7 +14,7 @@
 
 (defun volume-index-markup (arg)
   "Prepend  `NUMBER:' to page number.  Use Roman Numeral.
-Apply only to unsorted index file, 
+Apply only to unsorted index file,
 Then insert marked file into other volume's unsorted index file.
 Then run texindex on that file and save."
   (interactive
@@ -43,7 +43,7 @@
   (insert "\\unnumbchapentry {Volume 1}{}\n\\unnumbchapentry {}{}\n")
   (search-forward "\\unnumbchapentry {Index}")
   (forward-line 1)
-  (insert 
+  (insert
    "\\unnumbchapentry {}{}\n\\unnumbchapentry {}{}\n\\unnumbchapentry {}{}\n\\unnumbchapentry {}{}\n\\unnumbchapentry {Volume 2}{}\n\\unnumbchapentry {}{}\n"))
 
 
--- a/lispref/variables.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/variables.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/variables
 @node Variables, Functions, Control Structures, Top
@@ -207,7 +207,7 @@
      @result{} 2
 @end group
 @group
-(let ((Y 1) 
+(let ((Y 1)
       (Z Y))
   (list Y Z))
      @result{} (1 2)
@@ -767,7 +767,7 @@
 x                   ; @r{@code{x} now has a global value.}
      @result{} 3
 @group
-(let ((x 5)) 
+(let ((x 5))
   (setq x 6)        ; @r{The local binding of @code{x} is set.}
   x)
      @result{} 6
@@ -784,7 +784,7 @@
 @group
 (setq x 10          ; @r{Notice that @code{x} is set before}
       y (1+ x))     ;   @r{the value of @code{y} is computed.}
-     @result{} 11             
+     @result{} 11
 @end group
 @end example
 @end defspec
@@ -1350,7 +1350,7 @@
     (mode-name . "Fundamental")
     @dots{}
 @group
-    ;; @r{Next, non-built-in buffer-local variables.} 
+    ;; @r{Next, non-built-in buffer-local variables.}
     ;; @r{This one is buffer-local and void:}
     foobar
     ;; @r{This one is buffer-local and nonvoid:}
--- a/lispref/vol1.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/vol1.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -23,7 +23,7 @@
 @c \overfullrule=0pt
 @c end tex
 
-@c Start volume 1 chapter numbering on chapter 1; 
+@c Start volume 1 chapter numbering on chapter 1;
 @c this must be listed as chapno 0.
 @tex
 \global\chapno=0
@@ -87,18 +87,18 @@
 @c -----
 @c [163] [164] [165] [166]) (loading.texi Chapter 13 [167] [168] [169]
 @c Overfull \hbox (20.5428pt too wide) in paragraph at lines 131--131
-@c []@ninett 
+@c []@ninett
 @c setenv EMAC-SLOAD-PATH .:/user/bil/emacs:/usr/local/lib/emacs/lisp[]
 @c -----
 @c (minibuf.texi Chapter 17 [206] [207] [208] [209] [210] [211] [212] [213]
 @c [214] [215]
 @c Overfull \hbox (2.09094pt too wide) in paragraph at lines 550--560
-@c @texttt map[] @textrm if @textsl require-match @textrm is 
-@c  @texttt nil[]@textrm , or else with the keymap @texttt minibuffer- 
+@c @texttt map[] @textrm if @textsl require-match @textrm is
+@c  @texttt nil[]@textrm , or else with the keymap @texttt minibuffer-
 @c -----
 @c (locals.texi Appendix @char 68 [533] [534]
 @c Underfull \hbox (badness 2512) in paragraph at lines 4--4
-@c []@chaprm Appendix DStandard Buffer-Local 
+@c []@chaprm Appendix DStandard Buffer-Local
 
 @c -------------------------------------------------------------------
 
@@ -186,11 +186,11 @@
 @sp 2
 @center @titlefont{Volume 1}
 @sp 3
-@center by Bil Lewis, Dan LaLiberte, 
+@center by Bil Lewis, Dan LaLiberte,
 @center and the GNU Manual Group
 @page
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. 
+Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
 
 @sp 2
 Edition 2.4 @*
@@ -325,8 +325,8 @@
 
 Format of Descriptions
 
-* A Sample Function Description::       
-* A Sample Variable Description::   
+* A Sample Function Description::
+* A Sample Variable Description::
 
 Lisp Data Types
 
@@ -435,7 +435,7 @@
 * Intro Eval::              Evaluation in the scheme of things.
 * Eval::                    How to invoke the Lisp interpreter explicitly.
 * Forms::                   How various sorts of objects are evaluated.
-* Quoting::                 Avoiding evaluation (to put constants in 
+* Quoting::                 Avoiding evaluation (to put constants in
                               the program).
 
 Kinds of Forms
@@ -488,11 +488,11 @@
 
 Scoping Rules for Variable Bindings
 
-* Scope::                   Scope means where in the program a value 
+* Scope::                   Scope means where in the program a value
                               is visible.  Comparison with other languages.
 * Extent::                  Extent means how long in time a value exists.
 * Impl of Scope::           Two ways to implement dynamic scoping.
-* Using Scoping::           How to use dynamic scoping carefully and 
+* Using Scoping::           How to use dynamic scoping carefully and
                               avoid problems.
 
 Buffer-Local Variables
@@ -510,11 +510,11 @@
 * Defining Functions::      Lisp expressions for defining functions.
 * Calling Functions::       How to use an existing function.
 * Mapping Functions::       Applying a function to each element of a list, etc.
-* Anonymous Functions::     Lambda-expressions are functions with no names.    
+* Anonymous Functions::     Lambda-expressions are functions with no names.
 * Function Cells::          Accessing or setting the function definition
                               of a symbol.
 * Related Topics::          Cross-references to specific Lisp primitives
-                              that have a special bearing on how 
+                              that have a special bearing on how
                               functions work.
 
 Lambda Expressions
@@ -550,10 +550,10 @@
 
 * Debugger::                How the Emacs Lisp debugger is implemented.
 * Syntax Errors::           How to find syntax errors.
-* Compilation Errors::      How to find errors that show up in 
+* Compilation Errors::      How to find errors that show up in
                               byte compilation.
 * Edebug::                  A source-level Emacs Lisp debugger.
-                                
+
 The Lisp Debugger
 
 * Error Debugging::         Entering the debugger when an error happens.
@@ -572,10 +572,10 @@
 Reading and Printing Lisp Objects
 
 * Streams Intro::           Overview of streams, reading and printing.
-* Input Streams::           Various data types that can be used as 
+* Input Streams::           Various data types that can be used as
                               input streams.
 * Input Functions::         Functions to read Lisp objects from text.
-* Output Streams::          Various data types that can be used as 
+* Output Streams::          Various data types that can be used as
                               output streams.
 * Output Functions::        Functions to print Lisp objects as text.
 
@@ -647,7 +647,7 @@
 * Major Modes::             Defining major modes.
 * Minor Modes::             Defining minor modes.
 * Mode Line Format::        Customizing the text that appears in the mode line.
-* Hooks::                   How to use hooks; how to write code that 
+* Hooks::                   How to use hooks; how to write code that
                               provides hooks.
 
 Major Modes
@@ -707,7 +707,7 @@
 * File Name Components::    The directory part of a file name, and the rest.
 * Directory Names::         A directory's name as a directory
                               is different from its name as a file.
-* Relative File Names::     Some file names are relative to a 
+* Relative File Names::     Some file names are relative to a
                               current directory.
 * File Name Expansion::     Converting relative file names to absolute ones.
 * Unique File Names::       Generating names for temporary files.
@@ -715,17 +715,17 @@
 
 Backups and Auto-Saving
 
-* Backup Files::            How backup files are made; how their names 
+* Backup Files::            How backup files are made; how their names
                               are chosen.
 * Auto-Saving::             How auto-save files are made; how their
                               names are chosen.
-* Reverting::               @code{revert-buffer}, and how to customize 
+* Reverting::               @code{revert-buffer}, and how to customize
                               what it does.
 
 Backup Files
 
 * Making Backups::          How Emacs makes backup files, and when.
-* Rename or Copy::          Two alternatives: renaming the old file 
+* Rename or Copy::          Two alternatives: renaming the old file
                               or copying it.
 * Numbered Backups::        Keeping multiple backups for each source file.
 * Backup Names::            How backup file names are computed; customization.
@@ -759,7 +759,7 @@
                               and choosing a window for it.
 * Window Point::            Each window has its own location of point.
 * Window Start::            The display-start position controls which text
-                              is on-screen in the window. 
+                              is on-screen in the window.
 * Vertical Scrolling::      Moving text up and down in the window.
 * Horizontal Scrolling::    Moving text sideways on the window.
 * Size of Window::          Accessing the size of a window.
@@ -815,7 +815,7 @@
 * Predicates on Markers::   Testing whether an object is a marker.
 * Creating Markers::        Making empty markers or markers at certain places.
 * Information from Markers::  Finding the marker's buffer or character
-                                position. 
+                                position.
 * Changing Markers::        Moving the marker to a new buffer or position.
 * The Mark::                How ``the mark'' is implemented with a marker.
 * The Region::              How to access ``the region''.
@@ -841,7 +841,7 @@
 * Substitution::            Replacing a given character wherever it appears.
 * Registers::               How registers are implemented.  Accessing
                               the text or position stored in a register.
-                              
+
 The Kill Ring
 
 * Kill Ring Concepts::      What text looks like in the kill ring.
--- a/lispref/vol2.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/vol2.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -23,7 +23,7 @@
 @c \overfullrule=0pt
 @c end tex
 
-@c Start volume 2 chapter numbering on chapter 21; 
+@c Start volume 2 chapter numbering on chapter 21;
 @c this must be listed as chapno 20.
 @tex
 \global\chapno=20
@@ -87,18 +87,18 @@
 @c -----
 @c [163] [164] [165] [166]) (loading.texi Chapter 13 [167] [168] [169]
 @c Overfull \hbox (20.5428pt too wide) in paragraph at lines 131--131
-@c []@ninett 
+@c []@ninett
 @c setenv EMAC-SLOAD-PATH .:/user/bil/emacs:/usr/local/lib/emacs/lisp[]
 @c -----
 @c (minibuf.texi Chapter 17 [206] [207] [208] [209] [210] [211] [212] [213]
 @c [214] [215]
 @c Overfull \hbox (2.09094pt too wide) in paragraph at lines 550--560
-@c @texttt map[] @textrm if @textsl require-match @textrm is 
-@c  @texttt nil[]@textrm , or else with the keymap @texttt minibuffer- 
+@c @texttt map[] @textrm if @textsl require-match @textrm is
+@c  @texttt nil[]@textrm , or else with the keymap @texttt minibuffer-
 @c -----
 @c (locals.texi Appendix @char 68 [533] [534]
 @c Underfull \hbox (badness 2512) in paragraph at lines 4--4
-@c []@chaprm Appendix DStandard Buffer-Local 
+@c []@chaprm Appendix DStandard Buffer-Local
 
 @c -------------------------------------------------------------------
 
@@ -186,11 +186,11 @@
 @sp 2
 @center @titlefont{Volume 2}
 @sp 3
-@center by Bil Lewis, Dan LaLiberte, 
+@center by Bil Lewis, Dan LaLiberte,
 @center and the GNU Manual Group
 @page
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. 
+Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
 
 @sp 2
 Edition 2.4 @*
@@ -325,8 +325,8 @@
 
 Format of Descriptions
 
-* A Sample Function Description::       
-* A Sample Variable Description::   
+* A Sample Function Description::
+* A Sample Variable Description::
 
 Lisp Data Types
 
@@ -435,7 +435,7 @@
 * Intro Eval::              Evaluation in the scheme of things.
 * Eval::                    How to invoke the Lisp interpreter explicitly.
 * Forms::                   How various sorts of objects are evaluated.
-* Quoting::                 Avoiding evaluation (to put constants in 
+* Quoting::                 Avoiding evaluation (to put constants in
                               the program).
 
 Kinds of Forms
@@ -488,11 +488,11 @@
 
 Scoping Rules for Variable Bindings
 
-* Scope::                   Scope means where in the program a value 
+* Scope::                   Scope means where in the program a value
                               is visible.  Comparison with other languages.
 * Extent::                  Extent means how long in time a value exists.
 * Impl of Scope::           Two ways to implement dynamic scoping.
-* Using Scoping::           How to use dynamic scoping carefully and 
+* Using Scoping::           How to use dynamic scoping carefully and
                               avoid problems.
 
 Buffer-Local Variables
@@ -510,11 +510,11 @@
 * Defining Functions::      Lisp expressions for defining functions.
 * Calling Functions::       How to use an existing function.
 * Mapping Functions::       Applying a function to each element of a list, etc.
-* Anonymous Functions::     Lambda-expressions are functions with no names.    
+* Anonymous Functions::     Lambda-expressions are functions with no names.
 * Function Cells::          Accessing or setting the function definition
                               of a symbol.
 * Related Topics::          Cross-references to specific Lisp primitives
-                              that have a special bearing on how 
+                              that have a special bearing on how
                               functions work.
 
 Lambda Expressions
@@ -550,10 +550,10 @@
 
 * Debugger::                How the Emacs Lisp debugger is implemented.
 * Syntax Errors::           How to find syntax errors.
-* Compilation Errors::      How to find errors that show up in 
+* Compilation Errors::      How to find errors that show up in
                               byte compilation.
 * Edebug::                  A source-level Emacs Lisp debugger.
-                                
+
 The Lisp Debugger
 
 * Error Debugging::         Entering the debugger when an error happens.
@@ -572,10 +572,10 @@
 Reading and Printing Lisp Objects
 
 * Streams Intro::           Overview of streams, reading and printing.
-* Input Streams::           Various data types that can be used as 
+* Input Streams::           Various data types that can be used as
                               input streams.
 * Input Functions::         Functions to read Lisp objects from text.
-* Output Streams::          Various data types that can be used as 
+* Output Streams::          Various data types that can be used as
                               output streams.
 * Output Functions::        Functions to print Lisp objects as text.
 
@@ -647,7 +647,7 @@
 * Major Modes::             Defining major modes.
 * Minor Modes::             Defining minor modes.
 * Mode Line Format::        Customizing the text that appears in the mode line.
-* Hooks::                   How to use hooks; how to write code that 
+* Hooks::                   How to use hooks; how to write code that
                               provides hooks.
 
 Major Modes
@@ -707,7 +707,7 @@
 * File Name Components::    The directory part of a file name, and the rest.
 * Directory Names::         A directory's name as a directory
                               is different from its name as a file.
-* Relative File Names::     Some file names are relative to a 
+* Relative File Names::     Some file names are relative to a
                               current directory.
 * File Name Expansion::     Converting relative file names to absolute ones.
 * Unique File Names::       Generating names for temporary files.
@@ -715,17 +715,17 @@
 
 Backups and Auto-Saving
 
-* Backup Files::            How backup files are made; how their names 
+* Backup Files::            How backup files are made; how their names
                               are chosen.
 * Auto-Saving::             How auto-save files are made; how their
                               names are chosen.
-* Reverting::               @code{revert-buffer}, and how to customize 
+* Reverting::               @code{revert-buffer}, and how to customize
                               what it does.
 
 Backup Files
 
 * Making Backups::          How Emacs makes backup files, and when.
-* Rename or Copy::          Two alternatives: renaming the old file 
+* Rename or Copy::          Two alternatives: renaming the old file
                               or copying it.
 * Numbered Backups::        Keeping multiple backups for each source file.
 * Backup Names::            How backup file names are computed; customization.
@@ -759,7 +759,7 @@
                               and choosing a window for it.
 * Window Point::            Each window has its own location of point.
 * Window Start::            The display-start position controls which text
-                              is on-screen in the window. 
+                              is on-screen in the window.
 * Vertical Scrolling::      Moving text up and down in the window.
 * Horizontal Scrolling::    Moving text sideways on the window.
 * Size of Window::          Accessing the size of a window.
@@ -815,7 +815,7 @@
 * Predicates on Markers::   Testing whether an object is a marker.
 * Creating Markers::        Making empty markers or markers at certain places.
 * Information from Markers::  Finding the marker's buffer or character
-                                position. 
+                                position.
 * Changing Markers::        Moving the marker to a new buffer or position.
 * The Mark::                How ``the mark'' is implemented with a marker.
 * The Region::              How to access ``the region''.
@@ -841,7 +841,7 @@
 * Substitution::            Replacing a given character wherever it appears.
 * Registers::               How registers are implemented.  Accessing
                               the text or position stored in a register.
-                              
+
 The Kill Ring
 
 * Kill Ring Concepts::      What text looks like in the kill ring.
--- a/lispref/windows.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/lispref/windows.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1685,7 +1685,7 @@
 
 @tindex window-body-height
 @defun window-body-height &optional window
-Like @code{window-height} but the value does not include the 
+Like @code{window-height} but the value does not include the
 mode line (if any) or the header line (if any).
 @end defun
 
--- a/lwlib/ChangeLog	Tue Feb 04 13:30:45 2003 +0000
+++ b/lwlib/ChangeLog	Tue Feb 04 14:56:31 2003 +0000
@@ -872,13 +872,13 @@
 
 	* xlwmenu.c: Add #include <X11/ObjectP.h> for X11R4.
 
-1994-09-18  Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
+1994-09-18  Fred Pierresteguy  <F.Pierresteguy@frcl.bull.fr>
 
 	* lwlib-Xm.c (make_dialog): When there is more than two pushbuttons,
 	set XmPACK_TIGHT and XmHORIZONTAL to the rowcolumn.  Also add a
 	margin of 10 pixels.
 
-1994-09-16  Paul Reilly <pmr@geech.gnu.ai.mit.edu>
+1994-09-16  Paul Reilly  <pmr@geech.gnu.ai.mit.edu>
 
 	* lwlib-Xm.c (make_main): New function to support toolkit
 	independent creation of the main Emacs widget.
--- a/lwlib/lwlib-Xaw.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/lwlib/lwlib-Xaw.c	Tue Feb 04 14:56:31 2003 +0000
@@ -3,13 +3,13 @@
 
 This file is part of the Lucid Widget Library.
 
-The Lucid Widget Library is free software; you can redistribute it and/or 
+The Lucid Widget Library is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 1, or (at your option)
 any later version.
 
 The Lucid Widget Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of 
+but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
@@ -356,7 +356,7 @@
 	 I want the separator to take up the slack between the buttons on
 	 the right and the buttons on the left (that is I want the buttons
 	 after the separator to be packed against the right edge of the
-	 window) but I can't seem to make it do it.  
+	 window) but I can't seem to make it do it.
        */
       ac = 0;
       XtSetArg (av [ac], XtNfromHoriz, button); ac++;
@@ -440,7 +440,7 @@
     shell_name = "Question";
     break;
   }
-  
+
   total_buttons = name [1] - '0';
 
   if (name [3] == 'T' || name [3] == 't')
@@ -450,9 +450,9 @@
     }
   else if (name [3])
     right_buttons = name [4] - '0';
-  
+
   left_buttons = total_buttons - right_buttons;
-  
+
   widget = make_dialog (name, parent, pop_up_p,
 			shell_name, icon_name, text_input_slot, radio_box,
 			list, left_buttons, right_buttons);
@@ -619,7 +619,7 @@
   Widget scrollbar;
 
   XtVaGetValues (instance->parent, XtNwidth, &width, NULL);
-  
+
   XtSetArg (av[ac], XtNshowGrip, 0); ac++;
   XtSetArg (av[ac], XtNresizeToPreferred, 1); ac++;
   XtSetArg (av[ac], XtNallowResize, True); ac++;
--- a/lwlib/lwlib-Xaw.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/lwlib/lwlib-Xaw.h	Tue Feb 04 14:56:31 2003 +0000
@@ -5,7 +5,7 @@
 
 extern widget_creation_entry xaw_creation_table [];
 
-Widget 
+Widget
 xaw_create_dialog __P ((widget_instance*));
 
 Boolean
--- a/lwlib/lwlib-Xlw.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/lwlib/lwlib-Xlw.c	Tue Feb 04 14:56:31 2003 +0000
@@ -3,13 +3,13 @@
 
 This file is part of the Lucid Widget Library.
 
-The Lucid Widget Library is free software; you can redistribute it and/or 
+The Lucid Widget Library is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 1, or (at your option)
 any later version.
 
 The Lucid Widget Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of 
+but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
@@ -162,7 +162,7 @@
   Widget popup_shell
     = XtCreatePopupShell (instance->info->name, overrideShellWidgetClass,
 			  instance->parent, NULL, 0);
-  
+
   Widget widget;
   Arg al[2];
   int ac = 0;
@@ -182,7 +182,7 @@
   return popup_shell;
 }
 
-widget_creation_entry 
+widget_creation_entry
 xlw_creation_table [] =
 {
   {"menubar", xlw_create_menubar},
--- a/lwlib/lwlib-Xm.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/lwlib/lwlib-Xm.c	Tue Feb 04 14:56:31 2003 +0000
@@ -3,13 +3,13 @@
 
 This file is part of the Lucid Widget Library.
 
-The Lucid Widget Library is free software; you can redistribute it and/or 
+The Lucid Widget Library is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 1, or (at your option)
 any later version.
 
 The Lucid Widget Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of 
+but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
@@ -72,7 +72,7 @@
 
 
 /* Structures to keep destroyed instances */
-typedef struct _destroyed_instance 
+typedef struct _destroyed_instance
 {
   char*		name;
   char*		type;
@@ -188,7 +188,7 @@
   instance->next = NULL;
   return instance;
 }
-			 
+
 static void
 free_destroyed_instance (instance)
      destroyed_instance* instance;
@@ -210,7 +210,7 @@
 lw_motif_widget_p (widget)
      Widget widget;
 {
-  return 
+  return
     XtClass (widget) == xmDialogShellWidgetClass
       || XmIsPrimitive (widget) || XmIsManager (widget) || XmIsGadget (widget);
 }
@@ -222,7 +222,7 @@
 {
   XtResource resource;
   XmString result = 0;
-  
+
   resource.resource_name = name;
   resource.resource_class = XmCXmString;
   resource.resource_type = XmRXmString;
@@ -254,7 +254,7 @@
       XtUnmanageChildren (children + first_child_to_destroy,
 			  number - first_child_to_destroy);
 
-      /* Unmanage all children and destroy them.  They will only be 
+      /* Unmanage all children and destroy them.  They will only be
 	 really destroyed when we get out of DispatchEvent.  */
       for (i = first_child_to_destroy; i < number; i++)
 	{
@@ -265,7 +265,7 @@
 	     XtCompositeChildren.  So get it out of the cascade button
 	     and free it.  If this child is not a cascade button,
 	     then submenu should remain unchanged.  */
-	  XtSetArg (al[0], XmNsubMenuId, &submenu); 
+	  XtSetArg (al[0], XmNsubMenuId, &submenu);
   	  XtGetValues (children[i], al, 1);
 	  if (submenu)
             {
@@ -329,7 +329,7 @@
    the value to update.
 
    Menus:
-   
+
    Emacs fills VAL->name with the text to display in the menu, and
    sets VAL->value to null.  Function make_menu_in_widget creates
    widgets with VAL->name as resource name.  This works because the
@@ -371,10 +371,10 @@
 	    XmStringCreateLtoR (val->value, XmSTRING_DEFAULT_CHARSET);
 	  XtSetArg (al [ac], XmNlabelString, built_string); ac++;
 	}
-      
+
       XtSetArg (al [ac], XmNlabelType, XmSTRING); ac++;
     }
-  
+
   if (val->key)
     {
       key_string = XmStringCreateLtoR (val->key, XmSTRING_DEFAULT_CHARSET);
@@ -566,7 +566,7 @@
       XtSetArg (al[ac], XmNsensitive, cur->enabled); ac++;
       XtSetArg (al[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
       XtSetArg (al[ac], XmNuserData, cur->call_data); ac++;
-      
+
       if (instance->pop_up_p && !cur->contents && !cur->call_data
 	  && !lw_separator_p (cur->name, &separator, 1))
 	{
@@ -605,9 +605,9 @@
 	      XtAddCallback (button, XmNarmCallback, xm_arm_callback, cur);
 	      XtAddCallback (button, XmNdisarmCallback, xm_arm_callback, cur);
 	    }
-	  
+
 	  xm_update_label (instance, button, cur);
-	  
+
 	  /* Add a callback that is called when the button is
 	     selected.  Toggle buttons don't support
 	     XmNactivateCallback, we use XmNvalueChangedCallback in
@@ -684,7 +684,7 @@
   menu = NULL;
   XtSetArg (al [ac], XmNsubMenuId, &menu); ac++;
   XtGetValues (widget, al, ac);
-  
+
   contents = val->contents;
 
   if (!menu)
@@ -715,8 +715,8 @@
 	  else
 	    {
 	      Widget button;
-	      
-	      /* The current menuitem is a XmPushButtonGadget, it 
+
+	      /* The current menuitem is a XmPushButtonGadget, it
 		 needs to be replaced by a CascadeButtonGadget */
 	      XtDestroyWidget (widget_list[i]);
 	      menu = XmCreatePulldownMenu (parent, val->name, NULL, 0);
@@ -732,7 +732,7 @@
 #endif
 	      button = XmCreateCascadeButton (parent, val->name, al, ac);
 	      xm_update_label (instance, button, val);
-	      
+
 	      XtAddCallback (button, XmNcascadingCallback, xm_pull_down_callback,
 			     (XtPointer)instance);
 	      XtManageChild (button);
@@ -779,7 +779,7 @@
     {
       if (children)
 	{
-	  for (i = 0, cur = val->contents; 
+	  for (i = 0, cur = val->contents;
                (i < num_children
 		&& cur); /* how else to ditch unwanted children ?? - mgd */
 	       i++, cur = cur->next)
@@ -867,18 +867,18 @@
      Boolean deep_p;
 {
   WidgetClass class;
-  
+
   /* Mark as not edited */
   val->edited = False;
 
   /* Common to all widget types */
   XtSetSensitive (widget, val->enabled);
   XtVaSetValues (widget, XmNuserData, val->call_data, NULL);
-  
+
   /* Common to all label like widgets */
   if (XtIsSubclass (widget, xmLabelWidgetClass))
     xm_update_label (instance, widget, val);
-  
+
   class = XtClass (widget);
   /* Class specific things */
   if (class == xmPushButtonWidgetClass ||
@@ -900,10 +900,10 @@
       Boolean radiobox = 0;
       int ac = 0;
       Arg al [1];
-      
+
       XtSetArg (al [ac], XmNradioBehavior, &radiobox); ac++;
       XtGetValues (widget, al, ac);
-      
+
       if (radiobox)
 	xm_update_radiobox (instance, widget, val);
       else
@@ -940,7 +940,7 @@
 	val->call_data = old_wv->call_data;
 	break;
       }
-  
+
   if (class == xmToggleButtonWidgetClass || class == xmToggleButtonGadgetClass)
     {
       XtVaGetValues (widget, XmNset, &val->selected, NULL);
@@ -965,10 +965,10 @@
       Boolean radiobox = 0;
       int ac = 0;
       Arg al [1];
-      
+
       XtSetArg (al [ac], XmNradioBehavior, &radiobox); ac++;
       XtGetValues (widget, al, ac);
-      
+
       if (radiobox)
 	{
 	  CompositeWidget radio = (CompositeWidget)widget;
@@ -977,7 +977,7 @@
 	    {
 	      int set = False;
 	      Widget toggle = radio->composite.children [i];
-	      
+
 	      XtVaGetValues (toggle, XmNset, &set, NULL);
 	      if (set)
 		{
@@ -1020,7 +1020,7 @@
 /* This function is for activating a button from a program.  It's wrong because
    we pass a NULL argument in the call_data which is not Motif compatible.
    This is used from the XmNdefaultAction callback of the List widgets to
-   have a double-click put down a dialog box like the button would do. 
+   have a double-click put down a dialog box like the button would do.
    I could not find a way to do that with accelerators.
  */
 static void
@@ -1064,7 +1064,7 @@
   Arg 	al[64];			/* Arg List */
   int 	ac;			/* Arg Count */
   int 	i;
-  
+
   if (pop_up_p)
     {
       ac = 0;
@@ -1089,9 +1089,9 @@
 
   n_children = left_buttons + right_buttons + 1;
   ac = 0;
-  XtSetArg(al[ac], XmNpacking, n_children == 3? 
+  XtSetArg(al[ac], XmNpacking, n_children == 3?
 	   XmPACK_COLUMN: XmPACK_TIGHT); ac++;
-  XtSetArg(al[ac], XmNorientation, n_children == 3? 
+  XtSetArg(al[ac], XmNorientation, n_children == 3?
 	   XmVERTICAL: XmHORIZONTAL); ac++;
   XtSetArg(al[ac], XmNnumColumns, left_buttons + right_buttons + 1); ac++;
   XtSetArg(al[ac], XmNmarginWidth, 0); ac++;
@@ -1108,7 +1108,7 @@
   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
   XtSetArg(al[ac], XmNrightOffset, 13); ac++;
   row = XmCreateRowColumn (form, "row", al, ac);
-  
+
   n_children = 0;
   for (i = 0; i < left_buttons; i++)
     {
@@ -1140,7 +1140,7 @@
   XtSetArg (al[ac], XmNmappedWhenManaged, FALSE); ac++;
   children [n_children] = XmCreateLabel (row, "separator_button", al, ac);
   n_children++;
-  
+
   for (i = 0; i < right_buttons; i++)
     {
       char button_name [16];
@@ -1152,9 +1152,9 @@
       if (! button) button = children [n_children];
       n_children++;
     }
-  
+
   XtManageChildren (children, n_children);
-  
+
   ac = 0;
   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_NONE); ac++;
   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_WIDGET); ac++;
@@ -1250,7 +1250,7 @@
 	 list activate the default button */
       XtAddCallback (value, XmNdefaultActionCallback, activate_button, button);
     }
-  
+
   ac = 0;
   XtSetArg(al[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++;
@@ -1265,7 +1265,7 @@
   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
   XtSetArg(al[ac], XmNrightOffset, 13); ac++;
   message = XmCreateLabel (form, "message", al, ac);
-  
+
   if (list)
     XtManageChild (value);
 
@@ -1280,7 +1280,7 @@
   children [i] = icon; i++;
   children [i] = icon_separator; i++;
   XtManageChildren (children, i);
-  
+
   if (text_input_slot || list)
     {
       XtInstallAccelerators (value, button);
@@ -1291,7 +1291,7 @@
       XtInstallAccelerators (form, button);
       XtSetKeyboardFocus (result, button);
     }
-  
+
   return result;
 }
 
@@ -1364,7 +1364,7 @@
 
   x = (((Position)parent_width) - ((Position)child_width)) / 2;
   y = (((Position)parent_height) - ((Position)child_height)) / 2;
-  
+
   XtTranslateCoords (parent, x, y, &x, &y);
 
   if (x + child_width > screen_width)
@@ -1404,7 +1404,7 @@
 	focus = XtNameToWidget (widget, "*button1");
       if (focus)
 	XtSetKeyboardFocus (widget, focus);
-      
+
       /* shrink the separator label back to their original size */
       separator = XtNameToWidget (widget, "*separator_button");
       if (separator)
@@ -1472,7 +1472,7 @@
     shell_name = "Question";
     break;
   }
-  
+
   total_buttons = name [1] - '0';
 
   if (name [3] == 'T' || name [3] == 't')
@@ -1482,9 +1482,9 @@
     }
   else if (name [3])
     right_buttons = name [4] - '0';
-  
+
   left_buttons = total_buttons - right_buttons;
-  
+
   widget = make_dialog (name, parent, pop_up_p,
 			shell_name, icon_name, text_input_slot, radio_box,
 			list, left_buttons, right_buttons);
@@ -1655,7 +1655,7 @@
 #endif /* ENERGIZE */
 
 widget_creation_entry
-xm_creation_table [] = 
+xm_creation_table [] =
 {
   {"menubar", 			make_menubar},
   {"popup",			make_popup_menu},
@@ -1744,7 +1744,7 @@
 	  /* This is so totally ridiculous: there's NO WAY to tell Motif
 	     that *any* button can select a menu item.  Only one button
 	     can have that honor.  */
-      
+
 	  char *trans = 0;
 	  if      (event->xbutton.state & Button5Mask) trans = "<Btn5Down>";
 	  else if (event->xbutton.state & Button4Mask) trans = "<Btn4Down>";
@@ -1754,10 +1754,10 @@
 	  if (trans) XtVaSetValues (widget, XmNmenuPost, trans, NULL);
 	}
 #endif
-      
+
       XmMenuPosition (widget, (XButtonPressedEvent *) event);
     }
-  
+
   XtManageChild (widget);
 }
 
@@ -1795,12 +1795,12 @@
       if (up)
 	XtManageChild (widget);
       else
-	XtUnmanageChild (widget);	
+	XtUnmanageChild (widget);
     }
 }
 
 
-/* motif callback */ 
+/* motif callback */
 
 static void
 do_call (widget, closure, type)
@@ -1829,36 +1829,36 @@
   user_data = NULL;
   XtSetArg (al [ac], XmNuserData, &user_data); ac++;
   XtGetValues (widget, al, ac);
-  
+
   switch (type)
     {
     case pre_activate:
       if (instance->info->pre_activate_cb)
 	instance->info->pre_activate_cb (widget, id, user_data);
       break;
-      
+
     case selection:
       if (instance->info->selection_cb)
 	instance->info->selection_cb (widget, id, user_data);
       break;
-      
+
     case no_selection:
       if (instance->info->selection_cb)
 	instance->info->selection_cb (widget, id, (XtPointer) -1);
       break;
-      
+
     case post_activate:
       if (instance->info->post_activate_cb)
 	instance->info->post_activate_cb (widget, id, user_data);
       break;
-      
+
     default:
       abort ();
     }
 }
 
 /* Like lw_internal_update_other_instances except that it does not do
-   anything if its shell parent is not managed.  This is to protect 
+   anything if its shell parent is not managed.  This is to protect
    lw_internal_update_other_instances to dereference freed memory
    if the widget was ``destroyed'' by caching it in the all_destroyed_instances
    list */
@@ -1924,7 +1924,7 @@
 
 
 /* XmNpopdownCallback for MenuShell widgets.  WIDGET is the MenuShell,
-   CLOSURE is a pointer to the widget_instance of the shell, 
+   CLOSURE is a pointer to the widget_instance of the shell,
 
    Note that this callback is called for each cascade button in a
    menu, whether or not its submenu is visible.  */
--- a/lwlib/lwlib-Xm.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/lwlib/lwlib-Xm.h	Tue Feb 04 14:56:31 2003 +0000
@@ -5,7 +5,7 @@
 
 extern widget_creation_entry xm_creation_table [];
 
-Widget 
+Widget
 xm_create_dialog __P ((widget_instance* instance));
 
 Boolean
--- a/lwlib/lwlib-utils.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/lwlib/lwlib-utils.c	Tue Feb 04 14:56:31 2003 +0000
@@ -3,13 +3,13 @@
 
 This file is part of the Lucid Widget Library.
 
-The Lucid Widget Library is free software; you can redistribute it and/or 
+The Lucid Widget Library is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 1, or (at your option)
 any later version.
 
 The Lucid Widget Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of 
+but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
@@ -60,7 +60,7 @@
 }
 
 
-/* 
+/*
  * Apply a function to all the subwidgets of a given widget recursively.
 */
 void
@@ -177,7 +177,7 @@
     }
   else
     XtDestroyWidget (widget);
-  
+
 #else
   abort ();
 #endif
--- a/lwlib/lwlib.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/lwlib/lwlib.c	Tue Feb 04 14:56:31 2003 +0000
@@ -3,13 +3,13 @@
 
 This file is part of the Lucid Widget Library.
 
-The Lucid Widget Library is free software; you can redistribute it and/or 
+The Lucid Widget Library is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
 
 The Lucid Widget Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of 
+but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
@@ -101,7 +101,7 @@
 static void lw_pop_all_widgets P_ ((LWLIB_ID, Boolean));
 static Boolean get_one_value P_ ((widget_instance *, widget_value *));
 static void show_one_widget_busy P_ ((Widget, Boolean));
-     
+
 void
 lwlib_memset (address, value, length)
      char *address;
@@ -190,7 +190,7 @@
 }
 
 /* this is analogous to free().  It frees only what was allocated
-   by malloc_widget_value(), and no substructures. 
+   by malloc_widget_value(), and no substructures.
  */
 void
 free_widget_value (wv)
@@ -251,7 +251,7 @@
      change_type change;
 {
   widget_value* copy;
-  
+
   if (!val)
     return NULL;
   if (val == (widget_value *) 1)
@@ -523,7 +523,7 @@
       free_widget_value_tree (val1);
       return NULL;
     }
-  
+
   change = NO_CHANGE;
 
   if (safe_strcmp (val1->name, val2->name))
@@ -591,7 +591,7 @@
       merged_contents =
 	merge_widget_value (val1->contents, val2->contents, level - 1,
 			    change_p);
-      
+
       if (val1->contents && !merged_contents)
 	{
 	  /* This used to say INVISIBLE_CHANGE,
@@ -614,7 +614,7 @@
 #endif
 #endif
 	}
-      
+
       val1->contents = merged_contents;
     }
 
@@ -640,7 +640,7 @@
 
   val1->this_one_change = this_one_change;
   val1->change = change;
-  
+
   if (change > NO_CHANGE && val1->toolkit_data)
     {
       *change_p = 1;
@@ -672,7 +672,7 @@
       char* real_name = (char *) xmalloc (length);
       real_name [0] = '*';
       strcpy (real_name + 1, name);
-      
+
       widget = XtNameToWidget (instance->widget, real_name);
 
       free (real_name);
@@ -691,7 +691,7 @@
 #endif
 {
   Widget widget = name_to_widget (instance, val->name);
-  
+
   if (widget)
     {
 #if defined (USE_LUCID)
@@ -842,11 +842,11 @@
 dialog_spec_p (name)
      char* name;
 {
-  /* return True if name matches [EILPQeilpq][1-9][Bb] or 
+  /* return True if name matches [EILPQeilpq][1-9][Bb] or
      [EILPQeilpq][1-9][Bb][Rr][1-9] */
   if (!name)
     return False;
-  
+
   switch (name [0])
     {
     case 'E': case 'I': case 'L': case 'P': case 'Q':
@@ -866,7 +866,7 @@
 	}
       else
 	return False;
-    
+
     default:
       return False;
     }
@@ -908,7 +908,7 @@
 #endif
 	}
     }
-  
+
   if (!function)
     {
       printf ("No creation function for widget type %s\n",
@@ -924,7 +924,7 @@
   /*   XtRealizeWidget (instance->widget);*/
 }
 
-void 
+void
 lw_register_widget (type, name, id, val, pre_activate_cb,
 		    selection_cb, post_activate_cb, highlight_cb)
      char* type;
@@ -952,7 +952,7 @@
 #endif
 {
   widget_instance* instance;
-  
+
   instance = find_instance (id, parent, pop_up_p);
   return instance ? instance->widget : NULL;
 }
@@ -969,7 +969,7 @@
 {
   widget_instance* instance;
   widget_info* info;
-  
+
   instance = find_instance (id, parent, pop_up_p);
   if (!instance)
     {
@@ -1009,7 +1009,7 @@
 		      post_activate_cb, highlight_cb);
   return lw_make_widget (id, parent, pop_up_p);
 }
-		  
+
 
 /* destroying the widgets */
 static void
@@ -1046,7 +1046,7 @@
 #if defined (USE_XAW)
       if (lw_xaw_widget_p (instance->widget))
 	xaw_destroy_instance (instance);
-      else 
+      else
 #endif
 	/* do not remove the empty statement */
 	;
@@ -1060,7 +1060,7 @@
      Widget w;
 {
   widget_instance* instance = get_widget_instance (w, True);
-  
+
   if (instance)
     {
       widget_info *info = instance->info;
@@ -1233,7 +1233,7 @@
      widget_value* val;
 {
   Widget widget = name_to_widget (instance, val->name);
-      
+
   if (widget)
     {
 #if defined (USE_LUCID)
@@ -1310,7 +1310,7 @@
 /* To forbid recursive calls */
 static Boolean lwlib_updating;
 
-/* This function can be used as a an XtCallback for the widgets that get 
+/* This function can be used as a an XtCallback for the widgets that get
   modified to update other instances of the widgets.  Closure should be the
   widget_instance. */
 void
@@ -1390,7 +1390,7 @@
   Widget widget_to_invert = XtNameToWidget (w, "*sheet");
   if (!widget_to_invert)
     widget_to_invert = w;
-  
+
   XtVaGetValues (widget_to_invert,
 		 XtNforeground, &foreground,
 		 XtNbackground, &background,
@@ -1438,7 +1438,7 @@
      Boolean doit;
 #endif
 {
-#if defined (USE_XAW)  
+#if defined (USE_XAW)
   XawPanedSetRefigureMode (w, doit);
 #endif
 #if defined (USE_MOTIF)
--- a/lwlib/lwlib.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/lwlib/lwlib.h	Tue Feb 04 14:56:31 2003 +0000
@@ -5,12 +5,12 @@
 
 /*
 ** Widget values depend on the Widget type:
-** 
+**
 ** widget:   (name value key enabled data contents/selected)
 **
 ** label:    ("name" "string" NULL NULL NULL NULL)
 ** button:   ("name" "string" "key" T/F data <default-button-p>)
-** button w/menu: 
+** button w/menu:
 **           ("name" "string" "key" T/F data (label|button|button w/menu...))
 ** menubar:  ("name" NULL NULL T/F data (button w/menu))
 ** selectable thing:
@@ -67,7 +67,7 @@
   char*		name;
   /* value (meaning depend on widget type) */
   char*		value;
-  /* keyboard equivalent. no implications for XtTranslations */ 
+  /* keyboard equivalent. no implications for XtTranslations */
   char*		key;
   /* Help string or nil if none.
      GC finds this string through the frame's menu_bar_vector
--- a/lwlib/xlwmenu.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/lwlib/xlwmenu.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1243,7 +1243,7 @@
 {
   XlwMenuWidget mw = (XlwMenuWidget) w;
   int i;
-  
+
   for (i = 0; i < mw->menu.windows_length; ++i)
     if (window == mw->menu.windows[i].window)
       break;
--- a/mac/ChangeLog	Tue Feb 04 13:30:45 2003 +0000
+++ b/mac/ChangeLog	Tue Feb 04 14:56:31 2003 +0000
@@ -8,13 +8,13 @@
 	* INSTALL: Added documentation about --enable-carbon-app and
 	changed documentation concerning Emacs.app location
 	Removed some of the documentation about make-package that isn't
-	needed 
+	needed
 	Changed comment about requiring root permission to install to
 	saying that it might be necessary depending on where you install
 	Refered to /usr caveat in more places
 	* make-package (make_options): Use new carbon_appdir option to
 	specify directory to install Application and lets the makefile
-	install 
+	install
 
 2003-01-01  Steven Tamm  <steventamm@mac.com>
 
--- a/mac/INSTALL	Tue Feb 04 13:30:45 2003 +0000
+++ b/mac/INSTALL	Tue Feb 04 14:56:31 2003 +0000
@@ -88,7 +88,7 @@
     :sc=\E7:rc=\E8:cs=\E[%i%d;%dr:
 -----
 
-To build the `info' files in versions prior to Mac OS X 10.2, you need 
+To build the `info' files in versions prior to Mac OS X 10.2, you need
 to install the texinfo software.
 
 To install from source, obtain texinfo-4.2.tar.gz from ftp.gnu.org or
@@ -98,7 +98,7 @@
   make
   make install
 
-The last step may need to be performed as root (sudo make install). 
+The last step may need to be performed as root (sudo make install).
 
 You may also like to install ispell, which will allow you to use
 ispell and flyspell-mode.  To install ispell from source, you first
@@ -110,7 +110,7 @@
   ./configure --host=powerpc-apple-bsd
   make
   make install
-    
+
 Again, the last step may need to be performed as root.  Note that if you
 run `make check', the test for `pr' will fail.
 
@@ -148,14 +148,14 @@
 to whomever would like a binary distribution.  Here are the common
 options to user
 
---with-x         -  Use the X11 GUI instead of the Carbon GUI. 
+--with-x         -  Use the X11 GUI instead of the Carbon GUI.
 --prefix=DIR     -  Place the common emacs files in the given DIR.  The
 		    default is /usr/local.  See note below if placing
 		    in /usr
 --self-contained -  Place the common emacs files inside the Emacs.app
 		    itself.  This makes the application trivial to
 		    uninstall and copy between computers.
---app-symlink    -  Use a symlink inside the Application to the 
+--app-symlink    -  Use a symlink inside the Application to the
 	      	    $prefix/bin/emacs to reduce disk space.  Note, this
 		    option may removed in the future.
 
--- a/mac/inc/config.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/mac/inc/config.h	Tue Feb 04 14:56:31 2003 +0000
@@ -24,7 +24,7 @@
 
 
 /* No code in Emacs #includes config.h twice, but some of the code
-   intended to work with other packages as well (like gmalloc.c) 
+   intended to work with other packages as well (like gmalloc.c)
    think they can include it as many times as they like.  */
 #ifndef EMACS_CONFIG_H
 #define EMACS_CONFIG_H
@@ -41,7 +41,7 @@
 /* Define REL_ALLOC if you want to use the relocating allocator for
    buffer space. */
 /* #undef REL_ALLOC */
-  
+
 /* Define HAVE_X_WINDOWS if you want to use the X window system.  */
 /* #undef HAVE_X_WINDOWS */
 
--- a/mac/inc/m-mac.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/mac/inc/m-mac.h	Tue Feb 04 14:56:31 2003 +0000
@@ -20,7 +20,7 @@
 
 /* Contributed by Andrew Choi (akochoi@mac.com).  */
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="<name of system .h file here, without the s- or .h>"  */
 
--- a/mac/make-package	Tue Feb 04 13:30:45 2003 +0000
+++ b/mac/make-package	Tue Feb 04 14:56:31 2003 +0000
@@ -116,10 +116,10 @@
 
 if test "$display_usage" = "yes"; then
   cat <<EOF
-\`make-package' generates a Mac OS X installer package from an Emacs 
-distribution.  By default, this first runs ./configure on the emacs 
-directory.  Then make install to create the emacs distribution.  
-Then some mac-specific commands to generate the required information 
+\`make-package' generates a Mac OS X installer package from an Emacs
+distribution.  By default, this first runs ./configure on the emacs
+directory.  Then make install to create the emacs distribution.
+Then some mac-specific commands to generate the required information
 for the mac package.  The installer will, by default, create a
 Carbon application called Emacs in the ${appsdir} directory, with the
 shared emacs files in /usr/local
@@ -133,7 +133,7 @@
       --no-conf           Do not run the configure script before running
                           make install.
       --without-app       Do not create the Emacs application bundle
-      --with-x            Setup the install to use X Windows for its 
+      --with-x            Setup the install to use X Windows for its
                           windowed display, instead of carbon.  Implies
                           --without-app.
       --without-full-dist Do not include all the .el files in the distribution.
@@ -142,10 +142,10 @@
                           to the install in [prefix]/bin/emacs and have
                           the emacs executable link to emacs-${version}
       --self-contained    Create an Emacs.app that is self-contained;
-                          prefix will be ignored and all files installed 
-                          inside the application 
+                          prefix will be ignored and all files installed
+                          inside the application
       --build-in-place    Build the application in the source directory
-                          instead of a temporary directory.  
+                          instead of a temporary directory.
       --build-dir=DIR     Build the application in the specified directory
                           instead of a temporary directory.  Mutually exclusive
                           with --build-in-place.
@@ -357,7 +357,7 @@
 echo 'OverwritePermissions NO' >> ${infofile}
 echo 'InstallFat NO' >> ${infofile}
 
-### Set the install directory to install files as root...  
+### Set the install directory to install files as root...
 ### Not sure if this is a good diea
 # echo "Setting owner to root"
 # chown -Rh 0 ${tempparentfull}
@@ -402,7 +402,7 @@
 
 if [ ! -d /Volumes/Emacs ]; then
   echo "Could not create disc image.  The Emacs installer package (Emacs.pkg)
-in this directory should be correct.  Please use the Disc Copy program to 
+in this directory should be correct.  Please use the Disc Copy program to
 create a disc image." >&2
   exit 0
 fi
--- a/mac/makefile.MPW	Tue Feb 04 13:30:45 2003 +0000
+++ b/mac/makefile.MPW	Tue Feb 04 14:56:31 2003 +0000
@@ -2,19 +2,19 @@
 #    Copyright (C) 1999, 2000 Free Software Foundation, Inc.
 #
 #    Author: Andrew Choi <akochoi@users.sourceforge.net>
-# 
+#
 # This file is part of GNU Emacs.
-# 
+#
 # GNU Emacs is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation; either version 2, or (at your option)
 # any later version.
-# 
+#
 # GNU Emacs is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License
 # along with GNU Emacs; see the file COPYING.  If not, write to
 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
@@ -147,7 +147,7 @@
 		"{PPCLibraries}PPCToolLibs.o" ¶
 		-o "{EmacsTarget}"
 
-Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r 
+Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r
 	Rez -a "{Source}"Emacs.maclf.r -o "{EmacsTarget}"
 	Rez -a "{Source}"EmacsMPW.maclf.r -o "{EmacsTarget}"
 	SetFile "{EmacsTarget}" -t APPL -c 'EMAx' -a B
@@ -373,7 +373,7 @@
 		"{Src}macgui.h" ¶
 		"{Src}frame.h" ¶
 	"{Src}systime.h"
-	
+
 {Src}doc.c.x Ä ¶
 	{CONFIG_H_GROUP} ¶
 	"{Includes}sys:types.h" ¶
@@ -493,7 +493,7 @@
 	"{Src}buffer.h" ¶
 	"{Src}commands.h" ¶
 	"{Src}keyboard.h"
-	
+
 {Src}getloadavg.c.x Ä ¶
 	{CONFIG_H_GROUP} ¶
 	"{Includes}sys:types.h"
@@ -586,7 +586,7 @@
 	"{Src}commands.h" ¶
 	"{Src}keyboard.h" ¶
 	"{Src}termhooks.h"
-	
+
 {Src}macros.c.x Ä ¶
 	{CONFIG_H_GROUP} ¶
 	"{Src}lisp.h" ¶
@@ -630,7 +630,7 @@
 	"{Src}termchar.h" ¶
 	"{Src}keyboard.h" ¶
 	{INTERVALS_H_GROUP}
-	
+
 {Src}process.c.x Ä ¶
 	{CONFIG_H_GROUP} ¶
 	"{Includes}sys:types.h" ¶
@@ -642,7 +642,7 @@
 		"{Src}ccl.h" ¶
 	"{Src}termopts.h" ¶
 	"{Src}sysselect.h"
-	
+
 {Src}regex.c.x Ä ¶
 	{CONFIG_H_GROUP} ¶
 	"{Includes}sys:types.h" ¶
@@ -658,7 +658,7 @@
 	"{Src}lisp.h" ¶
 	"{Src}buffer.h" ¶
 	"{Src}region-cache.h"
-	
+
 {Src}scroll.c.x Ä ¶
 	{CONFIG_H_GROUP} ¶
 	"{Src}termchar.h" ¶
@@ -666,7 +666,7 @@
 	{DISPEXTERN_H_GROUP} ¶
 	"{Src}frame.h" ¶
 	{WINDOW_H_GROUP}
-	
+
 {Src}search.c.x Ä ¶
 	{CONFIG_H_GROUP} ¶
 	"{Src}lisp.h" ¶
@@ -680,12 +680,12 @@
 	{INTERVALS_H_GROUP} ¶
 	"{Includes}sys:types.h" ¶
 	"{Src}regex.h"
-	
+
 {Src}strftime.c.x Ä ¶
 	{CONFIG_H_GROUP} ¶
 	"{Includes}sys:types.h" ¶
-	"{Includes}sys:time.h"	
-	
+	"{Includes}sys:time.h"
+
 {Src}syntax.c.x Ä ¶
 	{CONFIG_H_GROUP} ¶
 	"{Src}lisp.h" ¶
@@ -695,7 +695,7 @@
 	"{Src}syntax.h" ¶
 	{INTERVALS_H_GROUP} ¶
 	"{Src}category.h"
-	
+
 {Src}sysdep.c.x Ä ¶
 	{CONFIG_H_GROUP} ¶
 	"{Src}lisp.h" ¶
@@ -737,7 +737,7 @@
 	"{Src}macterm.h" ¶
 		"{Src}macgui.h" ¶
 		"{Src}frame.h"
-	
+
 {Src}termcap.c.x Ä ¶
 	{CONFIG_H_GROUP} ¶
 	"{Src}lisp.h" ¶
@@ -749,17 +749,17 @@
 	{INTERVALS_H_GROUP} ¶
 	"{Src}buffer.h" ¶
 	{WINDOW_H_GROUP}
-	
+
 {Src}tparam.c.x Ä ¶
 	{CONFIG_H_GROUP} ¶
 	"{Src}lisp.h"
-	
+
 {Src}undo.c.x Ä ¶
 	{CONFIG_H_GROUP} ¶
 	"{Src}lisp.h" ¶
 	"{Src}buffer.h" ¶
 	"{Src}commands.h"
-	
+
 {Src}window.c.x Ä ¶
 	{CONFIG_H_GROUP} ¶
 	"{Src}lisp.h" ¶
@@ -776,8 +776,8 @@
 	{INTERVALS_H_GROUP} ¶
 	"{Src}macterm.h" ¶
 		"{Src}macgui.h" ¶
-		"{Src}frame.h"	
-	
+		"{Src}frame.h"
+
 {Src}xdisp.c.x Ä ¶
 	{CONFIG_H_GROUP} ¶
 	"{Src}lisp.h" ¶
@@ -801,8 +801,8 @@
 	"{Src}fontset.h" ¶
 	"{Src}macterm.h" ¶
 		"{Src}macgui.h" ¶
-		"{Src}frame.h"	
-	
+		"{Src}frame.h"
+
 {Src}xfaces.c.x Ä ¶
 	{CONFIG_H_GROUP} ¶
 	"{Includes}sys:types.h" ¶
@@ -907,8 +907,8 @@
 	"{Src}termhooks.h" ¶
 	"{Src}coding.h" ¶
 		"{Src}ccl.h"
-		
-		
+
+
 #----------------------------------------#
 # Variables and rules for target "Clean" #
 #----------------------------------------#
@@ -1089,7 +1089,7 @@
 #-----------------------------------------------#
 
 Make-DocFile-Includes		= -i :inc:
-Make-DocFile-Sym			= 
+Make-DocFile-Sym			=
 
 Make-DocFile-PPCCOptions	= -typecheck relaxed -w off -noMapCR ¶
 								{Make-DocFile-Includes} {Make-DocFile-Sym}
--- a/mac/src/chdir.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/mac/src/chdir.c	Tue Feb 04 14:56:31 2003 +0000
@@ -33,7 +33,7 @@
 
   strcpy(mypath, path);
   c2pstr(mypath);
-  
+
   wdpb.ioNamePtr = mypath;
   wdpb.ioVRefNum = 0;
   wdpb.ioWDDirID = 0;
--- a/make-dist	Tue Feb 04 13:30:45 2003 +0000
+++ b/make-dist	Tue Feb 04 14:56:31 2003 +0000
@@ -129,7 +129,7 @@
     EMACS=`pwd`/src/emacs
   else
     if [ "x$EMACS" = "x" -o "x$EMACS" = "xt" ];
-    then 
+    then
       echo You must specify the EMACS environment variable 2>&1
       exit 1
     fi
@@ -362,7 +362,7 @@
  for file in `find . -type d -print`; do
    case $file in
      . | .. | */Old | */CVS | */RCS | */=*)
-       ;;	
+       ;;
      *)
        if [ -d $file ]; then
 	 subdirs="$file $subdirs"
@@ -537,7 +537,7 @@
 echo "Making links to \`mac/Emacs.app/Contents/Resources/English.lproj'"
 (cd mac/Emacs.app/Contents/Resources/English.lproj
  ln InfoPlist.strings ../../../../../${tempdir}/mac/Emacs.app/Contents/Resources/English.lproj)
- 
+
 echo "Making links to \`msdos'"
 (cd msdos
  ln  ChangeLog emacs.ico emacs.pif ../${tempdir}/msdos
--- a/man/ChangeLog	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/ChangeLog	Tue Feb 04 14:56:31 2003 +0000
@@ -299,7 +299,7 @@
 
 	* gnus.texi: File deleted.
 
-1995-11-02  Stephen Gildea <gildea@stop.mail-abuse.org>
+1995-11-02  Stephen Gildea  <gildea@stop.mail-abuse.org>
 
 	* mh-e.texi: "Function Index" -> "Command Index" to work with
 	Emacs 19.30 C-h C-k support of separately-documented commands.
@@ -314,7 +314,7 @@
 	* Makefile.in (INFO_TARGETS, DVI_TARGETS): Add viper targets.
 	(../info/viper, viper.dvi): New targets.
 
-1995-04-20  Kevin Rodgers <kevinr@ihs.com>
+1995-04-20  Kevin Rodgers  <kevinr@ihs.com>
 
 	* dired-x.texi (Installation): Change the example to set
 	buffer-local variables like dired-omit-files-p in
--- a/man/Makefile.in	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/Makefile.in	Tue Feb 04 14:56:31 2003 +0000
@@ -54,7 +54,7 @@
 	texi2dvi $<
 
 TEXI2DVI = texi2dvi
-ENVADD = TEXINPUTS="$(srcdir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)" 
+ENVADD = TEXINPUTS="$(srcdir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)"
 
 EMACSSOURCES= \
 	${srcdir}/emacs.texi \
@@ -176,7 +176,7 @@
 ../info/gnus: gnus.texi
 	cd $(srcdir); $(MAKEINFO) gnus.texi
 gnus.dvi: gnus.texi
-	sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi 
+	sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi
 	$(ENVADD) $(TEXI2DVI) gnustmp.texi
 	cp gnustmp.dvi $*.dvi
 	rm gnustmp.*
--- a/man/ack.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/ack.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -55,7 +55,7 @@
 @c If earcon.el actually works with Emacs 21, it isn't useful for lack
 @c of  sound files. -- fx
 @c @file{earcon.el}, a facility for sound effects
-@c for email and news messages, 
+@c for email and news messages,
 @file{footnote.el} which lets you include
 footnotes in email messages, and @file{gnus-audio.el} which provides
 sound effects for Gnus.
@@ -184,7 +184,7 @@
 text replace the current selection.
 
 @item
-Eric Ding contributed @file{goto-addr.el}, 
+Eric Ding contributed @file{goto-addr.el},
 
 @item
 Carsten Dominik wrote @file{reftex.el}, a package for setting up
@@ -660,7 +660,7 @@
 Bengt Martensson, Mark Shapiro, Mike Newton, Aaron Larson, and Stefan
 Schoef, wrote @file{bibtex.el}, a mode for editing Bib@TeX{}
 bibliography files.
- 
+
 @item
 Charlie Martin wrote @file{autoinsert.el}, which provides automatic
 mode-sensitive insertion of text into new files.
@@ -722,7 +722,7 @@
 @file{rfc822.el}, a parser for E-mail addresses in the RFC-822 format,
 used in mail messages and news articles,
 @item
-@file{terminal.el}, a terminal emulator for Emacs subprocesses, and 
+@file{terminal.el}, a terminal emulator for Emacs subprocesses, and
 @item
 @file{yow.el}, an essential utility (try @kbd{M-x yow}).
 @end itemize
@@ -821,7 +821,7 @@
 @item
 @file{sun.el}, key bindings for sunterm keys,
 @item
-@file{sun-curs.el}, cursor definitions for Sun Windows, and 
+@file{sun-curs.el}, cursor definitions for Sun Windows, and
 @item
 @file{sun-fns.el} and @file{sun-mouse.el}, providing mouse support for
 Sun Windows.
@@ -1153,7 +1153,7 @@
 Tibor @v{S}imko and Milan Zamazal wrote @file{slovak.el}, support for
 editing text in Slovak language.
 
-@item 
+@item
 Naoto Takahashi wrote @file{utf-8.el}, support for encoding and
 decoding UTF-8 data.
 
--- a/man/ada-mode.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/ada-mode.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -161,7 +161,7 @@
 Ada mode every time you edit an Ada file.
 
 Also, for general usage variables that you might want to set,
-see 
+see
 @iftex
 @cite{The GNU Emacs Manual}.
 @end iftex
@@ -337,7 +337,7 @@
 @item C-c u
 @findex ada-customize
 Create or edit the project file for the current buffer (@code{ada-customize}).
-@item C-c c   
+@item C-c c
 @findex ada-change-prj
 Change the project file associated with the current Ada buffer (@code{ada-change-prj}).
 @item C-c d
--- a/man/basic.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/basic.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -262,7 +262,7 @@
 non-@code{nil} value, @kbd{C-n} on the last line of a buffer creates
 an additional line at the end and moves down onto it.
 
-@node Erasing	
+@node Erasing
 @section Erasing Text
 
 @table @kbd
@@ -611,7 +611,7 @@
 that looks like this:
 
 @smallexample
-Char: c (0143, 99, 0x63)  point=21044 of 26883(78%)  column 53 
+Char: c (0143, 99, 0x63)  point=21044 of 26883(78%)  column 53
 @end smallexample
 
 @noindent
@@ -641,7 +641,7 @@
 might display this:
 
 @smallexample
-Char: C (0103, 67, 0x43)  point=252 of 889(28%) <231 - 599>  column 0 
+Char: C (0103, 67, 0x43)  point=252 of 889(28%) <231 - 599>  column 0
 @end smallexample
 
 @noindent
--- a/man/buffers.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/buffers.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -54,7 +54,7 @@
 * Kill Buffer::	        Killing buffers you no longer need.
 * Several Buffers::     How to go through the list of all buffers
 			  and operate variously on several of them.
-* Indirect Buffers::    An indirect buffer shares the text of another buffer. 
+* Indirect Buffers::    An indirect buffer shares the text of another buffer.
 * Buffer Convenience::  Convenience and customization features for
                           buffer handling.
 @end menu
@@ -155,10 +155,10 @@
  MR Buffer         Size  Mode           File
  -- ------         ----  ----           ----
 .*  emacs.tex      383402 Texinfo       /u2/emacs/man/emacs.tex
-    *Help*         1287  Fundamental	
+    *Help*         1287  Fundamental
     files.el       23076 Emacs-Lisp     /u2/emacs/lisp/files.el
   % RMAIL          64042 RMAIL          /u/rms/RMAIL
- *% man            747   Dired          /u2/emacs/man/		
+ *% man            747   Dired          /u2/emacs/man/
     net.emacs      343885 Fundamental   /u/rms/net.emacs
     fileio.c       27691 C              /u2/emacs/src/fileio.c
     NEWS           67340 Text           /u2/emacs/etc/NEWS
@@ -498,7 +498,7 @@
 @menu
 * Uniquify::               Buffer names can contain directory parts.
 * Iswitchb::               Switching between buffers with substrings.
-* Buffer Menus::           Configurable buffer menu.     
+* Buffer Menus::           Configurable buffer menu.
 @end menu
 
 @node Uniquify
--- a/man/building.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/building.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -18,14 +18,14 @@
 * Compilation Mode::    The mode for visiting compiler errors.
 * Compilation Shell::   Customizing your shell properly
                           for use in the compilation buffer.
-* Debuggers::	        Running symbolic debuggers for non-Lisp programs. 
-* Executing Lisp::      Various modes for editing Lisp programs, 
+* Debuggers::	        Running symbolic debuggers for non-Lisp programs.
+* Executing Lisp::      Various modes for editing Lisp programs,
                           with different facilities for running
-                          the Lisp programs. 
+                          the Lisp programs.
 * Libraries: Lisp Libraries.      Creating Lisp programs to run in Emacs.
 * Interaction: Lisp Interaction.  Executing Lisp in an Emacs buffer.
 * Eval: Lisp Eval.      Executing a single Lisp expression in Emacs.
-* External Lisp::         Communicating through Emacs with a separate Lisp. 
+* External Lisp::         Communicating through Emacs with a separate Lisp.
 @end menu
 
 @node Compilation
--- a/man/calc.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/calc.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -12436,7 +12436,7 @@
 @cindex Positive infinite mode
 The @kbd{m i} command with a numeric prefix argument of zero,
 i.e., @kbd{C-u 0 m i}, turns on a ``positive infinite mode'' in
-which zero is treated as positive instead of being directionless.  
+which zero is treated as positive instead of being directionless.
 Thus, @samp{1 / 0 = inf} and @samp{-1 / 0 = -inf} in this mode.
 Note that zero never actually has a sign in Calc; there are no
 separate representations for @i{+0} and @i{-0}.  Positive
@@ -14171,7 +14171,7 @@
 ----      ---           ---
 acute     \acute
 bar       \bar          bar
-breve     \breve        
+breve     \breve
 check     \check
 dot       \dot          dot
 dotdot    \ddot         dotdot
@@ -14458,7 +14458,7 @@
 @cindex Maple language
 The @kbd{d W} (@code{calc-maple-language}) command selects the
 conventions of Maple, another mathematical tool from the University
-of Waterloo.  
+of Waterloo.
 
 Maple's language is much like C.  Underscores are allowed in symbol
 names; square brackets are used for subscripts; explicit @samp{*}s for
@@ -15040,7 +15040,7 @@
 
 @example
 @group
- C  +  C 
+ C  +  C
 a b   7 3
 @end group
 @end example
@@ -15564,7 +15564,7 @@
 @item
 Symbolic mode.  Value is 0 or 1; default is 0.  Command is @kbd{m s}.
 
-@item 
+@item
 Fraction mode.  Value is 0 or 1; default is 0.  Command is @kbd{m f}.
 
 @item
@@ -17626,7 +17626,7 @@
 fvl(rate, n, pmt) =     pmt * (1 + rate)
 
                                             -n
-                              1 - (1 + rate)  
+                              1 - (1 + rate)
 pv(rate, n, pmt) =      pmt * ----------------
                                     rate
 
@@ -22984,7 +22984,7 @@
 With four arguments, @samp{integ(f(x),x,a,b)} represents a definite
 integral from @code{a} to @code{b}.
 @end ifinfo
-@tex  
+@tex
 If you use the @code{integ} function directly in an algebraic formula,
 you can also write @samp{integ(f,x,v)} which expresses the resulting
 indefinite integral in terms of variable @code{v} instead of @code{x}.
@@ -23249,7 +23249,7 @@
 to @cite{y/3 - 2}, and @kbd{s l} (@pxref{Let Command}) which evaluates
 another formula with @cite{x} set equal to @cite{y/3 - 2}.
 
-@menu 
+@menu
 * Multiple Solutions::
 * Solving Systems of Equations::
 * Decomposing Polynomials::
@@ -34016,7 +34016,7 @@
 
 @comment @node Lisp Variables, Hooks, Formatting Lisp Functions, Internals
 @comment @subsubsection Lisp Variables
-@comment 
+@comment
 @comment @noindent
 @comment (This section is currently unfinished.)
 
@@ -34397,8 +34397,8 @@
 @r{       @:     M-# _  @:             @:    36  @:calc-grab-sum-across@:}
 @r{       @:     M-# `  @:editing      @:    30  @:calc-embedded-edit@:}
 @r{       @:     M-# 0  @:(zero)       @:        @:calc-reset@:}
- 
-@c 
+
+@c
 @r{       @:      0-9   @:number       @:        @:@:number}
 @r{       @:      .     @:number       @:        @:@:0.number}
 @r{       @:      _     @:number       @:        @:-@:number}
@@ -34409,12 +34409,12 @@
 @r{       @:      @@ ' " @:  (in number)@:        @:@:HMS form}
 @r{       @:      h m s @:  (in number)@:        @:@:HMS form}
 
-@c 
+@c
 @r{       @:      '     @:formula      @: 37,46  @:@:formula}
 @r{       @:      $     @:formula      @: 37,46  @:$@:formula}
 @r{       @:      "     @:string       @: 37,46  @:@:string}
- 
-@c 
+
+@c
 @r{    a b@:      +     @:             @:     2  @:add@:(a,b)  a+b}
 @r{    a b@:      -     @:             @:     2  @:sub@:(a,b)  a@minus{}b}
 @r{    a b@:      *     @:             @:     2  @:mul@:(a,b)  a b, a*b}
@@ -34432,8 +34432,8 @@
 @r{      a@:      !     @:             @:     1  @:fact@:(a)  a!}
 @r{      a@:      =     @:             @:     1  @:evalv@:(a)}
 @r{      a@:      M-%   @:             @:        @:percent@:(a)  a%}
- 
-@c 
+
+@c
 @r{  ... a@:      @key{RET}   @:             @:     1  @:@:... a a}
 @r{  ... a@:      @key{SPC}   @:             @:     1  @:@:... a a}
 @r{... a b@:      @key{TAB}   @:             @:     3  @:@:... b a}
@@ -34443,8 +34443,8 @@
 @r{... a b@:      M-@key{DEL} @:             @:     1  @:@:... b}
 @r{       @:      M-@key{RET} @:             @:     4  @:calc-last-args@:}
 @r{      a@:      `     @:editing      @:  1,30  @:calc-edit@:}
- 
-@c 
+
+@c
 @r{  ... a@:      C-d   @:             @:     1  @:@:...}
 @r{       @:      C-k   @:             @:    27  @:calc-kill@:}
 @r{       @:      C-w   @:             @:    27  @:calc-kill-region@:}
@@ -34452,8 +34452,8 @@
 @r{       @:      C-_   @:             @:     4  @:calc-undo@:}
 @r{       @:      M-k   @:             @:    27  @:calc-copy-as-kill@:}
 @r{       @:      M-w   @:             @:    27  @:calc-copy-region-as-kill@:}
- 
-@c 
+
+@c
 @r{       @:      [     @:             @:        @:@:[...}
 @r{[.. a b@:      ]     @:             @:        @:@:[a,b]}
 @r{       @:      (     @:             @:        @:@:(...}
@@ -34462,15 +34462,15 @@
 @r{       @:      ;     @:             @:        @:@:matrix or polar complex}
 @r{       @:      ..    @:             @:        @:@:interval}
 
-@c 
+@c
 @r{       @:      ~     @:             @:        @:calc-num-prefix@:}
 @r{       @:      <     @:             @:     4  @:calc-scroll-left@:}
 @r{       @:      >     @:             @:     4  @:calc-scroll-right@:}
 @r{       @:      @{     @:             @:     4  @:calc-scroll-down@:}
 @r{       @:      @}     @:             @:     4  @:calc-scroll-up@:}
 @r{       @:      ?     @:             @:        @:calc-help@:}
- 
-@c 
+
+@c
 @r{      a@:      n     @:             @:     1  @:neg@:(a)  @minus{}a}
 @r{       @:      o     @:             @:     4  @:calc-realign@:}
 @r{       @:      p     @:precision    @:    31  @:calc-precision@:}
@@ -34478,8 +34478,8 @@
 @r{       @:      w     @:             @:        @:calc-why@:}
 @r{       @:      x     @:command      @:        @:M-x calc-@:command}
 @r{      a@:      y     @:            @:1,28,49  @:calc-copy-to-buffer@:}
- 
-@c 
+
+@c
 @r{      a@:      A     @:             @:     1  @:abs@:(a)}
 @r{    a b@:      B     @:             @:     2  @:log@:(a,b)}
 @r{    a b@:    I B     @:             @:     2  @:alog@:(a,b)  b^a}
@@ -34524,8 +34524,8 @@
 @r{      a@:  I H T     @:             @:     1  @:arctanh@:(a)}
 @r{       @:      U     @:             @:     4  @:calc-undo@:}
 @r{       @:      X     @:             @:     4  @:calc-call-last-kbd-macro@:}
- 
-@c 
+
+@c
 @r{    a b@:      a =   @:             @:     2  @:eq@:(a,b)  a=b}
 @r{    a b@:      a #   @:             @:     2  @:neq@:(a,b)  a!=b}
 @r{    a b@:      a <   @:             @:     2  @:lt@:(a,b)  a<b}
@@ -34539,20 +34539,20 @@
 @r{  a b c@:      a :   @:             @:    45  @:if@:(a,b,c)  a?b:c}
 @r{      a@:      a .   @:             @:     1  @:rmeq@:(a)}
 @r{      a@:      a "   @:             @:   7,8  @:calc-expand-formula@:}
- 
-@c 
+
+@c
 @r{      a@:      a +   @:i, l, h      @:  6,38  @:sum@:(a,i,l,h)}
 @r{      a@:      a -   @:i, l, h      @:  6,38  @:asum@:(a,i,l,h)}
 @r{      a@:      a *   @:i, l, h      @:  6,38  @:prod@:(a,i,l,h)}
 @r{    a b@:      a _   @:             @:     2  @:subscr@:(a,b)  a_b}
- 
-@c 
+
+@c
 @r{    a b@:      a \   @:             @:     2  @:pdiv@:(a,b)}
 @r{    a b@:      a %   @:             @:     2  @:prem@:(a,b)}
 @r{    a b@:      a /   @:             @:     2  @:pdivrem@:(a,b)  [q,r]}
 @r{    a b@:    H a /   @:             @:     2  @:pdivide@:(a,b)  q+r/b}
- 
-@c 
+
+@c
 @r{      a@:      a a   @:             @:     1  @:apart@:(a)}
 @r{      a@:      a b   @:old, new     @:    38  @:subst@:(a,old,new)}
 @r{      a@:      a c   @:v            @:    38  @:collect@:(a,v)}
@@ -34573,8 +34573,8 @@
 @r{      a@:      a t   @:v, n         @: 31,39  @:taylor@:(a,v,n)}
 @r{      a@:      a v   @:             @:   7,8  @:calc-alg-evaluate@:}
 @r{      a@:      a x   @:             @:   4,8  @:expand@:(a)}
- 
-@c 
+
+@c
 @r{   data@:      a F   @:model, vars  @:    48  @:fit@:(m,iv,pv,data)}
 @r{   data@:    I a F   @:model, vars  @:    48  @:xfit@:(m,iv,pv,data)}
 @r{   data@:    H a F   @:model, vars  @:    48  @:efit@:(m,iv,pv,data)}
@@ -34594,8 +34594,8 @@
 @r{      a@:      a T   @:i, l, h      @:  6,38  @:table@:(a,i,l,h)}
 @r{    a g@:      a X   @:v            @:    38  @:maximize@:(a,v,g)}
 @r{    a g@:    H a X   @:v            @:    38  @:wmaximize@:(a,v,g)}
- 
-@c 
+
+@c
 @r{    a b@:      b a   @:             @:     9  @:and@:(a,b,w)}
 @r{      a@:      b c   @:             @:     9  @:clip@:(a,w)}
 @r{    a b@:      b d   @:             @:     9  @:diff@:(a,b,w)}
@@ -34611,8 +34611,8 @@
 @r{      a@:      b u   @:             @:     1  @:vunpack@:(a)}
 @r{       @:      b w   @:w            @:  9,50  @:calc-word-size@:}
 @r{    a b@:      b x   @:             @:     9  @:xor@:(a,b,w)}
- 
-@c 
+
+@c
 @r{c s l p@:      b D   @:             @:        @:ddb@:(c,s,l,p)}
 @r{  r n p@:      b F   @:             @:        @:fv@:(r,n,p)}
 @r{  r n p@:    I b F   @:             @:        @:fvb@:(r,n,p)}
@@ -34641,8 +34641,8 @@
 @r{  r p a@:    I b #   @:             @:        @:nperb@:(r,p,a)}
 @r{  r p a@:    H b #   @:             @:        @:nperl@:(r,p,a)}
 @r{    a b@:      b %   @:             @:        @:relch@:(a,b)}
- 
-@c 
+
+@c
 @r{      a@:      c c   @:             @:     5  @:pclean@:(a,p)}
 @r{      a@:      c 0-9 @:             @:        @:pclean@:(a,p)}
 @r{      a@:    H c c   @:             @:     5  @:clean@:(a,p)}
@@ -34654,15 +34654,15 @@
 @r{      a@:      c p   @:             @:        @:polar@:(a)}
 @r{      a@:    I c p   @:             @:        @:rect@:(a)}
 @r{      a@:      c r   @:             @:     1  @:rad@:(a)}
- 
-@c 
+
+@c
 @r{      a@:      c F   @:             @:     5  @:pfrac@:(a,p)}
 @r{      a@:    H c F   @:             @:     5  @:frac@:(a,p)}
- 
-@c 
+
+@c
 @r{      a@:      c %   @:             @:        @:percent@:(a*100)}
- 
-@c 
+
+@c
 @r{       @:      d .   @:char         @:    50  @:calc-point-char@:}
 @r{       @:      d ,   @:char         @:    50  @:calc-group-char@:}
 @r{       @:      d <   @:             @: 13,50  @:calc-left-justify@:}
@@ -34675,14 +34675,14 @@
 @r{       @:      d "   @:             @: 12,50  @:calc-display-strings@:}
 @r{       @:      d @key{SPC} @:             @:        @:calc-refresh@:}
 @r{       @:      d @key{RET} @:             @:     1  @:calc-refresh-top@:}
- 
-@c 
+
+@c
 @r{       @:      d 0   @:             @:    50  @:calc-decimal-radix@:}
 @r{       @:      d 2   @:             @:    50  @:calc-binary-radix@:}
 @r{       @:      d 6   @:             @:    50  @:calc-hex-radix@:}
 @r{       @:      d 8   @:             @:    50  @:calc-octal-radix@:}
- 
-@c 
+
+@c
 @r{       @:      d b   @:           @:12,13,50  @:calc-line-breaking@:}
 @r{       @:      d c   @:             @:    50  @:calc-complex-notation@:}
 @r{       @:      d d   @:format       @:    50  @:calc-date-notation@:}
@@ -34701,8 +34701,8 @@
 @r{       @:      d t   @:             @:    27  @:calc-truncate-stack@:}
 @r{       @:      d w   @:             @: 12,13  @:calc-auto-why@:}
 @r{       @:      d z   @:             @: 12,50  @:calc-leading-zeros@:}
- 
-@c 
+
+@c
 @r{       @:      d B   @:             @:    50  @:calc-big-language@:}
 @r{       @:      d C   @:             @:    50  @:calc-c-language@:}
 @r{       @:      d E   @:             @:    50  @:calc-eqn-language@:}
@@ -34714,12 +34714,12 @@
 @r{       @:      d T   @:             @:    50  @:calc-tex-language@:}
 @r{       @:      d U   @:             @:    50  @:calc-unformatted-language@:}
 @r{       @:      d W   @:             @:    50  @:calc-maple-language@:}
- 
-@c 
+
+@c
 @r{      a@:      f [   @:             @:     4  @:decr@:(a,n)}
 @r{      a@:      f ]   @:             @:     4  @:incr@:(a,n)}
- 
-@c 
+
+@c
 @r{    a b@:      f b   @:             @:     2  @:beta@:(a,b)}
 @r{      a@:      f e   @:             @:     1  @:erf@:(a)}
 @r{      a@:    I f e   @:             @:     1  @:erfc@:(a)}
@@ -34732,8 +34732,8 @@
 @r{      a@:      f s   @:             @:     1  @:sign@:(a)}
 @r{    a b@:      f x   @:             @:     2  @:max@:(a,b)}
 @r{    n a@:      f y   @:             @:     2  @:besY@:(n,a)}
- 
-@c 
+
+@c
 @r{      a@:      f A   @:             @:     1  @:abssqr@:(a)}
 @r{  x a b@:      f B   @:             @:        @:betaI@:(x,a,b)}
 @r{  x a b@:    H f B   @:             @:        @:betaB@:(x,a,b)}
@@ -34751,8 +34751,8 @@
 @r{    a n@:      f S   @:             @:     2  @:scf@:(a,n)}
 @r{    y x@:      f T   @:             @:        @:arctan2@:(y,x)}
 @r{      a@:      f X   @:             @:     1  @:xpon@:(a)}
- 
-@c 
+
+@c
 @r{    x y@:      g a   @:             @: 28,40  @:calc-graph-add@:}
 @r{       @:      g b   @:             @:    12  @:calc-graph-border@:}
 @r{       @:      g c   @:             @:        @:calc-graph-clear@:}
@@ -34772,8 +34772,8 @@
 @r{       @:      g v   @:             @:        @:calc-graph-view-commands@:}
 @r{       @:      g x   @:display      @:        @:calc-graph-display@:}
 @r{       @:      g z   @:             @:    12  @:calc-graph-zero-x@:}
- 
-@c 
+
+@c
 @r{  x y z@:      g A   @:             @: 28,40  @:calc-graph-add-3d@:}
 @r{       @:      g C   @:command      @:        @:calc-graph-command@:}
 @r{       @:      g D   @:device       @: 43,44  @:calc-graph-device@:}
@@ -34790,13 +34790,13 @@
 @r{       @:      g V   @:             @:        @:calc-graph-view-trail@:}
 @r{       @:      g X   @:format       @:        @:calc-graph-geometry@:}
 @r{       @:      g Z   @:             @:    12  @:calc-graph-zero-y@:}
- 
-@c 
+
+@c
 @r{       @:      g C-l @:             @:    12  @:calc-graph-log-z@:}
 @r{       @:      g C-r @:range        @:        @:calc-graph-range-z@:}
 @r{       @:      g C-t @:title        @:        @:calc-graph-title-z@:}
- 
-@c 
+
+@c
 @r{       @:      h b   @:             @:        @:calc-describe-bindings@:}
 @r{       @:      h c   @:key          @:        @:calc-describe-key-briefly@:}
 @r{       @:      h f   @:function     @:        @:calc-describe-function@:}
@@ -34807,23 +34807,23 @@
 @r{       @:      h s   @:             @:        @:calc-info-summary@:}
 @r{       @:      h t   @:             @:        @:calc-tutorial@:}
 @r{       @:      h v   @:var          @:        @:calc-describe-variable@:}
- 
-@c 
+
+@c
 @r{       @:      j 1-9 @:             @:        @:calc-select-part@:}
 @r{       @:      j @key{RET} @:             @:    27  @:calc-copy-selection@:}
 @r{       @:      j @key{DEL} @:             @:    27  @:calc-del-selection@:}
 @r{       @:      j '   @:formula      @:    27  @:calc-enter-selection@:}
 @r{       @:      j `   @:editing      @: 27,30  @:calc-edit-selection@:}
 @r{       @:      j "   @:             @:  7,27  @:calc-sel-expand-formula@:}
- 
-@c 
+
+@c
 @r{       @:      j +   @:formula      @:    27  @:calc-sel-add-both-sides@:}
 @r{       @:      j -   @:formula      @:    27  @:calc-sel-sub-both-sides@:}
 @r{       @:      j *   @:formula      @:    27  @:calc-sel-mul-both-sides@:}
 @r{       @:      j /   @:formula      @:    27  @:calc-sel-div-both-sides@:}
 @r{       @:      j &   @:             @:    27  @:calc-sel-invert@:}
- 
-@c 
+
+@c
 @r{       @:      j a   @:             @:    27  @:calc-select-additional@:}
 @r{       @:      j b   @:             @:    12  @:calc-break-selections@:}
 @r{       @:      j c   @:             @:        @:calc-clear-selections@:}
@@ -34838,8 +34838,8 @@
 @r{       @:      j s   @:             @:  4,27  @:calc-select-here@:}
 @r{       @:      j u   @:             @:    27  @:calc-unselect@:}
 @r{       @:      j v   @:             @:  7,27  @:calc-sel-evaluate@:}
- 
-@c 
+
+@c
 @r{       @:      j C   @:             @:    27  @:calc-sel-commute@:}
 @r{       @:      j D   @:             @:  4,27  @:calc-sel-distribute@:}
 @r{       @:      j E   @:             @:    27  @:calc-sel-jump-equals@:}
@@ -34852,8 +34852,8 @@
 @r{       @:      j R   @:             @:  4,27  @:calc-commute-right@:}
 @r{       @:      j S   @:             @:  4,27  @:calc-select-here-maybe@:}
 @r{       @:      j U   @:             @:    27  @:calc-sel-unpack@:}
- 
-@c 
+
+@c
 @r{       @:      k a   @:             @:        @:calc-random-again@:}
 @r{      n@:      k b   @:             @:     1  @:bern@:(n)}
 @r{    n x@:    H k b   @:             @:     2  @:bern@:(n,x)}
@@ -34874,8 +34874,8 @@
 @r{    n m@:      k s   @:             @:     2  @:stir1@:(n,m)}
 @r{    n m@:    H k s   @:             @:     2  @:stir2@:(n,m)}
 @r{      n@:      k t   @:             @:     1  @:totient@:(n)}
- 
-@c 
+
+@c
 @r{  n p x@:      k B   @:             @:        @:utpb@:(x,n,p)}
 @r{  n p x@:    I k B   @:             @:        @:ltpb@:(x,n,p)}
 @r{    v x@:      k C   @:             @:        @:utpc@:(x,v)}
@@ -34889,8 +34889,8 @@
 @r{    m x@:    I k P   @:             @:        @:ltpp@:(x,m)}
 @r{    v x@:      k T   @:             @:        @:utpt@:(x,v)}
 @r{    v x@:    I k T   @:             @:        @:ltpt@:(x,v)}
- 
-@c 
+
+@c
 @r{       @:      m a   @:             @: 12,13  @:calc-algebraic-mode@:}
 @r{       @:      m d   @:             @:        @:calc-degrees-mode@:}
 @r{       @:      m f   @:             @:    12  @:calc-frac-mode@:}
@@ -34905,8 +34905,8 @@
 @r{       @:      m v   @:             @: 12,13  @:calc-matrix-mode@:}
 @r{       @:      m w   @:             @:    13  @:calc-working@:}
 @r{       @:      m x   @:             @:        @:calc-always-load-extensions@:}
- 
-@c 
+
+@c
 @r{       @:      m A   @:             @:    12  @:calc-alg-simplify-mode@:}
 @r{       @:      m B   @:             @:    12  @:calc-bin-simplify-mode@:}
 @r{       @:      m C   @:             @:    12  @:calc-auto-recompute@:}
@@ -34918,8 +34918,8 @@
 @r{       @:      m R   @:             @: 12,13  @:calc-mode-record-mode@:}
 @r{       @:      m S   @:             @:    12  @:calc-shift-prefix@:}
 @r{       @:      m U   @:             @:    12  @:calc-units-simplify-mode@:}
- 
-@c 
+
+@c
 @r{       @:      s c   @:var1, var2   @:    29  @:calc-copy-variable@:}
 @r{       @:      s d   @:var, decl    @:        @:calc-declare-variable@:}
 @r{       @:      s e   @:var, editing @: 29,30  @:calc-edit-variable@:}
@@ -34936,8 +34936,8 @@
 @r{      a@:      t 0-9 @:             @:        @:calc-store-into-quick@:}
 @r{       @:      s u   @:var          @:    29  @:calc-unstore@:}
 @r{      a@:      s x   @:var          @:    29  @:calc-store-exchange@:}
- 
-@c 
+
+@c
 @r{       @:      s A   @:editing      @:    30  @:calc-edit-AlgSimpRules@:}
 @r{       @:      s D   @:editing      @:    30  @:calc-edit-Decls@:}
 @r{       @:      s E   @:editing      @:    30  @:calc-edit-EvalRules@:}
@@ -34951,8 +34951,8 @@
 @r{       @:      s T   @:editing      @:    30  @:calc-edit-TimeZone@:}
 @r{       @:      s U   @:editing      @:    30  @:calc-edit-Units@:}
 @r{       @:      s X   @:editing      @:    30  @:calc-edit-ExtSimpRules@:}
- 
-@c 
+
+@c
 @r{      a@:      s +   @:var          @: 29,47  @:calc-store-plus@:  (v+a)}
 @r{      a@:      s -   @:var          @: 29,47  @:calc-store-minus@:  (v-a)}
 @r{      a@:      s *   @:var          @: 29,47  @:calc-store-times@:  (v*a)}
@@ -34964,15 +34964,15 @@
 @r{       @:      s ]   @:var          @: 29,47  @:calc-store-incr@:  (v-(-1))}
 @r{    a b@:      s :   @:             @:     2  @:assign@:(a,b)  a @t{:=} b}
 @r{      a@:      s =   @:             @:     1  @:evalto@:(a,b)  a @t{=>}}
- 
-@c 
+
+@c
 @r{       @:      t [   @:             @:     4  @:calc-trail-first@:}
 @r{       @:      t ]   @:             @:     4  @:calc-trail-last@:}
 @r{       @:      t <   @:             @:     4  @:calc-trail-scroll-left@:}
 @r{       @:      t >   @:             @:     4  @:calc-trail-scroll-right@:}
 @r{       @:      t .   @:             @:    12  @:calc-full-trail-vectors@:}
- 
-@c 
+
+@c
 @r{       @:      t b   @:             @:     4  @:calc-trail-backward@:}
 @r{       @:      t d   @:             @: 12,50  @:calc-trail-display@:}
 @r{       @:      t f   @:             @:     4  @:calc-trail-forward@:}
@@ -34986,8 +34986,8 @@
 @r{       @:      t r   @:string       @:        @:calc-trail-isearch-backward@:}
 @r{       @:      t s   @:string       @:        @:calc-trail-isearch-forward@:}
 @r{       @:      t y   @:             @:     4  @:calc-trail-yank@:}
- 
-@c 
+
+@c
 @r{      d@:      t C   @:oz, nz       @:        @:tzconv@:(d,oz,nz)}
 @r{d oz nz@:      t C   @:$            @:        @:tzconv@:(d,oz,nz)}
 @r{      d@:      t D   @:             @:    15  @:date@:(d)}
@@ -35007,12 +35007,12 @@
 @r{      d@:      t U   @:             @:    16  @:unixtime@:(d,z)}
 @r{      d@:      t W   @:             @:    17  @:newweek@:(d,w)}
 @r{      d@:      t Y   @:             @:    17  @:newyear@:(d,n)}
- 
-@c 
+
+@c
 @r{    a b@:      t +   @:             @:     2  @:badd@:(a,b)}
 @r{    a b@:      t -   @:             @:     2  @:bsub@:(a,b)}
- 
-@c 
+
+@c
 @r{       @:      u a   @:             @:    12  @:calc-autorange-units@:}
 @r{      a@:      u b   @:             @:        @:calc-base-units@:}
 @r{      a@:      u c   @:units        @:    18  @:calc-convert-units@:}
@@ -35027,8 +35027,8 @@
 @r{       @:      u v   @:             @:        @:calc-enter-units-table@:}
 @r{      a@:      u x   @:             @:        @:calc-extract-units@:}
 @r{      a@:      u 0-9 @:             @:        @:calc-quick-units@:}
- 
-@c 
+
+@c
 @r{  v1 v2@:      u C   @:             @:    20  @:vcov@:(v1,v2)}
 @r{  v1 v2@:    I u C   @:             @:    20  @:vpcov@:(v1,v2)}
 @r{  v1 v2@:    H u C   @:             @:    20  @:vcorr@:(v1,v2)}
@@ -35045,13 +35045,13 @@
 @r{      v@:  I H u S   @:             @:    19  @:vpvar@:(v)}
 @r{       @:      u V   @:             @:        @:calc-view-units-table@:}
 @r{      v@:      u X   @:             @:    19  @:vmax@:(v)}
- 
-@c 
+
+@c
 @r{      v@:      u +   @:             @:    19  @:vsum@:(v)}
 @r{      v@:      u *   @:             @:    19  @:vprod@:(v)}
 @r{      v@:      u #   @:             @:    19  @:vcount@:(v)}
- 
-@c 
+
+@c
 @r{       @:      V (   @:             @:    50  @:calc-vector-parens@:}
 @r{       @:      V @{   @:             @:    50  @:calc-vector-braces@:}
 @r{       @:      V [   @:             @:    50  @:calc-vector-brackets@:}
@@ -35062,19 +35062,19 @@
 @r{       @:      V >   @:             @:    50  @:calc-matrix-right-justify@:}
 @r{       @:      V /   @:             @: 12,50  @:calc-break-vectors@:}
 @r{       @:      V .   @:             @: 12,50  @:calc-full-vectors@:}
- 
-@c 
+
+@c
 @r{    s t@:      V ^   @:             @:     2  @:vint@:(s,t)}
 @r{    s t@:      V -   @:             @:     2  @:vdiff@:(s,t)}
 @r{      s@:      V ~   @:             @:     1  @:vcompl@:(s)}
 @r{      s@:      V #   @:             @:     1  @:vcard@:(s)}
 @r{      s@:      V :   @:             @:     1  @:vspan@:(s)}
 @r{      s@:      V +   @:             @:     1  @:rdup@:(s)}
- 
-@c 
+
+@c
 @r{      m@:      V &   @:             @:     1  @:inv@:(m)  1/m}
- 
-@c 
+
+@c
 @r{      v@:      v a   @:n            @:        @:arrange@:(v,n)}
 @r{      a@:      v b   @:n            @:        @:cvec@:(a,n)}
 @r{      v@:      v c   @:n >0         @: 21,31  @:mcol@:(v,n)}
@@ -35107,8 +35107,8 @@
 @r{      v@:      v v   @:             @:     1  @:rev@:(v)}
 @r{       @:      v x   @:n            @:    31  @:index@:(n)}
 @r{  n s i@:  C-u v x   @:             @:        @:index@:(n,s,i)}
- 
-@c 
+
+@c
 @r{      v@:      V A   @:op           @:    22  @:apply@:(op,v)}
 @r{  v1 v2@:      V C   @:             @:     2  @:cross@:(v1,v2)}
 @r{      m@:      V D   @:             @:     1  @:det@:(m)}
@@ -35137,20 +35137,20 @@
 @r{      a@:  I H V U   @:op           @:    22  @:afixp@:(op,a)}
 @r{    s t@:      V V   @:             @:     2  @:vunion@:(s,t)}
 @r{    s t@:      V X   @:             @:     2  @:vxor@:(s,t)}
- 
-@c 
+
+@c
 @r{       @:      Y     @:             @:        @:@:user commands}
- 
-@c 
+
+@c
 @r{       @:      z     @:             @:        @:@:user commands}
- 
-@c 
+
+@c
 @r{      c@:      Z [   @:             @:    45  @:calc-kbd-if@:}
 @r{      c@:      Z |   @:             @:    45  @:calc-kbd-else-if@:}
 @r{       @:      Z :   @:             @:        @:calc-kbd-else@:}
 @r{       @:      Z ]   @:             @:        @:calc-kbd-end-if@:}
- 
-@c 
+
+@c
 @r{       @:      Z @{   @:             @:     4  @:calc-kbd-loop@:}
 @r{      c@:      Z /   @:             @:    45  @:calc-kbd-break@:}
 @r{       @:      Z @}   @:             @:        @:calc-kbd-end-loop@:}
@@ -35158,17 +35158,17 @@
 @r{       @:      Z >   @:             @:        @:calc-kbd-end-repeat@:}
 @r{    n m@:      Z (   @:             @:        @:calc-kbd-for@:}
 @r{      s@:      Z )   @:             @:        @:calc-kbd-end-for@:}
- 
-@c 
+
+@c
 @r{       @:      Z C-g @:             @:        @:@:cancel if/loop command}
- 
-@c 
+
+@c
 @r{       @:      Z `   @:             @:        @:calc-kbd-push@:}
 @r{       @:      Z '   @:             @:        @:calc-kbd-pop@:}
 @r{      a@:      Z =   @:message      @:    28  @:calc-kbd-report@:}
 @r{       @:      Z #   @:prompt       @:        @:calc-kbd-query@:}
- 
-@c 
+
+@c
 @r{   comp@:      Z C   @:func, args   @:    50  @:calc-user-define-composition@:}
 @r{       @:      Z D   @:key, command @:        @:calc-user-define@:}
 @r{       @:      Z E   @:key, editing @:    30  @:calc-user-define-edit@:}
--- a/man/calendar.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/calendar.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1350,7 +1350,7 @@
 @example
 Monday
   9:30am Coffee break
- 12:00pm Lunch        
+ 12:00pm Lunch
 @end example
 
 @noindent
--- a/man/cc-mode.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/cc-mode.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -18,7 +18,7 @@
 
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-@comment 
+@comment
 @comment Texinfo manual for CC Mode
 @comment Generated from the original README file by Krishna Padmasola
 @comment <krishna@earth-gw.njit.edu>
@@ -28,7 +28,7 @@
 @comment Martin Stjernholm
 @comment
 @comment Maintained by Martin Stjernholm <bug-cc-mode@gnu.org>
-@comment 
+@comment
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 @copying
@@ -398,7 +398,7 @@
 which is the brace just after the function header.
 
 Here's another example:
-@example 
+@example
 @group
 
   1: int add( int val, int incr, int doit )
@@ -889,7 +889,7 @@
 @example
 @group
 
-void spam( int i ) 
+void spam( int i )
 @{
         // this is a comment-only line...
     if( i == 7 )                             // but this is not
@@ -1480,9 +1480,9 @@
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 The following list of commands re-indent C constructs.  Note that when
-you change your coding style, either interactively or through some other 
+you change your coding style, either interactively or through some other
 means, your file does @emph{not} automatically get re-indented.  You
-will need to execute one of the following commands to see the effects of 
+will need to execute one of the following commands to see the effects of
 your changes.
 
 @cindex GNU indent program
@@ -1495,7 +1495,7 @@
 
 Re-indenting large sections of code can take a long time.  When
 @ccmode{} reindents a region of code, it is essentially equivalent to
-hitting @kbd{TAB} on every line of the region.  Especially vulnerable is 
+hitting @kbd{TAB} on every line of the region.  Especially vulnerable is
 code generator output@footnote{In particular, I have had people
 complain about the speed with which @code{lex(1)} output is re-indented.
 Lex, yacc, and other code generators usually output some pretty
@@ -1589,7 +1589,7 @@
 @vindex c-progress-interval
 @vindex progress-interval (c-)
 @item c-progress-interval
-When indenting large regions of code, this variable controls how often a 
+When indenting large regions of code, this variable controls how often a
 progress message is displayed.  Set this variable to @code{nil} to
 inhibit the progress messages, or set it to an integer which is the
 interval in seconds that progress messages are displayed.
@@ -2355,22 +2355,22 @@
 
 @item
 When @code{c-default-style} is an association list, the current major
-mode is looked up to find a style name string.  In this case, this style 
-is always used exactly as specified and an error will occur if the named 
+mode is looked up to find a style name string.  In this case, this style
+is always used exactly as specified and an error will occur if the named
 style does not exist.
 
 @item
 If @code{c-default-style} is an association list, but the current major
-mode isn't found, then the special symbol @samp{other} is looked up.  If 
+mode isn't found, then the special symbol @samp{other} is looked up.  If
 this value is found, the associated style is used.
 
 @item
 If @samp{other} is not found, then the @samp{gnu} style is used.
 
 @item
-In all cases, the style described in @code{c-default-style} is installed 
+In all cases, the style described in @code{c-default-style} is installed
 @emph{before} the language hooks are run, so you can always override
-this setting by including an explicit call to @code{c-set-style} in your 
+this setting by including an explicit call to @code{c-set-style} in your
 language mode hook, or in @code{c-mode-common-hook}.
 
 @end enumerate
@@ -2533,7 +2533,7 @@
 like @ccmode{} to be a little more intelligent so that it aligns
 all the @samp{<<} symbols in lines 3 through 6.  To do this, we have
 to write a custom indentation function which finds the column of first
-stream operator on the first line of the statement.  Here is sample 
+stream operator on the first line of the statement.  Here is sample
 lisp code implementing this:
 @example
 @group
@@ -2823,7 +2823,7 @@
 code, regardless of whether @kbd{TAB} or @kbd{M-;} were used.  This
 behavior is controlled by the variable
 @code{c-indent-comments-syntactically-p}.  When @code{nil} (the
-default), @kbd{M-;} indents comment-only lines to @code{comment-column}, 
+default), @kbd{M-;} indents comment-only lines to @code{comment-column},
 otherwise, they are indented just as they would be if @kbd{TAB} were
 typed.
 
@@ -3374,7 +3374,7 @@
 @example
 @group
 
-   1: extern "C" 
+   1: extern "C"
    2: @{
    3:     int thing_one( int );
    4:     int thing_two( double );
@@ -3412,7 +3412,7 @@
 @noindent
 line 2 is given the @code{namespace-open} syntax, while line 4 is given
 the @code{namespace-close} syntax.  The analysis for line 3 yields:
-@code{((innamespace) (topmost-intro . 17))}, where @code{innamespace} is 
+@code{((innamespace) (topmost-intro . 17))}, where @code{innamespace} is
 a modifier similar in purpose to @code{inextern-lang} and @code{inclass}.
 
 A number of syntactic symbols are associated with parenthesis lists,
@@ -3423,19 +3423,19 @@
 
    1: void a_function( int line1,
    2:                  int line2 );
-   3: 
+   3:
    4: void a_longer_function(
    5:     int line1,
    6:     int line2
    7:     );
-   8: 
+   8:
    9: void call_them( int line1, int line2 )
   10: @{
   11:     a_function(
   12:         line1,
   13:         line2
   14:         );
-  15: 
+  15:
   16:     a_longer_function( line1,
   17:                        line2 );
   18: @}
@@ -3475,10 +3475,10 @@
    3: @{
    4:     /* this line starts a multi-line
    5:      * comment.  This line should get `c' syntax */
-   6: 
+   6:
    7:     char* a_multiline_string = "This line starts a multi-line \
    8: string.  This line should get `string' syntax.";
-   9: 
+   9:
   10:   note:
   11:     @{
   12: #ifdef LOCK
@@ -3567,7 +3567,7 @@
 @end example
 @noindent
 line 1 is given the syntactic symbol @code{cpp-macro}.  This first line
-of a macro is always given this symbol.  The second and subsequent lines 
+of a macro is always given this symbol.  The second and subsequent lines
 (e.g. lines 2 through 5) are given the @code{cpp-macro-cont} syntactic
 symbol, with a relative buffer position pointing to the @code{#} which
 starts the macro definition.
@@ -3778,7 +3778,7 @@
 @group
 
 main (int,
-      char **           
+      char **
      )                   // c-lineup-close-paren
 
 @end group
@@ -3857,7 +3857,7 @@
 @group
 
 class Foo
-    extends           
+    extends
         Bar              // c-lineup-java-inher
 
     <--> c-basic-offset
@@ -3921,8 +3921,8 @@
 
 if (n > 0)
     @{m+=n; n=0;@}         // c-indent-one-line-block
-                           
-<--> c-basic-offset        
+
+<--> c-basic-offset
 
 @end group
 @end example
@@ -3954,7 +3954,7 @@
 @group
 
 int *foo[] = @{
-    NULL,                 
+    NULL,
     @{17@},                // c-indent-multi-line-block
 
 @end group
@@ -4440,7 +4440,7 @@
 XEmacs since 19.16.
 
 Due to release schedule skew, it is likely that all of these Emacsen
-have old versions of @ccmode{} and so should be upgraded.  Access to the 
+have old versions of @ccmode{} and so should be upgraded.  Access to the
 @ccmode{} source code, as well as more detailed information on Emacsen
 compatibility, etc. are all available via the Web at:
 
--- a/man/cl.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/cl.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1031,41 +1031,41 @@
 The following Emacs-specific functions are also @code{setf}-able.
 
 @smallexample
-buffer-file-name                  marker-position          
-buffer-modified-p                 match-data               
-buffer-name                       mouse-position           
-buffer-string                     overlay-end              
-buffer-substring                  overlay-get              
-current-buffer                    overlay-start            
-current-case-table                point                    
-current-column                    point-marker             
-current-global-map                point-max                
-current-input-mode                point-min                
-current-local-map                 process-buffer           
-current-window-configuration      process-filter           
-default-file-modes                process-sentinel         
-default-value                     read-mouse-position      
-documentation-property            screen-height            
-extent-data                       screen-menubar           
-extent-end-position               screen-width             
-extent-start-position             selected-window          
-face-background                   selected-screen          
-face-background-pixmap            selected-frame           
-face-font                         standard-case-table      
-face-foreground                   syntax-table             
-face-underline-p                  window-buffer            
-file-modes                        window-dedicated-p       
-frame-height                      window-display-table     
-frame-parameters                  window-height            
-frame-visible-p                   window-hscroll           
-frame-width                       window-point             
-get-register                      window-start             
-getenv                            window-width             
-global-key-binding                x-get-cut-buffer         
-keymap-parent                     x-get-cutbuffer          
+buffer-file-name                  marker-position
+buffer-modified-p                 match-data
+buffer-name                       mouse-position
+buffer-string                     overlay-end
+buffer-substring                  overlay-get
+current-buffer                    overlay-start
+current-case-table                point
+current-column                    point-marker
+current-global-map                point-max
+current-input-mode                point-min
+current-local-map                 process-buffer
+current-window-configuration      process-filter
+default-file-modes                process-sentinel
+default-value                     read-mouse-position
+documentation-property            screen-height
+extent-data                       screen-menubar
+extent-end-position               screen-width
+extent-start-position             selected-window
+face-background                   selected-screen
+face-background-pixmap            selected-frame
+face-font                         standard-case-table
+face-foreground                   syntax-table
+face-underline-p                  window-buffer
+file-modes                        window-dedicated-p
+frame-height                      window-display-table
+frame-parameters                  window-height
+frame-visible-p                   window-hscroll
+frame-width                       window-point
+get-register                      window-start
+getenv                            window-width
+global-key-binding                x-get-cut-buffer
+keymap-parent                     x-get-cutbuffer
 local-key-binding                 x-get-secondary-selection
-mark                              x-get-selection          
-mark-marker                       
+mark                              x-get-selection
+mark-marker
 @end smallexample
 
 Most of these have directly corresponding ``set'' functions, like
@@ -2001,7 +2001,7 @@
 Because they are implemented in terms of Emacs Lisp @code{catch}
 and @code{throw}, blocks have the same overhead as actual
 @code{catch} constructs (roughly two function calls).  However,
-the optimizing byte compiler will optimize away the @code{catch} 
+the optimizing byte compiler will optimize away the @code{catch}
 if the block does
 not in fact contain any @code{return} or @code{return-from} calls
 that jump to it.  This means that @code{do} loops and @code{defun*}
--- a/man/cmdargs.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/cmdargs.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -432,7 +432,7 @@
 of @env{HOME} is @file{C:/}, the root directory of drive @file{C:}.
 @item HOSTNAME
 The name of the machine that Emacs is running on.
-@item INCPATH 
+@item INCPATH
 A colon-separated list of directories.  Used by the @code{complete} package
 to search for files.
 @item INFOPATH
@@ -629,7 +629,7 @@
 override machine wide settings.
 
 @node Display X
-@appendixsec Specifying the Display Name 
+@appendixsec Specifying the Display Name
 @cindex display name (X Window System)
 @cindex @env{DISPLAY} environment variable
 
@@ -913,7 +913,7 @@
 @cindex specifying fullscreen for Emacs frame
 
   Here is a list of the command-line options for specifying size and
-position of the initial Emacs frame: 
+position of the initial Emacs frame:
 
 @table @samp
 @item -g @var{width}x@var{height}@r{[@{}+-@r{@}}@var{xoffset}@r{@{}+-@r{@}}@var{yoffset}@r{]]}
--- a/man/commands.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/commands.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -84,7 +84,7 @@
 you press it and release it, then you enter the next character.
 @key{ESC} is allowed on terminals with @key{META} keys, too, in case
 you have formed a habit of using it.
-  
+
   The X Window System provides several other modifier keys that can be
 applied to any input character.  These are called @key{SUPER},
 @key{HYPER} and @key{ALT}.  We write @samp{s-}, @samp{H-} and @samp{A-}
@@ -183,7 +183,7 @@
 work---for historical reasons, they have other meanings for @kbd{C-h}
 which are not easy to change.  But @key{F1} should work for all prefix
 keys.
-  
+
 @node Commands, Text Characters, Keys, Top
 @section Keys and Commands
 
--- a/man/custom.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/custom.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -27,17 +27,17 @@
 			  you can control their functioning.
 * Keyboard Macros::	A keyboard macro records a sequence of
 			  keystrokes to be replayed with a single
-			  command. 
+			  command.
 * Key Bindings::	The keymaps say what command each key runs.
 			  By changing them, you can "redefine keys".
 * Keyboard Translations::
                         If your keyboard passes an undesired code
 			   for a key, you can tell Emacs to
-			   substitute another code. 
+			   substitute another code.
 * Syntax::		The syntax table controls how words and
 			   expressions are parsed.
 * Init File::		How to write common customizations in the
-			  @file{.emacs} file. 
+			  @file{.emacs} file.
 @end menu
 
 @node Minor Modes
@@ -328,10 +328,10 @@
    [State]: this option is unchanged from its standard setting.
 How to ask for confirmation when leaving Emacs. [More]
 
-Editing group: [Go to Group] 
+Editing group: [Go to Group]
 Basic text editing facilities.
 
-External group: [Go to Group] 
+External group: [Go to Group]
 Interfacing to external utilities.
 
 @var{more second-level groups}
@@ -693,7 +693,7 @@
 @item M-x customize-changed-options @key{RET} @var{version} @key{RET}
 Set up a customization buffer with all the options, faces and groups
 whose meaning has changed since Emacs version @var{version}.
-@item M-x customize-saved 
+@item M-x customize-saved
 Set up a customization buffer containing all options and faces that you
 have saved with customization buffers.
 @item M-x customize-customized
@@ -1575,7 +1575,7 @@
 you are binding the key you want:
 
 @example
-Set key C-z to command: 
+Set key C-z to command:
 @end example
 
   You can redefine function keys and mouse events in the same way; just
--- a/man/dired-x.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/dired-x.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 \input texinfo  @comment -*-texinfo-*-
 
 @c dired-x.texi --- Sebastian Kremer's Extra DIRED hacked up for GNU Emacs19
-@c 
+@c
 @c Author: Sebastian Kremer <sk@thp.uni-koeln.de>
 @c	Lawrence R. Dodd <dodd@roebling.poly.edu>
 @c [Dodd's address no longer valid.]
@@ -108,10 +108,10 @@
 Based on @file{dired.texi} by Sebastian Kremer <sk@@thp.uni-koeln.de>
 
 @c dired-x.el REVISION NUMBER
-@item 
+@item
 For @file{dired-x.el} revision 2
 
-@c @item 
+@c @item
 @c Revision of this manual: 2.53 (2001/02/25 14:05:46)
 
 @c @item
@@ -137,10 +137,10 @@
 * Miscellaneous Commands::
 * Bugs::
 
-* Concept Index::		
-* Command Index::	
-* Key Index::		
-* Variable Index::	
+* Concept Index::
+* Command Index::
+* Key Index::
+* Variable Index::
 
 @end menu
 
@@ -177,7 +177,7 @@
 
 @enumerate
 @item
-Omitting uninteresting files from Dired listing. 
+Omitting uninteresting files from Dired listing.
 @itemize @bullet
 @xref{Omitting Files in Dired}.
 @end itemize
@@ -298,7 +298,7 @@
 
 @example
 ;;; Autoload `dired-jump' and `dired-jump-other-window'.
-;;; We autoload from FILE dired.el.  This will then load dired-x.el 
+;;; We autoload from FILE dired.el.  This will then load dired-x.el
 ;;; and hence define `dired-jump' and `dired-jump-other-window'.
 (define-key global-map "\C-x\C-j" 'dired-jump)
 (define-key global-map "\C-x4\C-j" 'dired-jump-other-window)
@@ -337,7 +337,7 @@
 @code{dired-x-bind-find-file} in the @code{dired-load-hook}:
 
 @example
-(add-hook 'dired-load-hook 
+(add-hook 'dired-load-hook
           (lambda ()
             (load "dired-x")
             ;; Bind dired-x-find-file.
@@ -351,7 +351,7 @@
 loaded
 
 @example
-(add-hook 'dired-load-hook 
+(add-hook 'dired-load-hook
           (lambda ()
             ;; Bind dired-x-find-file.
             (setq dired-x-hands-off-my-keys nil)
@@ -596,7 +596,7 @@
 When Dired visits a directory, it looks for a file whose name is the value of
 variable @code{dired-local-variables-file} (default: @file{.dired}).  If such
 a file is found, Dired will temporarily insert it into the Dired buffer and
-run @code{hack-local-variables}.  
+run @code{hack-local-variables}.
 
 @noindent
 For example, if the user puts
@@ -614,7 +614,7 @@
 
 @enumerate
 @item
-sorted by date 
+sorted by date
 @item
 omitted automatically
 @end enumerate
@@ -623,7 +623,7 @@
 You can set @code{dired-local-variables-file} to @code{nil} to suppress this.
 The value of @code{dired-enable-local-variables} controls if and how these
 local variables are read.  This variable exists so that if may override the
-default value of @code{enable-local-variables}.  
+default value of @code{enable-local-variables}.
 
 @noindent
 Please see the GNU Emacs Manual to learn more about local variables.
@@ -1273,7 +1273,7 @@
 enhancement, or want to make a smart remark, then type
 
 @example
-@kbd{M-x dired-x-submit-report} 
+@kbd{M-x dired-x-submit-report}
 @end example
 
 @noindent
@@ -1283,7 +1283,7 @@
 recreate your exact setup, making it easier to verify your bug or social
 maladjustment.
 
-Lawrence R. Dodd 
+Lawrence R. Dodd
 @c <dodd@@roebling.poly.edu>
 
 @node     Concept Index, Command Index, Bugs, Top
--- a/man/display.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/display.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -529,7 +529,7 @@
 
 @cindex aggressive scrolling
 @vindex scroll-up-aggressively
-@vindex scroll-down-aggressively 
+@vindex scroll-down-aggressively
   When the window does scroll by a longer distance, you can control
 how aggressively it scrolls, by setting the variables
 @code{scroll-up-aggressively} and @code{scroll-down-aggressively}.
--- a/man/ebrowse.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/ebrowse.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -33,7 +33,7 @@
 @end copying
 
 @dircategory Emacs
-@direntry 
+@direntry
 * Ebrowse: (ebrowse).   A C++ class browser for Emacs.
 @end direntry
 
@@ -94,7 +94,7 @@
 
 The design of Ebrowse reflects these two needs.
 
-How does it work? 
+How does it work?
 
 @cindex parser for C++ sources
 A fast parser written in C is used to process C++ source files.
@@ -288,7 +288,7 @@
 (add-to-list 'auto-mode-alist '(@var{NAME} . ebrowse-tree-mode))
 @end lisp
 
-@noindent 
+@noindent
 where @var{NAME} is the Lisp data base name you are using.
 
 @findex --append
@@ -621,7 +621,7 @@
 
 @item s
 Display file names for the current line, or for the number of lines
-given by a prefix argument. 
+given by a prefix argument.
 @end table
 
 Here is an example of a tree buffer with file names displayed.
@@ -664,7 +664,7 @@
 @table @kbd
 @item -
 This command collapses the branch of the tree starting at the class the
-cursor is on. 
+cursor is on.
 
 @item +
 This command expands the branch of the tree starting at the class the
@@ -760,7 +760,7 @@
 @item M t
 Toggle the mark of the line point is in or for as many lines as given by
 a prefix command.  This command can also be found in the class' context
-menu. 
+menu.
 
 @cindex unmark all
 @item M a
@@ -861,7 +861,7 @@
 @item L f
 Switch to the list of member functions.
 
-@cindex static 
+@cindex static
 @item L F
 Switch to the list of static member functions.
 
@@ -880,7 +880,7 @@
 
 Both commands cycle through the member list.
 
-Most of the commands are also available from the member buffer's 
+Most of the commands are also available from the member buffer's
 context menu.
 
 
@@ -996,7 +996,7 @@
 
 @table @kbd
 @cindex @code{public} members
-@item F a u 
+@item F a u
 This command toggles the display of @code{public} members.  The
 @samp{a} stands for `access'.
 
@@ -1217,7 +1217,7 @@
 This command forces a redisplay of the member buffer.  If the width
 of the window displaying the member buffer is changed this command
 redraws the member list with the appropriate column widths and number of
-columns. 
+columns.
 @end table
 
 
@@ -1348,7 +1348,7 @@
 the next position stored in the position stack.
 
 @item C-c b p
-Displays an electric buffer showing all positions saved in the stack. 
+Displays an electric buffer showing all positions saved in the stack.
 You can select a position by pressing @kbd{SPC} in a line.  You can
 view a position with @kbd{v}.
 @end table
@@ -1388,7 +1388,7 @@
 the operation with this command.
 
 @item C-c b n
-This restarts the last tags operation with the next file in the list. 
+This restarts the last tags operation with the next file in the list.
 @end table
 
 
@@ -1410,7 +1410,7 @@
 
 @node Apropos, Symbol Completion, Members in Files, Tags-like Functions
 @comment  node-name,       next,       previous,      up
-@section Member Apropos 
+@section Member Apropos
 @cindex apropos on class members
 @cindex members, matching regexp
 
--- a/man/emacs-mime.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/emacs-mime.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -900,7 +900,7 @@
 
 @defopt mm-inline-media-tests
 This is an alist where the key is a @sc{mime} type, the second element
-is a function to display the part @dfn{inline} (i.e., inside Emacs), and 
+is a function to display the part @dfn{inline} (i.e., inside Emacs), and
 the third element is a form to be @code{eval}ed to say whether the part
 can be displayed inline.
 
@@ -923,7 +923,7 @@
 
 @defopt mm-attachment-override-types
 Some @sc{mime} agents create parts that have a content-disposition of
-@samp{attachment}.  This variable allows overriding that disposition and 
+@samp{attachment}.  This variable allows overriding that disposition and
 displaying the part inline.  (Note that the disposition is only
 overridden if we are able to, and want to, display the part inline.)
 @end defopt
@@ -981,7 +981,7 @@
 @end lisp
 
 We see that the function takes a @sc{mime} handle as its parameter.  It
-then goes to a temporary buffer, inserts the text of the part, does some 
+then goes to a temporary buffer, inserts the text of the part, does some
 work on the text, stores the result, goes back to the buffer it was
 called from and inserts the result.
 
--- a/man/emacs.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/emacs.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -37,7 +37,7 @@
 
 @c in general, keep the following line commented out, unless doing a
 @c copy of this manual that will be published.  the manual should go
-@c onto the distribution in the full, 8.5 x 11" size.  
+@c onto the distribution in the full, 8.5 x 11" size.
 
 @c @smallbook
 
@@ -144,7 +144,7 @@
 * Keys::	        Key sequences: what you type to request one
                           editing action.
 * Commands::	        Named functions run by key sequences to do editing.
-* Text Characters::     Character set for text (the contents of buffers 
+* Text Characters::     Character set for text (the contents of buffers
 			  and strings).
 * Entering Emacs::      Starting Emacs from the shell.
 * Exiting::	        Stopping or killing Emacs.
@@ -282,7 +282,7 @@
 			  blank areas.
 * Killing by Lines::	How to kill entire lines of text at one time.
 * Other Kill Commands:: Commands to kill large regions of text and
-			  syntactic units such as words and sentences. 
+			  syntactic units such as words and sentences.
 
 Yanking
 
@@ -376,7 +376,7 @@
 * Kill Buffer::	        Killing buffers you no longer need.
 * Several Buffers::     How to go through the list of all buffers
 			  and operate variously on several of them.
-* Indirect Buffers::    An indirect buffer shares the text of another buffer. 
+* Indirect Buffers::    An indirect buffer shares the text of another buffer.
 
 Multiple Windows
 
@@ -547,14 +547,14 @@
 * Compilation Mode::    The mode for visiting compiler errors.
 * Compilation Shell::   Customizing your shell properly
                           for use in the compilation buffer.
-* Debuggers::		Running symbolic debuggers for non-Lisp programs. 
-* Executing Lisp::	Various modes for editing Lisp programs, 
+* Debuggers::		Running symbolic debuggers for non-Lisp programs.
+* Executing Lisp::	Various modes for editing Lisp programs,
 			  with different facilities for running
-			  the Lisp programs. 
+			  the Lisp programs.
 * Lisp Libraries::      Creating Lisp programs to run in Emacs.
 * Lisp Interaction::    Executing Lisp in an Emacs buffer.
 * Lisp Eval::		Executing a single Lisp expression in Emacs.
-* External Lisp::	Communicating through Emacs with a separate Lisp. 
+* External Lisp::	Communicating through Emacs with a separate Lisp.
 
 Running Debuggers Under Emacs
 
@@ -575,10 +575,10 @@
 
 Tags Tables
 
-* Tag Syntax::		Tag syntax for various types of code and text files.  
+* Tag Syntax::		Tag syntax for various types of code and text files.
 * Create Tags Table::	Creating a tags table with @code{etags}.
 * Select Tags Table::	How to visit a tags table.
-* Find Tag::		Commands to find the definition of a specific tag. 
+* Find Tag::		Commands to find the definition of a specific tag.
 * Tags Search::		Using a tags table for searching and replacing.
 * List Tags::		Listing and finding tags defined in a file.
 
@@ -722,17 +722,17 @@
 			  to decide what to do; by setting variables,
 			  you can control their functioning.
 * Keyboard Macros::	A keyboard macro records a sequence of
-			  keystrokes to be replayed with a single command. 
+			  keystrokes to be replayed with a single command.
 * Key Bindings::	The keymaps say what command each key runs.
 			  By changing them, you can "redefine keys".
 * Keyboard Translations::
                         If your keyboard passes an undesired code
 			   for a key, you can tell Emacs to
-			   substitute another code. 
+			   substitute another code.
 * Syntax::		The syntax table controls how words and
 			   expressions are parsed.
 * Init File::		How to write common customizations in the
-			  @file{.emacs} file. 
+			  @file{.emacs} file.
 
 Variables
 
@@ -865,7 +865,7 @@
 properly.  It explains how to cope with some common problems
 (@pxref{Lossage}), as well as when and how to report Emacs bugs
 (@pxref{Bugs}).
- 
+
   To find the documentation on a particular command, look in the index.
 Keys (character commands) and command names have separate indexes.  There
 is also a glossary, with a cross reference for each term.
@@ -1359,7 +1359,7 @@
 Gnomovision version 69, Copyright (C) 20@var{yy} @var{name of author}
 Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
 type `show w'.  This is free software, and you are welcome
-to redistribute it under certain conditions; type `show c' 
+to redistribute it under certain conditions; type `show c'
 for details.
 @end smallexample
 
@@ -1377,7 +1377,7 @@
 @group
 Yoyodyne, Inc., hereby disclaims all copyright
 interest in the program `Gnomovision'
-(which makes passes at compilers) written 
+(which makes passes at compilers) written
 by James Hacker.
 
 @var{signature of Ty Coon}, 1 April 1989
--- a/man/entering.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/entering.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -4,7 +4,7 @@
 @node Entering Emacs, Exiting, Text Characters, Top
 @chapter Entering and Exiting Emacs
 @cindex entering Emacs
-@cindex starting Emacs 
+@cindex starting Emacs
 
   The usual way to invoke Emacs is with the shell command @command{emacs}.
 Emacs clears the screen and then displays an initial help message and
--- a/man/eshell.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/eshell.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,5 +1,5 @@
 \input texinfo  @c -*-texinfo-*-
-@c "@(#)$Name:  $:$Id: eshell.texi,v 1.16 2002/10/02 23:24:31 karl Exp $"
+@c "@(#)$Name:  $:$Id: eshell.texi,v 1.17 2002/12/10 13:16:31 pj Exp $"
 @c %**start of header
 @setfilename ../info/eshell
 @settitle Eshell: The Emacs Shell
@@ -82,17 +82,17 @@
 @menu
 * What is Eshell?::             A brief introduction to the Emacs Shell.
 * Installation::                For users of Emacs 20 and XEmacs.
-* Command basics::              The basics of command usage.     
-* Commands::                    
-* Arguments::                   
-* Input/Output::                
-* Process control::             
-* Extension modules::           
-* Extras and Goodies::          
+* Command basics::              The basics of command usage.
+* Commands::
+* Arguments::
+* Input/Output::
+* Process control::
+* Extension modules::
+* Extras and Goodies::
 * Bugs and ideas::              Known problems, and future ideas.
-* Concept Index::               
-* Function and Variable Index::  
-* Key Index::                   
+* Concept Index::
+* Function and Variable Index::
+* Key Index::
 @end menu
 
 @node What is Eshell?
@@ -479,11 +479,11 @@
 @chapter Commands
 
 @menu
-* Invocation::                  
-* Completion::                  
-* Aliases::                     
-* History::                     
-* Scripts::                     
+* Invocation::
+* Completion::
+* Aliases::
+* History::
+* Scripts::
 * Built-ins::
 @end menu
 
@@ -507,7 +507,7 @@
 
 @enumerate
 @item Parse the command string into separate arguments.
-@item 
+@item
 @end enumerate
 
 @node Completion
@@ -572,11 +572,11 @@
 @chapter Arguments
 
 @menu
-* The Parser::                  
-* Variables::                   
-* Substitution::                
-* Globbing::                    
-* Predicates::                  
+* The Parser::
+* Variables::
+* Substitution::
+* Globbing::
+* Predicates::
 @end menu
 
 @node The Parser
@@ -606,13 +606,13 @@
 @chapter Extension modules
 
 @menu
-* Writing a module::            
-* Module testing::              
-* Directory handling::          
-* Key rebinding::               
-* Smart scrolling::             
-* Terminal emulation::          
-* Built-in UNIX commands::      
+* Writing a module::
+* Module testing::
+* Directory handling::
+* Key rebinding::
+* Smart scrolling::
+* Terminal emulation::
+* Built-in UNIX commands::
 @end menu
 
 @node Writing a module
@@ -659,7 +659,7 @@
 find this package useful!
 
 @menu
-* Known problems::              
+* Known problems::
 @end menu
 
 @node Known problems
@@ -1091,7 +1091,7 @@
 @item Write an alias for @command{less} that brings up a @code{view-mode} buffer
 
 Such that the user can press @key{SPC} and @key{DEL}, and then @key{q}
-to return to Eshell.  It would be equivalent to: 
+to return to Eshell.  It would be equivalent to:
 @samp{X > #<buffer Y>; view-buffer #<buffer Y>}.
 
 @item Make @code{eshell-mode} as much a full citizen as @code{shell-mode}
--- a/man/eudc.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/eudc.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -70,7 +70,7 @@
 * Usage::                       The various usage possibilities explained
 * Credits::                     Who's done what
 * Command and Function Index::
-* Variables Index::             
+* Variables Index::
 @end menu
 
 
@@ -83,7 +83,7 @@
 
 EUDC, the @dfn{Emacs Unified Directory Client}, provides a common user
 interface to access directory servers using different directory
-protocols. 
+protocols.
 
 Currently supported back-ends are:
 
@@ -99,7 +99,7 @@
 The main features of the EUDC interface are:
 
 @itemize @bullet
-@item 
+@item
 Queries using a customizable form
 @item
 Inline query expansion (for instance you can expand a name
@@ -216,10 +216,10 @@
 email composition buffers (@pxref{Inline Query Expansion})
 
 @lisp
-(eval-after-load 
+(eval-after-load
  "message"
  '(define-key message-mode-map [(control ?c) (tab)] 'eudc-expand-inline))
-(eval-after-load 
+(eval-after-load
  "sendmail"
  '(define-key mail-mode-map [(control ?c) (tab)] 'eudc-expand-inline))
 @end lisp
@@ -255,7 +255,7 @@
 submenu of the @samp{Tools} submenu.
 
 @menu
-* Querying Servers::            How queries are performed and handled 
+* Querying Servers::            How queries are performed and handled
 * Query Form::                  How to use and customize the query form
 * Display of Query Results::    Controlling how query results are presented
 * Inline Query Expansion::      How to use and customize inline queries
@@ -463,7 +463,7 @@
 
 The fields that are returned for each record
 are controlled by @code{eudc-default-return-attributes} (@pxref{Return
-Attributes}).  
+Attributes}).
 
 The display of each individual field can be performed by an arbitrary
 function which allows specific processing for binary values, such as
@@ -484,12 +484,12 @@
 Locals}).  For instance, it is defined as follows for LDAP:
 
 @lisp
-(eudc-protocol-set 'eudc-attribute-display-method-alist 
+(eudc-protocol-set 'eudc-attribute-display-method-alist
                    '(("jpegphoto" . eudc-display-jpeg-inline)
                      ("labeledurl" . eudc-display-url)
                      ("audio" . eudc-display-sound)
                      ("labeledurl" . eudc-display-url)
-                     ("url" . eudc-display-url)) 
+                     ("url" . eudc-display-url))
                    'ldap)
 @end lisp
 
@@ -547,7 +547,7 @@
 @code{eudc-expanding-overwrites-query} and
 @code{eudc-multiple-match-handling-method}.
 
-If the query fails for a server, other servers may be tried successively 
+If the query fails for a server, other servers may be tried successively
 until one of them finds a match (@pxref{Multi-server Queries}).
 
 @deffn Command eudc-expand-inline replace-p
@@ -564,7 +564,7 @@
 @end deffn
 
 @defvar eudc-inline-query-format
-Format of an inline expansion query.  
+Format of an inline expansion query.
 This is actually a list of @var{format}s.  A @var{format} is a list of
 one or more EUDC attribute names.  A @var{format} applies if it contains
 as many attributes as individual words in the inline query string.  If
@@ -572,7 +572,7 @@
 is found.  If @code{nil} all the words will be mapped onto the default
 server/protocol attribute name (generally @code{name}).
 
-For instance, use the following 
+For instance, use the following
 @lisp
 (setq eudc-inline-query-format '((name)
                                  (firstname)
@@ -582,7 +582,7 @@
 to indicate that single word expansion queries are to be considered as
 surnames and if no match is found then they should be tried as first
 names.  Inline queries consisting of two words are considered as
-consisting of a first name followed by a surname.  If the query consists 
+consisting of a first name followed by a surname.  If the query consists
 of more than two words, then the first one is considered as the first
 name and the remaining words are all considered as surname constituents.
 
@@ -620,7 +620,7 @@
 The first match is considered as being the only one, the others are
 discarded.
 @item select
-A selection buffer pops up where you can choose a particular match.  This 
+A selection buffer pops up where you can choose a particular match.  This
 is the default value of the variable.
 @item all
 The expansion uses all records successively
@@ -637,7 +637,7 @@
 @comment  node-name,  next,  previous,  up
 @section The Server Hotlist
 
-EUDC lets you maintain a list of frequently used servers so that you 
+EUDC lets you maintain a list of frequently used servers so that you
 can easily switch from one to another.  This hotlist appears in the
 @samp{Server} submenu.  You select a server in this list by clicking on
 its name.  You can add the current server to the list with the command
@@ -661,7 +661,7 @@
 
 @defvar eudc-options-file
 The name of a file where EUDC stores its internal variables
-(the hotlist and the current server).  EUDC will try to load 
+(the hotlist and the current server).  EUDC will try to load
 that file upon initialization so, if you choose a file name
 different from the defaults @file{~/.eudc-options}, be sure to set this
 variable to the appropriate value @emph{before} EUDC is itself
@@ -775,25 +775,25 @@
 mapping between BBDB field names onto directory attribute names records.
 This is a protocol-local variable and is initialized upon protocol
 switch (@pxref{Server/Protocol Locals}).  The alist is made of cells of the
-form @code{(@var{bbdb-field} . @var{spec-or-list})}. 
+form @code{(@var{bbdb-field} . @var{spec-or-list})}.
 @var{bbdb-field} is the name of a field
 that must be defined in your BBDB environment (standard field names are
 @code{name}, @code{company}, @code{net}, @code{phone}, @code{address}
-and @code{notes}). 
+and @code{notes}).
 @var{spec-or-list} is either a single mapping specification or a list of
 mapping specifications.  Lists of mapping specifications are valid for
 the @code{phone} and @code{address} BBDB fields only. @var{spec}s are
 actually s-expressions which are evaluated as follows:
 
 @table @asis
-@item a string 
+@item a string
 evaluates to itself
 @item a symbol
 evaluates to the symbol value.  Symbols corresponding to directory
 attribute names present in the record evaluate to the value of the field
 in the record
 @item a form
-is evaluated as a function.  The argument list may contain attribute 
+is evaluated as a function.  The argument list may contain attribute
 names which evaluate to the corresponding values in the record.  The form
 evaluation should return something appropriate for the particular
 @var{bbdb-field} (see @code{bbdb-create-internal}).
@@ -816,7 +816,7 @@
 This means that:
 
 @itemize @bullet
-@item 
+@item
 the @code{name} field of the BBDB record gets its value
 from the @code{name} attribute of the directory record
 @item
@@ -932,7 +932,7 @@
 @end defun
 
 @defun eudc-variable-server-value var [server]
-Return the value of @var{var} local to @var{server}.  
+Return the value of @var{var} local to @var{server}.
 Return @code{unbound} if @var{var} has no value local to @var{server}.
 @var{server} defaults to @code{eudc-server}.
 @end defun
@@ -952,7 +952,7 @@
 @comment  node-name,  next,  previous,  up
 @chapter Credits
 
-EUDC was written by Oscar Figueiredo based on @file{ph.el} by the 
+EUDC was written by Oscar Figueiredo based on @file{ph.el} by the
 same author.
 
 Thanks to Soren Dayton for his suggestions, his enthusiasm and his help
--- a/man/files.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/files.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1083,7 +1083,7 @@
   If you visit two names for the same file, normally Emacs makes
 two different buffers, but it warns you about the situation.
 
-@vindex find-file-existing-other-name 
+@vindex find-file-existing-other-name
 @vindex find-file-suppress-same-file-warnings
   Normally, if you visit a file which Emacs is already visiting under
 a different name, Emacs displays a message in the echo area and uses
@@ -1112,7 +1112,7 @@
   @dfn{Version control systems} are packages that can record multiple
 versions of a source file, usually storing the unchanged parts of the
 file just once.  Version control systems also record history information
-such as the creation time of each version, who created it, and a 
+such as the creation time of each version, who created it, and a
 description of what was changed in that version.
 
   The Emacs version control interface is called VC.  Its commands work
@@ -1239,7 +1239,7 @@
 @node Types of Log File
 @subsubsection Types of Log File
 @cindex types of log file
-@cindex log File, types of 
+@cindex log File, types of
 @cindex version control log
 
 GNU projects under a revision control system generally possess
@@ -1310,8 +1310,8 @@
 * Advanced C-x v v::    Advanced features available with a prefix argument.
 * Log Buffer::          Features available in log entry buffers.
 @end menu
-               
-@node VC with Locking                 
+
+@node VC with Locking
 @subsubsection Basic Version Control with Locking
 
   If locking is used for the file (as with SCCS, and RCS in its default
@@ -1540,7 +1540,7 @@
 * Registering::         Putting a file under version control.
 * VC Status::           Viewing the VC status of files.
 * VC Undo::             Cancelling changes before or after check-in.
-* VC Dired Mode::       Listing files managed by version control. 
+* VC Dired Mode::       Listing files managed by version control.
 * VC Dired Commands::   Commands to use in a VC Dired buffer.
 @end menu
 
@@ -1807,7 +1807,7 @@
 * Switching Branches::    How to get to another existing branch.
 * Creating Branches::     How to start a new branch.
 * Merging::               Transferring changes between branches.
-* Multi-User Branching::  Multiple users working at multiple branches 
+* Multi-User Branching::  Multiple users working at multiple branches
                             in parallel.
 @end menu
 
@@ -2225,7 +2225,7 @@
 
 @menu
 * Change Logs and VC::  Generating a change log file from log entries.
-* Renaming and VC::     A command to rename both the source and master 
+* Renaming and VC::     A command to rename both the source and master
                           file correctly.
 * Version Headers::     Inserting version control headers into working files.
 @end menu
--- a/man/fixit.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/fixit.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -173,7 +173,7 @@
 @item M-x ispell-region
 Check and correct spelling of each word in the region.
 @item M-x ispell-message
-Check and correct spelling of each word in a draft mail message, 
+Check and correct spelling of each word in a draft mail message,
 excluding cited material.
 @item M-x ispell-change-dictionary @key{RET} @var{dict} @key{RET}
 Restart the Ispell process, using @var{dict} as the dictionary.
--- a/man/forms.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/forms.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -82,7 +82,7 @@
 * Forms Example::               An example: editing the password data base.
 * Entering and Exiting Forms Mode::
                                 How to visit a file in Forms mode.
-* Forms Commands::              Special commands to use while in Forms mode. 
+* Forms Commands::              Special commands to use while in Forms mode.
 * Data File Format::            How to format the data file.
 * Control File Format::         How to control forms mode.
 * Format Description::          How to define the forms layout.
@@ -254,7 +254,7 @@
 contents for its fields; you can then edit the fields.  With a numeric
 argument, the new record is created @emph{after} the current one.
 See also @code{forms-modified-record-filter} in @ref{Modifying Forms
-Contents}. 
+Contents}.
 
 @findex forms-delete-record
 @kindex C-c C-k
@@ -531,7 +531,7 @@
 
 @findex forms-insert-after
 @item forms-insert-after
-If this variable is not @code{nil}, new records are created @emph{after} the 
+If this variable is not @code{nil}, new records are created @emph{after} the
 current record. Also, upon visiting a file, the initial position will be
 at the last record instead of the first one.
 
@@ -613,7 +613,7 @@
 @end example
 
 When you construct the value of  @code{forms-format-list}, you should
-usually either quote the whole value, like this, 
+usually either quote the whole value, like this,
 
 @example
 (setq forms-format-list
@@ -654,7 +654,7 @@
 and records of the database.
 
 All normal editing commands are available for editing the contents of the
-displayed record.  You cannot delete or modify the fixed, explanatory 
+displayed record.  You cannot delete or modify the fixed, explanatory
 text that comes from string formatting elements, but you can modify the
 actual field contents.
 
@@ -762,7 +762,7 @@
 
 @item Forms control file error: `forms-number-of-fields' must be a number > 0
 The variable @code{forms-number-of-fields} did not contain a positive
-number. 
+number.
 
 @item Forms control file error: `forms-field-sep' is not a string
 @itemx Forms control file error: `forms-multi-line' must be nil or a one-character string
@@ -835,7 +835,7 @@
 
 @item No write access to @code{"}@var{file}@code{"}
 An attempt was made to enable edit mode on a file that has been write
-protected. 
+protected.
 
 @item Search failed: @var{regexp}
 The @var{regexp} could not be found in the data file. Forward searching
@@ -899,7 +899,7 @@
       (concat "\n" (make-string target fill))
     (make-string (- target (current-column)) fill)))
 ;;
-(defun arch-rj (target field &optional fill) 
+(defun arch-rj (target field &optional fill)
   "Produces a string to skip to column TARGET\
  minus the width of field FIELD.
 Prepends newline if needed.
--- a/man/frames.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/frames.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -273,7 +273,7 @@
   The command @kbd{M-x menu-bar-enable-clipboard} makes the @code{Cut},
 @code{Paste} and @code{Copy} menu items, as well as the keys of the same
 names, all use the clipboard.
- 
+
   You can customize the option @code{x-select-enable-clipboard} to make
 the Emacs yank functions consult the clipboard before the primary
 selection, and to make the kill functions to store in the clipboard as
@@ -394,7 +394,7 @@
 frame rather than just a new window in the selected frame (@pxref{Pop
 Up Window}).  If an existing visible or iconified frame already displays
 the requested material, these commands use the existing frame, after
-raising or deiconifying as necessary. 
+raising or deiconifying as necessary.
 
   The various @kbd{C-x 5} commands differ in how they find or create the
 buffer to select:
--- a/man/glossary.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/glossary.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -895,7 +895,7 @@
 occur.  Point is considered to be between two characters, not at one
 character.  The terminal's cursor (q.v.@:) indicates the location of
 point.  @xref{Basic,Point,Basic Editing}.
-	
+
 @item Prefix Argument
 See `numeric argument.'
 
--- a/man/gnus-faq.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/gnus-faq.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -100,7 +100,7 @@
 The internal easymenu.el interface changed between 19.28 and 19.29 in
 order to make it possible to create byte compiled files that can be
 shared between Gnu Emacs and XEmacs.  The change is upward
-compatible, but not downward compatible. 
+compatible, but not downward compatible.
 This gives the following compatibility table:
 
 @example
@@ -131,10 +131,10 @@
 
 Gnus has a home World Wide Web page at@*
 @file{http://www.gnus.org/}.
-   
+
 Gnus has a write up in the X Applications FAQ at@*
 @file{http://www.ee.ryerson.ca:8080/~elf/xapps/Q-III.html}.
-   
+
 The Gnus manual is also available on the World Wide Web. The canonical
 source is in Norway at@*
 @file{http://www.gnus.org/manual/gnus_toc.html}.
@@ -158,7 +158,7 @@
 United States. And@*
 @file{ftp://marvin.fkphy.uni-duesseldorf.de/pub/gnus/}
 in Germany.
-   
+
 An online version of the Gnus FAQ is available at@*
 @file{http://www.miranova.com/~steve/gnus-faq.html}. Off-line formats
 are also available:@*
@@ -277,7 +277,7 @@
 How can I most efficiently arrange matters so as to keep my nnvirtual:*
 (etc) groups at the top of my group selection buffer, whilst keeping
 everything sorted in alphabetical order.
-   
+
 If you don't subscribe often to new groups then the easiest way is to
 first sort the groups and then manually kill and yank the virtuals
 wherever you want them.
@@ -307,7 +307,7 @@
   ("alt.fan.oj-simpson" -1000 nil s))
  ("subject"
   (concat "\\<\\(make\\|fast\\|big\\)\\s-*"
-          "\\(money\\|cash\\|bucks?\\)\\>" 
+          "\\(money\\|cash\\|bucks?\\)\\>"
    -1000 nil r)
   ("$$$$" -1000 nil s)))
 @end lisp
@@ -336,7 +336,7 @@
   ;; $$$ Make Money $$$
   ("$$" -10 nil s)
   ;; Empty subjects are worthless!
-  ("^ *\\([(<]none[>)]\\|(no subject\\( given\\)?)\\)? *$" 
+  ("^ *\\([(<]none[>)]\\|(no subject\\( given\\)?)\\)? *$"
    -10 nil r)
   ;; Sometimes interesting announces occur!
   ("ANN?OU?NC\\(E\\|ING\\)" +10 nil r)
@@ -571,7 +571,7 @@
   (gnus-auto-select-first nil)))
 @end lisp
 
-and insert 
+and insert
 @lisp
 	(setq gnus-auto-select-first t)
 @end lisp
--- a/man/gnus.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/gnus.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -627,7 +627,7 @@
 
 Getting Mail
 
-* Mail in a Newsreader::         Important introductory notes.  
+* Mail in a Newsreader::         Important introductory notes.
 * Getting Started Reading Mail:: A simple cookbook example.
 * Splitting Mail::               How to create mail groups.
 * Mail Sources::                 How to tell Gnus where to get mail from.
@@ -1188,7 +1188,7 @@
 
 @item gnus-subscribe-topics
 @vindex gnus-subscribe-topics
-Put the groups into the topic that has a matching @code{subscribe} topic 
+Put the groups into the topic that has a matching @code{subscribe} topic
 parameter (@pxref{Topic Parameters}).  For instance, a @code{subscribe}
 topic parameter that looks like
 
@@ -1196,7 +1196,7 @@
 "nnslashdot"
 @end example
 
-will mean that all groups that match that regex will be subscribed under 
+will mean that all groups that match that regex will be subscribed under
 that topic.
 
 If no topics match the groups, the groups will be subscribed in the
@@ -1486,7 +1486,7 @@
 @code{LIST ACTIVE group} command, this isn't very nice to the server.
 
 If you think that starting up Gnus takes too long, try all the three
-different values for this variable and see what works best for you. 
+different values for this variable and see what works best for you.
 
 In any case, if you use @code{some} or @code{nil}, you should definitely
 kill all groups that you aren't interested in to speed things up.
@@ -2698,7 +2698,7 @@
 default charset will be used for decoding articles.
 
 See also @code{gnus-group-ignored-charsets-alist}.
- 
+
 @item posting-style
 You can store additional posting style information for this group only
 here (@pxref{Posting Styles}).  The format is that of an entry in the
@@ -3278,7 +3278,7 @@
 @item T j
 @kindex T j (Topic)
 @findex gnus-topic-jump-to-topic
-Go to a topic (@code{gnus-topic-jump-to-topic}).  
+Go to a topic (@code{gnus-topic-jump-to-topic}).
 
 @item T c
 @kindex T c (Topic)
@@ -3523,10 +3523,10 @@
 
 @table @code
 @item subscribe
-When subscribing new groups by topic (@pxref{Subscription Methods}), the 
-@code{subscribe} topic parameter says what groups go in what topic.  Its 
+When subscribing new groups by topic (@pxref{Subscription Methods}), the
+@code{subscribe} topic parameter says what groups go in what topic.  Its
 value should be a regexp to match the groups that should go in that
-topic. 
+topic.
 
 @end table
 
@@ -3642,7 +3642,7 @@
 
 @item gnus-group-name-charset-group-alist
 @vindex gnus-group-name-charset-group-alist
-An alist of regexp of group name and the charset for group names. 
+An alist of regexp of group name and the charset for group names.
 It is used to show non-ASCII group names.
 
 For example:
@@ -4498,8 +4498,8 @@
 encoded in the @code{cn-gb-2312} charset.  If you have
 
 @lisp
-(setq gnus-summary-show-article-charset-alist 
-      '((1 . cn-gb-2312) 
+(setq gnus-summary-show-article-charset-alist
+      '((1 . cn-gb-2312)
         (2 . big5)))
 @end lisp
 
@@ -4731,7 +4731,7 @@
 @kindex S o p @r{(Summary)}
 @findex gnus-summary-post-forward
 Forward the current article to a newsgroup
-(@code{gnus-summary-post-forward}).  
+(@code{gnus-summary-post-forward}).
  If no prefix is given, the message is forwarded according to the value
 of (@code{message-forward-as-mime}) and
 (@code{message-forward-show-mml}); if the prefix is 1, decode the
@@ -6554,7 +6554,7 @@
 
 @lisp
 (setq gnus-use-long-file-name '(not-save)) ; to get a hierarchy
-(setq gnus-default-article-saver 
+(setq gnus-default-article-saver
       'gnus-summary-save-in-file) ; no encoding
 @end lisp
 
@@ -7432,7 +7432,7 @@
 
 @item W Q
 @kindex W Q @r{(Summary)}
-@findex gnus-article-fill-long-lines 
+@findex gnus-article-fill-long-lines
 Fill long lines (@code{gnus-article-fill-long-lines}).
 
 @item W C
@@ -7480,7 +7480,7 @@
 @item W h
 @kindex W h @r{(Summary)}
 @findex gnus-article-wash-html
-Treat HTML (@code{gnus-article-wash-html}).  
+Treat HTML (@code{gnus-article-wash-html}).
 Note that the this is usually done automatically by Gnus if the message
 in question has a @code{Content-Type} header that says that this type
 has been done.
@@ -7824,7 +7824,7 @@
 @kindex A t @r{(Summary)}
 @findex gnus-article-babel
 Translate the article from one language to another
-(@code{gnus-article-babel}). 
+(@code{gnus-article-babel}).
 
 @end table
 
@@ -8529,7 +8529,7 @@
 @vindex gnus-preserve-marks
 Move the article from one mail group to another
 (@code{gnus-summary-move-article}).  Marks will be preserved if
-@var{gnus-preserve-marks} is non-@code{nil} (which is the default). 
+@var{gnus-preserve-marks} is non-@code{nil} (which is the default).
 
 @item B c
 @kindex B c @r{(Summary)}
@@ -9277,7 +9277,7 @@
 @findex gnus-mime-view-part-as-type
 @item t @r{(Article)}
 View the @sc{mime} object as if it were a different @sc{mime} media type
-(@code{gnus-mime-view-part-as-type}). 
+(@code{gnus-mime-view-part-as-type}).
 
 @findex gnus-mime-pipe-part
 @item | @r{(Article)}
@@ -9427,7 +9427,7 @@
 @code{gnus-part-display-hook}.  The functions are called narrowed to the
 part, and you can do anything you like, pretty much.  There is no
 information that you have to keep in the buffer---you can change
-everything.  
+everything.
 
 
 @node Article Keymap
@@ -10514,7 +10514,7 @@
 The file contains one or more line, each of which define one server.
 
 @item
-Each line may contain an arbitrary number of token/value pairs.  
+Each line may contain an arbitrary number of token/value pairs.
 
 The valid tokens include @samp{machine}, @samp{login}, @samp{password},
 @samp{default}.  In addition Gnus introduces two new tokens, not present
@@ -10573,7 +10573,7 @@
 
 @lisp
 '(("nntpd 1\\.5\\.11t"
-   (remove-hook 'nntp-server-opened-hook 
+   (remove-hook 'nntp-server-opened-hook
                 'nntp-send-mode-reader)))
 @end lisp
 
@@ -10714,11 +10714,11 @@
 @lisp
 ;; Type `C-c C-c' after you've finished editing.
 ;;
-;; "snews" is port 563 and is predefined 
+;; "snews" is port 563 and is predefined
 ;; in our /etc/services
 ;;
 (nntp "snews.bar.com"
-      (nntp-open-connection-function 
+      (nntp-open-connection-function
         nntp-open-ssl-stream)
       (nntp-port-number "snews")
       (nntp-address "snews.bar.com"))
@@ -10878,7 +10878,7 @@
 course.
 
 @menu
-* Mail in a Newsreader::         Important introductory notes.  
+* Mail in a Newsreader::         Important introductory notes.
 * Getting Started Reading Mail:: A simple cookbook example.
 * Splitting Mail::               How to create mail groups.
 * Mail Sources::                 How to tell Gnus where to get mail from.
@@ -10897,11 +10897,11 @@
 @node Mail in a Newsreader
 @subsection Mail in a Newsreader
 
-If you are used to traditional mail readers, but have decided to switch 
+If you are used to traditional mail readers, but have decided to switch
 to reading mail with Gnus, you may find yourself experiencing something
 of a culture shock.
 
-Gnus does not behave like traditional mail readers.  If you want to make 
+Gnus does not behave like traditional mail readers.  If you want to make
 it behave that way, you can, but it's an uphill battle.
 
 Gnus, by default, handles all its groups using the same approach.  This
@@ -10915,7 +10915,7 @@
 deleted?  How awful!
 
 But, no, it means that old messages are @dfn{expired} according to some
-scheme or other.  For news messages, the expire process is controlled by 
+scheme or other.  For news messages, the expire process is controlled by
 the news administrator; for mail, the expire process is controlled by
 you.  The expire process for mail is covered in depth in @pxref{Expiring
 Mail}.
@@ -11071,7 +11071,7 @@
 can use the @kbd{M-x nnmail-split-history} command.  If you wish to see
 where re-spooling messages would put the messages, you can use
 @code{gnus-summary-respool-trace} and related commands (@pxref{Mail
-Group Commands}). 
+Group Commands}).
 
 Gnus gives you all the opportunity you could possibly want for shooting
 yourself in the foot.  Let's say you create a group that will contain
@@ -11146,8 +11146,8 @@
 (file)
 @end lisp
 
-If the mail spool file is not located on the local machine, it's best to 
-use POP or @sc{imap} or the like to fetch the mail.  You can not use ange-ftp 
+If the mail spool file is not located on the local machine, it's best to
+use POP or @sc{imap} or the like to fetch the mail.  You can not use ange-ftp
 file names here---it has no way to lock the mail spool while moving the
 mail.
 
@@ -11337,12 +11337,12 @@
 Two example maildir mail sources:
 
 @lisp
-(maildir :path "/home/user-name/Maildir/" 
+(maildir :path "/home/user-name/Maildir/"
          :subdirs ("cur" "new"))
 @end lisp
 
 @lisp
-(maildir :path "/user@@remotehost.org:~/Maildir/" 
+(maildir :path "/user@@remotehost.org:~/Maildir/"
          :subdirs ("new"))
 @end lisp
 
@@ -11435,8 +11435,8 @@
 An example @sc{imap} mail source:
 
 @lisp
-(imap :server "mail.mycorp.com" 
-      :stream kerberos4 
+(imap :server "mail.mycorp.com"
+      :stream kerberos4
       :fetchflag "\\Seen")
 @end lisp
 
@@ -11476,8 +11476,8 @@
 An example webmail source:
 
 @lisp
-(webmail :subtype 'hotmail 
-         :user "user-name" 
+(webmail :subtype 'hotmail
+         :user "user-name"
          :password "secret")
 @end lisp
 @end table
@@ -11495,7 +11495,7 @@
 
 @lisp
 (setq mail-sources
-      '((directory :path "/home/pavel/.Spool/" 
+      '((directory :path "/home/pavel/.Spool/"
                    :suffix ""
                    :plugged t)))
 @end lisp
@@ -11704,7 +11704,7 @@
       (any "procmail@@informatik\\.rwth-aachen\\.de" "procmail.list")
       (any "SmartList@@informatik\\.rwth-aachen\\.de" "SmartList.list")
       ;; Both lists below have the same suffix, so prevent
-      ;; cross-posting to mkpkg.list of messages posted only to 
+      ;; cross-posting to mkpkg.list of messages posted only to
       ;; the bugs- list, but allow cross-posting when the
       ;; message was really cross-posted.
       (any "bugs-mypackage@@somewhere" "mypkg.bugs")
@@ -12719,8 +12719,8 @@
 little bit of optimization to this so that each of one's mail groups has
 a Unix mail box file.  It's faster than @code{nnmbox} because each group
 can be parsed separately, and still provides the simple Unix mail box
-format requiring minimal effort in moving the mail around.  In addition, 
-it maintains an ``active'' file making it much faster for Gnus to figure 
+format requiring minimal effort in moving the mail around.  In addition,
+it maintains an ``active'' file making it much faster for Gnus to figure
 out how many messages there are in each separate group.
 
 If you have groups that are expected to have a massive amount of
@@ -12746,13 +12746,13 @@
 go through a cumbersome subscription procedure, and most people don't
 even know what a news group is.
 
-The problem with this scenario is that web browsers are not very good at 
-being newsreaders.  They do not keep track of what articles you've read; 
-they do not allow you to score on subjects you're interested in; they do 
+The problem with this scenario is that web browsers are not very good at
+being newsreaders.  They do not keep track of what articles you've read;
+they do not allow you to score on subjects you're interested in; they do
 not allow off-line browsing; they require you to click around and drive
 you mad in the end.
 
-So---if web browsers suck at reading discussion forums, why not use Gnus 
+So---if web browsers suck at reading discussion forums, why not use Gnus
 to do it instead?
 
 Gnus has been getting a bit of a collection of back ends for providing
@@ -12769,7 +12769,7 @@
 All the web sources require Emacs/w3 and the url library to work.
 
 The main caveat with all these web sources is that they probably won't
-work for a very long time.  Gleaning information from the @sc{html} data 
+work for a very long time.  Gleaning information from the @sc{html} data
 is guesswork at best, and when the layout is altered, the Gnus back end
 will fail.  If you have reasonably new versions of these back ends,
 though, you should be ok.
@@ -12971,7 +12971,7 @@
 information Gnus needs to keep groups updated.
 
 The easiest way to get started with @code{nnultimate} is to say
-something like the following in the group buffer:  @kbd{B nnultimate @key{RET} 
+something like the following in the group buffer:  @kbd{B nnultimate @key{RET}
 http://www.tcj.com/messboard/ubbcgi/ @key{RET}}.  (Substitute the @sc{url}
 (not including @samp{Ultimate.cgi} or the like at the end) for a forum
 you're interested in; there's quite a list of them on the Ultimate web
@@ -13032,12 +13032,12 @@
 @cindex url
 @cindex Netscape
 
-Gnus uses the url library to fetch web pages and Emacs/w3 to display web 
+Gnus uses the url library to fetch web pages and Emacs/w3 to display web
 pages.  Emacs/w3 is documented in its own manual, but there are some
 things that may be more relevant for Gnus users.
 
 For instance, a common question is how to make Emacs/w3 follow links
-using the @code{browse-url} functions (which will call some external web 
+using the @code{browse-url} functions (which will call some external web
 browser like Netscape).  Here's one way:
 
 @lisp
@@ -13722,7 +13722,7 @@
 
 @lisp
 (setq gnus-post-method
-      '(nngateway 
+      '(nngateway
         "mail2news@@replay.com"
         (nngateway-header-transformation
          nngateway-mail2news-header-transformation)))
@@ -13771,7 +13771,7 @@
 might look something like this:
 
 @lisp
-(setq gnus-secondary-select-methods 
+(setq gnus-secondary-select-methods
       '((nnimap "simpleserver") ; no special configuration
         ; perhaps a ssh port forwarded server:
         (nnimap "dolk"
@@ -13833,7 +13833,7 @@
 
 @lisp
 (nnimap "mail.server.com"
-        (nnimap-list-pattern ("INBOX" "Mail/*" "alt.sex.*" 
+        (nnimap-list-pattern ("INBOX" "Mail/*" "alt.sex.*"
                                ("~friend/Mail/" . "list/*"))))
 @end lisp
 
@@ -14041,7 +14041,7 @@
 
 @lisp
 (setq nnimap-split-rule
-      '(("INBOX.nnimap"  
+      '(("INBOX.nnimap"
          "^Sender: owner-nnimap@@vic20.globalcom.se")
         ("INBOX.junk"    "^Subject:.*MAKE MONEY")
         ("INBOX.private" "")))
@@ -15618,7 +15618,7 @@
 For example, to do hierarchical scoring but use a non-server-specific
 overall score file, you could use the value
 @example
-(list (lambda (group) ("all.SCORE")) 
+(list (lambda (group) ("all.SCORE"))
       'gnus-score-find-hierarchical)
 @end example
 
@@ -16297,7 +16297,7 @@
 If you want to lower the score of articles that have been crossposted to
 more than, say, 3 groups:
 @lisp
-("xref" 
+("xref"
   ("[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+"
    -1000 nil r))
 @end lisp
@@ -17533,7 +17533,7 @@
 accomplish that, something like the following can be done:
 
 @lisp
-(message 
+(message
   (frame 1.0
          (if (not (buffer-live-p gnus-summary-buffer))
              (car (cdr (assoc 'group gnus-buffer-configuration)))
@@ -17575,7 +17575,7 @@
 @subsection Example Window Configurations
 
 @itemize @bullet
-@item 
+@item
 Narrow left hand side occupied by group buffer.  Right hand side split
 between summary buffer (top one-sixth) and article buffer (bottom).
 
@@ -18090,7 +18090,7 @@
 @findex gnus-undo
 The undoability is provided by the @code{gnus-undo-mode} minor mode.  It
 is used if @code{gnus-use-undo} is non-@code{nil}, which is the
-default.  The @kbd{C-M-_} key performs the @code{gnus-undo} 
+default.  The @kbd{C-M-_} key performs the @code{gnus-undo}
 command, which should feel kinda like the normal Emacs @code{undo}
 command.
 
@@ -18915,7 +18915,7 @@
 
 Gnus 5.6 begat Pterodactyl Gnus on August 29th 1998 and was released as
 ``Gnus 5.8'' (after 99 releases and a CVS repository) on December 3rd
-1999. 
+1999.
 
 If you happen upon a version of Gnus that has a prefixed name --
 ``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'' --
@@ -20150,7 +20150,7 @@
 (setq nnmail-procmail-suffix "\\.in")
 @end lisp
 
-this now has changed to 
+this now has changed to
 
 @lisp
 (setq mail-sources
@@ -20179,7 +20179,7 @@
 @item The Gnus posting styles have been redone again and now works in a
 subtly different manner.
 
-@item New web-based back ends have been added: @code{nnslashdot}, 
+@item New web-based back ends have been added: @code{nnslashdot},
 @code{nnwarchive} and @code{nnultimate}.  nnweb has been revamped,
 again, to keep up with ever-changing layouts.
 
@@ -20258,16 +20258,16 @@
 that's already there.  This is not how this manual is written.  When
 implementing something, I write the manual entry for that something
 straight away.  I then see that it's difficult to explain the
-functionality, so I write how it's supposed to be, and then I change the 
+functionality, so I write how it's supposed to be, and then I change the
 implementation.  Writing the documentation and writing the code goes
 hand in hand.
 
 This, of course, means that this manual has no, or little, flow.  It
 documents absolutely everything in Gnus, but often not where you're
-looking for it.  It is a reference manual, and not a guide to how to get 
+looking for it.  It is a reference manual, and not a guide to how to get
 started with Gnus.
 
-That would be a totally different book, that should be written using the 
+That would be a totally different book, that should be written using the
 reference manual as source material.  It would look quite differently.
 
 
@@ -21488,8 +21488,8 @@
   "*Non-nil means that nndir will never retrieve NOV headers."
   nnml-nov-is-evil)
 
-(defvoo nndir-current-group "" 
-  nil 
+(defvoo nndir-current-group ""
+  nil
   nnml-current-group nnmh-current-group)
 (defvoo nndir-top-directory nil nil nnml-directory nnmh-directory)
 (defvoo nndir-get-new-mail nil nil nnml-get-new-mail nnmh-get-new-mail)
@@ -21508,7 +21508,7 @@
   (unless (assq 'nndir-directory defs)
     (push `(nndir-directory ,server) defs))
   (push `(nndir-current-group
-          ,(file-name-nondirectory 
+          ,(file-name-nondirectory
             (directory-file-name nndir-directory)))
         defs)
   (push `(nndir-top-directory
--- a/man/idlwave.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/idlwave.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -87,9 +87,9 @@
 * Getting Started::             Tutorial
 * The IDLWAVE Major Mode::      The mode to edit IDL programs
 * The IDLWAVE Shell::           The mode to run IDL as an inferior program
-* Installation::                How to Install or Upgrade               
+* Installation::                How to Install or Upgrade
 * Acknowledgements::            Who did what
-* Sources of Routine Info::     How does IDLWAVE know about routine XYZ     
+* Sources of Routine Info::     How does IDLWAVE know about routine XYZ
 * Configuration Examples::      The user is king...
 * Windows and MacOS::           What still works, and how
 * Index::                       Fast access
@@ -99,9 +99,9 @@
 
 Getting Started (Tutorial)
 
-* Lesson I -- Development Cycle::  
-* Lesson II -- Customization::  
-* Lesson III -- Library Catalog::  
+* Lesson I -- Development Cycle::
+* Lesson II -- Customization::
+* Lesson III -- Library Catalog::
 
 The IDLWAVE Major Mode
 
@@ -121,7 +121,7 @@
 Code Formatting
 
 * Code Indentation::            Reflecting the logical structure
-* Continued Statement Indentation::  
+* Continued Statement Indentation::
 * Comment Indentation::         Special indentation for comment lines
 * Continuation Lines::          Splitting statements over lines
 * Syntax Highlighting::         Font-lock support
@@ -131,7 +131,7 @@
 
 * Case of Completed Words::     CaseOFcomPletedWords
 * Object Method Completion and Class Ambiguity::  obj->Method, what?
-* Object Method Completion in the Shell::  
+* Object Method Completion in the Shell::
 * Class and Keyword Inheritance::  obj->Method, _EXTRA=e
 * Structure Tag Completion::    Completing state.Tag
 
@@ -145,17 +145,17 @@
 
 * Starting the Shell::          How to launch IDL as a subprocess
 * Using the Shell::             Interactively working with the Shell
-* Commands Sent to the Shell::  
-* Debugging IDL Programs::      
-* Examining Variables::         
-* Custom Expression Examination::  
+* Commands Sent to the Shell::
+* Debugging IDL Programs::
+* Examining Variables::
+* Custom Expression Examination::
 
 Debugging IDL Programs
 
-* Debug Key Bindings::          
-* Compiling Programs::          
-* Breakpoints and Stepping::    
-* Walking the Calling Stack::   
+* Debug Key Bindings::
+* Compiling Programs::
+* Breakpoints and Stepping::
+* Walking the Calling Stack::
 
 Installation
 
@@ -192,7 +192,7 @@
 the Interface Definition Language, part of the Common Object Request
 Broker Architecture (CORBA)}.  It can also be used for editing source
 files for the related WAVE/CL language, but with only limited
-support. 
+support.
 
 IDLWAVE consists of two main parts: a major mode for editing IDL source
 files files (@code{idlwave-mode}) and a mode for running the IDL program
@@ -201,11 +201,11 @@
 development environment. Here is a brief summary of what IDLWAVE does:
 
 @itemize @bullet
-@item 
+@item
 Code indentation and formatting.
 @item
 Three level syntax highlighting support.
-@item 
+@item
 Context-sensitive display of calling sequences and keywords for more
 than 1000 native IDL routines, extendible to any number of additional
 routines in your local IDL libraries.
@@ -367,9 +367,9 @@
 @cindex Getting Started
 
 @menu
-* Lesson I -- Development Cycle::  
-* Lesson II -- Customization::  
-* Lesson III -- Library Catalog::  
+* Lesson I -- Development Cycle::
+* Lesson II -- Customization::
+* Lesson III -- Library Catalog::
 @end menu
 
 @node  Lesson I -- Development Cycle, Lesson II -- Customization, Getting Started, Getting Started
@@ -412,13 +412,13 @@
   y1 = y * delta
   return, d + floor(m1*30.6)+floor(y1*365.25)+5
 end
-     
+
 function weekday,day,month,year
   ;; compute weekday number for date
   nr = daynr(day,month,year)
   return, nr mod 7
 end
-     
+
 pro plot_wday,day,month
   ;; Plot the weekday of a date in the first 10 years of this century.
   years = 2000,+indgen(10)
@@ -649,7 +649,7 @@
 @section Lesson III: Library Catalog
 
 We have already used the routine info display in the first part of this
-tutorial.  This was the key @kbd{C-c ?} which displays information about 
+tutorial.  This was the key @kbd{C-c ?} which displays information about
 the IDL routine near the cursor position.  Wouldn't it be nice
 to have the same available for your own library routines and for the
 huge amount of code in major extension libraries like JHUPL or the
@@ -727,7 +727,7 @@
 
 @menu
 * Code Indentation::            Reflecting the logical structure
-* Continued Statement Indentation::  
+* Continued Statement Indentation::
 * Comment Indentation::         Special indentation for comment lines
 * Continuation Lines::          Splitting statements over lines
 * Syntax Highlighting::         Font-lock support
@@ -769,7 +769,7 @@
 @code{PRO}/@code{FUNCTION}/@code{BEGIN} and @code{END}), and
 continuation lines.
 
-@defopt idlwave-main-block-indent (@code{0}) 
+@defopt idlwave-main-block-indent (@code{0})
 Extra indentation for the main block of code.  That is the block between
 the FUNCTION/PRO statement and the END statement for that program
 unit.
@@ -966,7 +966,7 @@
 
 @defopt idlwave-use-last-hang-indent (@code{nil})
 Non-@code{nil} means use last match on line for
-@code{idlwave-indent-regexp}. 
+@code{idlwave-indent-regexp}.
 @end defopt
 
 @node Syntax Highlighting, Octals and Highlighting, Continuation Lines, Code Formatting
@@ -994,7 +994,7 @@
 
 @defopt idlwave-default-font-lock-items
 Items which should be fontified on the default fontification level
-2. 
+2.
 @end defopt
 
 @node Octals and Highlighting,  , Syntax Highlighting, Code Formatting
@@ -1071,7 +1071,7 @@
 On positions 1,2 and 8, information about the @samp{plot} procedure will
 be shown.  On positions 3,4, and 7, the @samp{alog} function will be
 described, while positions 5 and 6 will investigate the @samp{sin}
-function.  
+function.
 
 When you ask for routine information about an object method, and the
 method exists in several classes, IDLWAVE queries for the class of the
@@ -1127,7 +1127,7 @@
 @item @i{Other}
 @tab Any other routine with a file not known to be on the search path.
 @item @i{Unresolved}
-@tab An otherwise unkown routine the shell lists as unresolved 
+@tab An otherwise unkown routine the shell lists as unresolved
 (referenced, but not compiled).
 @end multitable
 
@@ -1162,7 +1162,7 @@
 @item @i{Usage}
 @tab If online help is installed, a click with the @emph{right} mouse
 button on the @i{Usage:} line will access the help for the
-routine (@pxref{Online Help}).  
+routine (@pxref{Online Help}).
 @item @i{Keyword}
 @tab Online help about keywords is also available with the
 @emph{right} mouse button.  Clicking on a keyword with the @emph{middle}
@@ -1489,7 +1489,7 @@
 @menu
 * Case of Completed Words::     CaseOFcomPletedWords
 * Object Method Completion and Class Ambiguity::  obj->Method, what?
-* Object Method Completion in the Shell::  
+* Object Method Completion in the Shell::
 * Class and Keyword Inheritance::  obj->Method, _EXTRA=e
 * Structure Tag Completion::    Completing state.Tag
 @end menu
@@ -1554,7 +1554,7 @@
 @code{idlwave-query-class} can be configured to make such prompting the
 default for all methods (not recommended), or selectively for very
 common methods for which the number of completing keywords would be too
-large (e.g. @code{Init}).  
+large (e.g. @code{Init}).
 
 @cindex Saving object class on @code{->}
 @cindex @code{->}
@@ -1646,7 +1646,7 @@
 Non-@code{nil} means consider inheritance during completion, online help etc.
 @end defopt
 
-@defopt idlwave-keyword-class-inheritance 
+@defopt idlwave-keyword-class-inheritance
 A list of regular expressions to match methods for which simple
 class-driven keyword inheritance will be used for Completion.
 @end defopt
@@ -1676,7 +1676,7 @@
 simply add the following to your @file{.emacs}:
 
 @lisp
-   (add-hook 'idlwave-load-hook 
+   (add-hook 'idlwave-load-hook
              (lambda () (require 'idlw-complete-structtag)))
 @end lisp
 
@@ -2069,7 +2069,7 @@
      (idlwave-action-and-binding "\\<\\(pro\\|function\\)\\>[ \t]*\\<"
                                  '(capitalize-word 1) t)
      ;;  Capitalize common block name
-     (idlwave-action-and-binding "\\<common\\>[ \t]+\\<" 
+     (idlwave-action-and-binding "\\<common\\>[ \t]+\\<"
                                  '(capitalize-word 1) t)))
 @end lisp
 
@@ -2231,10 +2231,10 @@
 @menu
 * Starting the Shell::          How to launch IDL as a subprocess
 * Using the Shell::             Interactively working with the Shell
-* Commands Sent to the Shell::  
-* Debugging IDL Programs::      
-* Examining Variables::         
-* Custom Expression Examination::  
+* Commands Sent to the Shell::
+* Debugging IDL Programs::
+* Examining Variables::
+* Custom Expression Examination::
 @end menu
 
 @node Starting the Shell, Using the Shell, The IDLWAVE Shell, The IDLWAVE Shell
@@ -2260,7 +2260,7 @@
 @code{idlwave-shell} with a prefix argument: @kbd{C-u C-c C-s} or
 @kbd{C-u C-c C-l}.  If you always want a dedicated frame for the shell
 window, configure the variable
-@code{idlwave-shell-use-dedicated-frame}. 
+@code{idlwave-shell-use-dedicated-frame}.
 
 To launch a quick IDLWAVE shell directly from a shell prompt without an
 IDLWAVE buffer (e.g., as a replacement for running inside an xterm),
@@ -2305,10 +2305,10 @@
 @defopt idlwave-shell-command-history-file (@file{~/.idlwhist})
 The file in which the command history of the idlwave shell is saved.
 @end defopt
-  
+
 @defopt idlwave-shell-use-dedicated-frame (@code{nil})
 Non-@code{nil} means IDLWAVE should use a special frame to display
-shell buffer. 
+shell buffer.
 @end defopt
 
 @defopt idlwave-shell-frame-parameters
@@ -2515,10 +2515,10 @@
 @end defopt
 
 @menu
-* Debug Key Bindings::          
-* Compiling Programs::          
-* Breakpoints and Stepping::    
-* Walking the Calling Stack::   
+* Debug Key Bindings::
+* Compiling Programs::
+* Breakpoints and Stepping::
+* Walking the Calling Stack::
 @end menu
 
 @node Debug Key Bindings, Compiling Programs, Debugging IDL Programs, Debugging IDL Programs
@@ -2575,12 +2575,12 @@
 @kindex C-c C-d C-c
 In order to compile the current buffer under the IDLWAVE shell, press
 @kbd{C-c C-d C-c} (@code{idlwave-save-and-run}).  This first saves the
-current buffer and then sends the command @samp{.run path/to/file} to the 
-shell.  You can also execute @kbd{C-c C-d C-c} from the shell buffer, in 
+current buffer and then sends the command @samp{.run path/to/file} to the
+shell.  You can also execute @kbd{C-c C-d C-c} from the shell buffer, in
 which case the most recently compiled buffer will be saved and
 re-compiled.
 
-When developing or debugging a program, it is often necessary to execute 
+When developing or debugging a program, it is often necessary to execute
 the same command line many times.  A convenient way to do this is
 @kbd{C-c C-d C-y} (@code{idlwave-shell-execute-default-command-line}).
 This command first resets IDL from a state of interrupted execution by
@@ -2792,14 +2792,14 @@
 @end defopt
 
 @defopt idlwave-shell-output-face
-The face for @code{idlwave-shell-output-overlay}.  
+The face for @code{idlwave-shell-output-overlay}.
 Allows to choose the font, color and other properties for the most
 recent output of IDL when examining an expression."
 @end defopt
 
 @defopt idlwave-shell-separate-examine-output (@code{t})
 If non-@code{nil}, re-direct the output of examine commands to a special
-@file{*Examine*} buffer, instead of in the shell itself. 
+@file{*Examine*} buffer, instead of in the shell itself.
 @end defopt
 
 @node Custom Expression Examination,  , Examining Variables, The IDLWAVE Shell
@@ -2840,17 +2840,17 @@
 @lisp
 (add-hook 'idlwave-shell-mode-hook
           (lambda ()
-            (idlwave-shell-define-key-both [s-down-mouse-2] 
-                                 (idlwave-shell-mouse-examine 
+            (idlwave-shell-define-key-both [s-down-mouse-2]
+                                 (idlwave-shell-mouse-examine
                                   "print, size(___,/DIMENSIONS)"))
             (idlwave-shell-define-key-both [f9] (idlwave-shell-examine
                                        "print, size(___,/DIMENSIONS)"))
-            (idlwave-shell-define-key-both [f10] (idlwave-shell-examine 
+            (idlwave-shell-define-key-both [f10] (idlwave-shell-examine
                                         "print,size(___,/TNAME)"))
             (idlwave-shell-define-key-both [f11] (idlwave-shell-examine
                                         "help,___,/STRUCTURE"))))
-@end lisp                                        
-            
+@end lisp
+
 @noindent Now pressing @key{f9}, or middle-mouse dragging with the
 @key{SUPER} key depressed, will print the dimensions of the nearby or
 highlighted expression.  Pressing @key{f10} will give the type string,
@@ -2941,7 +2941,7 @@
 @lisp
 (setq idlwave-shell-use-dedicated-frame t)
 @end lisp
-@item 
+@item
 The key sequence @kbd{M-@key{TAB}} no longer inserts a TAB character.
 Like in many other Emacs modes, @kbd{M-@key{TAB}} now does
 completion.  Inserting a TAB has therefore been moved to
@@ -2973,7 +2973,7 @@
 everything, modernized IDLWAVE with many new features, and developed the
 manual.
 
-@item 
+@item
 @uref{mailto:jdsmith@@as.arizona.edu, @b{J.D. Smith}}, the current
 maintainer, as of version 4.10, helped shape object method completion
 and most new features introduced in versions 4.x.
@@ -3051,14 +3051,14 @@
 several places:
 
 @enumerate
-@item 
+@item
 @emph{Builtin routines} are defined inside IDL itself.  The source
 code of such routines is not available.
 @item
 Routines which are @emph{part of the current program}, are defined in a
 file explicitly compiled by the user.  This file may or may not be
 located on the IDL search path.
-@item 
+@item
 @emph{Library routines} are defined in files located on IDL's search
 path, and will not need to be manually compiled.  When a library routine
 is called for the first time, IDL will find the source file and compile
@@ -3095,7 +3095,7 @@
 @file{idlw-rinfo.el}.  @xref{Documentation Scan}, for information on how
 to regenerate this file for new versions of IDL.
 
-@item 
+@item
 It @emph{scans} all @emph{buffers} of the current Emacs session for
 routine definitions.  This is done automatically when routine
 information or completion is first requested by the user.  Each new
@@ -3182,7 +3182,7 @@
 and completion info of some libraries, it is sufficient to scan those
 directories.  However, if you want IDLWAVE to detect possible name
 conflicts with routines defined in other libraries, the whole pass
-should be scanned. 
+should be scanned.
 
 After selecting directories, click on the @w{@samp{[Scan & Save]}}
 button in the widget to scan all files in the selected directories and
@@ -3279,7 +3279,7 @@
 on the load path is routine info display (@pxref{Routine Info}).
 
 @node Documentation Scan,  , Load-Path Shadows, Sources of Routine Info
-@appendixsec Documentation Scan 
+@appendixsec Documentation Scan
 @cindex @file{get_rinfo}
 @cindex @file{idlw-rinfo.el}
 @cindex @file{idlw-help.txt}
@@ -3370,7 +3370,7 @@
 (setq idlwave-main-block-indent 3)
 (setq idlwave-end-offset -3)
 (setq idlwave-continuation-indent 1)
-(setq idlwave-begin-line-comment "^;[^;]")  ; Leave ";" but not ";;" 
+(setq idlwave-begin-line-comment "^;[^;]")  ; Leave ";" but not ";;"
                                             ; anchored at start of line.
 (setq idlwave-surround-by-blank t)      ; Turn on padding ops =,<,>
 (setq idlwave-pad-keyword nil)          ; Remove spaces for keyword '='
@@ -3424,10 +3424,10 @@
     ;; (local-set-key "\C-j" 'idlwave-newline) ; My preference.
 
     ;; Some personal abbreviations
-    (define-abbrev idlwave-mode-abbrev-table  
+    (define-abbrev idlwave-mode-abbrev-table
       (concat idlwave-abbrev-start-char "wb") "widget_base()"
       (idlwave-keyword-abbrev 1))
-    (define-abbrev idlwave-mode-abbrev-table  
+    (define-abbrev idlwave-mode-abbrev-table
       (concat idlwave-abbrev-start-char "on") "obj_new()"
       (idlwave-keyword-abbrev 1))
     ))
@@ -3445,12 +3445,12 @@
 (add-hook 'idlwave-shell-mode-hook
           (lambda ()
             ;; Set up some custom key and mouse examine commands
-            (idlwave-shell-define-key-both [s-down-mouse-2] 
-                                 (idlwave-shell-mouse-examine 
+            (idlwave-shell-define-key-both [s-down-mouse-2]
+                                 (idlwave-shell-mouse-examine
                                   "print, size(___,/DIMENSIONS)"))
             (idlwave-shell-define-key-both [f9] (idlwave-shell-examine
                                        "print, size(___,/DIMENSIONS)"))
-            (idlwave-shell-define-key-both [f10] (idlwave-shell-examine 
+            (idlwave-shell-define-key-both [f10] (idlwave-shell-examine
                                         "print,size(___,/TNAME)"))
             (idlwave-shell-define-key-both [f11] (idlwave-shell-examine
                                         "help,___,/STRUCTURE"))))
@@ -3487,7 +3487,7 @@
 @w{@samp{C:\RSI\IDL55}}.
 
 @lisp
-;; location of the lisp files (needed if IDLWAVE is not part of 
+;; location of the lisp files (needed if IDLWAVE is not part of
 ;; the X/Emacs installation)
 (setq load-path (cons "c:/program files/IDLWAVE" load-path))
 
@@ -3510,7 +3510,7 @@
 sure you check the following things:
 
 @itemize @bullet
-@item When you download the IDLWAVE distribution, make sure you save the 
+@item When you download the IDLWAVE distribution, make sure you save the
 files under the names @file{idlwave.tar.gz} and
 @file{idlwave-help-tar.gz}.
 @item Be sure that your software for untarring/ungzipping is @emph{NOT}
--- a/man/indent.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/indent.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -151,7 +151,7 @@
 @node Tab Stops, Just Spaces, Indentation Commands, Indentation
 @section Tab Stops
 
-@cindex tab stops 
+@cindex tab stops
 @cindex using tab stops in making tables
 @cindex tables, indentation for
 @kindex M-i
--- a/man/killing.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/killing.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -80,7 +80,7 @@
                           blank areas.
 * Killing by Lines::    How to kill entire lines of text at one time.
 * Other Kill Commands:: Commands to kill large regions of text and
-                          syntactic units such as words and sentences. 
+                          syntactic units such as words and sentences.
 @end menu
 
 @need 1500
@@ -550,7 +550,7 @@
 
 @table @kbd
 @item C-x r k
-Kill the text of the region-rectangle, saving its contents as the 
+Kill the text of the region-rectangle, saving its contents as the
 ``last killed rectangle'' (@code{kill-rectangle}).
 @item C-x r d
 Delete the text of the region-rectangle (@code{delete-rectangle}).
@@ -641,6 +641,6 @@
 rectangle shifts right.
 
 @findex string-insert-rectangle
-  The command @kbd{M-x string-insert-rectangle} is similar to 
-@code{string-rectangle}, but inserts the string on each line, 
+  The command @kbd{M-x string-insert-rectangle} is similar to
+@code{string-rectangle}, but inserts the string on each line,
 shifting the original text to the right.
--- a/man/macos.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/macos.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -173,7 +173,7 @@
 @section Volumes and Directories on the Mac
 @cindex file names (Mac OS)
 
-  The directory structure in the Mac OS is seen by Emacs as 
+  The directory structure in the Mac OS is seen by Emacs as
 
 @example
 /@var{volumename}/@var{filename}
--- a/man/maintaining.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/maintaining.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -480,7 +480,7 @@
 a list of all the available @code{etags} options, together with a short
 explanation.  If followed by one or more @samp{--language=@var{lang}}
 options, prints detailed information about how tags are generated for
-@var{lang}. 
+@var{lang}.
 
 @node Etags Regexps
 @subsection Etags Regexps
--- a/man/mark.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/mark.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -162,7 +162,7 @@
 As you move point, you will see the highlighted region grow and
 shrink.
 
-@item 
+@item
 The mouse commands for specifying the mark also make it active.  So do
 keyboard commands whose purpose is to specify a region, including
 @kbd{M-@@}, @kbd{C-M-@@}, @kbd{M-h}, @kbd{C-M-h}, @kbd{C-x C-p}, and
--- a/man/message.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/message.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1092,8 +1092,8 @@
 Symbol naming a @sc{mime} charset.  Non-ASCII characters in messages are
 assumed to be encoded using this charset.  The default is @code{nil},
 which means ask the user.  (This variable is used only on non-@sc{mule}
-Emacsen.  
-@xref{Charset Translation, , Charset Translation, emacs-mime, 
+Emacsen.
+@xref{Charset Translation, , Charset Translation, emacs-mime,
       Emacs MIME Manual}, for details on the @sc{mule}-to-@sc{mime}
 translation process.
 
--- a/man/mh-e.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/mh-e.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,5 +1,5 @@
 \input texinfo   @c -*-texinfo-*-
-@c $Id: mh-e.texi,v 1.12 2001/09/12 20:59:49 rms Exp $
+@c $Id: mh-e.texi,v 1.13 2002/10/02 23:24:31 karl Exp $
 @c %**start of header
 @setfilename ../info/mh-e
 @settitle mh-e
@@ -78,9 +78,9 @@
                                 list and FAQ.
 * History::                     The authors speak up!
 * Copying::                     The GNU General Public License
-* Command Index::               
-* Variable Index::              
-* Concept Index::               
+* Command Index::
+* Variable Index::
+* Concept Index::
 @end menu
 @end ifnottex
 
@@ -154,12 +154,12 @@
 
 @menu
 * Conventions::                 GNU Emacs Terms and Conventions
-* Getting Started::             
-* Sending Mail Tour::           
-* Reading Mail Tour::           
-* Processing Mail Tour::        
-* Leaving mh-e::                
-* More About mh-e::             
+* Getting Started::
+* Sending Mail Tour::
+* Reading Mail Tour::
+* Processing Mail Tour::
+* Leaving mh-e::
+* More About mh-e::
 @end menu
 
 @node Conventions, Getting Started, Tour Through mh-e, Tour Through mh-e
@@ -626,13 +626,13 @@
 Let's get started!
 
 @menu
-* Reading Mail::                
-* Sending Mail::                
-* Draft Editing::               
-* Moving Mail::                 
-* Searching::                   
-* Sequences::                   
-* Miscellaneous::               
+* Reading Mail::
+* Sending Mail::
+* Draft Editing::
+* Moving Mail::
+* Searching::
+* Sequences::
+* Miscellaneous::
 @end menu
 
 @node Reading Mail, Sending Mail, Using mh-e, Using mh-e
@@ -700,8 +700,8 @@
 @end table
 
 @menu
-* Viewing::                     
-* Moving Around::               
+* Viewing::
+* Moving Around::
 @end menu
 
 @node Viewing, Moving Around, Reading Mail, Reading Mail
@@ -724,8 +724,8 @@
 command.
 
 @menu
-* Reading Digests::             
-* Reading MIME::                
+* Reading Digests::
+* Reading MIME::
 @end menu
 
 @node Reading Digests, Reading MIME, Viewing, Viewing
@@ -896,10 +896,10 @@
 the window layout, use @kbd{M-x mh-smail-other-window}.
 
 @menu
-* Replying::                    
-* Forwarding::                  
-* Redistributing::              
-* Old Drafts::                  
+* Replying::
+* Forwarding::
+* Redistributing::
+* Old Drafts::
 @end menu
 
 @node Replying, Forwarding, Sending Mail, Sending Mail
@@ -1096,10 +1096,10 @@
 @end table
 
 @menu
-* Editing Textual::             
-* Editing MIME::                
-* Sending Message::             
-* Killing Draft::               
+* Editing Textual::
+* Editing MIME::
+* Sending Message::
+* Killing Draft::
 @end menu
 
 @node Editing Textual, Editing MIME, Draft Editing, Draft Editing
@@ -1110,11 +1110,11 @@
 multimedia components.
 
 @menu
-* Inserting Letter::            
-* Inserting Messages::          
-* Header::                      
-* Recipients::                  
-* Signature::                   
+* Inserting Letter::
+* Inserting Messages::
+* Header::
+* Recipients::
+* Signature::
 @end menu
 
 @node Inserting Letter, Inserting Messages, Editing Textual, Editing Textual
@@ -1242,7 +1242,7 @@
 commands fill in the content type for you, whereas others require you to
 enter one.  Most of the time, it should be obvious which one to use
 (e.g., use @kbd{image/jpeg} to include a @sc{jpeg} image).  If not, you
-can refer to @sc{rfc} 1521, 
+can refer to @sc{rfc} 1521,
 @c Footnotes are very fragile.  Hence the duplication.
 @c The line break in the footnote was necessary since TeX wasn't creating one.
 @ifclear html
@@ -1269,11 +1269,11 @@
 Remember: you can always add @code{mhn} directives by hand.
 
 @menu
-* Forwarding MIME::             
-* FTP::                         
-* Tar::                         
-* Other MIME Objects::          
-* Sending MIME::                
+* Forwarding MIME::
+* FTP::
+* Tar::
+* Other MIME Objects::
+* Sending MIME::
 @end menu
 
 @node Forwarding MIME, FTP, Editing MIME, Editing MIME
@@ -1518,12 +1518,12 @@
 @end table
 
 @menu
-* Incorporating::               
-* Deleting::                    
-* Organizing::                  
-* Printing::                    
-* Files and Pipes::             
-* Finishing Up::                
+* Incorporating::
+* Deleting::
+* Organizing::
+* Printing::
+* Files and Pipes::
+* Finishing Up::
 @end menu
 
 @node Incorporating, Deleting, Moving Mail, Moving Mail
@@ -1958,7 +1958,7 @@
 @chapter Customizing mh-e
 
 Until now, we've talked about the mh-e commands as they work ``out of the
-box.''  Of course, it is also possible to reconfigure mh-e 
+box.''  Of course, it is also possible to reconfigure mh-e
 to fit the needs of even the most demanding user.
 The following sections describe all of the
 customization variables, show the defaults, and make recommendations for
@@ -2067,11 +2067,11 @@
 or your initials.
 
 @menu
-* Customizing Reading::         
-* Customizing Sending::         
-* Customizing Draft Editing::   
-* Customizing Moving Mail::     
-* Customizing Searching::       
+* Customizing Reading::
+* Customizing Sending::
+* Customizing Draft Editing::
+* Customizing Moving Mail::
+* Customizing Searching::
 @end menu
 
 @node Customizing Reading, Customizing Sending, Customizing mh-e, Customizing mh-e
@@ -2279,8 +2279,8 @@
 @end lisp
 
 @menu
-* Customizing Viewing::         
-* Customizing Moving Around::   
+* Customizing Viewing::
+* Customizing Moving Around::
 @end menu
 
 @node Customizing Viewing, Customizing Moving Around, Customizing Reading, Customizing Reading
@@ -2526,10 +2526,10 @@
 @samp{Subject:}, and @samp{cc:} header fields.
 
 @menu
-* Customizing Replying::        
-* Customizing Forwarding::      
-* Customizing Redistributing::  
-* Customizing Old Drafts::      
+* Customizing Replying::
+* Customizing Forwarding::
+* Customizing Redistributing::
+* Customizing Old Drafts::
 @end menu
 
 @node Customizing Replying, Customizing Forwarding, Customizing Sending, Customizing Sending
@@ -2665,9 +2665,9 @@
 @end table
 
 @menu
-* Customizing Editing Textual::  
-* Customizing Editing MIME::    
-* Customizing Sending Message::  
+* Customizing Editing Textual::
+* Customizing Editing MIME::
+* Customizing Sending Message::
 @end menu
 
 @node Customizing Editing Textual, Customizing Editing MIME, Customizing Draft Editing, Customizing Draft Editing
@@ -2678,8 +2678,8 @@
 messages as well.
 
 @menu
-* Customizing Inserting Letter::  
-* Customizing Signature::       
+* Customizing Inserting Letter::
+* Customizing Signature::
 @end menu
 
 @node Customizing Inserting Letter, Customizing Signature, Customizing Editing Textual, Customizing Editing Textual
@@ -2711,7 +2711,7 @@
 each line is prefixed by @code{mh-ins-buf-prefix}.  Otherwise, it can be
 set to a function that modifies an included
 @cindex Emacs, packages, supercite
-citation. 
+citation.
 @c Footnotes are fragile; hence the redundancy.
 @c TeX not inserting a line break; hence the @*
 @ifclear html
@@ -2805,7 +2805,7 @@
 interested in investigating @code{sgml-mode}.
 
 @menu
-* Customizing Sending MIME::    
+* Customizing Sending MIME::
 @end menu
 
 @node Customizing Sending MIME,  , Customizing Editing MIME, Customizing Editing MIME
@@ -2896,7 +2896,7 @@
 
 @item mh-before-quit-hook
 Functions to run before quitting (default: @code{nil}).  See also
-@code{mh-quit-hook}. 
+@code{mh-quit-hook}.
 
 @item mh-quit-hook
 Functions to run after quitting (default: @code{nil}). See also
@@ -2904,12 +2904,12 @@
 @end table
 
 @menu
-* Customizing Incorporating::   
-* Customizing Deleting::        
-* Customizing Organizing::      
-* Customizing Printing::        
-* Customizing Files and Pipes::  
-* Customizing Finishing Up::    
+* Customizing Incorporating::
+* Customizing Deleting::
+* Customizing Organizing::
+* Customizing Printing::
+* Customizing Files and Pipes::
+* Customizing Finishing Up::
 @end menu
 
 @node Customizing Incorporating, Customizing Deleting, Customizing Moving Mail, Customizing Moving Mail
@@ -3076,7 +3076,7 @@
 (@file{~/.mh_profile}).
 
 @menu
-* Customizing Scan Line Formats::  
+* Customizing Scan Line Formats::
 @end menu
 
 @node Customizing Scan Line Formats,  , Customizing Organizing, Customizing Organizing
@@ -3280,7 +3280,7 @@
 If you find that you do the same thing over and over when editing the
 search template, you may wish to bind some shortcuts to keys.  This can
 be done with the variable @code{mh-pick-mode-hook}, which is called when
-@kbd{M-s} (@code{mh-search-folder}) is run on a new pattern.  
+@kbd{M-s} (@code{mh-search-folder}) is run on a new pattern.
 
 The string
 @code{mh-partial-folder-mode-line-annotation} is used to annotate the
@@ -3302,10 +3302,10 @@
 point out some additional sources of information.
 
 @menu
-* Bug Reports::                 
-* Mailing List::                
-* MH FAQ::                      
-* Getting mh-e::                
+* Bug Reports::
+* Mailing List::
+* MH FAQ::
+* Getting mh-e::
 @end menu
 
 @node Bug Reports, Mailing List, Odds and Ends, Odds and Ends
@@ -3413,9 +3413,9 @@
 @uref{http://sourceforge.net/, SourceForge}.
 
 @menu
-* From Brian Reid::             
-* From Jim Larus::              
-* From Stephen Gildea::         
+* From Brian Reid::
+* From Jim Larus::
+* From Stephen Gildea::
 @end menu
 
 @node From Brian Reid, From Jim Larus, History, History
@@ -3899,7 +3899,7 @@
 Gnomovision version 69, Copyright (C) 20@var{yy} @var{name of author}
 Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
 type `show w'.  This is free software, and you are welcome
-to redistribute it under certain conditions; type `show c' 
+to redistribute it under certain conditions; type `show c'
 for details.
 @end smallexample
 
@@ -3917,7 +3917,7 @@
 @group
 Yoyodyne, Inc., hereby disclaims all copyright
 interest in the program `Gnomovision'
-(which makes passes at compilers) written 
+(which makes passes at compilers) written
 by James Hacker.
 
 @var{signature of Ty Coon}, 1 April 1989
--- a/man/misc.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/misc.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -47,7 +47,7 @@
 As opposed to most normal Emacs packages, Gnus uses a number of
 different buffers to display information and to receive commands.  The
 three buffers users spend most of their time in are the @dfn{group
-buffer}, the @dfn{summary buffer} and the @dfn{article buffer}.  
+buffer}, the @dfn{summary buffer} and the @dfn{article buffer}.
 
 The @dfn{group buffer} contains a list of groups.  This is the first
 buffer Gnus displays when it starts up.  It normally displays only the
@@ -161,7 +161,7 @@
 and display the first unread article in that group.
 
 @need 1000
-In the summary buffer, 
+In the summary buffer,
 
 @itemize @bullet
 @item
@@ -291,7 +291,7 @@
 @item
 Have Gnus score articles according to various criteria, like author
 name, subject, or string in the body of the articles.@*
-@xref{Scoring, , , gnus, The Gnus Manual}. 
+@xref{Scoring, , , gnus, The Gnus Manual}.
 
 @item
 Send an article to a newsgroup.@*
--- a/man/msdog.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/msdog.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,9 +1,9 @@
 @c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,1997,2000,2001 
+@c Copyright (C) 1985,86,87,93,94,95,1997,2000,2001
 @c  Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node MS-DOS, Manifesto, Mac OS, Top
-@appendix Emacs and MS-DOS 
+@appendix Emacs and MS-DOS
 @cindex MS-DOG
 @cindex MS-DOS peculiarities
 
@@ -837,7 +837,7 @@
 serves as @key{META} in Emacs.  When using Emacs, users often press the
 @key{META} key temporarily and then change their minds; if this has the
 effect of bringing up the Windows menu, it alters the meaning of
-subsequent commands.  Many users find this frustrating. 
+subsequent commands.  Many users find this frustrating.
 
 @vindex w32-pass-alt-to-system
 You can reenable Windows's default handling of tapping the @key{ALT} key
--- a/man/mule.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/mule.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -477,7 +477,7 @@
 input method name from the minibuffer; the name normally starts with the
 language environment that it is meant to be used with.  The variable
 @code{current-input-method} records which input method is selected.
-  
+
 @findex toggle-input-method
 @kindex C-\
   Input methods use various sequences of ASCII characters to stand for
--- a/man/pcl-cvs.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/pcl-cvs.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1,5 +1,5 @@
 \input texinfo  @c -*-texinfo-*-
-@c "@(#)$Name:  $:$Id: pcl-cvs.texi,v 1.17 2002/10/02 23:24:31 karl Exp $"
+@c "@(#)$Name:  $:$Id: pcl-cvs.texi,v 1.18 2002/12/07 13:38:26 pj Exp $"
 @c %**start of header
 @setfilename ../info/pcl-cvs
 @settitle PCL-CVS --- Emacs Front-End to CVS
@@ -101,18 +101,18 @@
 About PCL-CVS
 
 * Contributors::                Contributors to PCL-CVS.
-* Installation::                
+* Installation::
 
 Commands
 
 * Entering PCL-CVS::            Commands to invoke PCL-CVS
 * Setting flags::               Setting flags for CVS commands
-* Updating the buffer::         
+* Updating the buffer::
 * Movement commands::           How to move up and down in the buffer
 * Marking files::               How to mark files that other commands
                                 will later operate on.
 * Committing changes::          Checking in your modifications to the
-                                CVS repository. 
+                                CVS repository.
 * Editing files::               Loading files into Emacs.
 * Getting info about files::    Display the log and status of files.
 * Adding and removing files::   Adding and removing files
@@ -127,7 +127,7 @@
 
 Customization
 
-* Customizing Faces::           
+* Customizing Faces::
 
 @end detailmenu
 @end menu
@@ -157,7 +157,7 @@
 
 @menu
 * Contributors::                Contributors to PCL-CVS.
-* Installation::                
+* Installation::
 @end menu
 
 @node     Contributors, Installation, About PCL-CVS, About PCL-CVS
@@ -250,7 +250,7 @@
 pre-compiled package form.  Please refer to the XEmacs manual for
 instructions regarding package selection and installation.  Currently,
 that PCL-CVS package also requires you to have installed the
-@file{xemacs-base}, @file{elib}, and @file{dired} packages. 
+@file{xemacs-base}, @file{elib}, and @file{dired} packages.
 
 If you have @TeX{} installed at your site, you can make a typeset manual
 from @file{pcl-cvs.texi}.
@@ -318,7 +318,7 @@
 
 In this example, your repository is in @file{/usr/CVSroot} and CVS has
 been run in the directory @file{/users/ceder/FOO/test}.  The three files
-(@file{bar}, @file{file.txt} and 
+(@file{bar}, @file{file.txt} and
 @file{newer}) that are marked with @samp{Need-Update} have been changed
 by someone else in the CVS repository.  Two files (@file{namechange}
 and @file{sub/ChangeLog}) have been modified locally, and need to be
@@ -523,12 +523,12 @@
 @menu
 * Entering PCL-CVS::            Commands to invoke PCL-CVS
 * Setting flags::               Setting flags for CVS commands
-* Updating the buffer::         
+* Updating the buffer::
 * Movement commands::           How to move up and down in the buffer
 * Marking files::               How to mark files that other commands
                                 will later operate on.
 * Committing changes::          Checking in your modifications to the
-                                CVS repository. 
+                                CVS repository.
 * Editing files::               Loading files into Emacs.
 * Getting info about files::    Display the log and status of files.
 * Adding and removing files::   Adding and removing files
@@ -554,13 +554,13 @@
 
 Most commands in PCL-CVS require that you have a @samp{*cvs*}
 buffer.  The commands that you use to get one are listed below.
-For each, a @samp{cvs} process will be run, the output will be parsed by 
+For each, a @samp{cvs} process will be run, the output will be parsed by
 PCL-CVS, and the result will be printed in the @samp{*cvs*} buffer (see
 @ref{Buffer contents}, for a description of the buffer's contents).
 
 @table @kbd
 @item M-x cvs-update
-Run a @samp{cvs update} command.  You will be asked for the directory 
+Run a @samp{cvs update} command.  You will be asked for the directory
 in which the @samp{cvs update} will be run.
 
 @item M-x cvs-examine
@@ -570,7 +570,7 @@
 which the @samp{cvs -n update} will be run.
 
 @item M-x cvs-status
-Run a @samp{cvs status} command.  You will be asked for the directory 
+Run a @samp{cvs status} command.  You will be asked for the directory
 in which the @samp{cvs status} will be run.
 
 @item M-x cvs-checkout
@@ -1307,7 +1307,7 @@
 @findex cvs-mode-changelog-commit
 @item log-edit-changelog-full-paragraphs
 If this variable is non-@code{nil}, include full @file{ChangeLog}
-paragraphs in the CVS log created by @samp{cvs-mode-changelog-commit}. 
+paragraphs in the CVS log created by @samp{cvs-mode-changelog-commit}.
 This may be set in the local variables section of a @file{ChangeLog}
 file, to indicate the policy for that @file{ChangeLog}.
 
@@ -1338,7 +1338,7 @@
 
 
 @menu
-* Customizing Faces::           
+* Customizing Faces::
 @end menu
 
 @node Customizing Faces,  , Customization, Customization
@@ -1365,7 +1365,7 @@
 used to highlight the status of files which are @samp{Unknown}.
 
 @item cvs-handled-face
-used to highlight the status of files which are handled and 
+used to highlight the status of files which are handled and
 need no further action.
 
 @item cvs-need-action-face
--- a/man/programs.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/programs.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1400,7 +1400,7 @@
 command @kbd{M-x glasses-mode} to enable or disable the mode in the
 current buffer; you can also add @code{glasses-mode} to the mode hook
 of the programming language major modes in which you normally want
-to use Glasses mode.        
+to use Glasses mode.
 
 @node Misc for Programs
 @section Other Features Useful for Editing Programs
--- a/man/reftex.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/reftex.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -116,7 +116,7 @@
 
 * Installation::                     How to install and activate RefTeX.
 * RefTeX in a Nutshell::             A brief summary and quick guide.
- 
+
 Labels and References
 
 * Creating Labels::
@@ -287,7 +287,7 @@
 
 @itemize @bullet
 @item
-@b{Creating Labels}@* 
+@b{Creating Labels}@*
 Type @kbd{C-c (} (@code{reftex-label}) to insert a label at point.
 @b{Ref@TeX{}} will either
 @itemize @minus
@@ -295,7 +295,7 @@
 derive a label from context (default for section labels)
 @item
 prompt for a label string (default for figures and tables) or
-@item 
+@item
 insert a simple label made of a prefix and a number (all other
 environments)@refill
 @end itemize
@@ -415,7 +415,7 @@
 the manual if you get stuck, of if you are curious what else might be
 available.  The first part of the manual explains in
 a tutorial way how to use and customize @b{Ref@TeX{}}.  The second
-part is a command and variable reference.@refill  
+part is a command and variable reference.@refill
 @end enumerate
 
 @node Table of Contents, Labels and References, Introduction, Top
@@ -514,7 +514,7 @@
 
 @item C-c >
 Switch to the @file{*Index*} buffer of this document.  With prefix
-@samp{2}, restrict the index to the section at point in the @file{*toc*} 
+@samp{2}, restrict the index to the section at point in the @file{*toc*}
 buffer.
 
 @tablesubheading{Controlling what gets displayed}
@@ -550,7 +550,7 @@
 default for this flag can be set with the variable
 @code{reftex-toc-include-index-entries}.  When called with a prefix
 argument, @b{Ref@TeX{}} will prompt for a specific index and include
-only entries in the selected index in the @file{*toc*} buffer.  The mode 
+only entries in the selected index in the @file{*toc*} buffer.  The mode
 line @samp{I<>} indicator shows which index is used.@refill
 
 @item c
@@ -799,7 +799,7 @@
 Goto previous section heading.
 
 @item N z
-Jump to section N, using the prefix arg.  For example @kbd{3 z} jumps to 
+Jump to section N, using the prefix arg.  For example @kbd{3 z} jumps to
 section 3.@refill
 
 @tablesubheading{Displaying Context}
@@ -893,7 +893,7 @@
 
 @tablesubheading{Controlling what gets displayed}
 @vindex reftex-label-menu-flags
-The defaults for the following flags can be configured with the variable 
+The defaults for the following flags can be configured with the variable
 @code{reftex-label-menu-flags} (@pxref{Options (Referencing Labels)}).
 
 @item c
@@ -906,7 +906,7 @@
 
 @item t
 Toggle the display of the table of contents in the selection buffer.
-With prefix @var{arg}, change the maximum level of toc entries displayed 
+With prefix @var{arg}, change the maximum level of toc entries displayed
 to @var{arg}.  Chapters are level 1, section are level 2.@refill
 
 @item #
@@ -1320,7 +1320,7 @@
 @example
 [INS] [DEL] Package or Detailed   : [Value Menu] Detailed:
             Environment or \macro : [Value Menu] String: \myfig[]@{@}@{@}@{*@}@{@}
-            Type specification    : [Value Menu] Char  : f 
+            Type specification    : [Value Menu] Char  : f
             Label prefix string   : [Value Menu] Default
             Label reference format: [Value Menu] Default
             Context method        : [Value Menu] Macro arg nr: 3
@@ -1417,7 +1417,7 @@
 
 (defun detect-be-ee (bound)
   ;; Search backward for the macros or an empty line
-  (if (re-search-backward 
+  (if (re-search-backward
        "\\(^[ \t]*\n\\|\\\\ee\\>\\)\\|\\(\\\\be\\>\\)" bound t)
       (if (match-beginning 2)
           (match-beginning 2)  ; Return start of environment
@@ -1456,14 +1456,14 @@
 (defun detect-linguex (bound)
   (let ((cnt 0))
     (catch 'exit
-      (while 
+      (while
           ;; Search backward for all possible delimiters
           (re-search-backward
            (concat "\\(^[ \t]*\n\\)\\|\\(\\\\z\\.\\)\\|"
                    "\\(\\ex[ig]?\\.\\)\\|\\(\\\\a\\.\\)")
            nil t)
         ;; Check which delimiter was matched.
-        (cond 
+        (cond
          ((match-beginning 1)
           ;; empty line terminates all - return nil
           (throw 'exit nil))
@@ -1784,7 +1784,7 @@
 
 Following the most generic of these packages, @code{natbib}, the builtin
 citation packages always accept the @kbd{t} key for a @emph{textual}
-citation (like: @code{Jones et al. (1997) have shown...})  as well as 
+citation (like: @code{Jones et al. (1997) have shown...})  as well as
 the @kbd{p} key for a parenthetical citation (like: @code{As shown
 earlier (Jones et al, 1997)}).@refill
 
@@ -2015,13 +2015,13 @@
 
 Phrases for indexing can be collected while writing the document.  The
 command @kbd{C-c \} (@code{reftex-index-phrase-selection-or-word})
-copies the current selection (if active) or the word near point into the 
+copies the current selection (if active) or the word near point into the
 phrases buffer.  It then selects this buffer, so that the phrase line
 can be edited.  To return to the LaTeX document, press @kbd{C-c C-c}
 (@code{reftex-index-phrases-save-and-return}).
 
 You can also prepare the list of index phrases in a different way and
-copy it into the phrases file.  For example you might want to start from 
+copy it into the phrases file.  For example you might want to start from
 a word list of the document and remove all words which should not be
 indexed.
 
@@ -2030,7 +2030,7 @@
 format.  A phrase line looks like this:
 
 @example
-[@var{key}] <TABs> @var{phrase} [<TABs> @var{arg}[&&@var{arg}]... [ || @var{arg}]...] 
+[@var{key}] <TABs> @var{phrase} [<TABs> @var{arg}[&&@var{arg}]... [ || @var{arg}]...]
 @end example
 
 @code{<TABs>} stands for white space containing at least one @key{TAB}.
@@ -2124,7 +2124,7 @@
 @b{Ref@TeX{}} will start at the first phrase line and search the phrase
 globally in the whole document.  At each match it will stop, compute the
 replacement string and offer you the following choices@footnote{Windows
-users: Restrict yourself to the described keys during indexing.  Pressing 
+users: Restrict yourself to the described keys during indexing.  Pressing
 @key{Help} at the indexing prompt can apparently hang Emacs.}:@refill
 
 @table @kbd
@@ -2238,7 +2238,7 @@
 @tablesubheading{Moving around}
 @item ! A..Z
 Pressing any capital letter will jump to the corresponding section in
-the @file{*Index*} buffer.  The exclamation mark is special and jumps to 
+the @file{*Index*} buffer.  The exclamation mark is special and jumps to
 the first entries alphabetically sorted below @samp{A}.  These are
 usually non-alphanumeric characters.@refill
 @item n
@@ -2248,7 +2248,7 @@
 
 @tablesubheading{Access to document locations}
 @item @key{SPC}
-Show the place in the document where this index entry is defined.@refill 
+Show the place in the document where this index entry is defined.@refill
 
 @item @key{TAB}
 Go to the definition of the current index entry in another
@@ -2299,19 +2299,19 @@
 
 @item (
 Toggle the beginning of page range property @samp{|(} of the
-entry.@refill 
+entry.@refill
 
 @item )
-Toggle the end of page range property @samp{|)} of the entry.@refill 
+Toggle the end of page range property @samp{|)} of the entry.@refill
 
 @item _
 Make the current entry a subentry.  This command will prompt for the
 superordinate entry and insert it.@refill
 
 @item ^
-Remove the highest superordinate entry.  If the current entry is a 
+Remove the highest superordinate entry.  If the current entry is a
 subitem (@samp{aaa!bbb!ccc}), this function moves it up the hierarchy
-(@samp{bbb!ccc}).@refill 
+(@samp{bbb!ccc}).@refill
 
 @tablesubheading{Exiting}
 @item q
@@ -2364,7 +2364,7 @@
 
 @item s
 Switch to a different index (for documents with multiple
-indices).@refill 
+indices).@refill
 @end table
 
 
@@ -2427,7 +2427,7 @@
 index entries with @code{reftex-index}.  These codes need to be
 unique. @code{?i}, @code{?I}, and @code{?g} are reserved for the
 @code{\index}, @code{\index*}, and @code{\glossary} macros,
-respectively. 
+respectively.
 
 The following string is empty unless your macro adds a superordinate
 entry to the index key - this is the case for the @code{\astobj} macro.
@@ -2450,14 +2450,14 @@
             Macro with args: \ix@{*@}
             Index Tag      : [Value Menu] String: idx
             Access Key     : x
-            Key Prefix     : 
+            Key Prefix     :
             Exclusion hook : nil
             Repeat Outside : [Toggle]  off (nil)
 [INS] [DEL] List:
             Macro with args: \nindex@{*@}
             Index Tag      : [Value Menu] String: name
             Access Key     : n
-            Key Prefix     : 
+            Key Prefix     :
             Exclusion hook : nil
             Repeat Outside : [Toggle]  off (nil)
 [INS] [DEL] List:
@@ -2558,7 +2558,7 @@
 While the display of cross referencing information for the above
 mentioned macros is hard--coded, you can configure additional relations
 in the variable @code{reftex-view-crossref-extra}.
-    
+
 @iftex
 @chapter All the Rest
 @end iftex
@@ -2748,7 +2748,7 @@
 
 @vindex reftex-multiref-punctuation
 @vindex reftex-cite-punctuation
-@item 
+@item
 @b{Ref@TeX{}} inserts ``punctuation'' for multiple references and
 for the author list in citations.  Some of this may be language
 dependent.  See the variables @code{reftex-multiref-punctuation} and
@@ -2802,7 +2802,7 @@
 Specify the full search path directly in @b{Ref@TeX{}}'s variables.
 
 @lisp
-(setq reftex-texpath-environment-variables 
+(setq reftex-texpath-environment-variables
       '("./inp:/home/cd/tex//:/usr/local/tex//"))
 (setq reftex-bibpath-environment-variables
       '("/home/cd/tex/lit/"))
@@ -2820,7 +2820,7 @@
 (setq reftex-use-external-file-finders t)
 (setq reftex-external-file-finders
       '(("tex" . "kpsewhich -format=.tex %f")
-        ("bib" . "kpsewhich -format=.bib %f")))      
+        ("bib" . "kpsewhich -format=.bib %f")))
 @end lisp
 @end itemize
 
@@ -2835,9 +2835,9 @@
 @code{TeX-file-extension}.  For example:
 
 @lisp
-(setq reftex-file-extensions 
+(setq reftex-file-extensions
       '(("nw" "tex" ".tex" ".ltx") ("bib" ".bib")))
-(setq TeX-file-extensions 
+(setq TeX-file-extensions
       '( "nw" "tex" "sty" "cls" "ltx" "texi" "texinfo"))
 @end lisp
 
@@ -3148,7 +3148,7 @@
          (reftex-set-cite-format 'natbib))))
 @end lisp
 
-@findex reftex-add-index-macros 
+@findex reftex-add-index-macros
 The hook may contain a call to @code{reftex-add-index-macros} to
 define additional @code{\index}-like macros.  The argument must have
 the same format as @code{reftex-index-macros}.  It may be a symbol, to
@@ -3282,7 +3282,7 @@
 headings may look different from what you usually see on your screen.
 In rare cases @code{reftex-toc} may have problems to jump to an affected
 section heading.  There are three possible ways to deal with
-this:@refill 
+this:@refill
 @itemize @minus
 @item
 @vindex reftex-keep-temporary-buffers
@@ -3332,7 +3332,7 @@
 argument (which really is a second argument to the macro @code{\begin})
 as a label of type @code{?p}.  Argument count for this macro starts only
 after the @samp{@{step+@}}, also when specifying how to get
-context.@refill 
+context.@refill
 
 @item
 @b{Idle timers in XEmacs}@*
@@ -3455,7 +3455,7 @@
 document.  When called with a numeric prefix, make that many citations.
 When called with point inside the braces of a @code{\cite} command, it
 will add another key, ignoring the value of
-@code{reftex-cite-format}.@refill @* 
+@code{reftex-cite-format}.@refill @*
 The regular expression uses an expanded syntax: @samp{&&} is interpreted
 as @code{and}.  Thus, @samp{aaaa&&bbb} matches entries which contain
 both @samp{aaaa} and @samp{bbb}.  While entering the regexp, completion
@@ -3668,7 +3668,7 @@
 When active, the @file{*TOC*} buffer will always show the section you
 are currently working in.  Recentering happens whenever Emacs is idle
 for more than `reftex-idle-time' seconds.
-This feature can be turned on and off from the menu 
+This feature can be turned on and off from the menu
 (Ref->Options).
 @end defopt
 
@@ -4154,7 +4154,7 @@
 
 @deffn {Normal Hook} reftex-select-label-mode-hook
 Normal hook which is run when a selection buffer enters
-@code{reftex-select-label-mode}.@refill 
+@code{reftex-select-label-mode}.@refill
 @end deffn
 
 @deffn Keymap reftex-select-label-map
@@ -4287,14 +4287,14 @@
 @item
 final names separator, like @samp{ and }  in Jones, Brown and Miller
 @item
-The @samp{et al.} string, like @samp{ @{\it et al.@}} in 
+The @samp{et al.} string, like @samp{ @{\it et al.@}} in
 Jones @{\it et al.@}
 @end enumerate
 @end defopt
 
 @deffn {Normal Hook} reftex-select-bib-mode-hook
 Normal hook which is run when a selection buffer enters
-@code{reftex-select-bib-mode}.@refill 
+@code{reftex-select-bib-mode}.@refill
 @end deffn
 
 @deffn Keymap reftex-select-bib-map
@@ -4318,7 +4318,7 @@
 
 @defopt reftex-index-special-chars
 List of special characters in index entries, given as strings.  These
-correspond to the @code{MakeIndex} keywords 
+correspond to the @code{MakeIndex} keywords
 @code{(@var{level} @var{encap} @var{actual} @var{quote} @var{escape})}.
 @end defopt
 
@@ -4533,7 +4533,7 @@
 argument of a macro.  Note that crossref viewing for citations,
 references (both ways) and index entries is hard-coded.  This variable
 is only to configure additional structures for which crossreference
-viewing can be useful.  Each entry has the structure 
+viewing can be useful.  Each entry has the structure
 @example
 (@var{macro-re} @var{search-re} @var{highlight}).
 @end example
@@ -4556,7 +4556,7 @@
 @end defopt
 
 @defopt reftex-idle-time
-Time (secs) Emacs has to be idle before automatic crossref display 
+Time (secs) Emacs has to be idle before automatic crossref display
 or toc recentering is done.@refill
 @end defopt
 
@@ -4626,7 +4626,7 @@
 
 @defopt reftex-file-extensions
 Association list with file extensions for different file types.
-This is a list of items, each item is like: 
+This is a list of items, each item is like:
 @code{(@var{type} . (@var{def-ext} @var{other-ext} ...))}
 @example
 @var{type}:       @r{File type like @code{"bib"} or @code{"tex"}.}
@@ -5250,7 +5250,7 @@
 @item
 Parse files @file{MASTER.rel} made compatible between Emacs and XEmacs.
 @item
-@code{kill-emacs-hook} and @code{kill-buffer-hook} now write the parse 
+@code{kill-emacs-hook} and @code{kill-buffer-hook} now write the parse
 file.
 @item
 The cursor inside a @code{\ref} or @code{\cite} macro can now trigger
@@ -5357,7 +5357,7 @@
 @item
 Multiple selection buffers are now hidden buffers (they start with a
 SPACE).
-@item 
+@item
 Fixed bug with file search when TEXINPUTS environment variable is empty.
 @end itemize
 @noindent @b{Version 3.34}
@@ -5392,9 +5392,9 @@
 @itemize @bullet
 @item
 New options @code{reftex-texpath-environment-variables},
-@code{reftex-use-external-file-finders}, 
-@code{reftex-external-file-finders}, 
-@code{reftex-search-unrecursed-path-first}. 
+@code{reftex-use-external-file-finders},
+@code{reftex-external-file-finders},
+@code{reftex-search-unrecursed-path-first}.
 @item
 @emph{kpathsearch} support.  See new options and
 @code{reftex-bibpath-environment-variables}.
@@ -5430,7 +5430,7 @@
 @noindent @b{Version 4.00}
 @itemize @bullet
 @item
-RefTeX has been split into several smaller files which are autoloaded on 
+RefTeX has been split into several smaller files which are autoloaded on
 demand.
 @item
 Index support, along with many new options.
@@ -5480,9 +5480,9 @@
 @item
 New option @code{reftex-toc-max-level} to limit the depth of the toc.
 New key binding @kbd{t} in the @file{*toc*} buffer to change this
-setting.@refill 
-@item
-RefTeX maintains an @file{Index Phrases} file in which phrases can be 
+setting.@refill
+@item
+RefTeX maintains an @file{Index Phrases} file in which phrases can be
 collected.  When the document is ready, RefTeX can search all
 these phrases and assist indexing all matches.@refill
 @item
@@ -5497,7 +5497,7 @@
 @item
 Environments like theorems can be placed into the TOC by putting
 entries for @samp{"begin@{theorem@}"} in
-@code{reftex-setion-levels}.@refill 
+@code{reftex-setion-levels}.@refill
 @end itemize
 @noindent @b{Version 4.10}
 @itemize @bullet
@@ -5531,7 +5531,7 @@
 @end ignore
 @noindent @b{Version 4.17}
 @itemize @bullet
-@item 
+@item
 The toc window can be split off horizontally.  See new options
 @code{reftex-toc-split-windows-horizontally},
 @code{reftex-toc-split-windows-horizontally-fraction}.
--- a/man/rmail.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/rmail.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -94,7 +94,7 @@
 @section Scrolling Within a Message
 
   When Rmail displays a message that does not fit on the screen, you
-must scroll through it to read the rest.  You could do this with 
+must scroll through it to read the rest.  You could do this with
 @kbd{C-v}, @kbd{M-v} and @kbd{M-<}, but in Rmail scrolling is so
 frequent that it deserves to be easier to type.
 
--- a/man/sc.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/sc.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -41,7 +41,7 @@
 
 @dircategory Emacs
 @direntry
-* SC: (sc).		Supercite lets you cite parts of messages you're 
+* SC: (sc).		Supercite lets you cite parts of messages you're
 			  replying to, in flexible ways.
 @end direntry
 
@@ -1178,7 +1178,7 @@
 initializes the reply buffer:
 
 @enumerate
-@item 
+@item
 @vindex sc-pre-hook
 @vindex pre-hook (sc-)
 @emph{Runs @code{sc-pre-hook}.}
@@ -1222,7 +1222,7 @@
 yanked text.  This allows you to easily undo Supercite's changes to
 affect alternative citing styles.
 
-@item 
+@item
 @emph{Processes the mail headers.}
 @vindex sc-confirm-always-p
 @vindex confirm-always-p (sc-)
@@ -1275,7 +1275,7 @@
 attribution string and a citation string which it will use to cite the
 original message.  @xref{Selecting an Attribution}, for details.
 
-@item 
+@item
 @emph{Cites the message body.}
 @vindex sc-cite-region-limit
 @vindex cite-region-limit (sc-)b
@@ -1316,7 +1316,7 @@
 recognize those styles you see often.
 @xref{Configuring the Citation Engine}, for details.@refill
 
-@item 
+@item
 @emph{Runs @code{sc-post-hook}.}
 @vindex sc-post-hook
 @vindex post-hook (sc-)
@@ -1581,7 +1581,7 @@
 @item
 Use the value of the @code{"x-attribution"} key.
 
-@item 
+@item
 Use the author's first name.
 
 @item
@@ -1590,11 +1590,11 @@
 @item
 Use the author's initials.
 
-@item 
+@item
 Find the first non-@code{nil}, non-empty attribution string in the
 attribution alist.
 
-@item 
+@item
 @code{sc-default-attribution} is used.
 @end enumerate
 
@@ -2135,7 +2135,7 @@
 
 Finally, the command @kbd{C-c C-p C-t h} (also @kbd{C-c C-p C-t ?})
 brings up a Help message on the toggling keymap.
-  
+
 
 @node  Mail Field Commands, Miscellaneous Commands, Variable Toggling Shortcuts, Post-yank Formatting Commands
 @comment  node-name,  next,  previous,  up
@@ -2299,7 +2299,7 @@
 steps:
 
 @enumerate
-@item 
+@item
 Insert the original message, including the mail headers into the reply
 buffer. At this point you should not modify the raw text in any way, and
 you should place all the original headers into the body of the reply.
@@ -2307,7 +2307,7 @@
 above the @code{mail-header-separator} line and one copy below,
 however there will probably be more headers below this line.@refill
 
-@item 
+@item
 Set @samp{point} to the beginning of the line containing the first mail
 header in the body of the reply. Set @samp{mark} at the end of the
 message text.  It is very important that the region be set around the
@@ -2319,7 +2319,7 @@
 properly when the region is inactive, as should any other like-minded
 package.@refill
 
-@item 
+@item
 Run the hook @code{mail-citation-hook}. You will probably want to
 provide some kind of default citation functions in cases where the user
 does not have Supercite installed.  By default, your MUA should
--- a/man/screen.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/screen.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -107,7 +107,7 @@
 @node Echo Area
 @section The Echo Area
 @cindex echo area
-@c 
+@c
 
   The line at the bottom of the frame (below the mode line) is the
 @dfn{echo area}.  It is used to display small amounts of text for
--- a/man/texinfo.tex	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/texinfo.tex	Tue Feb 04 14:56:31 2003 +0000
@@ -35,10 +35,10 @@
 %   ftp://tug.org/tex/texinfo.tex
 %     (and all CTAN mirrors, see http://www.ctan.org),
 %   and /home/gd/gnu/doc/texinfo.tex on the GNU machines.
-% 
+%
 % The texinfo.tex in any given Texinfo distribution could well be out
 % of date, so if that's what you're using, please check.
-% 
+%
 % Texinfo has a small home page at http://texinfo.org/ and also
 % http://www.gnu.org/software/texinfo.
 %
@@ -175,7 +175,7 @@
 
 % add check for \lastpenalty to plain's definitions.  If the last thing
 % we did was a \nobreak, we don't want to insert more space.
-% 
+%
 \def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount
   \removelastskip\penalty-50\smallskip\fi\fi}
 \def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount
@@ -730,10 +730,10 @@
 % @inmargin{TEXT [, RIGHT-TEXT]}
 % (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right;
 % else use TEXT for both).
-% 
+%
 \def\inmargin#1{\parseinmargin #1,,\finish}
 \def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing.
-  \setbox0 = \hbox{\ignorespaces #2}% 
+  \setbox0 = \hbox{\ignorespaces #2}%
   \ifdim\wd0 > 0pt
     \def\lefttext{#1}%  have both texts
     \def\righttext{#2}%
@@ -797,7 +797,7 @@
 % @paragraphindent NCHARS
 % We'll use ems for NCHARS, close enough.
 % We cannot implement @paragraphindent asis, though.
-% 
+%
 \def\asisword{asis} % no translation, these are keywords
 \def\noneword{none}
 %
@@ -840,7 +840,7 @@
 % We don't use $'s directly in the definition of \math because we need
 % to set catcodes according to plain TeX first, to allow for subscripts,
 % superscripts, special math chars, etc.
-% 
+%
 % @math does not do math typesetting in section titles, index
 % entries, and other such contexts where the catcodes are set before
 % @math gets a chance to work.  This could perhaps be fixed, but for now
@@ -852,7 +852,7 @@
 % an actual _ character, as in @math{@var{some_variable} + 1}.  So make
 % _ within @math be active (mathcode "8000), and distinguish by seeing
 % if the current family is \slfam, which is what @var uses.
-% 
+%
 {\catcode95 = \active  % 95 = _
 \gdef\mathunderscore{%
   \catcode95=\active
@@ -863,7 +863,7 @@
 % FYI, plain.tex uses \\ as a temporary control sequence (why?), but
 % this is not advertised and we don't care.  Texinfo does not
 % otherwise define @\.
-% 
+%
 % The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\.
 \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
 %
@@ -986,11 +986,11 @@
   \def\pdfmakeoutlines{{%
     \openin 1 \jobname.toc
     \ifeof 1\else\begingroup
-      \closein 1 
+      \closein 1
       \indexnofonts
       \def\tt{}
       \let\_ = \normalunderscore
-      % Thanh's hack / proper braces in bookmarks  
+      % Thanh's hack / proper braces in bookmarks
       \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
       \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
       %
@@ -1032,7 +1032,7 @@
       \let\nextmakelinks=\makelinks
       \ifnum\lnkcount>0,\fi
       \picknum{#1}%
-      \startlink attr{/Border [0 0 0]} 
+      \startlink attr{/Border [0 0 0]}
         goto name{\pdfmkpgn{\the\pgn}}%
       \linkcolor #1%
       \advance\lnkcount by 1%
@@ -1087,7 +1087,7 @@
     \ifx\first0\adn0
     \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
     \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
-    \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 
+    \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
     \else
       \ifnum0=\countA\else\makelink\fi
       \ifx\first.\let\next=\done\else
@@ -1521,7 +1521,7 @@
 
 % rms does not like angle brackets --karl, 17may97.
 % So now @email is just like @uref, unless we are pdf.
-% 
+%
 %\def\email#1{\angleleft{\tt #1}\angleright}
 \ifpdf
   \def\email#1{\doemail#1,,\finish}
@@ -2742,10 +2742,10 @@
 
 % @synindex foo bar    makes index foo feed into index bar.
 % Do this instead of @defindex foo if you don't want it as a separate index.
-% 
+%
 % @syncodeindex foo bar   similar, but put all entries made for index foo
 % inside @code.
-% 
+%
 \def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}}
 \def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}}
 
@@ -2787,13 +2787,13 @@
 % Take care of texinfo commands likely to appear in an index entry.
 % (Must be a way to avoid doing expansion at all, and thus not have to
 % laboriously list every single command here.)
-% 
+%
 \def\indexdummies{%
 \def\ { }%
 \def\@{@}% change to @@ when we switch to @ as escape char in aux files.
 % Need these in case \tex is in effect and \{ is a \delimiter again.
 % But can't use \lbracecmd and \rbracecmd because texindex assumes
-% braces and backslashes are used only as delimiters.  
+% braces and backslashes are used only as delimiters.
 \let\{ = \mylbrace
 \let\} = \myrbrace
 \def\_{{\realbackslash _}}%
@@ -3348,7 +3348,7 @@
   \wd0=\hsize \wd2=\hsize
   \hbox to\pagewidth{\box0\hfil\box2}%
 }
-% 
+%
 % All done with double columns.
 \def\enddoublecolumns{%
   \output = {%
@@ -4149,7 +4149,7 @@
 % @foo ... @end foo.
 
 % @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
-% 
+%
 % Since these characters are used in examples, it should be an even number of
 % \tt widths. Each \tt character is 1en, so two makes it 1em.
 %
@@ -4161,7 +4161,7 @@
 
 % The @error{} command.
 % Adapted from the TeXbook's \boxit.
-% 
+%
 \newbox\errorbox
 %
 {\tentt \global\dimen0 = 3em}% Width of the box.
@@ -4469,7 +4469,7 @@
 
 
 % LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}
-% If we want to allow any <char> as delimiter, 
+% If we want to allow any <char> as delimiter,
 % we need the curly braces so that makeinfo sees the @verb command, eg:
 % `@verbx...x' would look like the '@verbx' command.  --janneke@gnu.org
 %
@@ -4543,8 +4543,8 @@
   \everypar{\starttabbox}%
 }
 
-% Do the @verb magic: verbatim text is quoted by unique 
-% delimiter characters.  Before first delimiter expect a 
+% Do the @verb magic: verbatim text is quoted by unique
+% delimiter characters.  Before first delimiter expect a
 % right brace, after last delimiter expect closing brace:
 %
 %    \def\doverb'{'<char>#1<char>'}'{#1}
@@ -4563,7 +4563,7 @@
 %
 %     \def\doverbatim#1@end verbatim{#1}
 %
-% For Texinfo it's a lot easier than for LaTeX, 
+% For Texinfo it's a lot easier than for LaTeX,
 % because texinfo's \verbatim doesn't stop at '\end{verbatim}':
 % we need not redefine '\', '{' and '}'
 %
@@ -4621,7 +4621,7 @@
 
 % @copying ... @end copying.
 % Save the text away for @insertcopying later.
-% 
+%
 \newbox\copyingbox
 %
 \def\copying{\begingroup
@@ -4631,7 +4631,7 @@
 }
 
 % @insertcopying.
-% 
+%
 \def\insertcopying{\unvcopy\copyingbox}
 
 
@@ -4734,7 +4734,7 @@
 % #1 is the \E... control sequence to end the definition (which we define).
 % #2 is the \...x control sequence (which our caller defines).
 % #3 is the control sequence to process the header, such as \defunheader.
-% 
+%
 \def\parsebodycommon#1#2#3{%
   \begingroup\inENV
   % If there are two @def commands in a row, we'll have a \nobreak,
@@ -4791,7 +4791,7 @@
 % to account for this both in the \...x definition and in parsing the
 % input at hand.  Thus also need a control sequence (passed as #5) for
 % the \E... definition to assign the category name to.
-% 
+%
 \def\deftypeopparsebody#1#2#3#4#5 #6 {%
   \parsebodycommon{#1}{#2}{#3}%
   \def#2##1 ##2 ##3 {%
@@ -5148,7 +5148,7 @@
 
 % These definitions are used if you use @defunx (etc.)
 % anywhere other than immediately after a @defun or @defunx.
-% 
+%
 \def\defcvx#1 {\errmessage{@defcvx in invalid context}}
 \def\deffnx#1 {\errmessage{@deffnx in invalid context}}
 \def\defivarx#1 {\errmessage{@defivarx in invalid context}}
@@ -5949,7 +5949,7 @@
     \nobreak\bigskip
     % Usually we'll have text after the image which will insert
     % \parskip glue, so insert it here too to equalize the space
-    % above and below. 
+    % above and below.
     \nobreak\vskip\parskip
     \nobreak
     \line\bgroup\hss
@@ -6065,7 +6065,7 @@
 }
 
 % Use `small' versions.
-% 
+%
 \def\smallenvironments{%
   \let\smalldisplay = \smalldisplayx
   \let\smallexample = \smalllispx
@@ -6322,7 +6322,7 @@
 % Say @foo, not \foo, in error messages.
 @escapechar = `@@
 
-% These look ok in all fonts, so just make them not special.  
+% These look ok in all fonts, so just make them not special.
 @catcode`@& = @other
 @catcode`@# = @other
 @catcode`@% = @other
--- a/man/text.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/text.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -918,7 +918,7 @@
 @menu
 * Format: Outline Format.	   What the text of an outline looks like.
 * Motion: Outline Motion.	   Special commands for moving through
-                                     outlines. 
+                                     outlines.
 * Visibility: Outline Visibility.  Commands to control what is visible.
 * Views: Outline Views.            Outlines and multiple views.
 * Foldout::                        Folding editing.
@@ -1060,7 +1060,7 @@
 invisible (@code{hide-leaves}).
 @item C-c C-k
 Make all subheadings of this heading line, at all levels, visible
-(@code{show-branches}). 
+(@code{show-branches}).
 @item C-c C-i
 Make immediate subheadings (one level down) of this heading line
 visible (@code{show-children}).
@@ -1847,7 +1847,7 @@
 * Color: Format Colors.         Changing the color of text.
 * Indent: Format Indentation.   Changing the left and right margins.
 * Justification: Format Justification.
-                                Centering, setting text flush with the 
+                                Centering, setting text flush with the
                                   left or right margin, etc.
 * Other: Format Properties.     The "special" text properties submenu.
 * Forcing Enriched Mode::       How to force use of Enriched mode.
@@ -2146,7 +2146,7 @@
 
 @node Format Justification
 @subsection Justification in Formatted Text
-            
+
   When editing formatted text, you can specify various styles of
 justification for a paragraph.  The style you specify automatically
 affects the Emacs fill commands.
@@ -2218,7 +2218,7 @@
   The default justification style is specified by the variable
 @code{default-justification}.  Its value should be one of the symbols
 @code{left}, @code{right}, @code{full}, @code{center}, or @code{none}.
-         
+
 @node Format Properties
 @subsection Setting Other Text Properties
 
@@ -2258,7 +2258,7 @@
 Emacs does the necessary conversions on the text which you insert, but
 it does not enable Enriched mode.  If you wish to do that, type @kbd{M-x
 enriched-mode}.
-@end itemize 
+@end itemize
 
   The command @code{format-decode-buffer} translates text in various
 formats into Emacs's internal format.  It asks you to specify the format
--- a/man/tramp.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/tramp.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -67,7 +67,7 @@
 Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software
 Foundation, Inc.
 
-@quotation     
+@quotation
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1 or
 any later version published by the Free Software Foundation; with no
@@ -1202,7 +1202,7 @@
 
 @defun tramp-set-completion-function method function-list
 This function sets @var{function-list} as list of completion functions
-for @var{method}. 
+for @var{method}.
 
 Example:
 @example
@@ -1620,7 +1620,7 @@
 @value{tramp-prefix-single-hop}telnet@value{tramp-postfix-single-hop}				   @value{tramp-prefix-single-hop}toto@value{tramp-postfix}
 @end ifset
 @end example
-     
+
 @samp{@value{tramp-prefix-single-hop}telnet@value{tramp-postfix-single-hop}}
 is a possible completion for the respective method,
 @ifset emacs
@@ -1898,7 +1898,7 @@
 
 In the case of a remote file, the @code{shell-command} interface is
 used, with some wrapper code, to provide the same functionality on the
-remote machine as would be seen on the local machine. 
+remote machine as would be seen on the local machine.
 
 
 @node Changed workfiles
--- a/man/trouble.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/trouble.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -818,7 +818,7 @@
 @code{Fsignal}.
 
 For a short listing of Lisp functions running, type the GDB
-command @code{xbacktrace}.  
+command @code{xbacktrace}.
 
 The file @file{.gdbinit} defines several other commands that are useful
 for examining the data types and contents of Lisp objects.  Their names
--- a/man/vip.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/vip.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1750,7 +1750,7 @@
 @item (.,.@:) d[elete] @var{register} @var{count} @var{flags}
 Delete specified lines.  Text will be saved in a named @var{register} if a
 lower-case letter is given, and appended to a register if a capital letter is
-given. 
+given.
 @item e[dit] !@: +@var{addr} @var{file}
 @itemx e[x] !@: +@var{addr} @var{file}
 @itemx vi[sual] !@: +@var{addr} @var{file}
--- a/man/viper.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/viper.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -1194,7 +1194,7 @@
 from the menubar.  Viper customization group is located under the
 @emph{Emulations} customization group, which in turn is under the
 @emph{Editing} group (or simply by typing @kbd{:customize}).  All Viper
-faces are grouped together under Viper's 
+faces are grouped together under Viper's
 @emph{Highlighting} group.
 
 Try it: it is really simple!
@@ -1748,7 +1748,7 @@
 emitted by the arrow and function keys. Other sequences, e.g., @kbd{\\e/}, are
 treated as @kbd{ESC} command followed by a @kbd{/}. This is good for people
 who type fast and tend to hit other characters right after they hit
-ESC. Other people like Emacs to translate @kbd{ESC} sequences all the time. 
+ESC. Other people like Emacs to translate @kbd{ESC} sequences all the time.
 The default is to translate all sequences only when using a dumb terminal.
 This permits you to use @kbd{ESC} as a meta key in insert mode. For instance,
 hitting @kbd{ESC x} fast would have the effect of typing @kbd{M-x}.
@@ -2035,7 +2035,7 @@
 @code{viper-insert-global-user-map}, and @code{viper-emacs-global-user-map}, as
 explained below.  Each of these key maps affects the corresponding Viper state.
 The keymap @code{viper-insert-global-user-map} also affects Viper's Replace
-state. 
+state.
 
 @noindent
 If you want to
@@ -2219,7 +2219,7 @@
 @code{viper-want-emacs-keys-in-vi} and @code{viper-want-emacs-keys-in-insert} to
 @code{nil}).
 If @code{viper-always} is set to @code{t} (which is the default), Viper
-will try to bring each buffer 
+will try to bring each buffer
 in the Viper state that is most appropriate for that buffer.
 Usually, this would be the Vi state, but sometimes it could be the Insert
 state or the Emacs state.
@@ -2661,7 +2661,7 @@
 purpose of mouse search and mouse insert.  By default, this is set to
 @code{double-click-time} in Emacs and to
 @code{mouse-track-multi-click-time} milliseconds in XEmacs.
-@end table        
+@end table
 @kindex @kbd{S-Mouse-1}
 @kindex @kbd{S-Mouse-2}
 @kindex @kbd{meta shift button1up}
@@ -2731,7 +2731,7 @@
 specially, if this key sequence is bound to a macro.
 
 Viper provides Vi-style keyboard macros through the usual Ex commands,
-@kbd{:map} and 
+@kbd{:map} and
 @kbd{:map!}.  These macros are much more powerful in Viper than
 they are in the original Vi and in other emulators.  This is because Viper
 implements an enhanced vi-style
@@ -4044,8 +4044,8 @@
 @item :args
 List files not shown anywhere with counts for next
 @item :n [count]  [+<cmd>] [<files>]
-Edit <count> file, or edit files.  The count comes from @kbd{:args}.  
-@item :N [count] [+<cmd>] [<files>] 
+Edit <count> file, or edit files.  The count comes from @kbd{:args}.
+@item :N [count] [+<cmd>] [<files>]
 Like @kbd{:n}, but the meaning of the variable
 @var{ex-cycle-other-window} is reversed.
 @item :b
--- a/man/widget.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/widget.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -44,18 +44,18 @@
 @top The Emacs Widget Library
 
 @menu
-* Introduction::                
-* User Interface::              
-* Programming Example::         
-* Setting Up the Buffer::       
-* Basic Types::                 
-* Sexp Types::                  
-* Widget Properties::           
-* Defining New Widgets::        
-* Widget Browser::              
-* Widget Minor Mode::           
-* Utilities::                   
-* Widget Wishlist::             
+* Introduction::
+* User Interface::
+* Programming Example::
+* Setting Up the Buffer::
+* Basic Types::
+* Sexp Types::
+* Widget Properties::
+* Defining New Widgets::
+* Widget Browser::
+* Widget Minor Mode::
+* Utilities::
+* Widget Wishlist::
 * Index::
 @end menu
 
@@ -78,7 +78,7 @@
 @item link
 Areas of text with an associated action.  Intended for hypertext links
 embedded in text.
-@item push-button 
+@item push-button
 Like link, but intended for stand-alone buttons.
 @item editable-field
 An editable text field.  It can be either variable or fixed length.
@@ -92,14 +92,14 @@
 visible in the buffer.
 @item item
 A simple constant widget intended to be used in the @code{menu-choice} and
-@code{radio-button-choice} widgets. 
+@code{radio-button-choice} widgets.
 @item choice-item
 A button item only intended for use in choices.  When invoked, the user
 will be asked to select another option from the choice widget.
 @item toggle
 A simple @samp{on}/@samp{off} switch.
 @item checkbox
-A checkbox (@samp{[ ]}/@samp{[X]}). 
+A checkbox (@samp{[ ]}/@samp{[X]}).
 @item editable-list
 Create an editable list.  The user can insert or delete items in the
 list.  Each list item is itself a widget.
@@ -112,7 +112,7 @@
 meaning.  The user is not supposed to change or delete any of the text
 between the fields.  Examples of forms in Emacs are the @file{forms}
 package (of course), the customize buffers, the mail and news compose
-modes, and the @sc{html} form support in the @file{w3} browser.  
+modes, and the @sc{html} form support in the @file{w3} browser.
 
 @cindex widget library, why use it
 The advantages for a programmer of using the @code{widget} package to
@@ -120,21 +120,21 @@
 
 @enumerate
 @item
-More complex fields than just editable text are supported. 
+More complex fields than just editable text are supported.
 @item
 You can give the users immediate feedback if they enter invalid data in a
 text field, and sometimes prevent entering invalid data.
-@item 
+@item
 You can have fixed sized fields, thus allowing multiple fields to be
 lined up in columns.
 @item
-It is simple to query or set the value of a field. 
-@item 
+It is simple to query or set the value of a field.
+@item
 Editing happens in the buffer, not in the mini-buffer.
-@item 
+@item
 Packages using the library get a uniform look, making them easier for
 the user to learn.
-@item 
+@item
 As support for embedded graphics improve, the widget library will be
 extended to use the GUI features.  This means that your code using the
 widget library will also use the new graphic features automatically.
@@ -147,7 +147,7 @@
 @table @file
 @item widget.el
 This will declare the user variables, define the function
-@code{define-widget}, and autoload the function @code{widget-create}. 
+@code{define-widget}, and autoload the function @code{widget-create}.
 @item wid-edit.el
 Everything else is here, there is no reason to load it explicitly, as
 it will be autoloaded when needed.
@@ -177,7 +177,7 @@
 @b{[INS]} @b{[DEL]} @i{One}
 @b{[INS]} @b{[DEL]} @i{Eh, two?}
 @b{[INS]} @b{[DEL]} @i{Five!}
-@b{[INS]} 
+@b{[INS]}
 
 Select multiple:
 
@@ -258,7 +258,7 @@
 the example, @samp{@b{Choose}} is an option field tag.
 @item The @samp{@b{[INS]}} and @samp{@b{[DEL]}} buttons
 Activating these will insert or delete elements from an editable list.
-The list is created by the @code{editable-list} widget. 
+The list is created by the @code{editable-list} widget.
 @cindex embedded buttons
 @item Embedded Buttons
 The @samp{@b{_other work_}} is an example of an embedded
@@ -280,7 +280,7 @@
 displayed as GUI buttons when possible.
 @end table
 
-To make them easier to locate, buttons are emphasized in the buffer.  
+To make them easier to locate, buttons are emphasized in the buffer.
 
 @deffn Face widget-button-face
 Face used for buttons.
@@ -352,11 +352,11 @@
   (widget-insert "\nSee also ")
   (widget-create 'link
 		 :notify (lambda (&rest ignore)
-			   (widget-value-set widget-example-repeat 
+			   (widget-value-set widget-example-repeat
 					     '("En" "To" "Tre"))
 			   (widget-setup))
 		 "other work")
-  (widget-insert 
+  (widget-insert
     " for more information.\n\nNumbers: count to three below\n")
   (setq widget-example-repeat
 	(widget-create 'editable-list
@@ -387,7 +387,7 @@
 		 '(item "One") '(item "Another One.") '(item "A Final One."))
   (widget-insert "\n")
   (widget-create 'push-button
-		 :notify (lambda (&rest ignore) 
+		 :notify (lambda (&rest ignore)
 			   (if (= (length (widget-value widget-example-repeat))
 				  3)
 			       (message "Congratulation!")
@@ -425,8 +425,8 @@
 Delete @var{widget} and remove it from the buffer.
 @end defun
 
-@defun widget-setup 
-Set up a buffer to support widgets. 
+@defun widget-setup
+Set up a buffer to support widgets.
 
 This should be called after creating all the widgets and before allowing
 the user to edit them.
@@ -436,7 +436,7 @@
 If you want to insert text outside the widgets in the form, the
 recommended way to do that is with @code{widget-insert}.
 
-@defun widget-insert 
+@defun widget-insert
 Insert the arguments, either strings or characters, at point.
 The inserted text will be read-only.
 @end defun
@@ -492,7 +492,7 @@
 The text inside will be marked as a button.
 
 By default, the text will be shown in @code{widget-button-face}, and
-surrounded by brackets. 
+surrounded by brackets.
 
 @defopt widget-button-prefix
 String to prefix buttons.
@@ -505,7 +505,7 @@
 @item %@{
 @itemx %@}
 The text inside will be displayed with the face specified by
-@code{:sample-face}. 
+@code{:sample-face}.
 
 @item %v
 This will be replaced with the buffer representation of the widget's
@@ -528,7 +528,7 @@
 representation of the value if there is no tag.
 
 @item %%
-Insert a literal @samp{%}. 
+Insert a literal @samp{%}.
 @end table
 
 @vindex button-face@r{ keyword}
@@ -556,12 +556,12 @@
 @vindex doc@r{ keyword}
 @item :doc
 The string inserted by the @samp{%d} escape in the format
-string.  
+string.
 
 @vindex tag@r{ keyword}
 @item :tag
 The string inserted by the @samp{%t} escape in the format
-string.  
+string.
 
 @vindex tag-glyph@r{ keyword}
 @item :tag-glyph
@@ -597,7 +597,7 @@
 The function is called with two or three arguments.  The first argument
 is the widget itself, the second argument is the widget that was
 changed, and the third argument is the event leading to the change, if
-any. 
+any.
 
 @vindex menu-tag@r{ keyword}
 @item :menu-tag
@@ -639,7 +639,7 @@
 @item
 Widgets with tabbing order @code{-1} are ignored.
 
-@item 
+@item
 (Unimplemented) When on a widget with tabbing order @var{n}, go to the
 next widget in the buffer with tabbing order @var{n+1} or @code{nil},
 whichever comes first.
@@ -664,7 +664,7 @@
 @end table
 
 @deffn {User Option} widget-glyph-directory
-Directory where glyphs are found.  
+Directory where glyphs are found.
 Widget will look here for a file with the same name as specified for the
 image, with either a @file{.xpm} (if supported) or @file{.xbm} extension.
 @end deffn
@@ -675,21 +675,21 @@
 
 
 @menu
-* link::                        
-* url-link::                    
-* info-link::                   
-* push-button::                 
-* editable-field::              
-* text::                        
-* menu-choice::                 
-* radio-button-choice::         
-* item::                        
-* choice-item::                 
-* toggle::                      
-* checkbox::                    
-* checklist::                   
-* editable-list::               
-* group::                       
+* link::
+* url-link::
+* info-link::
+* push-button::
+* editable-field::
+* text::
+* menu-choice::
+* radio-button-choice::
+* item::
+* choice-item::
+* toggle::
+* checkbox::
+* checklist::
+* editable-list::
+* group::
 @end menu
 
 @node link, url-link, Basic Types, Basic Types
@@ -705,7 +705,7 @@
 
 The @var{value}, if present, is used to initialize the @code{:value}
 property.  The value should be a string, which will be inserted in the
-buffer. 
+buffer.
 
 By default the link will be shown in brackets.
 
@@ -730,7 +730,7 @@
 
 @findex browse-url-browser-function@r{, and @code{url-link} widget}
 When this link is invoked, the @sc{www} browser specified by
-@code{browse-url-browser-function} will be called with @var{url}. 
+@code{browse-url-browser-function} will be called with @var{url}.
 
 @node info-link, push-button, url-link, Basic Types
 @comment  node-name,  next,  previous,  up
@@ -744,7 +744,7 @@
 @end example
 
 When this link is invoked, the built-in Info reader is started on
-@var{address}. 
+@var{address}.
 
 @node  push-button, editable-field, info-link, Basic Types
 @comment  node-name,  next,  previous,  up
@@ -759,7 +759,7 @@
 
 The @var{value}, if present, is used to initialize the @code{:value}
 property.  The value should be a string, which will be inserted in the
-buffer. 
+buffer.
 
 By default the tag will be shown in brackets.
 
@@ -797,7 +797,7 @@
 @vindex value-face@r{ keyword}
 @item :value-face
 Face used for highlighting the editable field.  Default is
-@code{widget-field-face}, see @ref{User Interface}. 
+@code{widget-field-face}, see @ref{User Interface}.
 
 @vindex secret@r{ keyword}
 @item :secret
@@ -849,7 +849,7 @@
 
 @table @code
 @vindex void@r{ keyword}
-@item :void 
+@item :void
 Widget type used as a fallback when the value does not match any of the
 specified @var{type} arguments.
 
@@ -868,8 +868,8 @@
 The current chosen type.
 
 @vindex args@r{ keyword}
-@item :args 
-The list of types. 
+@item :args
+The list of types.
 @end table
 
 @node radio-button-choice, item, menu-choice, Basic Types
@@ -901,7 +901,7 @@
 @item %b
 Replace with the radio button.
 @item %%
-Insert a literal @samp{%}. 
+Insert a literal @samp{%}.
 @end table
 
 @vindex button-args@r{ keyword}
@@ -922,13 +922,13 @@
 The current chosen type
 
 @vindex args@r{ keyword}
-@item :args 
-The list of types. 
+@item :args
+The list of types.
 @end table
 
 You can add extra radio button items to a @code{radio-button-choice}
 widget after it has been created with the function
-@code{widget-radio-add-item}. 
+@code{widget-radio-add-item}.
 
 @defun widget-radio-add-item widget type
 Add to @code{radio-button-choice} widget @var{widget} a new radio button
@@ -969,7 +969,7 @@
 property.  The value should be a string, which will be inserted in the
 buffer as a button.  Activating the button of a @code{choice-item} is
 equivalent to activating the parent widget.  This widget will only match
-the specified value. 
+the specified value.
 
 @node toggle, checkbox, choice-item, Basic Types
 @comment  node-name,  next,  previous,  up
@@ -991,7 +991,7 @@
 @item :on
 A string representing the @samp{on} state.  By default the string
 @samp{on}.
-@item :off 
+@item :off
 A string representing the @samp{off} state.  By default the string
 @samp{off}.
 @vindex on-glyph@r{ keyword}
@@ -1047,7 +1047,7 @@
 @item %b
 Replace with the checkbox.
 @item %%
-Insert a literal @samp{%}. 
+Insert a literal @samp{%}.
 @end table
 
 @vindex greedy@r{ keyword}
@@ -1072,8 +1072,8 @@
 The widgets representing each type.
 
 @vindex args@r{ keyword}
-@item :args 
-The list of types. 
+@item :args
+The list of types.
 @end table
 
 @node editable-list, group, checklist, Basic Types
@@ -1088,7 +1088,7 @@
 @end example
 
 The value is a list, where each member represents one widget of type
-@var{type}. 
+@var{type}.
 
 The following extra properties are recognized:
 
@@ -1106,7 +1106,7 @@
 @item %d
 Insert the @b{[DEL]} button.
 @item %%
-Insert a literal @samp{%}. 
+Insert a literal @samp{%}.
 @end table
 
 @vindex insert-button-args@r{ keyword}
@@ -1147,7 +1147,7 @@
 TYPE ::= (group [KEYWORD ARGUMENT]... TYPE...)
 @end example
 
-The value is a list, with one member for each @var{type}.  
+The value is a list, with one member for each @var{type}.
 
 @node Sexp Types, Widget Properties, Basic Types, Top
 @comment
@@ -1159,10 +1159,10 @@
 categories described in this section.
 
 @menu
-* constants::                   
-* generic::                     
-* atoms::                       
-* composite::                   
+* constants::
+* generic::
+* atoms::
+* composite::
 @end menu
 
 @node constants, generic, Sexp Types, Sexp Types
@@ -1185,7 +1185,7 @@
 
 @deffn Widget const
 This will display any valid s-expression in an immutable part of the
-buffer. 
+buffer.
 @end deffn
 
 There are two variations of the @code{const} widget, namely
@@ -1218,7 +1218,7 @@
 
 @deffn Widget sexp
 This will allow you to edit any valid s-expression in an editable buffer
-field. 
+field.
 
 The @code{sexp} widget takes the same keyword arguments as the
 @code{editable-field} widget.  @xref{editable-field}.
@@ -1262,7 +1262,7 @@
 @deffn Widget file
 Allows you to edit a file name in an editable field.  If you invoke
 the tag button, you can edit the file name in the mini-buffer with
-completion. 
+completion.
 
 Keywords:
 @table @code
@@ -1353,7 +1353,7 @@
                     string string)))
 @end example
 
-The value of a widget of this type will either have the form 
+The value of a widget of this type will either have the form
 @code{(file t)} or @code{(file string string)}.
 
 This concept of inline is probably hard to understand.  It was certainly
@@ -1403,7 +1403,7 @@
 widget again.  It is enough to call @code{widget-setup} once if you
 modify multiple widgets.  This is currently only necessary if the widget
 contains an editing field, but may be necessary for other widgets in the
-future. 
+future.
 
 If your application needs to associate some information with the widget
 objects, for example a reference to the item being edited, it can be
@@ -1426,7 +1426,7 @@
 @end defun
 
 Occasionally it can be useful to know which kind of widget you have,
-i.e.@: the name of the widget type you gave when the widget was created. 
+i.e.@: the name of the widget type you gave when the widget was created.
 
 @defun widget-type widget
 Return the name of @var{widget}, a symbol.
@@ -1459,7 +1459,7 @@
 all its ancestors.
 
 @lisp
-(while widget 
+(while widget
   (widget-apply widget :activate)
   (setq widget (widget-get widget :parent)))
 @end lisp
@@ -1482,13 +1482,13 @@
 You can define specialized widgets with @code{define-widget}.  It allows
 you to create a shorthand for more complex widgets, including specifying
 component widgets and new default values for the keyword
-arguments. 
+arguments.
 
 @defun define-widget name class doc &rest args
 Define a new widget type named @var{name} from @code{class}.
 
 @var{name} and class should both be symbols, @code{class} should be one
-of the existing widget types. 
+of the existing widget types.
 
 The third argument @var{DOC} is a documentation string for the widget.
 
@@ -1517,14 +1517,14 @@
 conversions, you can use @code{identity} as your conversion function.
 
 The following additional keyword arguments are useful when defining new
-widgets: 
+widgets:
 @table @code
 @vindex convert-widget@r{ keyword}
 @item :convert-widget
 Function to convert a widget type before creating a widget of that
 type.  It takes a widget type as an argument, and returns the converted
 widget type.  When a widget is created, this function is called for the
-widget type and all the widget's parent types, most derived first. 
+widget type and all the widget's parent types, most derived first.
 
 The following predefined functions can be used here:
 
@@ -1596,9 +1596,9 @@
 @end defun
 
 @vindex value-get@r{ keyword}
-@item :value-get 
+@item :value-get
 Function to extract the value of a widget, as it is displayed in the
-buffer. 
+buffer.
 
 The following predefined function can be used here:
 
@@ -1621,7 +1621,7 @@
 @vindex action@r{ keyword}
 @item :action
 Function to handle user initiated events.  By default, @code{:notify}
-the parent. 
+the parent.
 
 The following predefined function can be used here:
 
@@ -1644,11 +1644,11 @@
 If you want to define a new widget from scratch, use the @code{default}
 widget as its base.
 
-@deffn Widget default 
-Widget used as a base for other widgets. 
+@deffn Widget default
+Widget used as a base for other widgets.
 
 It provides most of the functionality that is referred to as ``by
-default'' in this text. 
+default'' in this text.
 @end deffn
 
 @node Widget Browser, Widget Minor Mode, Defining New Widgets, Top
@@ -1683,7 +1683,7 @@
 
 There is a minor mode for manipulating widgets in major modes that
 don't provide any support for widgets themselves.  This is mostly
-intended to be useful for programmers doing experiments. 
+intended to be useful for programmers doing experiments.
 
 @deffn Command widget-minor-mode
 Toggle minor mode for traversing widgets.
@@ -1716,11 +1716,11 @@
 @cindex todo
 
 @itemize @bullet
-@item 
+@item
 It should be possible to add or remove items from a list with @kbd{C-k}
 and @kbd{C-o} (suggested by @sc{rms}).
 
-@item 
+@item
 The @samp{[INS]} and @samp{[DEL]} buttons should be replaced by a single
 dash (@samp{-}).  The dash should be a button that, when invoked, asks
 whether you want to add or delete an item (@sc{rms} wanted to git rid of
@@ -1738,9 +1738,9 @@
 
 @item
 Add commands to show overview of object and class hierarchies to the
-browser. 
+browser.
 
-@item 
+@item
 Find a way to disable mouse highlight for inactive widgets.
 
 @item
@@ -1762,10 +1762,10 @@
 Find clean way to implement variable length list.
 See @code{TeX-printer-list} for an explanation.
 
-@item 
+@item
 @kbd{C-h} in @code{widget-prompt-value} should give type specific help.
 
-@item 
+@item
 Add a @code{mailto} widget.
 @end itemize
 
--- a/man/xresources.texi	Tue Feb 04 13:30:45 2003 +0000
+++ b/man/xresources.texi	Tue Feb 04 14:56:31 2003 +0000
@@ -458,7 +458,7 @@
 
 @noindent
 (This should be one long line.)
-  
+
   It's impossible to specify a resource for all the menu-bar items
 without also specifying it for the submenus as well.  So if you want the
 submenu items to look different from the menu bar itself, you must ask
@@ -533,7 +533,7 @@
   If the Emacs installed at your site was built to use the GTK widget set,
 then the menu bar, scroll bar and the dialogs can be customized with
 the standard GTK @file{~/.gtkrc-2.0} file or with the Emacs specific
-@file{~/.emacs.d/gtkrc} file; note that these files are only for 
+@file{~/.emacs.d/gtkrc} file; note that these files are only for
 customizing specific GTK widget features.  To customize Emacs font,
 background, faces etc., use the normal X resources, see @ref{Resources}.
 
@@ -568,7 +568,7 @@
 
   If GTK at your site is installed under @var{prefix},
 the resource file syntax is fully described in the GTK API
-document 
+document
 @file{@var{prefix}/share/gtk-doc/html/gtk/gtk-resource-files.html}.
 @var{prefix} is usually @file{/usr} or @file{/usr/local}.
 You can find the same document online at
@@ -586,7 +586,7 @@
 @appendixsubsec GTK widget names
 @cindex GTK widget names
 
-  Widgets are specified by widget class or by widget name. 
+  Widgets are specified by widget class or by widget name.
 The widget class is the type of the widget, for example @code{GtkMenuBar}.
 The widget name is the name given to a specific widget within a program.
 A widget always have a class but it is not mandatory to give a name to
@@ -649,8 +649,8 @@
 @cindex GTK widget classes
 
   In Emacs the top level widget for a frame is a @code{GtkWindow} that
-contains a @code{GtkVBox}.  The @code{GtkVBox} contains the 
-@code{GtkMenuBar} and a @code{GtkFixed} widget.  
+contains a @code{GtkVBox}.  The @code{GtkVBox} contains the
+@code{GtkMenuBar} and a @code{GtkFixed} widget.
 The vertical scroll bars, @code{GtkVScrollbar},
 are contained in the @code{GtkFixed} widget.
 The text you write in Emacs is drawn in the @code{GtkFixed} widget.
@@ -669,7 +669,7 @@
 For the scroll bar, the absolute class name is:
 
 @smallexample
-widget_class 
+widget_class
   "GtkWindow.GtkVBox.GtkFixed.GtkVScrollbar"
      style "my_style"
 @end smallexample
@@ -705,7 +705,7 @@
 @end smallexample
 
   GTK absolute names are quite strange when it comes to menus
-and dialogs.  The names do not start with @samp{Emacs}, as they are 
+and dialogs.  The names do not start with @samp{Emacs}, as they are
 free-standing windows and not contained (in the GTK sense) by the
 Emacs GtkWindow.  To customize the dialogs and menus, use wildcards like this:
 
@@ -720,7 +720,7 @@
 affects Emacs but leaves other applications unaffected.
 For example, the drop down menu in the file dialog can not
 be customized by any absolute widget name, only by an absolute
-class name.  This is so because the widgets in the drop down menu does not 
+class name.  This is so because the widgets in the drop down menu does not
 have names and the menu is not contained in the Emacs GtkWindow.
 To have all menus in Emacs look the same, use this in @file{~/.emacs.d/gtkrc}:
 
@@ -766,7 +766,7 @@
   bg_pixmap[NORMAL] = "background.xpm"
   bg_pixmap[INSENSITIVE] = "background.xpm"
   bg_pixmap[ACTIVE] = "background.xpm"
-  bg_pixmap[PRELIGHT] = "<none>" 
+  bg_pixmap[PRELIGHT] = "<none>"
 
 @}
 
@@ -788,7 +788,7 @@
 This is the default state for widgets.
 @item ACTIVE
 This is the state for a widget that is ready to do something.  It is
-also for the trough of a scroll bar, i.e.  @code{bg[ACTIVE] = "red"} 
+also for the trough of a scroll bar, i.e.  @code{bg[ACTIVE] = "red"}
 sets the scroll bar trough to red.  Buttons that have been pressed but
 not released yet (``armed'') are in this state.
 @item PRELIGHT
@@ -817,7 +817,7 @@
 
 @item base[@var{state}] = @var{color}
 This is the background color for editable text.
-In Emacs, this color is used for the background of the text fields in the 
+In Emacs, this color is used for the background of the text fields in the
 file dialog.
 
 @item bg_pixmap[@var{state}] = "@var{pixmap}"
@@ -844,7 +844,7 @@
 scroll bar.  For editable text, use @code{text}.
 
 @item text[@var{state}] = @var{color}
-This is the color for editable text.  In Emacs, this color is used for the 
+This is the color for editable text.  In Emacs, this color is used for the
 text fields in the file dialog.
 
 @item font_name = "@var{font}"
@@ -861,7 +861,7 @@
 
 @noindent
 A hexadecimal form is written within double quotes.  There are four forms,
-@code{#rrrrggggbbbb}, @code{#rrrgggbbb}, 
+@code{#rrrrggggbbbb}, @code{#rrrgggbbb},
 @code{#rrggbb}, or @code{#rgb}.  In each of these r, g and b are hex digits.
 
 @noindent
--- a/msdos/ChangeLog	Tue Feb 04 13:30:45 2003 +0000
+++ b/msdos/ChangeLog	Tue Feb 04 14:56:31 2003 +0000
@@ -11,7 +11,7 @@
 
 2002-03-20  Eli Zaretskii  <eliz@is.elta.co.il>
 
-	* mainmake.v2 (bootstrap-lisp-1, bootstrap-lisp, bootstrap-src) 
+	* mainmake.v2 (bootstrap-lisp-1, bootstrap-lisp, bootstrap-src)
 	(bootstrap-clean-before, bootstrap-clean-after): Return to the
 	top-level directory after sub-make.
 	(bootstrap-lisp): Pass an absolute file name as value of ${lisp}.
@@ -25,8 +25,8 @@
 	* sed1v2.inp: Edit the bootstrap-* targets.  Fix the mostlyclean
 	target.
 
-	* mainmake.v2 (maybe_bootstrap, bootstrap, bootstrap-lisp-1) 
-	(bootstrap-lisp, bootstrap-src, bootstrap-clean-before) 
+	* mainmake.v2 (maybe_bootstrap, bootstrap, bootstrap-lisp-1)
+	(bootstrap-lisp, bootstrap-src, bootstrap-clean-before)
 	(bootstrap-clean-after): New targets.
 	(all): Depend on maybe_bootstrap.
 
@@ -68,7 +68,7 @@
 2001-10-05  Gerd Moellmann  <gerd@gnu.org>
 
 	* Branch for 21.1.
-	
+
 2001-07-20  Eli Zaretskii  <eliz@is.elta.co.il>
 
 	* mainmake.v2 (install): Create site-lisp/subdirs.el if it is not
@@ -346,10 +346,10 @@
 	* sed1.inp: Replace `make-docfile' with `make-doc.exe'.  In case
 	src/Makefile needs to rebuild `make-doc.exe', use one command per line.
 	Undo the previous change.
-	
+
 1996-04-15  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
 
-	* sed1.inp: Change make-docfile to make-doc.exe in a second place. 
+	* sed1.inp: Change make-docfile to make-doc.exe in a second place.
 
 1996-04-15  Eli Zaretskii  <eliz@is.elta.co.il>
 
@@ -357,7 +357,7 @@
 	a long sed command line (some versions of Sed don't handle that).
 	(gdb): Merged back into src, undoing April 13 change.
 	(install): Do use if statements, but not a loop.
-	
+
 1996-04-13  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
 
 	* mainmake.v2 (gdb): New target, broken out of src.
@@ -515,7 +515,7 @@
 	to terra@diku.dk, but be prepared to sign a copyright disclaimer.
 	(This file contains non-printable characters.)
 
-	* sed3.inp: New file for changing lib-src/makefile.in into 
+	* sed3.inp: New file for changing lib-src/makefile.in into
 	lib-src/makefile.
 
 	* sed2.inp: New file for changing src/config.h-in into src/config.h
--- a/msdos/mainmake	Tue Feb 04 13:30:45 2003 +0000
+++ b/msdos/mainmake	Tue Feb 04 14:56:31 2003 +0000
@@ -29,14 +29,14 @@
 #      with them.
 #
 #      Delete `.dvi' files here if they are not part of the distribution.
-# 
+#
 # make distclean
 #      Delete all files from the current directory that are created by
 #      configuring or building the program.  If you have unpacked the
 #      source and built the program without creating any other files,
 #      `make distclean' should leave only the files that were in the
 #      distribution.
-# 
+#
 # make realclean
 #      Delete everything from the current directory that can be
 #      reconstructed with this Makefile.  This typically includes
--- a/msdos/mainmake.v2	Tue Feb 04 13:30:45 2003 +0000
+++ b/msdos/mainmake.v2	Tue Feb 04 14:56:31 2003 +0000
@@ -32,14 +32,14 @@
 #      with them.
 #
 #      Delete `.dvi' files here if they are not part of the distribution.
-# 
+#
 # make distclean
 #      Delete all files from the current directory that are created by
 #      configuring or building the program.  If you have unpacked the
 #      source and built the program without creating any other files,
 #      `make distclean' should leave only the files that were in the
 #      distribution.
-# 
+#
 # make realclean
 #      Delete everything from the current directory that can be
 #      reconstructed with this Makefile.  This typically includes
--- a/nt/INSTALL	Tue Feb 04 13:30:45 2003 +0000
+++ b/nt/INSTALL	Tue Feb 04 14:56:31 2003 +0000
@@ -7,7 +7,7 @@
   If you used WinZip to unpack the distribution, we suggest to
   remove the files and unpack again with a different program!
   WinZip is known to create some subtle and hard to debug problems,
-  such as converting files to DOS CR-LF format, not creating empty 
+  such as converting files to DOS CR-LF format, not creating empty
   directories, etc.  We suggest to use djtarnt.exe from the GNU FTP
   site.
 
@@ -35,7 +35,7 @@
   In addition, using 4NT as your shell is known to fail the build process,
   at least for 4NT version 3.01.  Use cmd.exe, the default NT shell,
   instead.
- 
+
                                          sh exists     no sh
 
     cygwin b20.1 make (3.75):            fails[1, 5]   fails[2, 5]
@@ -46,7 +46,7 @@
     cygwin compiled gmake 3.77:          fails[1, 5]   fails[2, 5]
     cygwin compiled make 3.78.1:         fails[5]      fails[2, 5]
     cygwin compiled make 3.79.1:         fails[3, 5]   fails[2?, 5]
-    mingw32 compiled make 3.79.1:        okay          okay 
+    mingw32 compiled make 3.79.1:        okay          okay
 
   Notes:
 
--- a/nt/addpm.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/nt/addpm.c	Tue Feb 04 14:56:31 2003 +0000
@@ -32,7 +32,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-HDDEDATA CALLBACK 
+HDDEDATA CALLBACK
 DdeCallback (UINT uType, UINT uFmt, HCONV hconv,
 	     HSZ hsz1, HSZ hsz2, HDDEDATA hdata,
 	     DWORD dwData1, DWORD dwData2)
@@ -50,8 +50,8 @@
 {
   char *name;
   char *value;
-} 
-env_vars[] = 
+}
+env_vars[] =
 {
   {"emacs_dir", NULL},
   {"EMACSLOADPATH", "%emacs_dir%/site-lisp;%emacs_dir%/../site-lisp;%emacs_dir%/lisp;%emacs_dir%/leim"},
@@ -65,7 +65,7 @@
   {"TERM", "cmd"}
 };
 
-BOOL 
+BOOL
 add_registry (path)
      char *path;
 {
@@ -73,39 +73,39 @@
   DWORD dwDisp;
   int i;
   BOOL ok = TRUE;
-  
-  /* Check both the current user and the local machine to see if we 
+
+  /* Check both the current user and the local machine to see if we
      have any resources.  */
-  
+
   if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, REG_ROOT,
 		      0, "", REG_OPTION_NON_VOLATILE,
-		      KEY_WRITE, NULL, &hrootkey, &dwDisp) != ERROR_SUCCESS 
+		      KEY_WRITE, NULL, &hrootkey, &dwDisp) != ERROR_SUCCESS
       && RegCreateKeyEx (HKEY_CURRENT_USER, REG_ROOT,
 			 0, "", REG_OPTION_NON_VOLATILE,
 			 KEY_WRITE, NULL, &hrootkey, &dwDisp) != ERROR_SUCCESS)
     {
       return FALSE;
     }
-  
-  for (i = 0; i < (sizeof (env_vars) / sizeof (env_vars[0])); i++) 
+
+  for (i = 0; i < (sizeof (env_vars) / sizeof (env_vars[0])); i++)
     {
       char * value = env_vars[i].value ? env_vars[i].value : path;
-	
+
       if (RegSetValueEx (hrootkey, env_vars[i].name,
 			 0, REG_EXPAND_SZ,
 			 value, lstrlen (value) + 1) != ERROR_SUCCESS)
 	ok = FALSE;
-    }			      
-  
+    }
+
   RegCloseKey (hrootkey);
-  
+
   return (ok);
 }
 
 int
 main (argc, argv)
      int argc;
-     char *argv[];			
+     char *argv[];
 {
   DWORD idDde = 0;
   HCONV HConversation;
--- a/nt/addsection.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/nt/addsection.c	Tue Feb 04 14:56:31 2003 +0000
@@ -67,17 +67,17 @@
 
   file = CreateFile (filename, GENERIC_READ, FILE_SHARE_READ, NULL,
 		     OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
-  if (file == INVALID_HANDLE_VALUE) 
+  if (file == INVALID_HANDLE_VALUE)
     return FALSE;
 
   size = GetFileSize (file, &upper_size);
-  file_mapping = CreateFileMapping (file, NULL, PAGE_READONLY, 
+  file_mapping = CreateFileMapping (file, NULL, PAGE_READONLY,
 				    0, size, NULL);
-  if (!file_mapping) 
+  if (!file_mapping)
     return FALSE;
 
   file_base = MapViewOfFile (file_mapping, FILE_MAP_READ, 0, 0, size);
-  if (file_base == 0) 
+  if (file_base == 0)
     return FALSE;
 
   p_file->name = filename;
@@ -98,18 +98,18 @@
 
   file = CreateFile (filename, GENERIC_READ | GENERIC_WRITE, 0, NULL,
 		     CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
-  if (file == INVALID_HANDLE_VALUE) 
+  if (file == INVALID_HANDLE_VALUE)
     return FALSE;
 
-  file_mapping = CreateFileMapping (file, NULL, PAGE_READWRITE, 
+  file_mapping = CreateFileMapping (file, NULL, PAGE_READWRITE,
 				    0, size, NULL);
-  if (!file_mapping) 
+  if (!file_mapping)
     return FALSE;
-  
+
   file_base = MapViewOfFile (file_mapping, FILE_MAP_WRITE, 0, 0, size);
-  if (file_base == 0) 
+  if (file_base == 0)
     return FALSE;
-  
+
   p_file->name = filename;
   p_file->size = size;
   p_file->file = file;
@@ -270,7 +270,7 @@
 
 
 static void
-copy_executable_and_add_section (file_data *p_infile, 
+copy_executable_and_add_section (file_data *p_infile,
 				 file_data *p_outfile,
 				 char *new_section_name,
 				 DWORD new_section_size)
@@ -314,10 +314,10 @@
      Note that dst is updated implicitly by each COPY_CHUNK.  */
 
   dos_header = (PIMAGE_DOS_HEADER) p_infile->file_base;
-  nt_header = (PIMAGE_NT_HEADERS) (((unsigned long) dos_header) + 
+  nt_header = (PIMAGE_NT_HEADERS) (((unsigned long) dos_header) +
 				   dos_header->e_lfanew);
   section = IMAGE_FIRST_SECTION (nt_header);
- 
+
   dst = (unsigned char *) p_outfile->file_base;
 
   COPY_CHUNK ("Copying DOS header...", dos_header,
@@ -477,7 +477,7 @@
   /* Open the undumped executable file.  */
   if (!open_input_file (&in_file, in_filename))
     {
-      printf ("Failed to open %s (%d)...bailing.\n", 
+      printf ("Failed to open %s (%d)...bailing.\n",
 	      in_filename, GetLastError ());
       exit (1);
     }
@@ -491,7 +491,7 @@
     * nt_header->FileHeader.NumberOfSections;
   if (!open_output_file (&out_file, out_filename, size))
     {
-      printf ("Failed to open %s (%d)...bailing.\n", 
+      printf ("Failed to open %s (%d)...bailing.\n",
 	      out_filename, GetLastError ());
       exit (1);
     }
--- a/nt/cmdproxy.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/nt/cmdproxy.c	Tue Feb 04 14:56:31 2003 +0000
@@ -230,7 +230,7 @@
   int i, rc;
 
   /* Search the directory for the program.  */
-  for (i = 0; i < n_exts; i++) 
+  for (i = 0; i < n_exts; i++)
     {
       rc = SearchPath (dir, exec, exts[i], bufsize, buffer, &dummy);
       if (rc > 0)
@@ -240,7 +240,7 @@
   return 0;
 }
 
-/* Return the absolute name of executable file PROG, including 
+/* Return the absolute name of executable file PROG, including
    any file extensions.  If an absolute name for PROG cannot be found,
    return NULL.  */
 char *
@@ -272,18 +272,18 @@
 	return NULL;
     }
 
-  if (GetCurrentDirectory (MAX_PATH, curdir) <= 0) 
+  if (GetCurrentDirectory (MAX_PATH, curdir) <= 0)
     return NULL;
 
   /* Relative path; search in current dir. */
-  if (strpbrk (prog, "\\")) 
+  if (strpbrk (prog, "\\"))
     {
       if (search_dir (curdir, prog, MAX_PATH, absname) > 0)
 	return strdup (absname);
-      else 
+      else
 	return NULL;
     }
-  
+
   /* Just filename; search current directory then PATH.  */
   path = alloca (strlen (getenv ("PATH")) + strlen (curdir) + 2);
   strcpy (path, curdir);
@@ -304,7 +304,7 @@
 
       /* Move to the next directory.  */
       path = p + 1;
-    } 
+    }
 
   return NULL;
 }
@@ -322,7 +322,7 @@
   char * cmdline = GetCommandLine ();
   int arg_bytes = 0;
 
-  
+
 }
 #endif
 
@@ -384,7 +384,7 @@
   sec_attrs.nLength = sizeof (sec_attrs);
   sec_attrs.lpSecurityDescriptor = NULL;
   sec_attrs.bInheritHandle = FALSE;
-  
+
   memset (&start, 0, sizeof (start));
   start.cb = sizeof (start);
 
--- a/nt/config.nt	Tue Feb 04 13:30:45 2003 +0000
+++ b/nt/config.nt	Tue Feb 04 14:56:31 2003 +0000
@@ -20,7 +20,7 @@
 
 
 /* No code in Emacs #includes config.h twice, but some of the code
-   intended to work with other packages as well (like gmalloc.c) 
+   intended to work with other packages as well (like gmalloc.c)
    think they can include it as many times as they like.  */
 #ifndef EMACS_CONFIG_H
 #define EMACS_CONFIG_H
@@ -288,7 +288,7 @@
    configuration names to use for them.
 
    See s/template.h for documentation on writing s/SYSTEM.h files.  */
-#undef config_opsysfile 
+#undef config_opsysfile
 #include "s/ms-w32.h"
 
 /* The configuration script defines machfile to be the name of the
--- a/nt/ddeclient.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/nt/ddeclient.c	Tue Feb 04 14:56:31 2003 +0000
@@ -23,7 +23,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-HDDEDATA CALLBACK 
+HDDEDATA CALLBACK
 DdeCallback (UINT uType, UINT uFmt, HCONV hconv,
 	     HSZ hsz1, HSZ hsz2, HDDEDATA hdata,
 	     DWORD dwData1, DWORD dwData2)
--- a/nt/gmake.defs	Tue Feb 04 13:30:45 2003 +0000
+++ b/nt/gmake.defs	Tue Feb 04 14:56:31 2003 +0000
@@ -1,17 +1,17 @@
 #
 #  Makefile definition file for building GNU Emacs on the Microsoft W32 API.
 #  Copyright (c) 2000-2001 Free Software Foundation, Inc.
-#  
+#
 #  GNU Emacs is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
 #  the Free Software Foundation; either version 2, or (at your option)
 #  any later version.
-#  
+#
 #  GNU Emacs is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU General Public License for more details.
-#  
+#
 #  You should have received a copy of the GNU General Public License
 #  along with GNU Emacs; see the file COPYING.  If not, write to
 #  the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
@@ -21,7 +21,7 @@
 all:
 
 # NOTES
-# 
+#
 # I tried to force gmake to use the native shell for simplicity, by
 # setting SHELL as below, but this didn't work reliably because of
 # various case sensitivity niggles.  Specifically, COMSPEC (which is in
@@ -31,7 +31,7 @@
 # thinks it doesn't exist (unless compiled with a switch to ignore
 # case), and so doesn't change which shell it will invoke to execute
 # commands.
-# 
+#
 # It would be possible, though very tedious using just gmake facilities,
 # to convert the COMSPEC value to uppercase to solve this problem, but
 # it isn't worth it.  That is partly because, even when using the native
@@ -46,14 +46,14 @@
 # mandate that rm and cp be available, so we can use Unix-format file
 # names everywhere.  (Fortunately both MS and GNU make, and the
 # respective compilers, are happy with Unix-format names.)
-# 
+#
 # Since we cannot easily force the choice of a particular shell, we must
 # make the effort to cope with whichever shell is being used.
 # Fortunately, the only command we need to use that is shell specific is
 # the testing of a file's existence for the purpose of working out when
 # we are copying files to their original location.  That particular
 # requirement is abstracted easily enough.
-# 
+#
 # The only other problem area was the change of directory when running
 # temacs to dump emacs.exe (where gmake doesn't support cd foo in any
 # useful way), but that has been resolved by modifying the Windows
@@ -117,7 +117,7 @@
 export EMACSLOADPATH
 
 # Determine the architecture we're running on.
-# Define ARCH for our purposes; 
+# Define ARCH for our purposes;
 # Define CPU for use by ntwin32.mak;
 # Define CONFIG_H to the appropriate config.h for the system;
 #
@@ -162,8 +162,8 @@
 RC_OUT		= -o$(SPACE)
 RC_INCLUDE	= --include-dir$(SPACE)
 
-libc		= 
-baselibs	= 
+libc		=
+baselibs	=
 O		= o
 A		= a
 
@@ -181,7 +181,7 @@
 ifdef NOOPT
 DEBUG_CFLAGS	= -DEMACSDEBUG
 else
-DEBUG_CFLAGS	= 
+DEBUG_CFLAGS	=
 endif
 CFLAGS          = -I. -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0400 $(ARCH_CFLAGS) -D$(ARCH) \
 		  -D_CRTAPI1=_cdecl \
@@ -238,7 +238,7 @@
 endif
 
 ifdef NODEBUG
-DEBUG_FLAG = 
+DEBUG_FLAG =
 DEBUG_LINK =
 else
 DEBUG_FLAG = -g
--- a/nt/inc/sys/time.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/nt/inc/sys/time.h	Tue Feb 04 14:56:31 2003 +0000
@@ -5,12 +5,12 @@
  * sys/time.h doesn't exist on NT
  */
 
-struct timeval 
+struct timeval
   {
     long tv_sec;	/* seconds */
     long tv_usec;	/* microseconds */
   };
-struct timezone 
+struct timezone
   {
     int	tz_minuteswest;	/* minutes west of Greenwich */
     int	tz_dsttime;	/* type of dst correction */
--- a/nt/makefile.def	Tue Feb 04 13:30:45 2003 +0000
+++ b/nt/makefile.def	Tue Feb 04 14:56:31 2003 +0000
@@ -1,17 +1,17 @@
 #
 #  Makefile definition file for building GNU Emacs on Windows NT
 #  Copyright (c) 1994-2001 Free Software Foundation, Inc.
-#  
+#
 #  GNU Emacs is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
 #  the Free Software Foundation; either version 2, or (at your option)
 #  any later version.
-#  
+#
 #  GNU Emacs is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU General Public License for more details.
-#  
+#
 #  You should have received a copy of the GNU General Public License
 #  along with GNU Emacs; see the file COPYING.  If not, write to
 #  the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
@@ -63,7 +63,7 @@
 !endif
 
 # Determine the architecture we're running on.
-# Define ARCH for our purposes; 
+# Define ARCH for our purposes;
 # Define CPU for use by ntwin32.mak;
 # Define CONFIG_H to the appropriate config.h for the system;
 #
@@ -100,8 +100,8 @@
 
 # Include ntwin32.mak.  So far, this file seems to be supported by every
 # Microsoft compiler on NT and Windows 95 and properly defines the executable
-# names and libraries necessary to build Emacs.  I do not have access 
-# to any other vendor compilers, so I do not know if they supply this 
+# names and libraries necessary to build Emacs.  I do not have access
+# to any other vendor compilers, so I do not know if they supply this
 # file, too.  For now I'll assume that they do.
 #
 !include <ntwin32.mak>
--- a/nt/makefile.nt	Tue Feb 04 13:30:45 2003 +0000
+++ b/nt/makefile.nt	Tue Feb 04 14:56:31 2003 +0000
@@ -3,17 +3,17 @@
 #  Copyright (c) 1993-2000 Free Software Foundation, Inc.
 #
 #  This file is part of GNU Emacs.
-#  
+#
 #  GNU Emacs is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
 #  the Free Software Foundation; either version 2, or (at your option)
 #  any later version.
-#  
+#
 #  GNU Emacs is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU General Public License for more details.
-#  
+#
 #  You should have received a copy of the GNU General Public License
 #  along with GNU Emacs; see the file COPYING.  If not, write to
 #  the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
@@ -130,7 +130,7 @@
 		$(INSTALL_CMD)
 		cd ..\leim
 		if exist makefile.nt $(INSTALL_CMD)
-		cd ..\nt		
+		cd ..\nt
 		- $(CP) $(BLD)\addpm.exe $(INSTALL_DIR)\bin
 		- $(CP) $(BLD)\ddeclient.exe $(INSTALL_DIR)\bin
 		- $(CP) $(BLD)\cmdproxy.exe $(INSTALL_DIR)\bin
@@ -187,7 +187,7 @@
 
 #
 # Maintenance
-# 
+#
 CLEAN_CMD	= $(MAKE) -f makefile.nt clean
 clean:
 		- $(DEL) *~ *.pdb
--- a/nt/makefile.w32-in	Tue Feb 04 13:30:45 2003 +0000
+++ b/nt/makefile.w32-in	Tue Feb 04 14:56:31 2003 +0000
@@ -4,17 +4,17 @@
 #  Top level makefile for building GNU Emacs on Windows NT
 #
 #  This file is part of GNU Emacs.
-#  
+#
 #  GNU Emacs is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
 #  the Free Software Foundation; either version 2, or (at your option)
 #  any later version.
-#  
+#
 #  GNU Emacs is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU General Public License for more details.
-#  
+#
 #  You should have received a copy of the GNU General Public License
 #  along with GNU Emacs; see the file COPYING.  If not, write to
 #  the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
@@ -216,7 +216,7 @@
 
 #
 # Maintenance
-# 
+#
 clean:	clean-other-dirs-$(MAKETYPE)
 	- $(DEL) *~ $(COMPILER_TEMP_FILES)
 	- $(DEL_TREE) $(OBJDIR)
--- a/nt/nmake.defs	Tue Feb 04 13:30:45 2003 +0000
+++ b/nt/nmake.defs	Tue Feb 04 14:56:31 2003 +0000
@@ -1,17 +1,17 @@
 #
 #  Makefile definition file for building GNU Emacs on the Microsoft W32 API.
 #  Copyright (c) 2000-2001 Free Software Foundation, Inc.
-#  
+#
 #  GNU Emacs is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
 #  the Free Software Foundation; either version 2, or (at your option)
 #  any later version.
-#  
+#
 #  GNU Emacs is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU General Public License for more details.
-#  
+#
 #  You should have received a copy of the GNU General Public License
 #  along with GNU Emacs; see the file COPYING.  If not, write to
 #  the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
@@ -64,7 +64,7 @@
 !endif
 
 # Determine the architecture we're running on.
-# Define ARCH for our purposes; 
+# Define ARCH for our purposes;
 # Define CPU for use by ntwin32.mak;
 # Define CONFIG_H to the appropriate config.h for the system;
 #
@@ -110,7 +110,7 @@
 RC_INCLUDE	= -i
 
 libc		= libc.lib
-baselibs	= 
+baselibs	=
 O		= obj
 A		= lib
 
@@ -128,7 +128,7 @@
 !ifdef NOOPT
 DEBUG_CFLAGS	= -DEMACSDEBUG
 !else
-DEBUG_CFLAGS	= 
+DEBUG_CFLAGS	=
 !endif
 CFLAGS          = -I. -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0400 $(ARCH_CFLAGS) -D$(ARCH) \
 		  -D_CRTAPI1=_cdecl $(DEBUG_CFLAGS) $(USER_CFLAGS) $(LOCAL_FLAGS)
@@ -166,8 +166,8 @@
 DEL_TREE	= rm -r
 
 !ifdef NODEBUG
-DEBUG_FLAG = 
-DEBUG_LINK = 
+DEBUG_FLAG =
+DEBUG_LINK =
 !else
 DEBUG_FLAG = -Zi
 DEBUG_LINK = -debug:full -debugtype:both
--- a/nt/preprep.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/nt/preprep.c	Tue Feb 04 14:56:31 2003 +0000
@@ -67,17 +67,17 @@
 
   file = CreateFile (filename, GENERIC_READ, FILE_SHARE_READ, NULL,
 		     OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
-  if (file == INVALID_HANDLE_VALUE) 
+  if (file == INVALID_HANDLE_VALUE)
     return FALSE;
 
   size = GetFileSize (file, &upper_size);
-  file_mapping = CreateFileMapping (file, NULL, PAGE_READONLY, 
+  file_mapping = CreateFileMapping (file, NULL, PAGE_READONLY,
 				    0, size, NULL);
-  if (!file_mapping) 
+  if (!file_mapping)
     return FALSE;
 
   file_base = MapViewOfFile (file_mapping, FILE_MAP_READ, 0, 0, size);
-  if (file_base == 0) 
+  if (file_base == 0)
     return FALSE;
 
   p_file->name = filename;
@@ -98,18 +98,18 @@
 
   file = CreateFile (filename, GENERIC_READ | GENERIC_WRITE, 0, NULL,
 		     CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
-  if (file == INVALID_HANDLE_VALUE) 
+  if (file == INVALID_HANDLE_VALUE)
     return FALSE;
 
-  file_mapping = CreateFileMapping (file, NULL, PAGE_READWRITE, 
+  file_mapping = CreateFileMapping (file, NULL, PAGE_READWRITE,
 				    0, size, NULL);
-  if (!file_mapping) 
+  if (!file_mapping)
     return FALSE;
-  
+
   file_base = MapViewOfFile (file_mapping, FILE_MAP_WRITE, 0, 0, size);
-  if (file_base == 0) 
+  if (file_base == 0)
     return FALSE;
-  
+
   p_file->name = filename;
   p_file->size = size;
   p_file->file = file;
@@ -129,17 +129,17 @@
 
   file = CreateFile (filename, GENERIC_READ | GENERIC_WRITE, 0, NULL,
 		     OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
-  if (file == INVALID_HANDLE_VALUE) 
+  if (file == INVALID_HANDLE_VALUE)
     return FALSE;
 
   size = GetFileSize (file, &upper_size);
   file_mapping = CreateFileMapping (file, NULL, PAGE_READWRITE,
 				    0, size, NULL);
-  if (!file_mapping) 
+  if (!file_mapping)
     return FALSE;
 
   file_base = MapViewOfFile (file_mapping, FILE_MAP_WRITE, 0, 0, size);
-  if (file_base == 0) 
+  if (file_base == 0)
     return FALSE;
 
   p_file->name = filename;
@@ -341,7 +341,7 @@
    easy to parse.  */
 
 static void
-copy_executable_and_move_sections (file_data *p_infile, 
+copy_executable_and_move_sections (file_data *p_infile,
 				   file_data *p_outfile)
 {
   unsigned char *dst;
@@ -389,10 +389,10 @@
      Note that dst is updated implicitly by each COPY_CHUNK.  */
 
   dos_header = (PIMAGE_DOS_HEADER) p_infile->file_base;
-  nt_header = (PIMAGE_NT_HEADERS) (((unsigned long) dos_header) + 
+  nt_header = (PIMAGE_NT_HEADERS) (((unsigned long) dos_header) +
 				   dos_header->e_lfanew);
   section = IMAGE_FIRST_SECTION (nt_header);
- 
+
   import_dir = &nt_header->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT];
   import_section = rva_to_section (import_dir->VirtualAddress, nt_header);
 
@@ -776,7 +776,7 @@
   /* Open the original (dumped) executable file for reference.  */
   if (!open_input_file (&in_file, in_filename))
     {
-      printf ("Failed to open %s (%d)...bailing.\n", 
+      printf ("Failed to open %s (%d)...bailing.\n",
 	      in_filename, GetLastError ());
       exit (1);
     }
@@ -786,7 +786,7 @@
      which should fit in the alignment slop.  */
   if (!open_output_file (&out_file, out_filename, in_file.size))
     {
-      printf ("Failed to open %s (%d)...bailing.\n", 
+      printf ("Failed to open %s (%d)...bailing.\n",
 	      out_filename, GetLastError ());
       exit (1);
     }
--- a/oldXMenu/Activate.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/Activate.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1,4 +1,4 @@
-/* $Header: /cvsroot/emacs//emacs/oldXMenu/Activate.c,v 1.3 2000/07/21 14:36:24 gerd Exp $ */
+/* $Header: /cvs/emacs/oldXMenu/Activate.c,v 1.4 2002/04/22 18:27:03 jhd Exp $ */
 /* Copyright    Massachusetts Institute of Technology    1985	*/
 
 #include "copyright.h"
@@ -28,7 +28,7 @@
  *
  *			1)	If at any time an error occurs the data
  *				pointer is left untouched and XM_FAILURE
- *				is returned.  
+ *				is returned.
  *
  *			2)	When a selection request is received (i.e.,
  *				when the specified mouse event occurs) the
@@ -42,7 +42,7 @@
  *				will be left untouched and XM_NO_SELECT will
  *				be returned.
  *
- *			4)	If the selection that was current at the time 
+ *			4)	If the selection that was current at the time
  *				a selection request is made is not an active
  *				selection the data pointer will be left
  *				untouched and XM_IA_SELECT will be returned.
@@ -131,7 +131,7 @@
 
     XMEventQue *feq = NULL;    		/* Foreign event queue. */
     XMEventQue *feq_tmp;		/* Foreign event queue temporary. */
-    
+
     /*
      * If there are no panes in the menu then return failure
      * because the menu is not initialized.
@@ -162,14 +162,14 @@
      * Compute origin of menu so that cursor is in
      * Correct pane and selection.
      */
-    _XMTransToOrigin(display, 
-		     menu, 
-		     cur_p, cur_s, 
-		     x_pos, y_pos, 
+    _XMTransToOrigin(display,
+		     menu,
+		     cur_p, cur_s,
+		     x_pos, y_pos,
 		     &orig_x, &orig_y);
     menu->x_pos = orig_x;	/* Store X and Y coords of menu. */
     menu->y_pos = orig_y;
-    
+
     if (XMenuRecompute(display, menu) == XM_FAILURE) {
 	return(XM_FAILURE);
     }
@@ -212,11 +212,11 @@
      * not provided an event handler.
      */
     XSync(display, 0);
-    
+
     /*
      * Grab the mouse for menu input.
      */
-    
+
     status = XGrabPointer(
 			  display,
 			  menu->parent,
@@ -239,7 +239,7 @@
         if (status != Success)
           XUngrabPointer(display, CurrentTime);
       }
-    
+
     if (status == _X_FAILURE) {
 	_XMErrorCode = XME_GRAB_MOUSE;
 	return(XM_FAILURE);
@@ -250,7 +250,7 @@
      */
     XMapWindow(display, cur_p->window);
     for (p_ptr = menu->p_list->next;
-	 p_ptr != cur_p; 
+	 p_ptr != cur_p;
 	 p_ptr = p_ptr->next)
       XMapWindow(display, p_ptr->window);
     for (p_ptr = cur_p->next;
@@ -260,7 +260,7 @@
 
     XRaiseWindow(display, cur_p->window);	/* Make sure current */
 						/* pane is on top. */
-    
+
     cur_s = NULL;			/* Clear current selection. */
 
     /*
@@ -271,7 +271,7 @@
 	switch (event.type) {		/* Dispatch on the event type. */
     case Expose:
 	    event_xmp = (XMPane *)XLookUpAssoc(display,
-					       menu->assoc_tab, 
+					       menu->assoc_tab,
 					       event.xexpose.window);
 	    if (event_xmp == NULL) {
 		/*
@@ -292,7 +292,7 @@
 	    }
 	    if (event_xmp->activated) {
 		XSetWindowBackground(display,
-				     event_xmp->window, 
+				     event_xmp->window,
 				     menu->bkgnd_color);
 	    }
 	    else {
@@ -303,13 +303,13 @@
 	    _XMRefreshPane(display, menu, event_xmp);
 	    break;
     case EnterNotify:
-	    /* 
+	    /*
 	     * First wait a small period of time, and see
 	     * if another EnterNotify event follows hard on the
 	     * heels of this one. i.e., the user is simply
 	     * "passing through". If so, ignore this one.
 	     */
-	
+
 	    event_xmw = (XMWindow *)XLookUpAssoc(display,
 						 menu->assoc_tab,
 						 event.xcrossing.window);
@@ -324,11 +324,11 @@
 		    if(peek_event.type == LeaveNotify) {
 			break;
 		    }
-		}			  
+		}
 		cur_s = (XMSelect *)event_xmw;
 		help_callback (cur_s->help_string,
 			       cur_p->serial, cur_s->serial);
-		
+
 		/*
 		 * If the pane we are in is active and the
 		 * selection entered is active then activate
@@ -385,7 +385,7 @@
 		 * take it from here.  -- caveh@eng.sun.com.
 		 */
 		XSetWindowBackground(display,
-				     event_xmp->window, 
+				     event_xmp->window,
 				     menu->bkgnd_color);
 		_XMRefreshPane(display, menu, event_xmp);
 #endif
@@ -400,7 +400,7 @@
 						 );
 	    if (event_xmw == NULL) break;
 	    if(cur_s == NULL) break;
-	    
+
 	    /*
 	     * If the current selection was activated then
 	     * deactivate it.
@@ -411,7 +411,7 @@
 	    }
 	    cur_s = NULL;
 	    break;
-	
+
     case ButtonPress:
     case ButtonRelease:
 		*p_num = cur_p->serial;
@@ -471,7 +471,7 @@
      */
     for ( p_ptr = menu->p_list->next;
 	 p_ptr != menu->p_list;
-	 p_ptr = p_ptr->next) 
+	 p_ptr = p_ptr->next)
       {
 	  XUnmapWindow(display, p_ptr->window);
       }
@@ -482,7 +482,7 @@
     XUngrabPointer(display, CurrentTime);
     XUngrabKeyboard(display, CurrentTime);
 
-    /* 
+    /*
      * Restore bits under where the menu was if we managed
      * to save them and free the pixmap.
      */
@@ -502,7 +502,7 @@
      * Synchronize the X buffers and the X event queue.
      */
     XSync(display, 0);
-    
+
     /*
      * Dispatch any events remaining on the queue.
      */
@@ -557,7 +557,7 @@
 	feq = feq_tmp->next;
 	free((char *)feq_tmp);
     }
-    
+
     /*
      * Return successfully.
      */
--- a/oldXMenu/AddPane.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/AddPane.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 #include "copyright.h"
 
-/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/AddPane.c,v 1.1 1992/04/11 22:10:17 jimb Exp $ */
+/* $Header: /cvs/emacs/oldXMenu/AddPane.c,v 1.1 1999/10/03 19:34:51 fx Exp $ */
 /* Copyright    Massachusetts Institute of Technology    1985	*/
 
 /*
@@ -18,14 +18,14 @@
 
 int
 XMenuAddPane(display, menu, label, active)
-    Display *display;           
+    Display *display;
     register XMenu *menu;	/* Menu object to be modified. */
     register char *label;	/* Selection label. */
     int active;			/* Make selection active? */
 {
     register XMPane *pane;	/* Newly created pane. */
     register XMSelect *select;	/* Initial selection for the new pane. */
-        
+
     int label_length;		/* Label length in characters. */
     int label_width;		/* Label width in pixels. */
 
@@ -50,7 +50,7 @@
 	_XMErrorCode = XME_CALLOC;
 	return(XM_FAILURE);
     }
-    
+
     /*
      * Determine label size.
      */
@@ -58,7 +58,7 @@
     label_width = XTextWidth(menu->p_fnt_info,
 			     label,
 			     label_length);
-    
+
     /*
      * Set up the initial selection.
      * Values not explicitly set are zeroed by calloc.
@@ -87,7 +87,7 @@
     emacs_insque(pane, menu->p_list->prev);
 
     /*
-     * Update the pane count. 
+     * Update the pane count.
      */
     menu->p_count++;
 
--- a/oldXMenu/AddSel.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/AddSel.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 #include "copyright.h"
 
-/* $Header: /gd/gnu/cvsroot/emacs/oldXMenu/AddSel.c,v 1.1 1999/10/03 19:34:52 fx Exp $ */
+/* $Header: /cvs/emacs/oldXMenu/AddSel.c,v 1.2 2000/01/27 15:30:18 gerd Exp $ */
 /* Copyright    Massachusetts Institute of Technology    1985	*/
 
 /*
@@ -32,7 +32,7 @@
 
     int label_length;		/* Label lenght in characters. */
     int label_width;		/* Label width in pixels. */
-    
+
     /*
      * Check for NULL pointers!
      */
@@ -59,7 +59,7 @@
      */
     label_length = strlen(label);
     label_width = XTextWidth(menu->s_fnt_info, label, label_length);
-    
+
     /*
      * Fill the XMSelect structure.
      */
@@ -81,7 +81,7 @@
     select->data = data;
     select->parent_p = pane;
     select->help_string = help;
-    
+
     /*
      * Insert the selection at the end of the selection list.
      */
--- a/oldXMenu/ChgSel.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/ChgSel.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 #include "copyright.h"
 
-/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/ChgSel.c,v 1.1 1992/04/11 22:10:17 jimb Exp $ */
+/* $Header: /cvs/emacs/oldXMenu/ChgSel.c,v 1.1 1999/10/03 19:34:54 fx Exp $ */
 /* Copyright    Massachusetts Institute of Technology    1985	*/
 
 /*
@@ -28,7 +28,7 @@
 {
     register XMPane *p_ptr;	/* XMPane pointer. */
     register XMSelect *s_ptr;	/* XMSelect pointer. */
-    
+
     int label_length;		/* Label length in characters. */
     int label_width;		/* Label width in pixels. */
 
--- a/oldXMenu/Create.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/Create.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1,4 +1,4 @@
-/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/Create.c,v 1.4 1993/03/09 18:18:01 jimb Exp $ */
+/* $Header: /cvs/emacs/oldXMenu/Create.c,v 1.1 1999/10/03 19:34:56 fx Exp $ */
 /* Copyright    Massachusetts Institute of Technology    1985	*/
 
 #include "copyright.h"
@@ -98,7 +98,7 @@
 
 
 
-static Status 
+static Status
 XAllocDisplayColor(display, map, colorName, color, junk)
     Display *display;
     Colormap map;
@@ -189,7 +189,7 @@
   Pixmap stipple_pixmap;	/* Stipple mask for half-tone text. */
   unsigned long valuemask;
   XGCValues *values;
-    
+
   Window root = RootWindow (display, DefaultScreen (display));
 
   /*
@@ -205,8 +205,8 @@
     _XMErrorCode = XME_CALLOC;
     return(NULL);
   }
-    
-  /* 
+
+  /*
    * Create the XAssocTable
    */
   assoc_tab = (XAssocTable *)XCreateAssocTable(XASSOC_TABLE_SIZE);
@@ -266,14 +266,14 @@
     if (strcmp(def_val, "box") == 0) menu_mode = BOX;
     else if (strcmp(def_val, "invert") == 0) menu_mode = INVERT;
   }
-    
+
   def_val = x_get_resource_string ("menuMouse", "MenuMouse");
   if (
       def_val != NULL &&
       DisplayCells(display, DefaultScreen(display)) > 2 &&
-      XAllocDisplayColor(display, 
-			 DefaultColormap(display, DefaultScreen(display)), 
-			 def_val, 
+      XAllocDisplayColor(display,
+			 DefaultColormap(display, DefaultScreen(display)),
+			 def_val,
 			 &mouse_color, &color_def)
       );
   else if (reverse &&
@@ -282,13 +282,13 @@
 			      "white",
 			      &mouse_color, &color_def)
 	   );
-    
+
   else if (XAllocDisplayColor(display,
 			      DefaultColormap(display, DefaultScreen(display)),
-			      "black", 
+			      "black",
 			      &mouse_color, &color_def)
 	   );
-    
+
   else ;
 
   def_val = x_get_resource_string ("menuBackground", "MenuBackground");
@@ -335,15 +335,15 @@
   def_val = x_get_resource_string ("paneForeground", "PaneForeground");
   if (
       def_val != NULL &&
-      DisplayCells(display, DefaultScreen(display)) > 2 
+      DisplayCells(display, DefaultScreen(display)) > 2
       )
     XAllocDisplayColor(display, DefaultColormap(display,
 						DefaultScreen(display)),
 		       def_val,
 		       &p_frg_color, &color_def);
-	  
+
   else if (reverse) XAllocDisplayColor(display,
-				       DefaultColormap(display, 
+				       DefaultColormap(display,
 						       DefaultScreen(display)),
 				       "white",
 				       &p_frg_color, &color_def);
@@ -362,19 +362,19 @@
 			 &p_bdr_color, &color_def)
       );
   else if (reverse &&
-	   XAllocDisplayColor(display, 
+	   XAllocDisplayColor(display,
 			      DefaultColormap(display, DefaultScreen(display)),
 			      "white",
 			      &p_bdr_color, &color_def)
 	   );
-  else XAllocDisplayColor(display, 
+  else XAllocDisplayColor(display,
 			  DefaultColormap(display, DefaultScreen(display)),
 			  "black",
 			  &p_bdr_color, &color_def);
-    
+
   def_val = x_get_resource_string ("paneBorderWidth", "PaneBorderWidth");
   if (def_val != NULL) p_bdr_width = atoi(def_val);
-    
+
   def_val = x_get_resource_string ("paneSpread", "PaneSpread");
   if (def_val != NULL) p_spread = atof(def_val);
 
@@ -396,7 +396,7 @@
 			 DefaultColormap(display, DefaultScreen(display)),
 			 def_val,
 			 &s_frg_color, &color_def)
-      ); 
+      );
   else if (reverse &&
 	   XAllocDisplayColor(display,
 			      DefaultColormap(display, DefaultScreen(display)),
@@ -409,7 +409,7 @@
 			      &s_frg_color, &color_def)
 	   ) ;
   else ;
-    
+
 
   def_val = x_get_resource_string ("selectionBorder", "SelectionBorder");
   if (
@@ -421,7 +421,7 @@
 			 &s_bdr_color, &color_def)
       ) ;
   else if (reverse &&
-	   XAllocDisplayColor(display, 
+	   XAllocDisplayColor(display,
 			      DefaultColormap(display, DefaultScreen(display)),
 			      "white",
 			      &s_bdr_color, &color_def)
@@ -435,7 +435,7 @@
 
   def_val = x_get_resource_string ("selectionBorderWidth", "SelectionBorderWidth");
   if (def_val != NULL) s_bdr_width = atoi(def_val);
-    
+
   def_val = x_get_resource_string ("selectionSpread", "SelectionSpread");
   if (def_val != NULL) s_spread = atof(def_val);
 
@@ -446,7 +446,7 @@
     char *data = NULL;
     int width, height;
 
-    switch (inact_pnum) 
+    switch (inact_pnum)
       {
       case 0:
 	data = (char *)dimple1_bits;
@@ -495,7 +495,7 @@
   /*
    * Load the mouse cursor.
    */
-	  
+
   switch (menu_style) {
   case LEFT:
     cursor = XCreateBitmapFromData(display,
@@ -510,13 +510,13 @@
 					left_ptrmsk_height);
     mouse_cursor = XCreatePixmapCursor(
 				       display,
-				       cursor, cursor_mask, 
+				       cursor, cursor_mask,
 				       &mouse_color, &bkgnd_color,
 				       left_ptr_x_hot,
 				       left_ptr_y_hot
 				       );
     XFreePixmap(display, cursor);
-    XFreePixmap(display, cursor_mask);	    
+    XFreePixmap(display, cursor_mask);
     break;
   case RIGHT:
     cursor = XCreateBitmapFromData(display,
@@ -537,7 +537,7 @@
 				       right_ptr_y_hot
 				       );
     XFreePixmap(display, cursor);
-    XFreePixmap(display, cursor_mask);	    
+    XFreePixmap(display, cursor_mask);
     break;
   case CENTER:
     cursor = XCreateBitmapFromData(display,
@@ -558,7 +558,7 @@
 				       cntr_ptr_y_hot
 				       );
     XFreePixmap(display, cursor);
-    XFreePixmap(display, cursor_mask);	    
+    XFreePixmap(display, cursor_mask);
     break;
   default:
     /* Error! Invalid style parameter. */
@@ -573,12 +573,12 @@
   /*
    * Open the pane and selection fonts.
    */
-    
+
   p_fnt_info = XLoadQueryFont(display, p_fnt_name);
   if (p_fnt_info == NULL) {
     _XMErrorCode = XME_OPEN_FONT;
     return(NULL);
-	
+
   }
 
   s_fnt_info = XLoadQueryFont(display, s_fnt_name);
@@ -619,7 +619,7 @@
    * Initialize the internal pane and selection creation queues.
    */
   _XMWinQueInit();
-    
+
   /*
    * Create pane, active, and inactive GC's.
    */
@@ -634,9 +634,9 @@
   values->background = bkgnd_color.pixel;
   values->font = p_fnt_info->fid;
   values->line_width = p_bdr_width;
-    
+
   pane_GC = XCreateGC(
-		      display, 
+		      display,
 		      root,
 		      valuemask,
 		      values);
@@ -648,7 +648,7 @@
   values->background = bkgnd_color.pixel;
   values->font = s_fnt_info->fid;
   values->line_width = s_bdr_width;
-  normal_select_GC = XCreateGC(display, 
+  normal_select_GC = XCreateGC(display,
 			       root,
 			       valuemask,
 			       values);
@@ -656,20 +656,20 @@
    * Inverse video selection.
    */
 
-  values->foreground = bkgnd_color.pixel;		
+  values->foreground = bkgnd_color.pixel;
   values->background = s_frg_color.pixel;
   values->font = s_fnt_info->fid;
   values->line_width = s_bdr_width;
-  inverse_select_GC = XCreateGC(display, 
+  inverse_select_GC = XCreateGC(display,
 				root,
 				valuemask,
 				values);
   stipple_pixmap = XCreateBitmapFromData(display,
 					 root,
-					 stipple_bits,		
-					 stipple_width,		
-					 stipple_height);	
-    
+					 stipple_bits,
+					 stipple_width,
+					 stipple_height);
+
   /*
    * Finally, inactive pane header and selections
    */
@@ -680,15 +680,15 @@
   values->line_width = s_bdr_width;
   values->fill_style = FillStippled;
   values->stipple = stipple_pixmap;
-	
-  inact_GC = XCreateGC(display, 
+
+  inact_GC = XCreateGC(display,
 		       root,
 		       valuemask,
 		       values);
 
   valuemask |= (GCGraphicsExposures);
   values->graphics_exposures = False;
-  inact_GC_noexpose = XCreateGC (display, 
+  inact_GC_noexpose = XCreateGC (display,
 				 root,
 				 valuemask, values);
 
--- a/oldXMenu/DelPane.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/DelPane.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 #include "copyright.h"
 
-/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/DelPane.c,v 1.1 1992/04/11 22:10:18 jimb Exp $ */
+/* $Header: /cvs/emacs/oldXMenu/DelPane.c,v 1.1 1999/10/03 19:34:57 fx Exp $ */
 /* Copyright    Massachusetts Institute of Technology    1985	*/
 
 /*
@@ -24,7 +24,7 @@
     register XMPane *p_ptr;	/* Pointer to pane being deleted. */
     register XMSelect *s_ptr;	/* Pointer to selections being deleted. */
     register XMSelect *s_next;  /* Pointer to next selection to be deleted. */
-        
+
     /*
      * Find the right pane.
      */
@@ -48,7 +48,7 @@
      * association table and free their XMSelect structures.
      */
     for (
-	s_ptr = p_ptr->s_list->next; 
+	s_ptr = p_ptr->s_list->next;
 	s_ptr != p_ptr->s_list;
 	s_ptr = s_next
     ) {
@@ -63,13 +63,13 @@
 	 * Destroy the selection transparencies.
 	 */
 	XDestroySubwindows(display, p_ptr->window);
-    
+
 	/*
 	 * Destroy the pane window.
 	 */
 	XDestroyWindow(display, p_ptr->window);
     }
-    
+
     /*
      * Free the pane's XMPane structure.
      */
--- a/oldXMenu/DelSel.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/DelSel.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 #include "copyright.h"
 
-/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/DelSel.c,v 1.1 1992/04/11 22:10:18 jimb Exp $ */
+/* $Header: /cvs/emacs/oldXMenu/DelSel.c,v 1.1 1999/10/03 19:34:58 fx Exp $ */
 /* Copyright    Massachusetts Institute of Technology    1985	*/
 
 /*
@@ -24,7 +24,7 @@
 {
     register XMPane *p_ptr;	/* Pointer to pane being deleted. */
     register XMSelect *s_ptr;	/* Pointer to selections being deleted. */
-        
+
     /*
      * Find the right pane.
      */
@@ -53,7 +53,7 @@
      * Destroy the selection transparency.
      */
     if (s_ptr->window) XDestroyWindow(display, s_ptr->window);
-    
+
     /*
      * Free the selection's XMSelect structure.
      */
--- a/oldXMenu/Destroy.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/Destroy.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 #include "copyright.h"
 
-/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/Destroy.c,v 1.1 1992/04/11 22:10:18 jimb Exp $ */
+/* $Header: /cvs/emacs/oldXMenu/Destroy.c,v 1.1 1999/10/03 19:34:59 fx Exp $ */
 /* Copyright    Massachusetts Institute of Technology    1985	*/
 
 /*
@@ -80,33 +80,33 @@
      */
     if ((menu->p_bdr_color != BlackPixel(display, DefaultScreen(display))) && (menu->p_bdr_color != WhitePixel(display, DefaultScreen(display))))
 	XFreeColors(
-		    display, 
+		    display,
 		    DefaultColormap(display, DefaultScreen(display)),
-		    &menu->p_bdr_color, 
+		    &menu->p_bdr_color,
 		    1, 0);
     if ((menu->s_bdr_color != BlackPixel(display, DefaultScreen(display))) && (menu->s_bdr_color != WhitePixel(display, DefaultScreen(display))))
 	XFreeColors(
-		    display, 
-		    DefaultColormap(display, DefaultScreen(display)), 
-		    &menu->s_bdr_color, 
+		    display,
+		    DefaultColormap(display, DefaultScreen(display)),
+		    &menu->s_bdr_color,
 		    1, 0);
     if ((menu->p_frg_color != BlackPixel(display, DefaultScreen(display))) && (menu->p_frg_color != WhitePixel(display, DefaultScreen(display))))
 	XFreeColors(
-		    display, 
+		    display,
 		    DefaultColormap(display, DefaultScreen(display)),
-		    &menu->p_frg_color, 
+		    &menu->p_frg_color,
 		    1, 0);
     if ((menu->s_frg_color != BlackPixel(display, DefaultScreen(display))) && (menu->s_frg_color != WhitePixel(display, DefaultScreen(display))))
 	XFreeColors(
-		    display, 
+		    display,
 		    DefaultColormap(display, DefaultScreen(display)),
-		    &menu->s_frg_color, 
+		    &menu->s_frg_color,
 		    1, 0);
     if ((menu->bkgnd_color != BlackPixel(display, DefaultScreen(display))) && (menu->bkgnd_color != WhitePixel(display, DefaultScreen(display))))
 	XFreeColors(
-		    display, 
+		    display,
 		    DefaultColormap(display, DefaultScreen(display)),
-		    &menu->bkgnd_color, 
+		    &menu->bkgnd_color,
 		    1, 0);
 
     /*
--- a/oldXMenu/FindPane.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/FindPane.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1,12 +1,12 @@
 #include "copyright.h"
 
-/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/FindPane.c,v 1.1 1992/04/11 22:10:19 jimb Exp $ */
+/* $Header: /cvs/emacs/oldXMenu/FindPane.c,v 1.1 1999/10/03 19:35:02 fx Exp $ */
 /* Copyright    Massachusetts Institute of Technology    1985	*/
 
 /*
  * XMenu:	MIT Project Athena, X Window system menu package
  *
- *	XMenuFindPane - Find the first menu pane who's label matches a 
+ *	XMenuFindPane - Find the first menu pane who's label matches a
  *			particular string.
  *
  *	Author:		Tony Della Fera, DEC
@@ -17,7 +17,7 @@
 #include "XMenuInt.h"
 
 int
-XMenuFindPane(menu, label) 
+XMenuFindPane(menu, label)
     register XMenu *menu;
     register char *label;
 {
--- a/oldXMenu/InsPane.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/InsPane.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 #include "copyright.h"
 
-/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/InsPane.c,v 1.1 1992/04/11 22:10:19 jimb Exp $ */
+/* $Header: /cvs/emacs/oldXMenu/InsPane.c,v 1.1 1999/10/03 19:35:04 fx Exp $ */
 /* Copyright    Massachusetts Institute of Technology    1985	*/
 
 /*
@@ -27,7 +27,7 @@
     register XMPane *p_ptr;	/* XMPane pointer. */
     register XMPane *pane;	/* Newly created pane. */
     register XMSelect *select;	/* Initial selection for the new pane. */
-        
+
     int label_length;		/* Label length in characters. */
     int label_width;		/* Label width in pixels. */
 
@@ -95,7 +95,7 @@
     emacs_insque(pane, p_ptr);
 
     /*
-     * Update the pane count. 
+     * Update the pane count.
      */
     menu->p_count++;
 
--- a/oldXMenu/InsSel.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/InsSel.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 #include "copyright.h"
 
-/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/InsSel.c,v 1.1 1992/04/11 22:10:19 jimb Exp $ */
+/* $Header: /cvs/emacs/oldXMenu/InsSel.c,v 1.1 1999/10/03 19:35:05 fx Exp $ */
 /* Copyright    Massachusetts Institute of Technology    1985	*/
 
 /*
@@ -32,7 +32,7 @@
 
     int label_length;		/* Label length in characters. */
     int label_width;		/* Label width in pixels. */
-    
+
     /*
      * Check for NULL pointers!
      */
--- a/oldXMenu/Internal.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/Internal.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 #include "copyright.h"
 
-/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/Internal.c,v 1.1 1992/04/11 22:10:20 jimb Exp $ */
+/* $Header: /cvs/emacs/oldXMenu/Internal.c,v 1.1 1999/10/03 19:35:07 fx Exp $ */
 /* Copyright    Massachusetts Institute of Technology    1985	*/
 
 /*
@@ -51,7 +51,7 @@
 /*
  * _XMErrorCode - Global XMenu error code.
  */
-int _XMErrorCode = XME_NO_ERROR; 
+int _XMErrorCode = XME_NO_ERROR;
 /*
  * _XMErrorList - Global XMenu error code description strings.
  */
@@ -204,7 +204,7 @@
     /*
      * If the pane window queue is not empty...
      */
-    
+
     if (_XMWinQue.pq_size > 0) {
 	/*
 	 * set up attributes for pane window to be created.
@@ -214,7 +214,7 @@
 	attributes->border_pixel = menu->p_bdr_color;
 	attributes->background_pixmap = menu->inact_pixmap;
 	attributes->override_redirect = True;
-	
+
 	/*
 	 * Create all the pending panes in order, so that the
 	 * current pane will be on top, with the others
@@ -222,7 +222,7 @@
 	 */
 	for (pq_index = _XMWinQue.pq_size - 1;
 	     pq_index >= 0;
-	     pq_index--) 
+	     pq_index--)
 	  {
 	      p_ptr = _XMWinQue.pq[pq_index];  /* Retrieve next pane. */
 	      if (p_ptr == pane) break;
@@ -243,7 +243,7 @@
 	  }
 	for (pq_index = 0;
 	     pq_index < _XMWinQue.pq_size;
-	     pq_index++) 
+	     pq_index++)
 	  {
 	      p_ptr = _XMWinQue.pq[pq_index];	/* Retrieve next pane. */
 	      p_ptr->window = XCreateWindow(display,
@@ -273,7 +273,7 @@
     /*
      * If the selection window queue is not empty...
      */
-    
+
     if (_XMWinQue.sq_size > 0) {
 
 	for (sq_index = 0; sq_index < _XMWinQue.sq_size; sq_index++) {
@@ -293,10 +293,10 @@
 				   CopyFromParent,
 				   0,
 				   attributes);
-	    
+
 	    /*
 	     * Insert the new window id and its
-	     * associated XMSelect structure into the 
+	     * associated XMSelect structure into the
 	     * association table.
 	     */
 	    XMakeAssoc(display, menu->assoc_tab, s_ptr->window, s_ptr);
@@ -371,7 +371,7 @@
 {
     register XMSelect *s_ptr;	/* Selection pointer to be returned. */
     register int i;		/* Loop counter. */
-    
+
     /*
      * Is the selection number out of range?
      */
@@ -400,7 +400,7 @@
  *			 global values.
  */
 _XMRecomputeGlobals(display, menu)
-    register Display *display; /*X11 display variable. */	
+    register Display *display; /*X11 display variable. */
     register XMenu *menu;	/* Menu object to compute from. */
 {
     register XMPane *p_ptr;	/* Pane pointer. */
@@ -418,7 +418,7 @@
     int s_width;		/* Selection window width. */
 
     int screen;			/* DefaultScreen holder. */
-    
+
     /*
      * For each pane...
      */
@@ -427,14 +427,14 @@
 	p_ptr != menu->p_list;
 	p_ptr = p_ptr->next
     ){
-	
+
 	/*
 	 * Recompute maximum pane label width.
 	 */
 	max_p_label = max(max_p_label, p_ptr->label_width);
 
 	/*
-	 * Recompute maximum selection count. 
+	 * Recompute maximum selection count.
 	 */
 	s_count = max(s_count, p_ptr->s_count);
 
@@ -495,7 +495,7 @@
     menu->p_width = p_width;
     menu->s_width = s_width;
 
-    /* 
+    /*
      * Ensure that the origin of the menu is placed so that
      * None of the panes ore selections are off the screen.
      */
@@ -522,10 +522,10 @@
 {
     register int window_x;	/* Recomputed window X coordinate. */
     register int window_y;	/* Recomputed window Y coordinate. */
-    
+
     unsigned long change_mask;	/* Value mask to reconfigure window. */
     XWindowChanges *changes;	/* Values to use in configure window. */
-    
+
     register Bool config_p = False;	/* Reconfigure pane window? */
 
     /*
@@ -558,7 +558,7 @@
     window_y += menu->y_pos;
 
     /*
-     * If the newly compute pane coordinates differ from the 
+     * If the newly compute pane coordinates differ from the
      * current coordinates, reset the current coordinates and
      * reconfigure the pane.
      */
@@ -608,7 +608,7 @@
 	    changes->y = p_ptr->window_y;
 	    changes->width = p_ptr->window_w;
 	    changes->height = p_ptr->window_h;
-	    
+
 	    XConfigureWindow(
 			     display,
 			     p_ptr->window,
@@ -616,7 +616,7 @@
 			     changes
 			     );
 	    free(changes);
-	    
+
 	}
 	else {
 	    if (_XMWinQueAddPane(display, menu, p_ptr) == _FAILURE) {
@@ -624,7 +624,7 @@
 	    }
 	}
     }
- 
+
     /*
      * Recompute label X position.
      */
@@ -673,7 +673,7 @@
     register Bool config_s = False;	/* Reconfigure selection window? */
     XWindowChanges *changes;		/* Values to change in configure. */
     unsigned long change_mask;		/* Value mask for XConfigureWindow. */
-    
+
     /*
      * If the selection serial numbers are out of order, begin
      * resequencing selections.  Recompute selection window coordinates
@@ -735,7 +735,7 @@
 	    changes->y = s_ptr->window_y;
 	    changes->width = s_ptr->window_w;
 	    changes->height = s_ptr->window_h;
-	    
+
 	    XConfigureWindow(
 			     display,
 			     s_ptr->window,
@@ -743,7 +743,7 @@
 			     changes
 			     );
 	    free(changes);
-	    
+
 	}
 	else {
 	    if (_XMWinQueAddSelection(display, menu, s_ptr) == _FAILURE) {
@@ -775,7 +775,7 @@
      * Recompute label Y position.
      */
     s_ptr->label_y = s_ptr->window_y + menu->s_fnt_info->max_bounds.ascent + menu->s_fnt_pad + menu->s_bdr_width;
-    
+
     /*
      * All went well, return successfully.
      */
@@ -787,7 +787,7 @@
 
 /*
  * _XMTransToOrigin - Internal subroutine to translate the point at
- *		      the center of the current pane and selection to the 
+ *		      the center of the current pane and selection to the
  *		      the menu origin.
  *
  *	WARNING! ******	Be certain that all menu dependencies have been
@@ -806,7 +806,7 @@
 {
     register int l_orig_x;	/* Local X coordinate of the menu origin. */
     register int l_orig_y;	/* Local Y coordinate of the menu origin. */
-    
+
     /*
      * Translate the menu origin such that the cursor hot point will be in the
      * center of the desired current selection and pane.
@@ -863,7 +863,7 @@
     register XMSelect *s_ptr;
 
     /*
-     * First clear the pane. 
+     * First clear the pane.
      */
     XClearWindow(display, pane->window);
     if (!pane->activated) {
@@ -916,12 +916,12 @@
 	}
     }
 }
-    
-    
+
+
 
 
 /*
- * _XMRefreshSelection - Internal subroutine that refreshes 
+ * _XMRefreshSelection - Internal subroutine that refreshes
  *			 a single selection window.
  */
 _XMRefreshSelection(display, menu, select)
@@ -932,7 +932,7 @@
     register int width = select->window_w;
     register int height = select->window_h;
     register int bdr_width = menu->s_bdr_width;
-    
+
     if (select->type == SEPARATOR) {
         XDrawLine(display,
                   select->parent_p->window,
@@ -944,11 +944,11 @@
     }
     else if (select->activated) {
 	if (menu->menu_mode == INVERT) {
-	    XFillRectangle(display, 
+	    XFillRectangle(display,
 			   select->parent_p->window,
 			   menu->normal_select_GC,
 			   select->window_x, select->window_y,
-			   width, height); 
+			   width, height);
 	    XDrawString(display,
 			select->parent_p->window,
 			menu->inverse_select_GC,
@@ -963,7 +963,7 @@
 	     * are slow compared to raster-ops lets use a raster-op to
 	     * draw the boxes.
              */
-	    
+
 	    XDrawRectangle(display,
 			   select->parent_p->window,
 			   menu->normal_select_GC,
@@ -980,7 +980,7 @@
         }
     }
     else {
-	XClearArea(display, 
+	XClearArea(display,
 		   select->parent_p->window,
 		   select->window_x, select->window_y,
 		   width, height,
--- a/oldXMenu/Locate.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/Locate.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 #include "copyright.h"
 
-/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/Locate.c,v 1.1 1992/04/11 22:10:20 jimb Exp $ */
+/* $Header: /cvs/emacs/oldXMenu/Locate.c,v 1.1 1999/10/03 19:35:09 fx Exp $ */
 /* Copyright    Massachusetts Institute of Technology    1985	*/
 
 /*
@@ -31,7 +31,7 @@
 {
     register XMPane *p_ptr;	/* XMPane pointer. */
     register XMSelect *s_ptr;	/* XMSelect pointer. */
-    
+
     /*
      * Are the position arguments positive?
      */
--- a/oldXMenu/Post.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/Post.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 #include "copyright.h"
 
-/* $Header: /gd/gnu/cvsroot/emacs/oldXMenu/Post.c,v 1.1 1999/10/03 19:35:10 fx Exp $ */
+/* $Header: /cvs/emacs/oldXMenu/Post.c,v 1.2 2000/01/27 15:30:47 gerd Exp $ */
 /* Copyright    Massachusetts Institute of Technology    1985	*/
 
 /*
@@ -9,7 +9,7 @@
  *	XMenuPost -	Maps a given menu to the display and activates
  *			the menu for user selection.  The user is allowed to
  *			specify the mouse button event mask that will be used
- *			to identify a selection request.  When a selection 
+ *			to identify a selection request.  When a selection
  *			request is received (i.e., when the specified mouse
  *			event occurs) the data  returned will be either the
  *			data associated with the particular selection active
@@ -59,11 +59,11 @@
      * Make the procedure call.
      */
     stat = XMenuActivate(
-			 display, 
+			 display,
 			 menu,
-			 p_num, s_num, 
-			 x_pos, y_pos, 
-			 event_mask, 
+			 p_num, s_num,
+			 x_pos, y_pos,
+			 event_mask,
 			 &data, 0);
 
     /*
--- a/oldXMenu/README	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/README	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 This directory contains the source code for the X11R2 XMenu library.
 
 As of Release 2 of the X Window System, Version 11 from MIT, the XMenu
-library no longer supported.  It is not used in any software supplied 
+library no longer supported.  It is not used in any software supplied
 by MIT and its use is not encouraged.
 
--- a/oldXMenu/Recomp.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/Recomp.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 #include "copyright.h"
 
-/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/Recomp.c,v 1.1 1992/04/11 22:10:20 jimb Exp $ */
+/* $Header: /cvs/emacs/oldXMenu/Recomp.c,v 1.1 1999/10/03 19:35:11 fx Exp $ */
 /* Copyright    Massachusetts Institute of Technology    1985	*/
 
 /*
@@ -25,7 +25,7 @@
 
     register int p_num;		/* Pane serial number. */
     register int s_num;		/* Selection serial number. */
-    
+
     /*
      * If there are no panes in the menu then return failure
      * because the menu is not initialized.
@@ -44,7 +44,7 @@
     /*
      * For each pane in the menu...
      */
-        
+
     p_num = 0;
     for (
 	p_ptr = menu->p_list->next;
@@ -58,7 +58,7 @@
 	    return(XM_FAILURE);
 	}
         p_num++;
-	
+
 	/*
 	 * For each selection in the pane...
 	 */
--- a/oldXMenu/SetSel.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/SetSel.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 #include "copyright.h"
 
-/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/SetSel.c,v 1.1 1992/04/11 22:10:21 jimb Exp $ */
+/* $Header: /cvs/emacs/oldXMenu/SetSel.c,v 1.1 1999/10/03 19:35:15 fx Exp $ */
 /* Copyright    Massachusetts Institute of Technology    1985	*/
 
 /*
@@ -24,7 +24,7 @@
 {
     register XMPane *p_ptr;	/* XMPane pointer. */
     register XMSelect *s_ptr;	/* XMSelect pointer. */
-    
+
     /*
      * Find the right pane.
      */
--- a/oldXMenu/X10.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/X10.h	Tue Feb 04 14:56:31 2003 +0000
@@ -1,14 +1,14 @@
-/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/X10.h,v 1.1 1992/04/11 22:10:21 jimb Exp $ */
-/* 
+/* $Header: /cvs/emacs/oldXMenu/X10.h,v 1.1 1999/10/03 19:35:16 fx Exp $ */
+/*
  * Copyright 1985, 1986, 1987 by the Massachusetts Institute of Technology
  *
  * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided 
- * that the above copyright notice appear in all copies and that both that 
- * copyright notice and this permission notice appear in supporting 
+ * documentation for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
  * documentation, and that the name of M.I.T. not be used in advertising
- * or publicity pertaining to distribution of the software without specific, 
- * written prior permission. M.I.T. makes no representations about the 
+ * or publicity pertaining to distribution of the software without specific,
+ * written prior permission. M.I.T. makes no representations about the
  * suitability of this software for any purpose.  It is provided "as is"
  * without express or implied warranty.
  *
@@ -38,15 +38,15 @@
 #define VertexCurved		0x0004		/* else straight */
 #define VertexStartClosed	0x0008		/* else not */
 #define VertexEndClosed		0x0010		/* else not */
-/*#define VertexDrawLastPoint	0x0020 	*/      /* else don't */	
+/*#define VertexDrawLastPoint	0x0020 	*/      /* else don't */
 
 /*
-The VertexDrawLastPoint option has not been implemented in XDraw and 
-XDrawFilled so it shouldn't be defined. 
+The VertexDrawLastPoint option has not been implemented in XDraw and
+XDrawFilled so it shouldn't be defined.
 */
 
 /*
- * XAssoc - Associations used in the XAssocTable data structure.  The 
+ * XAssoc - Associations used in the XAssocTable data structure.  The
  * associations are used as circular queue entries in the association table
  * which is contains an array of circular queues (buckets).
  */
@@ -58,11 +58,11 @@
 	char *data;		/* Pointer to untyped memory. */
 } XAssoc;
 
-/* 
+/*
  * XAssocTable - X Window System id to data structure pointer association
  * table.  An XAssocTable is a hash table whose buckets are circular
  * queues of XAssoc's.  The XAssocTable is constructed from an array of
- * XAssoc's which are the circular queue headers (bucket headers).  
+ * XAssoc's which are the circular queue headers (bucket headers).
  * An XAssocTable consists an XAssoc pointer that points to the first
  * bucket in the bucket array and an integer that indicates the number
  * of buckets in the array.
--- a/oldXMenu/XCrAssoc.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/XCrAssoc.c	Tue Feb 04 14:56:31 2003 +0000
@@ -37,14 +37,14 @@
 	register XAssocTable *table;	/* XAssocTable to be initialized. */
 	register XAssoc *buckets;	/* Pointer to the first bucket in */
 					/* the bucket array. */
-	
+
 	/* Malloc the XAssocTable. */
 	if ((table = (XAssocTable *)malloc(sizeof(XAssocTable))) == NULL) {
 		/* malloc call failed! */
 		errno = ENOMEM;
 		return(NULL);
 	}
-	
+
 	/* calloc the buckets (actually just their headers). */
 	buckets = (XAssoc *)calloc((unsigned)size, (unsigned)sizeof(XAssoc));
 	if (buckets == NULL) {
--- a/oldXMenu/XDestAssoc.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/XDestAssoc.c	Tue Feb 04 14:56:31 2003 +0000
@@ -18,7 +18,7 @@
 
 /*
  * XDestroyAssocTable - Destroy (free the memory associated with)
- * an XAssocTable.  
+ * an XAssocTable.
  */
 XDestroyAssocTable(table)
 	register XAssocTable *table;
--- a/oldXMenu/XLookAssoc.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/XLookAssoc.c	Tue Feb 04 14:56:31 2003 +0000
@@ -21,7 +21,7 @@
 #define NULL 0
 #endif
 
-/* 
+/*
  * XLookUpAssoc - Retrieve the data stored in an XAssocTable by its XId.
  * If an appropriately matching XId can be found in the table the routine will
  * return apointer to the data associated with it. If the XId can not be found
--- a/oldXMenu/XMakeAssoc.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/XMakeAssoc.c	Tue Feb 04 14:56:31 2003 +0000
@@ -47,7 +47,7 @@
 	register XAssoc *bucket;
 	register XAssoc *Entry;
 	register XAssoc *new_entry;
-	
+
 	/* Hash the XId to get the bucket number. */
 	hash = x_id & (table->size - 1);
 	/* Look up the bucket to get the entries in that bucket. */
--- a/oldXMenu/XMenu.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/XMenu.h	Tue Feb 04 14:56:31 2003 +0000
@@ -1,6 +1,6 @@
 #include "copyright.h"
 
-/* $Header: /gd/gnu/cvsroot/emacs/oldXMenu/XMenu.h,v 1.1 1999/10/03 19:35:23 fx Exp $ */
+/* $Header: /cvs/emacs/oldXMenu/XMenu.h,v 1.2 2000/01/27 15:29:38 gerd Exp $ */
 /* Copyright    Massachusetts Institute of Technology    1985	*/
 
 /*
@@ -8,7 +8,7 @@
  *
  *	XMenu.h -	Include file for the MIT Project Athena
  *			XMenu X window system menu package.
- *			
+ *
  *	Author:		Tony Della Fera, DEC
  *			August, 1984
  */
@@ -169,8 +169,8 @@
 } XMMode;
 
 
-/* 
- * Define the XMenu datatype. 
+/*
+ * Define the XMenu datatype.
  *
  * All dimensions are in pixels unless otherwise noted.
  */
@@ -216,7 +216,7 @@
     int s_y_off;		/* Selection window Y offset. */
     int s_count;		/* Maximum number of selections per pane. */
     GC normal_select_GC;	/* GC used for inactive selections. */
-    GC inverse_select_GC;	/* GC used for active (current) selection. */  
+    GC inverse_select_GC;	/* GC used for active (current) selection. */
     GC inact_GC;		/* GC used for inactive selections and */
 				/* panes headers. */
     /* -------------------- Color data -------------------- */
--- a/oldXMenu/XMenuInt.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/XMenuInt.h	Tue Feb 04 14:56:31 2003 +0000
@@ -1,5 +1,5 @@
 
-/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/XMenuInt.h,v 1.3 1992/10/10 16:05:10 jimb Exp $ */
+/* $Header: /cvs/emacs/oldXMenu/XMenuInt.h,v 1.1 1999/10/03 19:35:24 fx Exp $ */
 /* Copyright    Massachusetts Institute of Technology    1985	*/
 
 /*
@@ -8,7 +8,7 @@
  *	XMenuInternal.h - Internal menu system include file for the
  *			MIT Project Athena XMenu X window system
  *			menu package.
- *			
+ *
  *	Author:		Tony Della Fera, DEC
  *			October, 1985
  */
--- a/oldXMenu/insque.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/oldXMenu/insque.c	Tue Feb 04 14:56:31 2003 +0000
@@ -13,7 +13,7 @@
 /* Insert ELEM into a doubly-linked list, after PREV.  */
 
 void
-emacs_insque (elem, prev) 
+emacs_insque (elem, prev)
      struct qelem *elem, *prev;
 {
   struct qelem *next = prev->q_forw;
--- a/src/.gdbinit	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/.gdbinit	Tue Feb 04 14:56:31 2003 +0000
@@ -334,7 +334,7 @@
 
 define xbacktrace
   set $bt = backtrace_list
-  while $bt 
+  while $bt
     set $type = (enum Lisp_Type) ((*$bt->function >> gdb_valbits) & 0x7)
     if $type == Lisp_Symbol
       xprintsym *$bt->function
@@ -353,7 +353,7 @@
 end
 document xbacktrace
   Print a backtrace of Lisp function calls from backtrace_list.
-  Set a breakpoint at Fsignal and call this to see from where 
+  Set a breakpoint at Fsignal and call this to see from where
   an error was signaled.
 end
 
--- a/src/ChangeLog.3	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/ChangeLog.3	Tue Feb 04 14:56:31 2003 +0000
@@ -6625,7 +6625,7 @@
 	* editfns.c (Fcurrent_time_zone): Don't forget to include code to
 	signal an error when EMACS_CURRENT_TIME_ZONE is not defined.
 
-1992-08-06  Joseph Arceneaux (jla@gnu.ai.mit.edu)
+1992-08-06  Joseph Arceneaux  (jla@gnu.ai.mit.edu)
 
         * doc.c (Vdata_directory): Declared.
 	(syms_of_doc): Initialized.
@@ -6643,7 +6643,7 @@
 	character from the key sequence, NOT the index of the character IN
 	the key sequence.  How many tries will it take to get it right?
 
-1992-08-04  Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+1992-08-04  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
 
 	* eval.c (syms_of_eval): Doc fix for debug-on-quit.
 
--- a/src/ChangeLog.4	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/ChangeLog.4	Tue Feb 04 14:56:31 2003 +0000
@@ -20,7 +20,7 @@
 
 	* xdisp.c (redisplay): If have window change at end, redisplay again.
 
-	* lread.c (defvar_bool, defvar_int, defvar_lisp, defvar_lisp_nopro): 
+	* lread.c (defvar_bool, defvar_int, defvar_lisp, defvar_lisp_nopro):
 	Delete third arg DOC.
 
 	* s/hpux8.h (LD_SWITCH_SYSTEM): Delete the -L options.
@@ -522,7 +522,7 @@
 	* floatfns.c: Don't guard DOMAIN && SING && OVERFLOW check by
 	an #ifndef MSDOS.
 
-1994-05-06  Francesco Potorti` (pot@cnuce.cnr.it)
+1994-05-06  Francesco Potorti`  (pot@cnuce.cnr.it)
 
 	* m/delta.h: (SYSTEM_MALLOC): deleted.  The problem isn't there.
 
@@ -626,7 +626,7 @@
 	x_destroy_window): Use row/col instead of buffer position to keep
 	track of highlighted area.
 
-1994-05-02  Francesco Potorti` (pot@cnuce.cnr.it)
+1994-05-02  Francesco Potorti`  (pot@cnuce.cnr.it)
 
 	* m/delta.h: (SYSTEM_MALLOC): Defined, since GNU malloc does not work.
 	(BCOPY_UPWARD_SAFE): Defined to 0 for the Green Hills compiler.
@@ -641,7 +641,7 @@
 	* xfns.c (Fx_create_frame): Set the size_hint_flags field.
 	Don't call x_calc_absolute_position.
 	* xterm.c (x_calc_absolute_position): Use size_hint_flags.
-	New FLAGS arg deleted.  Callers changed. 
+	New FLAGS arg deleted.  Callers changed.
 
 	* xfns.c (x_figure_window_size): Handle `-' for top or left.
 	(Fx_parse_geometry): Handle one element at a time.
@@ -892,7 +892,7 @@
 	* keyboard.c (read_char): Don't use menus if we have events waiting.
 
 	* xterm.c (XTread_socket) [USE_X_TOOLKIT]: Let toolkit handle
-	menu bar click. 
+	menu bar click.
 
 1994-04-25  Karl Heuer  (kwzh@hal.gnu.ai.mit.edu)
 
@@ -1025,7 +1025,7 @@
 
 1994-04-20  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 
-	* frame.c (Fmodify_frame_parameters, Fframe_parameters): 
+	* frame.c (Fmodify_frame_parameters, Fframe_parameters):
 	Define even if not MULTI_FRAME.
 
 	* config.h.in (HAVE_INET_SOCKETS): Add #undef.
@@ -1359,7 +1359,7 @@
 	* buffer.h (Vafter_change_functions, Vbefore_change_functions):
 	Declared.
 
-	* insdel.c (before_change_functions_restore): 
+	* insdel.c (before_change_functions_restore):
 	(after_change_functions_restore): New functions.
 	(signal_before_change): Handle Vbefore_change_functions.
 	(signal_after_change): Handle Vafter_change_functions.
@@ -1605,7 +1605,7 @@
 
 1994-04-01  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 
-	* xterm.c (construct_menu_click, construct_mouse_click): 
+	* xterm.c (construct_menu_click, construct_mouse_click):
 	Use XSET when setting result->x and result->y.
 
 	* xmenu.c (xmenu_show): Undo part of March 11 change:
@@ -1649,13 +1649,13 @@
 
 	* xterm.h: Define HAVE_X11R4 if AIX3_2 is defined.
 
-	* xfns.c (x_window) [USE_X_TOOLKIT]: New args window_prompting and 
+	* xfns.c (x_window) [USE_X_TOOLKIT]: New args window_prompting and
 	minibuffer_only.
 	Don't pass top_pos and left_pos to XtCreatePopupShell.
 	Call initialize_frame_menubar before creating the Emacs frame if it is
 	not the minibuffer. Call XtManageChild for the menubar widget if any.
 	Compute some geometry management.
-	(Fx_create_frame): Pass window_prompting and minibuffer_only to 
+	(Fx_create_frame): Pass window_prompting and minibuffer_only to
 	x_window.
 	Don't call x_wm_set_size_hint.
 	Don't call initialize_frame_menubar.
@@ -1811,7 +1811,7 @@
 
 1994-03-24  Frederic Pierresteguy  (fp@mole.gnu.ai.mit.edu)
 
-	* xfns.c (Fx_create_frame): Add USE_X_TOOLKIT conditional around the 
+	* xfns.c (Fx_create_frame): Add USE_X_TOOLKIT conditional around the
 	call to initialize_frame_menubar.
 
 1994-03-23  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
@@ -1851,7 +1851,7 @@
 
 1994-03-23  Frederic Pierresteguy  (fp@geech.gnu.ai.mit.edu)
 
-	* xmenu.c (update_frame_menubar): Function renamed from 
+	* xmenu.c (update_frame_menubar): Function renamed from
 	update_one_frame_psheets.
 	(initialize_frame_menubar): New function.
 	(set_frame_menubar): Call menu_bar_items when items is NIL.
@@ -2009,7 +2009,7 @@
 
 	* minibuf.c (read_minibuf): Disallow trailing junk.
 
-1994-03-16  Morten Welinder (terra@diku.dk)
+1994-03-16  Morten Welinder  (terra@diku.dk)
 
 	* fileio.c (Ffile_modes) [MSDOS]: set exec-bit based on file suffix.
 	* s/msdos.h: use bcopy when moving gap.
@@ -2285,7 +2285,7 @@
 
 1994-03-04  Frederic Pierresteguy  (fp@mole.gnu.ai.mit.edu)
 
-	* xmenu.c (update_one_frame_psheets): Call EmacsFrameSetCharSize to 
+	* xmenu.c (update_one_frame_psheets): Call EmacsFrameSetCharSize to
 	force the paned widget to resize to the right value.
 	(xmenu_show): No need to check a second time whether the mouse has
 	moved to another menu bar item. This slows down execution.
@@ -2295,7 +2295,7 @@
 
 1994-03-04  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
 
-	* xmenu.c [USE_X_TOOLKIT] (xmenu_show): Pass display to 
+	* xmenu.c [USE_X_TOOLKIT] (xmenu_show): Pass display to
 	XtWindowToWidget.
 
 1994-03-03  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
@@ -2360,7 +2360,7 @@
 	* frame.c (make_frame): Init menu_bar_items field to 0.
 	* xdisp.c (update_menu_bar): Change call to menu_bar_items.
 	(display_menu_bar): Use FRAME_MENU_BAR_LINES as vector.
-	* xmenu.c (map_event_to_object, set_frame_menubar): 
+	* xmenu.c (map_event_to_object, set_frame_menubar):
 	Use FRAME_MENU_BAR_LINES as vector.
 
 1994-03-01  Karl Heuer  (kwzh@hal.gnu.ai.mit.edu)
@@ -2377,7 +2377,7 @@
 
 	* fileio.c (Finsert_file_contents): If undo_list was t, leave it t.
 
-	* alloc.c (memory_signal_data): No longer static. 
+	* alloc.c (memory_signal_data): No longer static.
 	(syms_of_alloc): Stick Qerror onto memory_signal_data.
 	* lisp.h (memory_signal_data): Declare it.
 	* eval.c (Fsignal): If DATA is memory_signal_data, don't add to it.
@@ -2729,7 +2729,7 @@
 	* xmenu.c (free_frame_menubar) [USE_X_TOOLKIT]: New function to destroy
 	the X Widget instance of the menubar.
 
-	* widget.c (EmacsFrameResize): Don't call XTranslateCoordinates. Code 
+	* widget.c (EmacsFrameResize): Don't call XTranslateCoordinates. Code
 	removed.
 
 	* xmenu.c (xmenu_show) [USE_X_TOOLKIT]: Return Qnil when val is null.
@@ -2764,7 +2764,7 @@
 
 1994-02-10  Frederic Pierresteguy  (fp@mole.gnu.ai.mit.edu)
 
-	* xmenu.c (xmenu_show): Test again event.xmotion.x_root in the 
+	* xmenu.c (xmenu_show): Test again event.xmotion.x_root in the
 	MotionNotify case.
 
 1994-02-09  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
@@ -2822,12 +2822,12 @@
 	* xterm.c (x_set_window_size): New arg CHANGE_GRAVITY.
 	(x_new_font): Pass CHANGE_GRAVITY arg to x_set_window_size.
 	(x_wm_set_size_hint): New arg CHANGE_GRAVITY.
-	(x_set_offset, x_set_window_size): 
+	(x_set_offset, x_set_window_size):
 	Pass CHANGE_GRAVITY arg to x_set_window_size.
-	* xfns.c (x_set_internal_border_width, x_set_vertical_scroll_bars): 
+	* xfns.c (x_set_internal_border_width, x_set_vertical_scroll_bars):
 	Pass CHANGE_GRAVITY arg to x_set_window_size.
 	(Fx_create_frame): Pass CHANGE_GRAVITY arg to x_wm_set_size_hint.
-	* frame.c (Fset_frame_height, Fset_frame_width, Fset_frame_size): 
+	* frame.c (Fset_frame_height, Fset_frame_width, Fset_frame_size):
 	Pass CHANGE_GRAVITY arg to x_set_window_size.
 
 	* frame.c (other_visible_frames):
@@ -2875,7 +2875,7 @@
 
 1994-02-04  Frederic Pierresteguy  (fp@mole.gnu.ai.mit.edu)
 
-	* xmenu.c (xmenu_show) [USE_X_TOOLKIT]: Remove the #if 0 directives 
+	* xmenu.c (xmenu_show) [USE_X_TOOLKIT]: Remove the #if 0 directives
 	and reverse one to avoid the flickering of the menubar.
 
 1994-02-04  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
@@ -2982,7 +2982,7 @@
 
 1994-01-28  Frederic Pierresteguy  (fp@mole.gnu.ai.mit.edu)
 
-	* xterm.c (x_set_window_size): Add USE_X_TOOLKIT conditional. Call 
+	* xterm.c (x_set_window_size): Add USE_X_TOOLKIT conditional. Call
 	EmacsFrameSetCharSize and return.
 
 	* xterm.c (x_term_init): Cast to (char **) before assignment to argv.
@@ -3357,7 +3357,7 @@
 	* buffer.c, buffer.h [MSDOS]: New buffer-local variable:
 	buffer-file-type to handle DOS newlines.
 
-	* callproc.c (syms_of_callproc) [MSDOS]: New lisp variable: 
+	* callproc.c (syms_of_callproc) [MSDOS]: New lisp variable:
 	binary-process.
 	(init_callproc) [MSDOS]: Initialize binary-process.
 	[MSDOS]: Declare binary-process.
@@ -3369,7 +3369,7 @@
 	(Fcall_process) [not subprocesses]: Barf if zero buffer argument.
 	(call_process_cleanup) [MSDOS]: Close and erase temporary file
 	instead of the pid-stuff.
-	(Fcall_process_region) [MSDOS]: Create temporary file in $TMP or 
+	(Fcall_process_region) [MSDOS]: Create temporary file in $TMP or
 	$TEMP.
 	(Fchild_setup) [MSDOS]: #if 0, as it is not used.
 
@@ -3399,7 +3399,7 @@
 	in a slash.
 	(Finsert_file_contents) [MSDOS]: Determine file type by name (call
 	find-buffer-file-type) and change CR+LF to LF if it is a text file.
-	(Fwrite_region) [MSDOS]: Use text/binary mode as specified by 
+	(Fwrite_region) [MSDOS]: Use text/binary mode as specified by
 	buffer_file_type.
 	(syms_of_fileio) [MSDOS]: Set Qfind_buffer_file_type.
 	(Fsubstitute_in_file_name) [MSDOS]: Ignore case in environtment
@@ -3407,7 +3407,7 @@
 
 	* floatfns.c [MSDOS]: Don't define HAVE_MATHERR.
 
-	* keyboard.c [MSDOS]: #include <dos.h> and <time.h>, but not 
+	* keyboard.c [MSDOS]: #include <dos.h> and <time.h>, but not
 	<sys/ioctl.h>.
 	(read_avail_input) [MSDOS]: Work around `ioctl'.  Also read through
 	dos_keyread for better keyboard support.
@@ -3437,7 +3437,7 @@
 	* systty.h [MSDOS]: don't #include <sgtty.h>.  We haven't got it.
 	Declare dummy main field.  Don't ever use TABs.
 
-	* termcap.c (tgetent) [INTERNAL_TERMINAL]: Fake internal terminal 
+	* termcap.c (tgetent) [INTERNAL_TERMINAL]: Fake internal terminal
 	without reading any files.
 	(valid_file_name, tgetent) [MSDOS]: Drive letter support.
 	(tgetent) [MSDOS]: Use text mode for database.
@@ -3728,7 +3728,7 @@
 
 	* m/sun2.h (OTHER_FILES): Use ${libsrc} as dir.
 
-1993-12-15  Michal Jankowski (michalj@fuw.edu.pl)
+1993-12-15  Michal Jankowski  (michalj@fuw.edu.pl)
 
         * insdel.c (del_range): Second argument in call to
         offset_intervals is 'from', not 'point'.
@@ -3767,7 +3767,7 @@
 	(redisplay_window): Likewise.
 	(display_text_line): Likewise.
 	(display_menu_bar): Likewise.
-	(display_mode_element): 
+	(display_mode_element):
 
 	* editfns.c (Fmessage): Use message2.
 
@@ -3818,7 +3818,7 @@
 
 	* process.c (create_process): Delete SYSV4_PTYS code.
 	(deactivate_process): Likewise.
-	
+
 1993-12-06  Richard Stallman  (rms@gnu.ai.mit.edu)
 
 	* doc.c (Fsubstitute_command_keys): Ignore menu bar bindings.
@@ -3880,7 +3880,7 @@
 	* fileio.c (Fread_file_name): If defalt is nil and user tries to use
 	it, signal an error.
 
-	* lisp.h (DEFUN_ARGS_MANY, DEFUN_ARGS_UNEVALLED, DEFUN_ARGS_0,...): 
+	* lisp.h (DEFUN_ARGS_MANY, DEFUN_ARGS_UNEVALLED, DEFUN_ARGS_0,...):
 	New macros.
 	(DEFUN) [__STDC__]: Use those macros.
 
@@ -4081,7 +4081,7 @@
 
 1993-11-20  Paul Reilly  (pmr@legacy.pajato.com)
 
-	*  s/dgux.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF): 
+	*  s/dgux.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF):
 	Defined (copied from usg5-4.h).
 	(FIRST_PTY_LETTER): Deleted.
 
@@ -4093,7 +4093,7 @@
 	the case where there are no intervals.
 	(Fprevious_single_property_change, Fprevious_property_change)
 	Extra arg LIMIT.  Return value was off by 1.
-	(Fnext_single_property_change, Fnext_property_change): 
+	(Fnext_single_property_change, Fnext_property_change):
 	Extra arg LIMIT.
 	(Fnext_single_property_change): Require at least 2 args.
 	* indent.c (compute_motion):
@@ -4594,7 +4594,7 @@
 
 1993-07-09  Karl Berry  (karl@cs.umb.edu)
 
-	* dired.c (file_name_completion): Install case-preserving 
+	* dired.c (file_name_completion): Install case-preserving
 	changes from Emacs 18 for completion_ignore_case.
 	(completion_ignore_case): Declare.
 
@@ -4785,7 +4785,7 @@
 
 	* buffer.c (verify_overlay_modification): Initialize endpos.
 
-	* keymap.c (describe_buffer_bindings): Declare shadow just once. 
+	* keymap.c (describe_buffer_bindings): Declare shadow just once.
 
 1993-08-10  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 
@@ -4903,7 +4903,7 @@
 
 	* m/ibm370aix.h: Total rewrite; includes ibmps2-aix.h.
 
-	* m/ibmps2-aix.h (SYSTEM_TYPE): Don't redefine it here. 
+	* m/ibmps2-aix.h (SYSTEM_TYPE): Don't redefine it here.
 
 	* syntax.c: Doc fix.
 
@@ -5004,9 +5004,9 @@
 	(textget_direct, Qfront_sticky, Qrear_nonsticky): Declared.
 	* textprop.c (Qfront_sticky, Qrear_nonsticky): New variables.
 	(syms_of_textprop): Set them up.
-		
+
 	Change display code to handle the `invisible' text property.
-	* dispnew.c (direct_output_for_insert): Fail if character 
+	* dispnew.c (direct_output_for_insert): Fail if character
 	just inserted has text properties.
 	(direct_ouput_forward_char): Fail if moving near invisible chars.
 	* indent.c (compute_motion): Compute correctly for invisible text.
@@ -5217,7 +5217,7 @@
 
 	* s/sco4.h (HAVE_SOCKETS): Define, if HAVE_INET_SOCKETS.
 
-	* sunfns.c: Fix comment syntax.  Put back the comment 
+	* sunfns.c: Fix comment syntax.  Put back the comment
 	saying that we don't maintain this file.
 
 	* xterm.c (XTread_socket) [! HAVE_X11R5]:
@@ -5360,7 +5360,7 @@
 	be asked.
 
 	* textprop.c (syms_of_textprop): Don't forget defsubr for
-	Stext_property_all. 
+	Stext_property_all.
 
 	* textprop.c (Ftext_property_any, Ftext_property_all): Use EQ to
 	compare property values, not Fequal.
@@ -5588,7 +5588,7 @@
 1993-07-08  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
 
 	* callint.c (check_mark): Don't check mark-active unless in
-	transient-mark-mode.  
+	transient-mark-mode.
 	For inactive mark, signal mark-inactive instead of error with a
 	message.
 	* editfns.c (region_limit): Don't error if Vmark_even_if_inactive
@@ -5690,7 +5690,7 @@
 	against Qnil, not 0.
 
 	* keyboard.c (Vdouble_click_time): Renamed from double_click_time,
-	and made a Lisp_Object instead of an int.  
+	and made a Lisp_Object instead of an int.
 	(make_lispy_event): If Vdouble_click_time is t, impose no time
 	limit on double-clicks.
 	(syms_of_keyboard): DEFVAR_LISP (not DEFVAR_INT)
@@ -5844,7 +5844,7 @@
 1993-06-28  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 
 	* keymap.c (describe_map_2): Cleanups.
-	Check there's no previous definition in same keymap. 
+	Check there's no previous definition in same keymap.
 
 1993-06-24  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
 
--- a/src/ChangeLog.5	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/ChangeLog.5	Tue Feb 04 14:56:31 2003 +0000
@@ -1766,7 +1766,7 @@
 	* m/intel386.h (C_SWITCH_SYSTEM): Don't #undef or define it.
  	[SOLARIS2, SOLARIS2_4, !__GNUC__] (C_SWITCH_MACHINE): Define instead.
 
-1995-03-26  Germano Caronni <caronni@tik.ethz.ch>
+1995-03-26  Germano Caronni  <caronni@tik.ethz.ch>
 
 	* ralloc.c (r_re_alloc): Correct realloc behavior--allow shrinking
  	of blocks while reallocating, if shrinking by more than one page.
@@ -1789,7 +1789,7 @@
 
 	* textprop.c (Fnext_property_change): Fix previous change.
 
-1995-03-23  Kevin Rodgers <kevinr@ihs.com>
+1995-03-23  Kevin Rodgers  <kevinr@ihs.com>
 
 	* print.c (temp_output_buffer_setup): (Re)set the default
 	directory of the temp buffer to that of the current buffer.
@@ -3199,7 +3199,7 @@
 	* dispnew.c (scrolling): Fewer restrictions if scroll_region_ok is
 	set.  New vector old_draw_cost for direct scrolling method.
 
-1994-12-23  Michal Jankowski (Michal.Jankowski@fuw.edu.pl)
+1994-12-23  Michal Jankowski  (Michal.Jankowski@fuw.edu.pl)
 
 	* keyboard.c (read_char): Don't echo keys when echo_keystrokes is 0.
 
@@ -4314,7 +4314,7 @@
 
 	* buffer.c (list_buffers_1): Always mark current_buffer read-only.
 
-1994-10-20  Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
+1994-10-20  Fred Pierresteguy  <F.Pierresteguy@frcl.bull.fr>
 
 	* m/dpx2.h (LD_SWITCH_MACHINE): Defined.
 
@@ -5279,7 +5279,7 @@
 
 	* window.c (syms_of_window): Doc fix.
 
-1994-09-26  Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
+1994-09-26  Fred Pierresteguy  <F.Pierresteguy@frcl.bull.fr>
 
 	* m/dpx2.h (POSIX_SIGNALS): Define it.
 	(sigsetmask): Add #undef.
@@ -5485,7 +5485,7 @@
 
 	* editfns.c (Fmessage_box): Renamed from Fbox_message.
 
-1994-09-17  Michael Ben-Gershon (mybg@cs.huji.ac.il)
+1994-09-17  Michael Ben-Gershon  (mybg@cs.huji.ac.il)
 
 	* unexec.c (copy_text_and_data): Add RISCiX changes.
 
@@ -5793,7 +5793,7 @@
 
 	* term.c (clear_to_end): Fix reversed condition.
 
-1994-09-16  K. Berry <kb@cs.umb.edu>
+1994-09-16  K. Berry  <kb@cs.umb.edu>
 
 	* dired.c (Qcompletion_ignored_extensions): New symbol.
 	(syms_of_dired): Initialize it.
@@ -5804,7 +5804,7 @@
 	* s/msdos.h (MODE_LINE_BINARY_TEXT): Define this symbol.
 	* xdisp.c (decode_mode_spec): Use it when defined.
 
-1994-09-16  Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+1994-09-16  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 	* minibuf.c (read_minibuf): Don't add to the history list if the
 	minibuffer string is empty, since it is not very useful.
 
@@ -6045,7 +6045,7 @@
 	instead of whether SIGIO is defined.
 	* Makefile.in.in (xterm.o): Depend on keyboard.h.
 
-1994-08-26  Kevin Rodgers <kevinr@ihs.com>
+1994-08-26  Kevin Rodgers  <kevinr@ihs.com>
 
 	* xfns.c (Fx_color_defined_p): Return list of RGB values, not just t.
 
--- a/src/ChangeLog.6	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/ChangeLog.6	Tue Feb 04 14:56:31 2003 +0000
@@ -116,7 +116,7 @@
 	* xmenu.c (Fx_popup_dialog): Don't fail to initialize WINDOW.
 
 	* xdisp.c (prepare_menu_bars): Clear pending_menu_activation.
-	
+
 	* print.c: When printing into a buffer, generate all the text
 	first, then insert it all at once.
 	(print_buffer): New variable.
@@ -239,7 +239,7 @@
 	* xfns.c (xlwmenu_default_font): Declare, but don't define.
 	* xselect.c (last_event_timestamp): Declare, but don't define.
 
-1996-07-15  David Mosberger-Tang <davidm@AZStarNet.com>
+1996-07-15  David Mosberger-Tang  <davidm@AZStarNet.com>
 
 	* m/alpha.h (TEXT_START, DATA_START, DATA_SEG_BITS, UNEXEC, DATA_END):
 	Omit these definitions if ELF.
@@ -1079,7 +1079,7 @@
 	scroll_bar_up_arrow, scroll_bar_down_arrow.
 	(win32_scroll_bar_click): New enum constant.
 
-1996-05-03  Andrw Innes <andrewi@harlequin.co.uk>
+1996-05-03  Andrw Innes  <andrewi@harlequin.co.uk>
 
 	* makefile.nt (SUBSYSTEM) [NTGUI]: Remove conditional.
 	(LINK_FLAGS): Explicitly set base address, and stack and heap sizes.
@@ -1574,7 +1574,7 @@
 	* w32fns.c (defined_color): Map color to nearest in default palette.
 	(win32_wnd_proc): Special handling for WM_CLOSE.
 
-1996-04-16  Kim Storm <storm@olicom.dk>
+1996-04-16  Kim Storm  <storm@olicom.dk>
 
 	* msdos.c (check_timer): Removed; use gettime instead.
 	(sys_select): Call __dpmi_yield while waiting for input to
@@ -4475,7 +4475,7 @@
 	* keyboard.c (read_key_sequence): Validate the event position
 	before calling get_local_map.
 
-1995-08-29  Jack Repenning <jackr@sgi.com>
+1995-08-29  Jack Repenning  <jackr@sgi.com>
 
 	* unexelfsgi.c: Compute new data offset based on memory
 	address; also, copy .got from memory not temacs.
--- a/src/ChangeLog.7	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/ChangeLog.7	Tue Feb 04 14:56:31 2003 +0000
@@ -83,7 +83,7 @@
 
 	* xterm.c, xterm.h: x_display_unibyte_char_with_fontset renamed to
 	unibyte_display_via_language_environment.
-	
+
 	* xfns.c (unibyte_display_through_language_environment):
 	Renamed from x_display_unibyte_char_with_fontset.
 
@@ -200,7 +200,7 @@
 
 	* commands.h (Vthis_command): Renamed from this_command.
 
-	* minibuf.c (Fminibuffer_complete): 
+	* minibuf.c (Fminibuffer_complete):
 	this_command renamed to Vthis_command.
 
 	* macros.c (Fcall_last_kbd_macro):
@@ -210,7 +210,7 @@
 	(real_this_command): New variable, but not a Lisp variable;
 	updated like Vthis_command, but never altered by Lisp programs.
 	(command_loop_1): Use real_this_command to set Vreal_last_command.
-	
+
 1998-08-07  Kenichi Handa  <handa@etl.go.jp>
 
 	* cmds.c (internal_self_insert): If enable-multibyte-characters is
@@ -266,7 +266,7 @@
 	to XLoadQueryFont.
 	(fast_find_position): Handle case where position is before
 	an invisible character, thus not actually listed in charstarts.
-	
+
 	* keyboard.c (Vinput_method_previous_message): New variable.
 	(syms_of_keyboard): Set up lisp variable.
 	(Qinput_method_exit_on_first_char, Qinput_method_use_echo_area):
@@ -278,7 +278,7 @@
 	* lisp.h (Fread_key_sequence): Update declaration.
 
 	* callint.c (Fcall_interactively): Pass new arg to Fread_key_sequence.
-	
+
 1998-08-03  Richard Stallman  <rms@psilocin.ai.mit.edu>
 
 	* window.c (Fmove_to_window_line): Doc fix.
@@ -331,7 +331,7 @@
 	account.
 
 1998-07-30  Paul Eggert  <eggert@twinsun.com>
-	
+
 	* src/Makefile.in (widget.o, xfns.o, xmenu.o):
 	Prepend $(srcdir)/ to rule dependencies outside this dir.
 
@@ -450,7 +450,7 @@
 	(syms_of_keyboard): Set up Lisp vars.
 	(command_loop_1): Check Vunread_input_method_events and
 	Vunread_post_input_method_events along with Vunread_command_events.
-	
+
 1998-07-11  Andrew Innes  <andrewi@harlequin.co.uk>
 
 	* w32menu.c (w32_menu_show): Set widget call_data to 0 if
@@ -509,11 +509,11 @@
 
 	* charset.h (MAX_CHAR_COMPOSITION): Defined as (GLYPH_MASK_CHAR - 1),
 	one less than the previous value.
-	(GENERIC_COMPOSITION_CHAR): New macro. 
+	(GENERIC_COMPOSITION_CHAR): New macro.
 
 	* charset.c (Vgeneric_character_list): New variable.
 	(init_charset_once): Init and staticpro it.
-	(Fgeneric_character_list): New function. 
+	(Fgeneric_character_list): New function.
 	(syms_of_charset): defsubr it.
 
 	* fns.c (Fset_char_table_default): Check only if the charset of
@@ -630,7 +630,7 @@
 	* doc.c (get_doc_string): Take both UNIBYTE and DEFINITION as args.
 	All callers changed.
 	* lisp.h (get_doc_string): Adjust declaration.
-	
+
 	* lread.c (read_list): Pass new arg to get_doc_string.
 
 	* doc.c (get_doc_string): 2nd arg is now DEFINITION;
@@ -646,7 +646,7 @@
 	* emacs.c (sort_args): Discard duplicate options with no args.
 	(main): With duplicate -d options, use the last one.  Likewise for -t.
 	Check -d last, by checking for -nl earlier on.
-	
+
 1998-06-22  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
 	* keyboard.c (command_loop): Reset executing_macro after
@@ -775,7 +775,7 @@
 1998-06-14  Eli Zaretskii  <eliz@mescaline.gnu.org>
 
 	* msdos.c (dos_set_keyboard): Call Int 2Fh via the DPMI server,
-	not directly. 
+	not directly.
 	(dos_yield_time_slice): New function.
 	(sys_select): Use it instead of __dpmi_yield.
 
@@ -895,7 +895,7 @@
 	(display_text_line): If cursor's in the frame's echo area,
 	don't set this_line_endpos.
 	(redisplay_window): Use Fwindow_end to find lower scroll margin.
-	
+
 	* syntax.c (scan_lists): Properly skip the comment-fence character
 	that ends a comment, when moving forward.
 	(Fbackward_prefix_chars): Return immediately if point is at BEGV.
@@ -912,7 +912,7 @@
 	(scan_lists): Likewise.
 	(prev_char_comstart_first): New function.
 
-	* syntax.c 
+	* syntax.c
 1998-06-05  Andrew Innes  <andrewi@harlequin.co.uk>
 
 	* w32.c: #include sys/file.h
@@ -1008,7 +1008,7 @@
 
 	* w32.c (sys_rename): Handle filenames with accented characters.
 	(stat): Handle "c:/.." and "/.." specially.
-	
+
 	* unexw32.c (w32_fatal_reload_error): Update error message.
 
 1998-05-30  Karl Heuer  <kwzh@gnu.org>
@@ -1065,7 +1065,7 @@
 	(read1): Enable saving of doc strings on WINDOWSNT.
 	(read_list): Call get_doc_string instead of read_doc_string, when
 	forced to load doc strings.
-	
+
 1998-05-25  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
 	* s/gnu-linux.h (setpgrp): Remove extra parens around parameters.
@@ -1130,7 +1130,7 @@
 	* window.c (select_window_1): New subroutine, from Fselect_window.
 	(Fselect_window): Use select_window_1.
 	(temp_output_buffer_show): Use select_window_1.
-	
+
 1998-05-22  Kenichi Handa  <handa@etl.go.jp>
 
 	* ccl.c: Change term "character translation table" to "translation
@@ -1198,7 +1198,7 @@
 	* minibuf.c (syms_of_minibuf): Doc fix.
 
 	* window.c (Fscroll_up, Fscroll_down, Fscroll_other_window): Doc fixes.
-	
+
 	* frame.c (make_frame_visible_1): New function.
 	(Fmake_frame_visible): Use that.
 
@@ -1275,7 +1275,7 @@
 	* window.c (Fset_window_buffer): Update buffer's display_time.
 
 	* insdel.c (insert_1_both, insert_from_string_1, replace_range)
-	(insert_from_buffer_1, adjust_before_replace, adjust_after_replace): 
+	(insert_from_buffer_1, adjust_before_replace, adjust_after_replace):
 	Don't copy text being deleted, if undo is disabled.
 
 	* lread.c (readchar): Use readchar_backlog again
@@ -1380,7 +1380,7 @@
 	* xdisp.c (redisplay_window): Handle scroll_step along with
 	scroll_conservatively.  Fix 1-off error checking the limit for them.
 
-	* filelock.c (unlock_file): Encode the file name. 
+	* filelock.c (unlock_file): Encode the file name.
 
 1998-05-10  Richard Stallman  <rms@psilocin.ai.mit.edu>
 
@@ -1517,7 +1517,7 @@
 
 	* emacs.c (main): Call the syms_of_... and keys_of_... functions
 	earlier, before init_vms_input and init_display.
-	
+
 1998-05-04  E. Jay Berkenbilt  <ejb@ql.org>
 
 	* window.h (WINDOW_RIGHT_MARGIN): Don't subtract 1 from width when
@@ -1585,7 +1585,7 @@
 
 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
 
-	* fileio.c (Fmake_temp_name): Improve randomness of generated file 
+	* fileio.c (Fmake_temp_name): Improve randomness of generated file
 	names.
 
 1998-05-01  Richard Stallman  <rms@psilocin.gnu.org>
@@ -1599,7 +1599,7 @@
 
 1998-04-30  Geoff Voelker  <voelker@cs.washington.edu>
 
-	* keyboard.c (Qdrag_n_drop, drag_n_drop_syms, lispy_drag_n_drop_names) 
+	* keyboard.c (Qdrag_n_drop, drag_n_drop_syms, lispy_drag_n_drop_names)
 	New variables.
 	(make_lispy_event): Handle drag_n_drop events.
 	(syms_of_keyboard): Initialize new symbols.
@@ -1610,7 +1610,7 @@
 	* termhooks.h (event_kind): New event type `drag_n_drop'.
 
 	* makefile.nt (LIBS): Link in shell32.lib.
-	
+
 	* w32fns.c: Include shellapi.h.
 	(w32_createwindow): Enable drag-n-drop on new windows.
 	(w32_wnd_proc): Handle WM_DROPFILES messages.
@@ -1618,7 +1618,7 @@
 
 	* w32term.c: Include shellapi.h.
 	(construct_drag_n_drop): New function.
-	(w32_read_socket): Handle WM_DROPFILES messages.	
+	(w32_read_socket): Handle WM_DROPFILES messages.
 
 1998-04-30  Skip Collins  <ColliBF1@APLMSG.JHUAPL.EDU>
 
@@ -1637,7 +1637,7 @@
 	* indent.c (compute_motion): When invisible text cross TO,
 	return TO, not the start of the invisible text.
 
-	* process.c (Fset_process_inherit_coding_system_flag, Fstart_process): 
+	* process.c (Fset_process_inherit_coding_system_flag, Fstart_process):
 	Store inherit_coding_system_flag as a Lisp_Object.
 	(Fopen_network_stream): Likewise.
 	(Fprocess_inherit_coding_system_flag): Access it as Lisp_Object.
@@ -1686,7 +1686,7 @@
 
 	* emacs.c (abort): Omit this definition, if NO_ABORT.
 	End by calling exit, to avoid warning.
-	
+
 1998-04-28  Richard Stallman  <rms@psilocin.gnu.org>
 
 	* filelock.c: Include coding.h.
@@ -1767,7 +1767,7 @@
 	* minibuf.c (minibuf_conform_representation): New function.
 	(Ftry_completion): Use it to return multibyte string
 	if and only if the completion table has a multibyte string.
-	(Fdisplay_completion_list): 
+	(Fdisplay_completion_list):
 	Convert string to unibyte before displaying it, if default is unibyte.
 
 	* eval.c (find_handler_clause): Cast Fbacktrace to proper type.
@@ -1881,7 +1881,7 @@
 
 	* xfaces.c (unload_color): No longer static.
 
-	* insdel.c (insert_from_string, insert_from_string_before_markers): 
+	* insdel.c (insert_from_string, insert_from_string_before_markers):
 	Don't special case LENGTH = 0.
 	(insert_from_buffer): Likewise.
 
@@ -1894,7 +1894,7 @@
 1998-04-22  Eli Zaretskii  <eliz@delysid.gnu.org>
 
 	* w16select.c (Fwin16_set_clipboard_data): Call UNBLOCK_INPUT
-	before calling sit_for.  
+	before calling sit_for.
 	(Fwin16_get_clipboard_data, Fwin16_set_clipboard_data):	Balance
 	the calls to BLOCK_INPUT and UNBLOCK_INPUT.
 	(alloc_xfer_buf): If want_size is more than 1MB, return
@@ -1911,7 +1911,7 @@
 1998-04-21  Eli Zaretskii  <eliz@delysid.gnu.org>
 
 	* callproc.c (Fcall_process) [MSDOS]: Call child_setup instead of
-	run_msdos_command. 
+	run_msdos_command.
 	(child_setup) [MSDOS]: Call run_msdos_command here.
 	(child_setup) [DOS_NT]: Get past drive letter in pwd.  Don't call
 	close_load_descs, since we are not in a vfork.
@@ -1957,7 +1957,7 @@
 	(load_convert_to_unibyte): New variable.
 	(syms_of_lread): Set up Lisp var.
 	(read1): If load_convert_to_unibyte, convert strings to unibyte.
-	
+
 	* insdel.c (copy_text): Count down bytes_left properly
 	in multibyte to unibyte case.
 
@@ -2062,7 +2062,7 @@
 	(map_virt_key): Brazilian keyboards use 0xc1 for /(?) key.
 
 	* w32menu.c (Vmenu_updating_frame): New variable.
-	(Fx_popup_menu, set_frame_menubar): Record frame whose menu is 
+	(Fx_popup_menu, set_frame_menubar): Record frame whose menu is
 	being updated.
 	(syms_of_w32menu): Define Vmenu_updating_frame.
 
@@ -2082,7 +2082,7 @@
 	* w32term.c (Vw32_recognize_altgr): New variable.
 	(dumpglyphs): Update from xterm.c.
 	(w32_ring_bell): Flash window, don't just reset its state.
-	(dumprectangle, show_mouse_face, x_draw_single_glyph): Use new 
+	(dumprectangle, show_mouse_face, x_draw_single_glyph): Use new
 	args to dumpglyphs.
 	(my_set_foreground_window): New function.
 	(w32_condemn_scroll_bars): Mark all as condemned scroll bars.
@@ -2193,7 +2193,7 @@
 	* fontset.h (FONT_ENCODING_NOT_DECIDED): The value is changed to 255.
 	(find_ccl_program_func): Extern it.
 	(Fquery_fontset): Args number changed to 2.
-	
+
 	* xfns.c (syms_of_xfns): Initialize find_ccl_program_func.
 
 	* xterm.c (x_find_ccl_program): New function.
@@ -2293,7 +2293,7 @@
 	(printchar, strout): If echo area text converted to multibyte
 	does not all fit, truncate it at char boundary.
 
-	* marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): 
+	* marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
 	When calling set_marker_both, pass the right buffer.
 
 	* indent.c (Fcompute_motion): Check that TO and FROM are in range.
@@ -2367,7 +2367,7 @@
 	(syms_of_charset): Defsubr it.
 	(multibyte_form_length): Modified to be consistent with
 	string_to_non_ascii_char.
-	
+
 	* charset.h (MULTIBYTE_FORM_LENGTH): Don't check LEN here.
 
 	* xdisp.c (display_text_line): Code for displaying a character by
@@ -2547,7 +2547,7 @@
 
 	* fileio.c (barf_or_query_if_file_exists): New arg QUICK.
 	All calls changed.
-	
+
 1998-03-27  Richard Stallman  <rms@psilocin.gnu.org>
 
 	* insdel.c (check_markers_debug_flag): New variable.
@@ -2568,7 +2568,7 @@
 
 	* coding.c (code_convert_region): Call adjust_before_replace
 	in the no-conversion case.  Adjust GPT, ZV and Z in chars.
-	
+
 1998-03-25  Richard Stallman  <rms@psilocin.gnu.org>
 
 	* lread.c (init_lread): Init Vstandard_input.
@@ -2733,7 +2733,7 @@
 
 	* fns.c (substring_both, Fsubstring): Use make_specified_string.
 	(concat): Make string result unibyte or multibyte as appropriate.
-	
+
 	* doc.c (Fsubstitute_command_keys): Use make_string_from_bytes.
 
 	* coding.c (code_convert_string): Use make_string_from_bytes.
@@ -2748,7 +2748,7 @@
 	* editfns.c (Fchar_to_string): Use make_string_from_bytes.
 	(Fformat): Use make_specified_string.
 	(make_buffer_string_both): Use make_uninit_string if buffer is unibyte.
-	
+
 	* sunfns.c (syms_of_sunfns): Pass new arg to make_pure_string.
 
 	* lread.c (read1): Pass new arg to make_pure_string.
@@ -2769,14 +2769,14 @@
 	* lisp.h (STRING_BYTES, SET_STRING_BYTES): New macros.
 
 	* All files: Use STRING_BYTES and SET_STRING_BYTES.
-	
+
 	* editfns.c (Ftranspose_regions): Try to handle combining bytes.
 	* insdel.c (replace_range): New arg NOMARKERS.
-	
+
 1998-03-20  Richard Stallman  <rms@psilocin.gnu.org>
 
 	* cmds.c (internal_self_insert): Pass new arg to replace_range.
-	
+
 	* insdel.c (insert_1_both, insert_from_string_1, insert_from_buffer_1):
 	(adjust_before_replace, adjust_after_replace, replace_range):
 	(del_range_2): Call record_delete the new way.
@@ -2787,7 +2787,7 @@
 
 	* undo.c (record_delete): Replace LENGTH arg with STRING.
 	(record_change): Call record_delete the new way.
-	
+
 	* Makefile.in (keymap.o): Depend on puresize.h.
 	(xmenu.o): Don't depend on puresize.h.
 
@@ -2799,7 +2799,7 @@
 	* keymap.c (fix_submap_inheritance, get_keyelt, store_in_keymap,
 	copy-keymap, where_is_internal_1): Support new format for menu items.
 	(syms_of_keymap): New symbol `menu-item'.
-	
+
 	* keyboard.c: Include puresize.h for CHECK_IMPURE.
 	(parse_menu_item): New function.
 	(menu_item_eval_property_1, menu_item_eval_property) New suroutines.
@@ -2919,7 +2919,7 @@
 
 	* process.c (exec_sentinel, read_process_output):
 	Fstore_match_data => Fset_match_data.
-	
+
 	* xmenu.c (set_frame_menubar): Fstore_match_data => Fset_match_data.
 
 	* xdisp.c (message_dolog): Save and restore Vdeactivate_mark.
@@ -3018,14 +3018,14 @@
 	* lisp.h (struct Lisp_Buffer_Local_Value):
 	Field car renamed to realvalue.  New fields check_frame,
 	found_for_buffer, found_for_frame, buffer, frame.
-	
+
 	* data.c (store_symval_forwarding, swap_in_symval_forwarding)
 	(set_internal, default_value, Fset_default, Fmake_local_variable)
 	(Fmake_variable_buffer_local, Fkill_local_variable):
 	Handle new data structure for struct Lisp_Buffer_Local_Value.
 	(Fmake_variable_frame_local): New function.
 
-	* buffer.c (set_buffer_internal_1) 
+	* buffer.c (set_buffer_internal_1)
 	(swap_out_buffer_local_variables): Handle new data structure
 	for struct Lisp_Buffer_Local_Value.
 
@@ -3044,7 +3044,7 @@
 	Call set_search_regs differently in a forward search.
 	(boyer_moore): Fix up the code that translates the pattern
 	and loops thru equivalent characters.
-	
+
 1998-03-07  Richard Stallman  <rms@psilocin.gnu.org>
 
 	* insdel.c (adjust_markers_for_insert): New arg COMBINED_AFTER_BYTES.
@@ -3178,7 +3178,7 @@
 	(list2, list3, list4, list5): New function decl.
 	(Fwrite_region): Add an argument.
 	(compare_window_configurations): New function decl.
-	
+
 	* keyboard.c: Include syntax.h.
 	(interrupt_signal): Save and restore gl_state
 	around an immediate quit, in case debugger returns.
@@ -3200,7 +3200,7 @@
 	* callproc.c (Fcall_process_region): Pass new arg to Fwrite_region.
 
 1998-03-01  Ilya Zakharevich  <ilya@math.ohio-state.edu>
-	
+
 	* syntax.c (update_syntax_table): Properly update `position'
 	field of used intervals.
 
@@ -3486,7 +3486,7 @@
 	* buffer.c (advance_to_char_boundary): New function.
 	(Fset_buffer_multibyte): Advance all byte-positions to char boundaries.
 	Clear undo list.
-	
+
 	* fontset.h (GENERIC_FONT_PTR): Commented-out definition deleted.
 
 1998-02-06  Kenichi Handa  <handa@etl.go.jp>
@@ -3504,7 +3504,7 @@
 	* editfns.c (Fposition_bytes): New function.
 	(syms_of_editfns): defsubr it.
 
-	* fns.c (Fstring_bytes): New function. 
+	* fns.c (Fstring_bytes): New function.
 	(syms_of_fns): defsubr it.
 
 1998-02-05  Richard Stallman  <rms@psilocin.gnu.org>
@@ -3721,7 +3721,7 @@
 	change of code_convert_string.
 	(Fupdate_iso_coding_systems): New function.
 	(init_coding_once): Initialize coding_system_table.
-	
+
 	* data.c (Faset): Allow setting a multibyte character in a
 	multibyte string as far as it doesn't change the size_byte of the
 	string.
@@ -3809,7 +3809,7 @@
 	CODING_CATEGORY_MASK_ISO_7_TIGHT.
 	(coding_category_table, coding_category_name): Extern deleted.
 	(Vselect_safe_coding_system_function): Extern it.
-	
+
 	* charset.h (MAX_CHAR_COMPOSITION): New macro.
 	(CHAR_CHARSET): Check more strictly.
 	(CODING_FLAG_ISO_DESIGNATION): New macro.
@@ -3864,19 +3864,19 @@
 	* charset.c (nonascii_insert_offset): Variable moved from cmds.c.
 	(syms_of_charset): Initialize variable.
 
-	* cmds.c (internal_self_insert, Fself_insert_command): 
+	* cmds.c (internal_self_insert, Fself_insert_command):
 	Use unibyte_char_to_multibyte.
 	(nonascii_insert_offset): Variable moved to charset.c.
 	(syms_of_cmds): Don't initialize nonascii_insert_offset.
 
 	* fileio.c (Fsubstitute_in_file_name): Use unibyte_char_to_multibyte.
-	
+
 	* keyboard.c (command_loop_1): Use unibyte_char_to_multibyte.
 
 	* xdisp.c (message_dolog): Use unibyte_char_to_multibyte.
 	Pass different args to scan_newline.
 	Properly compare oldpoint with Z.
-	
+
 	* syntax.c (skip_chars): Use unibyte_char_to_multibyte,
 
 	* fns.c (concat): Use unibyte_char_to_multibyte.
@@ -4100,7 +4100,7 @@
 	(insert_from_buffer_1): Call copy_text to convert between
 	single-byte and multibyte text.
 	(insert_from_string_1): Likewise.
-	
+
 	* process.c (read_process_output): New var `multibyte'.
 	Set it according to which coding system was used.
 
@@ -4168,7 +4168,7 @@
 	insert_from_string.  Scan string by bytes and chars.
 	(Ftry_completion): Use size_byte while comparing.
 	(Fall_completions): Use size_byte while comparing.
-	(test_completion): 
+	(test_completion):
 
 	* editfns.c (syms_of_editfns): Delete defsubr for sref.
 
@@ -4218,7 +4218,7 @@
 	* keyboard.c (read_char): Use Faref on Vkeyboard_translate_table
 	if it is a string.
 	(apply_modifiers_uncached): New arg base_len_byte.  Calls changed.
-	(read_char_minibuf_menu_prompt): 
+	(read_char_minibuf_menu_prompt):
 	(read_key_sequence): Access buffer's downcase_table with XCHAR_TABLE.
 	(Fexecute_extended_command): Use Faref to access FUNCTION.
 	Use size_byte of BINDING.
@@ -4263,7 +4263,7 @@
 	Initialize print_buffer_pos_byte.  Use insert_1_both.
 	(printchar): Update print_buffer_pos_byte and print_buffer_pos.
 	(print_buffer_pos_byte): New variable.
-	
+
 	* editfns.c (general_insert_function):
 	Pass the additional args to INSERT_FROM_STRING_FUNC.
 	(Fchar_to_string): Use make_multibyte_string.
@@ -4274,7 +4274,7 @@
 	(Fmessage, Fmessage_box): Update message_text based on size_byte.
 
 	* insdel.c (insert_from_string): New args POS_BYTE, LENGTH.
-	(insert_from_string_before_markers): 
+	(insert_from_string_before_markers):
 	(insert_from_string_1): New arg POS_BYTE.  Swap args NCHARS, NBYTES.
 	Don't fail to use POS_BYTE!
 	(insert_from_buffer_1): Get both inschars and insbytes from NEW.
@@ -4301,13 +4301,13 @@
 	(Fstring): Renamed from Fconcat_chars.
 	Handle bytes vs chars in string.
 	(syms_of_charset): Corresponding changes.
-	
+
 	* fns.c (concat, Fsubstring, internal_equal, mapcar1):
 	Distinguish bytes and chars when indexing strings.
 	(Fstring_equal, Fstring_lessp): Likewise.
 	(substring_both): New function.
 	(string_char_to_byte, string_byte_to_char): New functions.
-	
+
 	* charset.h (FETCH_STRING_CHAR_ADVANCE): New macro.
 
 	* lisp.h (struct lisp_String): New field size_byte.
@@ -4319,10 +4319,10 @@
 
 	* window.c (Fselect_window): Don't set OW->pointm if OW->buffer is nil.
 	(Fset_window_configuration): Set old selected window's pointm.
-	
+
 	* minibuf.c (Fcompleting_read): Doc fix.
 
-	* keymap.c (current_minor_maps): 
+	* keymap.c (current_minor_maps):
 	If a variable has an entry in Vminor_mode_overriding_map_alist,
 	and also an entry in Vminor_mode_map_alist, ignore the latter.
 
@@ -4350,7 +4350,7 @@
 
 	* lisp.h (struct Lisp_Marker): Rename `bufpos' to `bytepos'.
 	Its value no longer includes the gap space.
-	
+
 	* editfns.c (Fchar_after): Fix previous change.
 
 	* fileio.c (a_write): Fix prototype.
@@ -4360,7 +4360,7 @@
 	(insert_1, indented_beyond_p): Decls changed.
 	(move_gap_both, del_range_byte, del_range_both, del_range_2)
 	(scan_newline, Ffile_locked_p): New decls.
-	(struct Lisp_Marker): 
+	(struct Lisp_Marker):
 
 	* search.c (scan_newline): Always restore prev value of immediate_quit.
 
@@ -4388,7 +4388,7 @@
 	* charset.h (CHAR_HEAD_P): Take char, not pointer, as arg.
 
 	* window.c (unshow_buffer): Set PT with TEMP_SET_PT_BOTH.
-	
+
 	* indent.c (indented_beyond_p): Take POS in bytes and chars.
 	Callers changed.
 	(pos_tab_indent): Function moved to xdisp.c.
@@ -4400,7 +4400,7 @@
 
 	* xdisp.c (pos_tab_indent): Moved from indent,c.  Now static.
 	Take POS in bytes and chars.  Callers changed.
-	
+
 	* indent.c (Fcurrent_indentation): Use scan_newline and SET_PT_BOTH.
 	(indented_beyond_p, current_column_1): Likewise.
 
@@ -4421,7 +4421,7 @@
 	(window_scroll): Save and restore both kinds of pointers.
 
 	* process.c (status_notify): Use byte and char pointers.
-	
+
 	* callint.c (Fcall_interactively) <'d', 'r'>: Use set_marker_both.
 
 	* emacs.c (abort): New function.
@@ -4451,14 +4451,14 @@
 	(message_log_check_duplicate): Take charpos and bytepos args.
 	(message_dolog): Use markers to update old PT, BEGV, ZV.
 	Use scan_newline.  Handle positions in bytes and chars.
-	
+
 1997-12-28  Richard Stallman  <rms@psilocin.gnu.org>
 
 	* xselect.c (Fx_rotate_cut_buffers_internal): Doc fix.
 
 	* coding.c (code_convert_region): Handle bytepos and charpos.
 	(Fdetect_coding_region): Likewise.
-	
+
 	* Makefile.in (marker.o): Depend on charset.h.
 
 1997-12-27  Richard Stallman  <rms@psilocin.gnu.org>
@@ -4491,7 +4491,7 @@
 
 	* syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
 	Wrap in  if (1) ... else.
-	
+
 	* minibuf.c (Fminibuffer_complete_word): Handle bytes vs characters
 	when comparing buffer against string.
 	(temp_echo_area_glyphs): Save, update, delete text using
@@ -4505,13 +4505,13 @@
 
 	* buffer.h (DECODE_POSITION): New macro.
 	(CHAR_TO_BYTE, BYTE_TO_CHAR): New macros.
-	
+
 	* buffer.h (BEG_BYTE, BEGV_BYTE, PT_BYTE, GPT_BYTE)
 	(ZV_BYTE, Z_BYTE): New macros.
 	(BUF_BEG_BYTE, BUF_BEGV_BYTE, BUF_PT_BYTE, BUF_GPT_BYTE)
 	(BUF_ZV_BYTE, BUF_Z_BYTE): New macros.
 	(BUF_GAP_END_ADDR): New macro.
-	(BEGV_ADDR, PT_ADDR, GPT_ADDR, GAP_END_ADDR, ZV_ADDR, Z_ADDR): 
+	(BEGV_ADDR, PT_ADDR, GPT_ADDR, GAP_END_ADDR, ZV_ADDR, Z_ADDR):
 	Use the new ..._byte buffer data.
 	(BUFFER_CEILING_OF, BUFFER_FLOOR_OF): Likewise.
 	(BUF_GPT_ADDR, BUF_Z_ADDR): Likewise.
@@ -4543,7 +4543,7 @@
 	(write_abbrev): Return void.
 	(Fexpand_abbrev): Scan in bytepos along with charpos.
 	(Funexpand_abbrev): Use bytepos to delete the expansion.
-	
+
 	* charset.h (INC_POS, DEC_POS): Fix because arg is a bufpos.
 	(BUF_INC_POS, BUF_DEC_POS): New macros.
 	(INC_BOTH, DEC_BOTH): New macros.
@@ -4567,7 +4567,7 @@
 	use readchar_backlog to fetch bytes from a character.
 	(unreadchar): Increment readchar_backlog.
 	(readevalloop, Fread): Init readchar_backlog.
-	
+
 	* charset.c (Fchar_boundary_p): Always return 0.
 	(Fchars_in_region): Just subtract the arguments.
 	(chars_in_text): New function.
@@ -4612,28 +4612,28 @@
 	(Fmove_to_column): Scan with bytepos and charpos.
 	(pos_tab_offset): Use bytepos to do FETCH_BYTE.
 	(skip_invisible): Don't worry about position in middle of character.
-	
+
 	* xdisp.c (try_window): Pass bytepos to and from display_text_line.
 	(try_window_id): Likewise.  Use byte pos as well as charpos.
 	(redisplay_internal): Handle bytepos for tlbufpos.
 
 	* xdisp.c (message): Cast last arg to doprnt.
-	
+
 	* indent.h (struct position): New field bytepos.
 
 	* keyboard.c (command_loop_1): Use PT_BYTE when calling FETCH_BYTE.
 	Instead of Fforward_point, just add.
-	
+
 	* search.c (looking_at_1): Use bytepos to call re_search_2.
 	Convert search regs to charpos, if search succeeded.
 	(search_buffer): Likewise.  Also convert charpos <-> bytepos
 	in non-regexp case.
-	(scan_buffer): Convert charpos <-> bytepos. 
+	(scan_buffer): Convert charpos <-> bytepos.
 	(scan_newline): New function.
 	(find_next_newline): Function deleted.
 	(set_search_regs): Args now in bytes; convert to charpos.
 	(Freplace_match): Convert charpos <-> bytepos when scanning case.
-	
+
 	* fileio.c (restore_point_unwind): Now static.  Use Fgoto_char.
 	(Funhandled_file_name_directory): Doc fix.
 	(Finsert_file_contents): Handle bytes vs chars.
@@ -4642,7 +4642,7 @@
 	(e_write): Rename args.
 	(Funhandled_file_name_directory): Doc fix.
 	(a_write, e_write): Now static.
-	
+
 	* editfns.c (Fgoto_char): When arg is a marker, copy char and byte
 	positions from it.  When arg is an integer, no need to worry that it
 	is in middle of a character.
@@ -4710,9 +4710,9 @@
 	(message2): Pass new arg to message2_nolog.
 	(message1_nolog): Likewise.
 
-	* keyboard.c (Fexecute_extended_command): 
+	* keyboard.c (Fexecute_extended_command):
 	Save message_enable_multibyte and pass it to message2_nolog.
-	
+
 	* alloc.c (Fgarbage_collect):
 	Save message_enable_multibyte and pass it to message2_nolog.
 
@@ -4734,7 +4734,7 @@
 
 	* xdisp.c (message_dolog): Convert between single-byte and multibyte
 	when inserting text into *Messages*.
-	
+
 1997-12-11  Richard Stallman  <rms@gnu.org>
 
 	* sysdep.c (sys_signal): Add two casts.
@@ -4742,7 +4742,7 @@
 1997-12-09  Richard Stallman  <rms@gnu.org>
 
 	* callproc.c (Fcall_process): Don't clobber new_argv[0]
-	in the case of no args.	
+	in the case of no args.
 
 1997-12-09  Kenichi Handa  <handa@etl.go.jp>
 
@@ -4799,7 +4799,7 @@
 	* eval.c (do_autoload): Return void.
 
 	* sysdep.c (reset_sigio): Return void.
-	
+
 	* keyboard.c (Fsuspend_emacs): Cast init_sys_modes when calling
 	record_unwind_protect.
 
@@ -4818,7 +4818,7 @@
 	* undo.c (record_change, record_first_change,
 	record_property_change): Declare them as void.
 	(record_delete, record_marker_adjustment): Declare them as void.
-	
+
 	* indent.c (invalidate_current_column): Declare it as void.
 
 	* fileio.c (report_file_error): Declare it as void.
@@ -4857,7 +4857,7 @@
 	* xdisp.c (redisplay_preserve_echo_area): Declare it as void.
 
 	* charset.c (strwidth): Remove extra argument to buffer_display_table.
-	
+
 1997-11-25  Andreas Schwab  <schwab@delysid.gnu.org>
 
 	* charset.h (SPLIT_STRING): Remove extra argument to
@@ -5126,7 +5126,7 @@
 
 1997-10-24  Richard Stallman  <rms@gnu.org>
 
-	* frame.c (Fmouse_pixel_position, Fmouse_position): 
+	* frame.c (Fmouse_pixel_position, Fmouse_position):
 	Pass -1 as INSIST arg to mouse_position_hook.
 	* w32term.c (w32_mouse_position): Handle INSIST < 0.
 	* xterm.c (XTmouse_position): Handle INSIST < 0.
@@ -5466,7 +5466,7 @@
 	Decode all result file names using Vfile_name_coding_system.
 
 	* coding.c (Fencode_coding_string, Fdecode_coding_string): Doc fixes.
-	
+
 1997-09-07  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
 	* lread.c (Feval_buffer): New arg FILENAME.
@@ -5476,7 +5476,7 @@
 1997-09-07  Geoff Voelker  <voelker@cs.washington.edu>
 
 	* firstfile.c: New file.
-	
+
 1997-09-07  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
 	* xdisp.c (display_string): Determine multibyte from current buffer,
@@ -5491,7 +5491,7 @@
 
 	* unexelf.c: Test __OpenBSD__ along with __NetBSD__.
 	[__OpenBSD__]: Include sys/exec_elf.h.
-	
+
 1997-09-05  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
 
 	* coding.c (Ffind_operation_coding_system): If a function in
@@ -5505,7 +5505,7 @@
 	* lisp.h (Fread_coding_system): Update decl.
 
 	* callint.c (Fcall_interactively): Pass new arg to Fread_coding_system.
-	
+
 1997-09-04  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
 	* m/alpha.h (PTY_OPEN): Call sigblock properly.
@@ -5581,7 +5581,7 @@
 	a separate .bss section conditional.
 	Use my_begbss and my_endbss to determine .bss size by default.
 	Look for Emacs data in EMDATA section.
-	
+
 	* w32.c: Include stddef.h.
 	(getwd): Delete macro.
 	(startup_dir): New variable.
@@ -5598,9 +5598,9 @@
 	(sys_link): Support NTFS links.
 	(sys_rename): Use a long file name for temporary name.
 	(sys_pipe): Make pipes binary and non-inheritable.
-	(sys_read, sys_write): Spoof text mode translation for pipes 
+	(sys_read, sys_write): Spoof text mode translation for pipes
 	and sockets.
-	
+
 	(hashval): Simplify.
 	(generate_inode_val): Use long file name version of file.
 
@@ -5615,18 +5615,18 @@
 	(lookup_volume_info, add_volume_info, GetCachedVolumeInformation):
 	New functions.
 	(get_volume_info): Use volume_info_data.
-	Use GetCachedVolumeInformation.	
+	Use GetCachedVolumeInformation.
 
 	(init_ntproc): No longer restrict to one DOS subprocess.
 	Use CRT _open and _fdopen.
 	Cache fixed drive information.
-	
+
 	* w32.h: Remove debugging macros.
 	(child_process): Remove is_dos_process field, add hwnd handle field.
 	(FILE_LAST_CR): New macro.
 	(w32_get_long_filename): Declare extern.
 
-	* w32console.c: (DebPrint, reset_kbd, unset_kbd, take_console): 
+	* w32console.c: (DebPrint, reset_kbd, unset_kbd, take_console):
 	Delete functions.
 	(keyboard_init_hook): Delete variable.
 	(prev_console_cursor) [! USE_SEPARATE_SCREEN]: New variable.
@@ -5640,7 +5640,7 @@
 
 	* w32fns.c: Include limits.h and errno.h.
 	Declare externs from other files.
-	(w32_in_use): New variable.	
+	(w32_in_use): New variable.
 	(check_w32, have_menus_p, x_set_title, w32_msg_worker,
 	find_deferred_msg, send_deferred_msg, complete_deferred_msg,
 	Fw32_focus_frame, W32-send-sys-command): New functions.
@@ -5654,7 +5654,7 @@
 	(x_icon): Initial support for creating window iconified.
 	(x_display_info_for_name): Set w32_in_use.
 	(Fx_open_connection): Validate Vwindow_system.  Set w32_in_use.
-	
+
 	(w32_create_window): Set window size to frame dimensions.
 	Set font width, line height, border, scrollbar indexes.
 	Don't set X and Y units indexes.
@@ -5662,7 +5662,7 @@
 	Make static.  Don't post done message. No longer handle
 	create scrollbar message.  Don't abort on anomalous messages.
 	Return when completion detected.
-	(w32_wnd_proc): Keep track of button state.	
+	(w32_wnd_proc): Keep track of button state.
 	For WINDOWPOSCHANGING, force window dimensions to be multiples
 	of character dimensions.
 	Handle CREATESCROLLBAR.
@@ -5675,7 +5675,7 @@
 	Set icon name.
 	Use courier new as default font (has bold and italic).
 	Set BufferPredicate and Title default parameters.
-	
+
 	(x_to_w32_weight): Support semibold weight.
 	(x_to_w32_charset): Map # to numeric charset identifier.
 	(w32_to_x_charset): Encode unknown charsets as a number.
@@ -5697,23 +5697,23 @@
 	* w32inevt.c: Declare externs from other files.
 	(w32_kbd_mods_to_emacs): New parameter KEY.
 	Use w32-capslock-is-shiftlock for old behavior.
-	(key_event): Pass in new parameter to w32_kbd_mods_to_emacs.	
-	
+	(key_event): Pass in new parameter to w32_kbd_mods_to_emacs.
+
 	* w32menu.c (init_menu_items): Disable code.
 	(x_activate_menubar): New function.
 	(initialize_frame_menubar): Pass in new param to set_frame_menubar.
-	
+
 	* w32proc.c: Include w32heap.h.
 	(Vw32_start_process_share_console, Vw32_generate_fake_inodes,
-	Vw32_get_true_file_attributes, Qhigh, Qlow, process_dir): 
+	Vw32_get_true_file_attributes, Qhigh, Qlow, process_dir):
 	New variables.
 	(find_child_console, set_process_dir, Fw32_short_file_name,
 	Fw32_long_file_name, Fw32_set_process_priority, Fw32_get_locale_info,
-	Fw32_get_current_locale_id, Fw32_get_default_local_id, 
+	Fw32_get_current_locale_id, Fw32_get_default_local_id,
 	Fw32_set_current_locale): New functions.
 	(CORRECT_DIR_SEPS): New macro.
 	(create_child): Create a new console if subprocs don't share parent's.
-	(reap_subprocess): Don't check for dos subprocesses.  
+	(reap_subprocess): Don't check for dos subprocesses.
 	Add debug support.
 	(sys_wait): Ignore socket child_procs.
 	Check for quit while waiting.
@@ -5760,7 +5760,7 @@
 	Pass in new parameter to w32_kbd_mods_to_emacs.
 	Handle WM_DISPLAYCHANGE, WINDOWPOSCHANGED, ACTIVATE, SHOWWINDOW,
 	INITMENU, and ACTIVATEAPP messages.
-	Explicitly check for visibile and obscured frames, and to see if 
+	Explicitly check for visibile and obscured frames, and to see if
 	any event should cause a redisplay.
 
 	(x_display_bar_cursor): Don't check whether frame is updating here.
@@ -5773,9 +5773,9 @@
 	(x_focus_on_frame): Set focus by making frame the foreground window.
 	(x_raise_frame): Support frames to be raised without grabbing focus.
 	(x_lower_frame): Set NOACTIVATE flag when setting window position.
-	(x_make_frame_visible, x_make_frame_invisible): Pass in frame 
+	(x_make_frame_visible, x_make_frame_invisible): Pass in frame
 	to my_show_window.
-	(x_iconify_frame): Send a MINIMIZE message to the window.	
+	(x_iconify_frame): Send a MINIMIZE message to the window.
 	(x_wm_set_size_hint): Set font width, line height, border,
 	and scroll bar indexes instead of X and Y unit indexes.
 
@@ -5786,7 +5786,7 @@
 
 	* w32term.h (w32_output): New fields menubar_widget, menubar_active,
 	and pending_menu_activation.
-	(VERTICAL_SCROLL_BAR_*): Use proportional scroll bar variables.	
+	(VERTICAL_SCROLL_BAR_*): Use proportional scroll bar variables.
 	(W32WindowPos): Delete definition.
 	(WM_EMACS_SETFOCUS, WND_*_INDEX): New macros.
 	(deferred_msg): New structure.
@@ -5799,7 +5799,7 @@
 	Undef system calls before redefining.  Emulated calls redefined
 	to sys_*, real calls redefined to _*.
 	(DebPrint): Macro defined.
-	
+
 1997-09-02  Michael Welsh Duggan  <md5i@schenley.com>
 
 	* w32term.h (WM_MOUSEWHEEL): Define if not already defined.
@@ -5812,7 +5812,7 @@
 
 	* w32fns.c (win32_wnd_proc): Capture and handle WM_MOUSEWHEEL events.
 	Capture and handle WM_EMACS_TRACKPOPUPMENU events.
-	Allow a dragged selection from a popup menu started up 
+	Allow a dragged selection from a popup menu started up
 	by a mouse down event.
 	(x_to_win32_color): Support for X Windows RGB string specifications.
 
@@ -5831,13 +5831,13 @@
 	send address of menu to win32menu_show.
 	(win32menu_show): Send message to call popup menu rather than
 	trying directly.  get_menu_event should take an address.
-	Call eat_mouse_events in order to get rid of any extraneous 
+	Call eat_mouse_events in order to get rid of any extraneous
 	mouse events.
 	(list_of_panes): Only bring up one pane if the length of the list
 	of panes is one.
 
 1997-09-02  Nico Francois  <nico.francois@scala.nl>
- 
+
  	* w32menu.c (single_keymap_panes): Fixed problem with 'descrip'
 	lisp object not being protected properly (GCPRO).
  	(get_single_keymap_event): Fixed problem with 'descrip' lisp
@@ -5884,12 +5884,12 @@
 	* sysdep.c (sys_subshell) [DOS_NT]: Save and restore parent's
 	working directory.
 	(sys_subshell) [WINDOWSNT]: Share MSDOS code. Don't take console.
-	(init_sys_modes, reset_sys_modes) [WINDOWSNT]: Do it even with 
+	(init_sys_modes, reset_sys_modes) [WINDOWSNT]: Do it even with
 	a read_socket_hook.
 
 	* xdisp.c (redisplay_internal): Check to see if frame is not obscured
 	as well as visible.
-	
+
 1997-09-02  Michael Welsh Duggan  <md5i@schenley.com>
 
 	* lisp.h: Declare discard_mouse_events.
@@ -5915,7 +5915,7 @@
 	in the detect_coding_iso2022 case.
 
 	* minibuf.c (Fread_from_minibuffer, Fread_string): Doc fixes.
-	(Fread_no_blanks_input, Fcompleting_read): Doc fixes.	
+	(Fread_no_blanks_input, Fcompleting_read): Doc fixes.
 
 	* unexnext.c: Include unistd.h instead of libc.h.
 
@@ -5997,7 +5997,7 @@
 	raw-text-unix.
 	(Fdetect_coding_region): Do not select no-conversion even if EOL
 	format of raw-text file is inconsistent.
-	
+
 1997-08-28  Kenichi Handa  <handa@etl.go.jp>
 
 	* coding.c (Qno_conversion, Qundecided): New variables.
@@ -6160,7 +6160,7 @@
 	* fontset.c (Valternate_fontname_alist): Name changed from
 	Valternative_fontname_alist.
 	(syms_of_fontset): Adjusted for the above change.
-	
+
 	* fontset.h: Adjusted for the name change of
 	Valternate_fontname_alist.
 
@@ -6386,7 +6386,7 @@
 
 	* xrdb.c (X_DEFAULT_SEARCH_PATH): Add /usr/X11R6/lib alternatives.
 
-	* editfns.c (Fwiden, Fnarrow_to_region, save_restriction_restore): 
+	* editfns.c (Fwiden, Fnarrow_to_region, save_restriction_restore):
 	Don't set clip_changed if the new values are the same as the old.
 
 	* fileio.c (Fwrite_region): Turn off the feature of checking
@@ -6487,7 +6487,7 @@
 1997-08-02  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
 	* coding.c: Doc fixes.
-	
+
 	* lread.c (Fload): New optional arg MUST-SUFFIX.
 	* fns.c (Frequire): Pass t for the MUST-SUFFIX arg to Fload.
 	* eval.c (do_autoload): Pass new arg to Fload.
@@ -6553,7 +6553,7 @@
 1997-07-29  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
 
 	* xterm.c (x_list_fonts): Reject a font whose min_bounds.width is 0.
-	
+
 1997-07-28  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
 	* emacs.c (sort_args): Check properly for `--'.
@@ -6687,12 +6687,12 @@
 	* keyboard.c (read_char): Delete spurious UNGCPRO.
 	Add UNGCPRO before the longjmps to wrong_kboard_jmpbuf.
 	Initialize c before the GCPRO1.
-	
+
 	* frame.c (Fdelete_frame): Undo previous change.
 
 	* s/hpux8.h (LD_SWITCH_SYSTEM_TEMACS): Define this
 	instead of LD_SWITCH_SYSTEM.
-	
+
 	* window.c (set_window_height): Allow all heights > 0
 	for minibuffer windows.
 	(change_window_height): Fix one-off comparing DELTA with MAXIMUM.
@@ -6929,7 +6929,7 @@
 
 	* w32.c (sys_shutdown): New function.
 	* s/ms-win32.h: Define HAVE_SHUTDOWN.
-	
+
 1997-07-10  Eli Zaretskii  <eliz@pogo.gnu.ai.mit.edu>
 
 	* xfaces.c (Fset_face_attribute_internal): Set mouse_face_defer
@@ -6961,7 +6961,7 @@
 
 	* xterm.c (x_load_font): Get value of fontp->height from
 	ascent and descent members of structure font->max_bounds.
-	(dumpglyphs): Draw background by FillSolid if a font is too short. 
+	(dumpglyphs): Draw background by FillSolid if a font is too short.
 
 1997-07-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
@@ -6996,7 +6996,7 @@
 	* syntax.h (struct gl_state_s): New field `offset'.
 	(SETUP_SYNTAX_TABLE_FOR_OBJECT): Set offset field.
 	(SETUP_SYNTAX_TABLE): Clear offset field.
-	(UPDATE_SYNTAX_TABLE, UPDATE_SYNTAX_TABLE_FORWARD): 
+	(UPDATE_SYNTAX_TABLE, UPDATE_SYNTAX_TABLE_FORWARD):
 	(UPDATE_SYNTAX_TABLE_BACKWARD): Use the offset field.
 
 	* s/sol2.h (LIBS_SYSTEM): Add -lkvm and -lelf.
@@ -7037,7 +7037,7 @@
 	emacs-mule, and set coding system for encoding to nil.
 	(Fopen_network_stream): If enable-multibyte-characters is nil, set
 	coding systems for decoding and encoding to nil.
-	
+
 	* fileio.c (Finsert_file_contents): If enable-multibyte-characters
 	is nil, decode character code by emacs-mule.
 	(Fwrite_region): Use buffer-file-coding-system for encoding if
@@ -7138,7 +7138,7 @@
 	* syssignal.h (sigpause): Don't define if already defined.
 
 	* Makefile.in (LD_SWITCH_SYSTEM_TEMACS): New variable.
-	
+
 1997-07-02  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
 	* Makefile.in (lisp, shortlisp): Add widget.elc.
@@ -7226,7 +7226,7 @@
 	(read_process_output): Use read instead of READ_CHILD_OUTPUT.
 
 	* makefile.nt (OBJ2): Include new source files.
-	
+
 	* s/ms-w32.h: Duplicate undefs from config.in to check completeness.
 	(STDC_HEADERS, HAVE_TZNAME, HAVE_MKTIME): Define to have a value.
 	(HAVE_GETPAGESIZE, HAVE_SETLOCALE, HAVE_SHUTDOWN, HAVE_TZSET,
@@ -7234,7 +7234,7 @@
 	[HAVE_NTGUI] (HAVE_MENUS): Define.
 	(SYSTEM_PURESIZE_EXTRA): Increase value.
 
-	* unexw32.c, w32heap.c: Add pragma to force zero initialized 
+	* unexw32.c, w32heap.c: Add pragma to force zero initialized
 	data into .data segment.
 
 	* w32console.c, w32term.c: Include charset.h.
@@ -7325,7 +7325,7 @@
 1997-06-22  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
 	* s/bsdos3.h: New file.
-	
+
 	* s/bsdos2.h (KERNEL_FILE): New overriding definition.
 
 	* keyboard.c (read_avail_input): Check for failure with EIO.
@@ -7336,7 +7336,7 @@
 	(KERNEL_FILE, UNEXEC): Don't redefine them if __linux__.
 	[__linux__] (TEXT_START, DATA_START, DATA_SEG_BITS):
 	Alternate definitions.
-	
+
 	* emacs.c (Fdump_emacs): Bind command-line-processed to nil here.
 
 	* xdisp.c (init_xdisp): Pay attention to FRAME_MENU_BAR_LINES.
@@ -7400,7 +7400,7 @@
 
 	* process.c (Fprocess_send_eof): Use shutdown, if it's a socket.
 	Don't close the output descriptor if that is also the input descriptor.
-	
+
 	* config.in (HAVE_SHUTDOWN): Add #undef.
 
 	* editfns.c (Fchar_before): Validate N after decrementing.
@@ -7427,7 +7427,7 @@
 1997-06-15  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
 	* process.c (wait_reading_process_input): When exiting because
-	the process WAIT_PROC has terminated, first read all its output. 
+	the process WAIT_PROC has terminated, first read all its output.
 
 1997-06-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
@@ -7461,7 +7461,7 @@
 	Don't define these if __ELF__.
 	(RUN_TIME_REMAP, N_PAGSIZ, N_BSSADDR, N_TRELOFF): Likewise.
 
-	* m/alpha.h (TEXT_END, COFF, DATA_END): 
+	* m/alpha.h (TEXT_END, COFF, DATA_END):
 	Define them if __NetBSD__ just as if LINUX.
 	(HAVE_TEXT_START): Define, if __NetBSD__ and __ELF__.
 
@@ -7484,9 +7484,9 @@
 
 	* editfns.c (Finsert_char): Check QUIT.
 
-	* fontset.c (list_fontsets, fs_load_font): 
+	* fontset.c (list_fontsets, fs_load_font):
 	fast_c_string_match_ignore_case renamed.
-	
+
 	* xterm.c (x_list_fonts): fast_c_string_match_ignore_case renamed.
 
 	* search.c (fast_c_string_match_ignore_case):
@@ -7561,9 +7561,9 @@
 1997-06-01  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
 	* lisp.h (VALMASK, GCTYPEMASK, MARKBIT, ARRAY_MARK_FLAG)
-	(PSEUDOVECTOR_FLAG, enum pvec_type, PSEUDOVECTOR_SIZE_MASK): 
+	(PSEUDOVECTOR_FLAG, enum pvec_type, PSEUDOVECTOR_SIZE_MASK):
 	Define regardless of NO_UNION_TYPE.
-	
+
 	* xfns.c (Fx_create_frame): Use XINT to access parent.
 
 	* syntax.c (Fsyntax_table_p, check_syntax_table): Use EQ.
@@ -7600,7 +7600,7 @@
 	(ORDINARY_LINK): Defined (if __NetBSD__).
 
 	* s/netbsd.h [__alpha__] (NO_SHARED_LIBS): Defined.
-	
+
 1997-05-31  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
 	* lread.c (init_lread): Sometimes add to load-path
@@ -7642,7 +7642,7 @@
 
 1997-05-30  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
-	* xterm.c (process_expose_from_menu, XTread_socket): 
+	* xterm.c (process_expose_from_menu, XTread_socket):
 	Set has_been_visible field.
 	(x_make_frame_visible): Don't do XMoveWindow unles has_been_visible.
 
@@ -7753,7 +7753,7 @@
 	Simplify the call to x_real_positions.
 	(x_make_frame_visible): Use win_gravity to decide whether to
 	call XMoveWindow.  Also, don't do it if frame already visible.
-	
+
 	* xfns.c (x_real_positions): Subtract border width from results.
 
 1997-05-26  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
@@ -7803,11 +7803,11 @@
 	Always call x_wm_set_size_hint for them.
 	No need to call XTranslateCoordinates here.
 	(x_clear_errors): New function.
-	
+
 1997-05-20  Erik Naggum  <erik@naggum.no>
 
 	* editfns.c (Fformat_time_string): Doc update.
-	
+
 1997-05-20  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
 	* editfns.c (Fformat_time_string): Doc update.
@@ -7969,7 +7969,7 @@
 	CODING_EOL_AUTOMATIC => CODING_EOL_UNDECIDED.
 	* coding.c: Likewise.
 	* fileio.c: Likewise.
-	
+
 	* xfns.c (Fx_create_frame): Delete unnecessary code.
 
 1997-05-15  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
@@ -8009,7 +8009,7 @@
 	(compute_trt_identity, compute_trt_shuffle): New subroutines.
 	(init_casetab_once): Use XSETFASTINT to store into case table;
 	use CHAR_TABLE_SINGLE_BYTE_SLOTS to end the loop.
-	
+
 1997-05-13  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
 	* syntax.c (describe_syntax_1): Pass new args to describe_vector.
@@ -8048,7 +8048,7 @@
 	(copy_keymap_1, accessible_keymaps_char_table): New subroutines.
 	(where_is_internal_1, where_is_internal_2): New functions.
 	(syms_of_keymap): Set up Qchar_table_extra_slots prop on Qkeymap.
-	
+
 1997-05-10  Ken'ichi Handa  <handa@etl.go.jp>
 
 	* callproc.c (Fcall_process_region): Supply 7th new arg
@@ -8151,7 +8151,7 @@
 
 	* fileio.c (Fread_file_name): Finish previous change.
 
-	* coding.c (Fread_coding_system, Fread_non_nil_coding_system): 
+	* coding.c (Fread_coding_system, Fread_non_nil_coding_system):
 	Pass new arg to Fcompleting_read.
 
 	* callint.c (Fcall_interactively): Pass new arg to Fcompleting_read.
@@ -8231,7 +8231,7 @@
 
 1997-04-30  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
-	* xterm.c (XTmouse_position, x_term_init): 
+	* xterm.c (XTmouse_position, x_term_init):
 	Save value from x_catch_errors and pass to x_uncatch_errors.
 
 	* xselect.c (x_own_selection, x_reply_selection_request)
@@ -8405,14 +8405,14 @@
 	SETUP_SYNTAX_TABLE_FOR_OBJECT): New macros.
 	(struct gl_state_s): New struct.
 
-	* textprop.c: Style of comments corrected. 
+	* textprop.c: Style of comments corrected.
 	(interval_of): New function.
 
 1997-04-14  Eli Zaretskii  <eliz@wombat.gnu.ai.mit.edu>
 
 	* w16select.c: New file, MS-Windows clipboard support from
 	Emacs running as MSDOS application.
-	
+
 	* s/msdos.h (SYMS_SYSTEM): Add `syms_of_win16select'.
 
 	* Makefile.in (MSDOS_OBJ): Add w16select.o.
@@ -8446,7 +8446,7 @@
 	when REPLACE is handled by reading directly from the file.
 	Use insert_1 to insert replacement text, to avoid
 	query about whether to modify the buffer.
-	
+
 1997-04-10  Marcus G. Daniels  <marcus@cathcart.sysc.pdx.edu>
 
 	* Makefile.in (mallocobj): Make non-REL_ALLOC configuration work
@@ -8496,7 +8496,7 @@
 	(init_alloc_once): Set trim and mmap malloc parms, when using glibc.
 
 	* config.in (DOUG_LEA_MALLOC): Add #undef.
-	
+
 	* Makefile.in (mallocobj): Don't add gmalloc if using glibc.
 	Drop check for `old malloc'; it isn't distributed with Emacs.
 
@@ -8631,7 +8631,7 @@
 	(Fcopy_file): Fix previous change.
 	(Finsert_file_contents): Determine the character coding
 	before we see if REPLACE can be handled.
-	Do handle REPLACE even if code conversion is needed. 
+	Do handle REPLACE even if code conversion is needed.
 
 1997-03-30  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
@@ -8664,10 +8664,10 @@
 1997-03-22  Mark W. Eichin  <eichin@kitten.gen.ma.us>
 
 	* keyboard.c (make_lispy_event): Use iso_lispy_function_keys for
-	XK_ISO_* keys found in XFree86. 
+	XK_ISO_* keys found in XFree86.
 	(ISO_FUNCTION_KEY_OFFSET): New macro.
 	(iso_lispy_function_keys): New table.
-	
+
 	* xterm.c (XTread_socket): Accept XK_ISO_* keys.
 
 1997-03-19  Kenichi Handa  <handa@etl.go.jp>
@@ -8833,7 +8833,7 @@
 	precisely.
 	(Ffind_coding_system, syms_of_coding): Escape newlines in
 	docstring.
-	
+
 	* charset.h (INC_POS, DEC_POS): Don't increase or decrease too
 	much if there's binary code (invalid character code).
 
@@ -8970,7 +8970,7 @@
 	wordbeg, wordend, matchsyntax, and matchnotsyntax, code
 	re-written to handle multibyte characters.
 	Add code for case categoryspec and notcategoryspec.
-	 
+
 	* regex.h (struct re_pattern_buffer): New member multibyte.
 
 1997-02-21  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
@@ -9381,7 +9381,7 @@
 1997-02-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
 	* print.c (print): Generate a backslash in \2e10.
-	
+
 1997-02-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
 	* window.c (change_window_height): Take size from multiple siblings,
@@ -9432,7 +9432,7 @@
 	that of the dividend.  This does not yield a
 	particularly accurate result, but at least it will be in the
 	range promised by fmod.
-	
+
 	* doprnt.c: Include <float.h> if STDC_HEADERS.
 	(DBL_MAX_10_EXP): Define if not defined; default is IEEE double.
 	(doprnt1): Allocate enough buffer space to handle very large floating
@@ -9487,7 +9487,7 @@
 	Define these variables only if LOCALTIME_CACHE is defined.
 
 1997-01-21  Eli Zaretskii  <eliz@wombat.gnu.ai.mit.edu>
-		
+
 	* msdos.c (run_msdos_command): Remove unused variables.
 	(crlf_to_lf): Remove unused variables.
 	(Fmsdos_downcase_filename): Remove unused variable.
@@ -9517,7 +9517,7 @@
 
 	* dispnew.c (init_display): Check for overflow in screen size.
 	Use `fatal'.
-	
+
 1997-01-19  Geoff Voelker  <voelker@cs.washington.edu>
 
 	* w32.c (init_environment): Rebuild Vsystem_configuration at startup.
@@ -9527,16 +9527,16 @@
 	* w32gui.h: Renamed from win32.h.
 	* dispextern.h, w32term.h, makefile.nt: Use new name w32gui.h.
 	* makefile.nt: Update header comment.
-	
-	* w32console.c (initialize_w32_display): Renamed from 
+
+	* w32console.c (initialize_w32_display): Renamed from
 	initialize_win_nt_display.
 	* term.c (term_init): Use new name initialize_w32_display.
-	
+
 	* w32.c, w32console.c, w32faces.c, w32fns.c, w32heap.c,
 	w32inevt.c, w32menu.c, w32proc.c, w32select.c, w32term.c,
 	w32xfns.c, win32.h, w32inevt.h, w32term.h: Change all uses of win95,
 	winnt, and win32 into Windows 95, Windows NT, and W32, respectively.
-	Expand "win" substring in variables referring to Microsoft Windows 
+	Expand "win" substring in variables referring to Microsoft Windows
 	constructs into "windows".
 	Canonicalize header comments to use same terminology.
 
@@ -9684,7 +9684,7 @@
 	Use BROKEN_MKTIME to determine whether mktime is broken.
 
 1996-12-30  Paul Eggert  <eggert@twinsun.com>
-	
+
 	* data.c, floatfns.c: <float.h>: Include if STDC_HEADERS.
 	(IEEE_FLOATING_POINT): New symbol.
 	* data.c (float_arith_driver, Fmod), floatfns.c (Ffloor):
@@ -9725,7 +9725,7 @@
 	* window.c (window_scroll): Preserve vpos of point
 	if we cannot preserve the actual position of it.
 	Make it static.  New arg WHOLE; callers changed.
-	
+
 	* keyboard.c (read_char_x_menu_prompt): Unread and record all the
 	input events from here.
 	(record_menu_key): New subroutine.
@@ -9876,7 +9876,7 @@
 	* msdos.c (IT_cmgoto): Don't update FRAME_CURSOR_X when the cursor
 	is in echo area.
 
-1996-12-05  Erik Naggum <erik@naggum.no>
+1996-12-05  Erik Naggum  <erik@naggum.no>
 
 	* keyboard.c (syms_of_keyboard): Doc fix.
 
@@ -9944,7 +9944,7 @@
 	* w32console.c: Renamed from w32term.c.
 	* unexw32.c: Renamed from unexnt.c.
 	* s/ms-w32.h: Renamed from s/windowsnt.h.
-	
+
 	* dispnew.c (init_display) [HAVE_NTGUI]: Use w32 for window-system.
 
 	* Makefile.in, callproc.c, makefile.nt: Use new names for w32 files.
@@ -10257,7 +10257,7 @@
 
 1996-09-26  Marcus Daniels  <marcus@sayre.sysc.pdx.edu>
 
-	* xfns.c (x_set_scroll_bar_width): Move cursor to the 
+	* xfns.c (x_set_scroll_bar_width): Move cursor to the
 	left margin, past a scroll bar, if any.
 
 1996-09-26  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
@@ -10372,7 +10372,7 @@
 
 1996-09-20  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
 
-	* xterm.c (x_scroll_bar_create, x_scroll_bar_move): 
+	* xterm.c (x_scroll_bar_create, x_scroll_bar_move):
 	(x_scroll_bar_expose): Use VERTICAL_SCROLL_BAR_WIDTH_TRIM.
 
 	* xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Renamed from
@@ -10421,7 +10421,7 @@
 
 	* xfns.c:  Add the symbol `right'; this symbol is used to indicate
 	that a right-side scroll bar is wanted.
-	(x_set_vertical_scroll_bars): Check for left<->right<->none 
+	(x_set_vertical_scroll_bars): Check for left<->right<->none
 	scroll bar changes, and modify the vertical scroll bar type
 	as appropriate.
 	(x_figure_window_size): Use new SET_FRAME_WIDTH macro.
@@ -10462,7 +10462,7 @@
 
 	* w32fns.c (Qright): New variable.
 	(syms_of_win32fns): Initialize and staticpro Qright.
-	(x_set_vertical_scroll_bars): Check for left<->right<->none 
+	(x_set_vertical_scroll_bars): Check for left<->right<->none
 	scroll bar changes, and modify the vertical scroll bar type
 	as appropriate.
 	(x_figure_window_size): Use new SET_FRAME_WIDTH macro.
@@ -10497,7 +10497,7 @@
 	(change_frame_size_1): Use FRAME_WINDOW_WIDTH to check for changes.
 	Give `set_window_width' the window width value.
  	Use new macro SET_FRAME_WIDTH.
-	
+
 	* xterm.h (VERTICAL_SCROLL_BAR_INSIDE_WIDTH): Add frame as an
 	argument, and use it to decrease the width in the case of a
 	left-side scroll bar; this prevents the bar and adjacent text
@@ -10517,7 +10517,7 @@
 	`external_width' and `width'.
 	(WINDOW_VERTICAL_SCROLL_BAR_COLUMN): Modify to handle left-side
 	scroll bars too.
- 	
+
 	* window.h (WINDOW_LEFT_MARGIN): New macro.
 	(WINDOW_RIGHT_EDGE, WINDOW_RIGHT_MARGIN): New macros.
 	(WINDOW_FULL_WIDTH_P, WINDOW_RIGHTMOST_P): New macros.
@@ -10528,7 +10528,7 @@
 	(VERTICAL_SCROLL_BAR_TOP_RANGE): New arg F (not used).
 	* xterm.c: Pass frame arg in calls to VERTICAL_SCROLL_BAR_INSIDE_HEIGHT
 	and VERTICAL_SCROLL_BAR_TOP_RANGE.
-	
+
 	* sysdep.c (init_system_name): Retry gethostbyname only 5 times
 	and don't sleep after the last time.
 
@@ -10592,7 +10592,7 @@
 
 	* window.c (Fset_window_start): Clear last_overlay_modified field.
 	(set_window_height, set_window_width, Fset_window_buffer)
-	(change_window_height, window_scroll, Fset_window_configuration): 
+	(change_window_height, window_scroll, Fset_window_configuration):
 	Clear last_overlay_modified field.
 	(Fpos_visible_in_window_p): Test last_overlay_modified field.
 
@@ -10627,15 +10627,15 @@
 
 	* xdisp.c (overlay_unchanged_modified): New variable.
 	(redisplay_internal): Set overlay_unchanged_modified.
-	* insdel.c (gap_left, gap_right, modify_region): 
+	* insdel.c (gap_left, gap_right, modify_region):
 	Compare overlay_unchanged_modified with OVERLAY_MODIFF.
 
 	* buffer.c (modify_overlay): Renamed from redisplay_region
 	moved here from xdisp.c, and made static.  Callers changed.
 	Update OVERLAY_MODIFF instead of MODIFF.
 	* xdisp.c (redisplay_region): Renamed and moved to buffer.c.
-	
-	* s/sco5.h (C_SWITCH_SYSTEM, LD_SWITCH_SYSTEM): 
+
+	* s/sco5.h (C_SWITCH_SYSTEM, LD_SWITCH_SYSTEM):
 	Don't define them if using GCC.
 
 1996-09-13  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
@@ -10674,7 +10674,7 @@
 	* keyboard.c (Fexecute_extended_command): Delete junk lines.
 	Print the key bindings after the command, temporarily;
 	then bring back the previous message.
-	
+
 	* buffer.c (syms_of_buffer): Doc fixes.
 
 	* filelock.c (lock_superlock): Delete superlock file if it stayed
@@ -10708,7 +10708,7 @@
 1996-09-04  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
 
 	* lisp.h: Add many declarations.
-	
+
 	* lisp.h (BITS_PER_EMACS_INT): New macro.
 	(XMARKBIT): Test BITS_PER_EMACS_INT to conditionalize fast definition.
 	* m/alpha.h (BITS_PER_EMACS_INT): New definition.
@@ -10771,7 +10771,7 @@
 	* xterm.c (note_mouse_highlight):
 	Pass POS argument to fast_find_position as int.
 
-	* textprop.c (set_properties, add_properties, remove_properties): 
+	* textprop.c (set_properties, add_properties, remove_properties):
 	Call modify_region with ints.
 
 	* insdel.c (prepare_to_modify_buffer): Take integer arguments.
@@ -10805,7 +10805,7 @@
 	* xfns.c (x_get_and_record_arg): New function.
 	(x_icon): Use that, for Qicon_top and Qicon_left.
 	(x_report_frame_params): Report the Qparent_id parameter.
-	
+
 1996-09-03  Paul Eggert  <eggert@twinsun.com>
 
 	* config.in (mktime): Define to emacs_mktime if we are using our own
@@ -10879,7 +10879,7 @@
 
 1996-08-31  Geoff Voelker  <voelker@cs.washington.edu>
 
-	* Makefile.in (MSDOS_SUPPORT, WINNT_SUPPORT, SOME_MACHINE_LISP): 
+	* Makefile.in (MSDOS_SUPPORT, WINNT_SUPPORT, SOME_MACHINE_LISP):
 	Include dos-nt.elc.
 
 1996-08-31  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
@@ -10966,7 +10966,7 @@
 	to the error message.
 
 	* macros.h (executing_macro_iterations, executing_macro): Declared.
-	
+
 	* macros.c (executing_macro_iterations, executing_macro): New vars.
 	(Fexecute_kbd_macro): Set them.
 
@@ -11016,7 +11016,7 @@
 	* s/sunos413.h: Renamed from s/sunos4-1-3.h.
 	* s/dgux5-4-3.h: Renamed from s/dgux5-4r3.h.
 	* s/sunos4-1-2.h: File deleted.
-	
+
 	* xmenu.c (set_frame_menubar): Don't add ibw to menubar_size.
 
 	* xfns.c (x_window): Don't add ibw to menubar_size.
--- a/src/ChangeLog.8	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/ChangeLog.8	Tue Feb 04 14:56:31 2003 +0000
@@ -1089,7 +1089,7 @@
 	* xfns.c (Fx_show_busy_cursor): Doc-fix.
 	(Fx_hide_busy_cursor): Ditto.
 
-1999-11-17  Marco Walther <walther@siemens-pyramid.com>
+1999-11-17  Marco Walther  <walther@siemens-pyramid.com>
 
 	* unexsni.c (unexec): Handle .rel.dyn section.
 
@@ -1807,7 +1807,7 @@
 	Don't call XSetInputFocus because that can generate additional
 	FocusIn events.
 
-1999-10-07  Jeffrey C Honig <jch@bsdi.com>
+1999-10-07  Jeffrey C Honig  <jch@bsdi.com>
 
 	* bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
 
@@ -4039,7 +4039,7 @@
 	(Fputhash): Ditto.
 	(Fremhash): Ditto.
 
-1999-07-26  Gerd Moellmann <gerd@gnu.org>
+1999-07-26  Gerd Moellmann  <gerd@gnu.org>
 
 	* widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
 	value to frame width and height.
@@ -11346,7 +11346,7 @@
 
 	* editfns.c (Fuser_full_name): Doc fix.
 
-1999-06-14  Tak Ota <ota@atc.sel.sony.com>
+1999-06-14  Tak Ota  <ota@atc.sel.sony.com>
 
 	* w32bdf.c: (clear_cached_bitmap_slots): Remove.
 	(get_bitmap_with_cache): Check if CreateBitmap failed.
@@ -11355,7 +11355,7 @@
 	Do cache clearing inline.  Move global variables to local scope.
 
 
-1999-06-13  Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
+1999-06-13  Wolfgang Glas  <Wolfgang.Glas@hfm.tu-graz.ac.at>
 
 	* unexsgi.c (unexec): Dump the .rodata section from memory
 	under IRIX6.5 in order to be able to unexec with gcc.
@@ -11536,11 +11536,11 @@
 
 	* w32term.c (dumpglyphs): Always fill background for italic fonts.
 
-1999-05-03  Eli Zaretskii <eliz@is.elta.co.il>
+1999-05-03  Eli Zaretskii  <eliz@is.elta.co.il>
 
 	* dired.c (make_time): Make argument type be time_t.
 
-1999-05-02  Eli Zaretskii <eliz@is.elta.co.il>
+1999-05-02  Eli Zaretskii  <eliz@is.elta.co.il>
 
 	* msdos.c (unibyte_display_via_language_environment): Add extern.
 
@@ -11813,7 +11813,7 @@
 
 	* filelock.c (get_boot_time): Test tempname, not filename.
 
-1999-03-17  Jason Rumney <jasonr@altavista.net>
+1999-03-17  Jason Rumney  <jasonr@altavista.net>
 
 	* w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
 	speed display.
@@ -11851,7 +11851,7 @@
 	* macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
 	at beginning.
 
-1999-03-14  Jason Rumney <jasonr@altavista.net>
+1999-03-14  Jason Rumney  <jasonr@altavista.net>
 
 	* w32fns.c (w32_strict_fontnames): New variable.
 	(Fx_create_frame): Formatting fix.
@@ -11902,7 +11902,7 @@
 
 	* makefile.nt: Remove common multiple file compilation commands.
 
-1999-03-04  Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
+1999-03-04  Takeshi YAMADA  <yamada@cslab.kecl.ntt.co.jp>
 
 	* fns.c (Fbase64_encode_string): Allocate sufficient memory for
 	newlines added when the arg NO-LINE-BREAK is nil.
@@ -12229,7 +12229,7 @@
 
 	* makefile.nt: Use full path to temacs.exe when dumping.
 
-1999-01-27  Jason Rumney <jasonr@altavista.net>
+1999-01-27  Jason Rumney  <jasonr@altavista.net>
 
 	* w32fns.c (w32_load_system_font): Do not load unlisted fonts if
 	list was reliable.
@@ -12291,7 +12291,7 @@
 	to set prev_from_syntax, above start of main loop.
 	At startinstring, check syntax when checking for a match.
 
-1999-01-22  Jason Rumney <jasonr@altavista.net>
+1999-01-22  Jason Rumney  <jasonr@altavista.net>
 
 	* w32bdf.c: New file.
 	* w32bdf.h: New file.
@@ -12349,7 +12349,7 @@
 	* xterm.c (same_x_server): Detect treat ":0" and "unix:0"
 	as the same.  Treat "myname:0" as the same as those two.
 
-1999-01-19  Jason Rumney <jasonr@altavista.net>
+1999-01-19  Jason Rumney  <jasonr@altavista.net>
 
 	* w32fns.c (x_to_w32_charset): Add iso8859-9.
 	(w32_to_x_charset): Fix charset mappings.
@@ -13203,7 +13203,7 @@
 
 	* m/ews4800.h, s/ux4800.h: New files.
 
-1998-11-03  Theodore Jump <tjump@tertius.com>
+1998-11-03  Theodore Jump  <tjump@tertius.com>
 
 	* makefile.nt: Compile multiple source files when possible.
 
--- a/src/ChangeLog.9	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/ChangeLog.9	Tue Feb 04 14:56:31 2003 +0000
@@ -2249,7 +2249,7 @@
 	(live_float_p, live_misc_p): Return 1 only if the offset of the
 	pointer in its block is >= 0.
 
-2001-03-28  Paul Eggert <eggert@twinsun.com>
+2001-03-28  Paul Eggert  <eggert@twinsun.com>
 
 	* editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
 	microseconds calcuation.  Avoid double-rounding problem.
@@ -6656,7 +6656,7 @@
 	gai_strerror.  Make sure xerrno is set if connect fails.  Improve
 	error recovery.
 
-2000-09-29  Jason Rumney <jasonr@gnu.org>
+2000-09-29  Jason Rumney  <jasonr@gnu.org>
 
 	* w32term.c (w32_char_font_type, w32_encode_char)
 	(x_produce_glyphs): Distinguish single and multibyte BDF fonts.
@@ -8340,7 +8340,7 @@
 	* keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
 	Callers changed.
 
-2000-08-02  Colin Walters <walters@cis.ohio-state.edu>
+2000-08-02  Colin Walters  <walters@cis.ohio-state.edu>
 
 	* window.c (display_buffer_reuse_frames): New variable.
 	(Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
@@ -12619,7 +12619,7 @@
 	* msdos.c (XMenuActivate): Turn off the cursor after displaying
 	the help message.
 
-2000-02-07  Eli Zaretskii <eliz@is.elta.co.il>
+2000-02-07  Eli Zaretskii  <eliz@is.elta.co.il>
 
 	* s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
 	md, mh, mb, mr, and me to the fake termcap entry.
@@ -12659,7 +12659,7 @@
 	the string constant limit (2048 bytes) in MSVC.
 	(main): Ditto.
 
-2000-02-05  INOUE Seiichiro <inoue@ainet.or.jp>
+2000-02-05  INOUE Seiichiro  <inoue@ainet.or.jp>
 
 	* xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
 	(x_display_cursor) [HAVE_X_I18N]: Don't set it here.
@@ -12800,7 +12800,7 @@
 	(create_frame_xic): Renamed from xic_create_frame.
 	(free_frame_xic): Renamed from xic_destroy_frame.
 
-2000-01-29  INOUE Seiichiro <inoue@ainet.or.jp>
+2000-01-29  INOUE Seiichiro  <inoue@ainet.or.jp>
 
 	* xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
 	our frames, call XFilterEvent with 2nd parameter `None'.
@@ -12977,7 +12977,7 @@
 	(x_produce_glyphs): Calculate per char metrics for a character
 	that we know exists in default font when font_not_found_p is true.
 
-2000-01-22  Jason Rumney <jasonr@gnu.org>
+2000-01-22  Jason Rumney  <jasonr@gnu.org>
 
 	* makefile.nt (intervals.obj, composite.obj): New modules.
 	(composite.h): Added as dependency where appropriate.
--- a/src/abbrev.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/abbrev.c	Tue Feb 04 14:56:31 2003 +0000
@@ -303,7 +303,7 @@
 	  c = FETCH_BYTE (idx_byte);
 	  idx++, idx_byte++;
 	}
-	  
+
       if (UPPERCASEP (c))
 	c = DOWNCASE (c), uccount++;
       else if (! NOCASEP (c))
--- a/src/alloc.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/alloc.c	Tue Feb 04 14:56:31 2003 +0000
@@ -356,7 +356,7 @@
 
   /* Node color.  */
   enum {MEM_BLACK, MEM_RED} color;
-  
+
   /* Memory type.  */
   enum mem_type type;
 };
@@ -596,14 +596,14 @@
 #ifdef GC_MALLOC_CHECK
   allocated_mem_type = type;
 #endif
-  
+
   val = (void *) malloc (nbytes);
 
 #if GC_MARK_STACK && !defined GC_MALLOC_CHECK
   if (val && type != MEM_TYPE_NON_LISP)
     mem_insert (val, (char *) val + nbytes, type);
 #endif
-   
+
   UNBLOCK_INPUT;
   if (!val && nbytes)
     memory_full ();
@@ -617,7 +617,7 @@
 struct buffer *
 allocate_buffer ()
 {
-  struct buffer *b 
+  struct buffer *b
     = (struct buffer *) lisp_malloc (sizeof (struct buffer),
 				     MEM_TYPE_BUFFER);
   VALIDATE_LISP_STORAGE (b, sizeof *b);
@@ -674,7 +674,7 @@
   if (ptr)
     {
       struct mem_node *m;
-  
+
       m = mem_find (ptr);
       if (m == MEM_NIL || m->start != ptr)
 	{
@@ -689,10 +689,10 @@
 	}
     }
 #endif /* GC_MALLOC_CHECK */
-  
+
   __free_hook = old_free_hook;
   free (ptr);
-  
+
   /* If we released our reserve (due to running out of memory),
      and we have a fair amount free once again,
      try to set aside another reserve in case we run out once more.  */
@@ -762,7 +762,7 @@
       }
   }
 #endif /* GC_MALLOC_CHECK */
-  
+
   __malloc_hook = emacs_blocked_malloc;
   UNBLOCK_INPUT;
 
@@ -797,9 +797,9 @@
 
       mem_delete (m);
     }
-  
+
   /* fprintf (stderr, "%p -> realloc\n", ptr); */
-  
+
   /* Prevent malloc from registering blocks.  */
   dont_register_blocks = 1;
 #endif /* GC_MALLOC_CHECK */
@@ -820,10 +820,10 @@
     /* Can't handle zero size regions in the red-black tree.  */
     mem_insert (value, (char *) value + max (size, 1), MEM_TYPE_NON_LISP);
   }
-  
+
   /* fprintf (stderr, "%p <- realloc\n", value); */
 #endif /* GC_MALLOC_CHECK */
-  
+
   __realloc_hook = emacs_blocked_realloc;
   UNBLOCK_INPUT;
 
@@ -1069,13 +1069,13 @@
   struct Lisp_String *string;
 
 #ifdef GC_CHECK_STRING_BYTES
-  
+
   EMACS_INT nbytes;
   unsigned char data[1];
-  
+
 #define SDATA_NBYTES(S)	(S)->nbytes
 #define SDATA_DATA(S)	(S)->data
-  
+
 #else /* not GC_CHECK_STRING_BYTES */
 
   union
@@ -1086,7 +1086,7 @@
     /* When STRING is null.  */
     EMACS_INT nbytes;
   } u;
-  
+
 
 #define SDATA_NBYTES(S)	(S)->u.nbytes
 #define SDATA_DATA(S)	(S)->u.data
@@ -1165,7 +1165,7 @@
    S must be live, i.e. S->data must not be null.  S->data is actually
    a pointer to the `u.data' member of its sdata structure; the
    structure starts at a constant offset in front of that.  */
-   
+
 #ifdef GC_CHECK_STRING_BYTES
 
 #define SDATA_OF_STRING(S) \
@@ -1238,7 +1238,7 @@
     abort ();
   return nbytes;
 }
-    
+
 /* Check validity of Lisp strings' string_bytes member in B.  */
 
 void
@@ -1246,25 +1246,25 @@
      struct sblock *b;
 {
   struct sdata *from, *end, *from_end;
-      
+
   end = b->next_free;
-      
+
   for (from = &b->first_data; from < end; from = from_end)
     {
       /* Compute the next FROM here because copying below may
 	 overwrite data we need to compute it.  */
       int nbytes;
-      
+
       /* Check that the string size recorded in the string is the
 	 same as the one recorded in the sdata structure. */
       if (from->string)
 	CHECK_STRING_BYTES (from->string);
-      
+
       if (from->string)
 	nbytes = GC_STRING_BYTES (from->string);
       else
 	nbytes = SDATA_NBYTES (from);
-      
+
       nbytes = SDATA_SIZE (nbytes);
       from_end = (struct sdata *) ((char *) from + nbytes);
     }
@@ -1289,7 +1289,7 @@
 	  if (s)
 	    CHECK_STRING_BYTES (s);
 	}
-      
+
       for (b = oldest_sblock; b; b = b->next)
 	check_sblock (b);
     }
@@ -1395,12 +1395,12 @@
 #endif
 
       b = (struct sblock *) lisp_malloc (size, MEM_TYPE_NON_LISP);
-      
+
 #ifdef DOUG_LEA_MALLOC
       /* Back to a reasonable maximum of mmap'ed areas. */
       mallopt (M_MMAP_MAX, MMAP_MAX_AREAS);
 #endif
-  
+
       b->next_free = &b->first_data;
       b->first_data.string = NULL;
       b->next = large_sblocks;
@@ -1428,7 +1428,7 @@
 
   old_data = s->data ? SDATA_OF_STRING (s) : NULL;
   old_nbytes = GC_STRING_BYTES (s);
-  
+
   data = b->next_free;
   data->string = s;
   s->data = SDATA_DATA (data);
@@ -1439,7 +1439,7 @@
   s->size_byte = nbytes;
   s->data[nbytes] = '\0';
   b->next_free = (struct sdata *) ((char *) data + needed);
-  
+
   /* If S had already data assigned, mark that as free by setting its
      string back-pointer to null, and recording the size of the data
      in it.  */
@@ -1460,7 +1460,7 @@
 {
   struct string_block *b, *next;
   struct string_block *live_blocks = NULL;
-  
+
   string_free_list = NULL;
   total_strings = total_free_strings = 0;
   total_string_size = 0;
@@ -1484,7 +1484,7 @@
 		{
 		  /* String is live; unmark it and its intervals.  */
 		  UNMARK_STRING (s);
-		  
+
 		  if (!NULL_INTERVAL_P (s->intervals))
 		    UNMARK_BALANCE_INTERVALS (s->intervals);
 
@@ -1556,7 +1556,7 @@
 {
   struct sblock *b, *next;
   struct sblock *live_blocks = NULL;
-  
+
   for (b = large_sblocks; b; b = next)
     {
       next = b->next;
@@ -1597,7 +1597,7 @@
     {
       end = b->next_free;
       xassert ((char *) end <= (char *) b + SBLOCK_SIZE);
-      
+
       for (from = &b->first_data; from < end; from = from_end)
 	{
 	  /* Compute the next FROM here because copying below may
@@ -1611,15 +1611,15 @@
 	      && GC_STRING_BYTES (from->string) != SDATA_NBYTES (from))
 	    abort ();
 #endif /* GC_CHECK_STRING_BYTES */
-	  
+
 	  if (from->string)
 	    nbytes = GC_STRING_BYTES (from->string);
 	  else
 	    nbytes = SDATA_NBYTES (from);
-	  
+
 	  nbytes = SDATA_SIZE (nbytes);
 	  from_end = (struct sdata *) ((char *) from + nbytes);
-	  
+
 	  /* FROM->string non-null means it's alive.  Copy its data.  */
 	  if (from->string)
 	    {
@@ -1633,7 +1633,7 @@
 		  to = &tb->first_data;
 		  to_end = (struct sdata *) ((char *) to + nbytes);
 		}
-	      
+
 	      /* Copy, and update the string's `data' pointer.  */
 	      if (from != to)
 		{
@@ -1700,7 +1700,7 @@
 	  p += len;
 	}
     }
-  
+
   *p = 0;
   return val;
 }
@@ -1728,16 +1728,16 @@
      slot `size' of the struct Lisp_Bool_Vector.  */
   val = Fmake_vector (make_number (length_in_elts + 1), Qnil);
   p = XBOOL_VECTOR (val);
-  
+
   /* Get rid of any bits that would cause confusion.  */
   p->vector_size = 0;
   XSETBOOL_VECTOR (val, p);
   p->size = XFASTINT (length);
-  
+
   real_init = (NILP (init) ? 0 : -1);
   for (i = 0; i < length_in_chars ; i++)
     p->data[i] = real_init;
-  
+
   /* Clear the extraneous bits in the last byte.  */
   if (XINT (length) != length_in_chars * BITS_PER_CHAR)
     XBOOL_VECTOR (val)->data[length_in_chars - 1]
@@ -1982,7 +1982,7 @@
 	}
       XSETFLOAT (val, &float_block->floats[float_block_index++]);
     }
-  
+
   XFLOAT_DATA (val) = float_value;
   XSETFASTINT (XFLOAT (val)->type, 0);	/* bug chasing -wsr */
   consing_since_gc += sizeof (struct Lisp_Float);
@@ -2089,7 +2089,7 @@
 	}
       XSETCONS (val, &cons_block->conses[cons_block_index++]);
     }
-  
+
   XSETCAR (val, car);
   XSETCDR (val, cdr);
   consing_since_gc += sizeof (struct Lisp_Cons);
@@ -2174,17 +2174,17 @@
 	{
 	  val = Fcons (init, val);
 	  --size;
-      
+
 	  if (size > 0)
 	    {
 	      val = Fcons (init, val);
 	      --size;
-      
+
 	      if (size > 0)
 		{
 		  val = Fcons (init, val);
 		  --size;
-      
+
 		  if (size > 0)
 		    {
 		      val = Fcons (init, val);
@@ -2196,7 +2196,7 @@
 
       QUIT;
     }
-  
+
   return val;
 }
 
@@ -2232,15 +2232,15 @@
      a dumped Emacs.  */
   mallopt (M_MMAP_MAX, 0);
 #endif
-  
+
   nbytes = sizeof *p + (len - 1) * sizeof p->contents[0];
   p = (struct Lisp_Vector *) lisp_malloc (nbytes, type);
-  
+
 #ifdef DOUG_LEA_MALLOC
   /* Back to a reasonable maximum of mmap'ed areas.  */
   mallopt (M_MMAP_MAX, MMAP_MAX_AREAS);
 #endif
-  
+
   VALIDATE_LISP_STORAGE (p, 0);
   consing_since_gc += nbytes;
   vector_cells_consed += len;
@@ -2272,11 +2272,11 @@
   EMACS_INT len = VECSIZE (struct Lisp_Hash_Table);
   struct Lisp_Vector *v = allocate_vectorlike (len, MEM_TYPE_HASH_TABLE);
   EMACS_INT i;
-  
+
   v->size = len;
   for (i = 0; i < len; ++i)
     v->contents[i] = Qnil;
-  
+
   return (struct Lisp_Hash_Table *) v;
 }
 
@@ -2287,11 +2287,11 @@
   EMACS_INT len = VECSIZE (struct window);
   struct Lisp_Vector *v = allocate_vectorlike (len, MEM_TYPE_WINDOW);
   EMACS_INT i;
-  
+
   for (i = 0; i < len; ++i)
     v->contents[i] = Qnil;
   v->size = len;
-  
+
   return (struct window *) v;
 }
 
@@ -2302,7 +2302,7 @@
   EMACS_INT len = VECSIZE (struct frame);
   struct Lisp_Vector *v = allocate_vectorlike (len, MEM_TYPE_FRAME);
   EMACS_INT i;
-  
+
   for (i = 0; i < len; ++i)
     v->contents[i] = make_number (0);
   v->size = len;
@@ -2316,11 +2316,11 @@
   EMACS_INT len = VECSIZE (struct Lisp_Process);
   struct Lisp_Vector *v = allocate_vectorlike (len, MEM_TYPE_PROCESS);
   EMACS_INT i;
-  
+
   for (i = 0; i < len; ++i)
     v->contents[i] = Qnil;
   v->size = len;
-  
+
   return (struct Lisp_Process *) v;
 }
 
@@ -2331,11 +2331,11 @@
 {
   struct Lisp_Vector *v = allocate_vectorlike (len, MEM_TYPE_VECTOR);
   EMACS_INT i;
-  
+
   for (i = 0; i < len; ++i)
     v->contents[i] = Qnil;
   v->size = len;
-  
+
   return v;
 }
 
@@ -2547,7 +2547,7 @@
 	}
       XSETSYMBOL (val, &symbol_block->symbols[symbol_block_index++]);
     }
-  
+
   p = XSYMBOL (val);
   p->xname = name;
   p->plist = Qnil;
@@ -2628,7 +2628,7 @@
 	}
       XSETMISC (val, &marker_block->markers[marker_block_index++]);
     }
-  
+
   consing_since_gc += sizeof (union Lisp_Misc);
   misc_objects_consed++;
   return val;
@@ -2713,7 +2713,7 @@
      characters, so we can make a string.  */
   {
     Lisp_Object result;
-    
+
     result = Fmake_string (make_number (nargs), make_number (0));
     for (i = 0; i < nargs; i++)
       {
@@ -2722,7 +2722,7 @@
 	if (XINT (args[i]) & CHAR_META)
 	  SSET (result, i, SREF (result, i) | 0x80);
       }
-    
+
     return result;
   }
 }
@@ -2805,7 +2805,7 @@
   parent = NULL;
 
 #if GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS
-     
+
   while (c != MEM_NIL)
     {
       if (start >= c->start && start < c->end)
@@ -2813,15 +2813,15 @@
       parent = c;
       c = start < c->start ? c->left : c->right;
     }
-     
+
 #else /* GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS */
-     
+
   while (c != MEM_NIL)
     {
       parent = c;
       c = start < c->start ? c->left : c->right;
     }
-     
+
 #endif /* GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS */
 
   /* Create a new node.  */
@@ -2847,7 +2847,7 @@
       else
 	parent->right = x;
     }
-  else 
+  else
     mem_root = x;
 
   /* Re-establish red-black tree properties.  */
@@ -2868,13 +2868,13 @@
     {
       /* X is red and its parent is red.  This is a violation of
 	 red-black tree property #3.  */
-      
+
       if (x->parent == x->parent->parent->left)
 	{
 	  /* We're on the left side of our grandparent, and Y is our
 	     "uncle".  */
 	  struct mem_node *y = x->parent->parent->right;
-	  
+
 	  if (y->color == MEM_RED)
 	    {
 	      /* Uncle and parent are red but should be black because
@@ -2904,7 +2904,7 @@
 	{
 	  /* This is the symmetrical case of above.  */
 	  struct mem_node *y = x->parent->parent->left;
-	  
+
 	  if (y->color == MEM_RED)
 	    {
 	      x->parent->color = MEM_BLACK;
@@ -2919,7 +2919,7 @@
 		  x = x->parent;
 		  mem_rotate_right (x);
 		}
-	      
+
 	      x->parent->color = MEM_BLACK;
 	      x->parent->parent->color = MEM_RED;
 	      mem_rotate_left (x->parent->parent);
@@ -2933,8 +2933,8 @@
 }
 
 
-/*   (x)                   (y)     
-     / \                   / \     
+/*   (x)                   (y)
+     / \                   / \
     a   (y)      ===>    (x)  c
         / \              / \
        b   c            a   b  */
@@ -2973,10 +2973,10 @@
 }
 
 
-/*     (x)                (Y)     
-       / \                / \               
-     (y)  c      ===>    a  (x)          
-     / \                    / \          
+/*     (x)                (Y)
+       / \                / \
+     (y)  c      ===>    a  (x)
+     / \                    / \
     a   b                  b   c  */
 
 static void
@@ -2988,7 +2988,7 @@
   x->left = y->right;
   if (y->right != MEM_NIL)
     y->right->parent = x;
-  
+
   if (y != MEM_NIL)
     y->parent = x->parent;
   if (x->parent)
@@ -3000,7 +3000,7 @@
     }
   else
     mem_root = y;
-  
+
   y->right = x;
   if (x != MEM_NIL)
     x->parent = y;
@@ -3049,7 +3049,7 @@
       z->end = y->end;
       z->type = y->type;
     }
-  
+
   if (y->color == MEM_BLACK)
     mem_delete_fixup (x);
 
@@ -3073,7 +3073,7 @@
       if (x == x->parent->left)
 	{
 	  struct mem_node *w = x->parent->right;
-	  
+
 	  if (w->color == MEM_RED)
 	    {
 	      w->color = MEM_BLACK;
@@ -3081,7 +3081,7 @@
 	      mem_rotate_left (x->parent);
 	      w = x->parent->right;
             }
-	  
+
 	  if (w->left->color == MEM_BLACK && w->right->color == MEM_BLACK)
 	    {
 	      w->color = MEM_RED;
@@ -3106,7 +3106,7 @@
       else
 	{
 	  struct mem_node *w = x->parent->left;
-	  
+
 	  if (w->color == MEM_RED)
 	    {
 	      w->color = MEM_BLACK;
@@ -3114,7 +3114,7 @@
 	      mem_rotate_right (x->parent);
 	      w = x->parent->left;
             }
-	  
+
 	  if (w->right->color == MEM_BLACK && w->left->color == MEM_BLACK)
 	    {
 	      w->color = MEM_RED;
@@ -3129,7 +3129,7 @@
 		  mem_rotate_left (w);
 		  w = x->parent->left;
                 }
-	      
+
 	      w->color = x->parent->color;
 	      x->parent->color = MEM_BLACK;
 	      w->left->color = MEM_BLACK;
@@ -3138,7 +3138,7 @@
             }
         }
     }
-  
+
   x->color = MEM_BLACK;
 }
 
@@ -3206,7 +3206,7 @@
     {
       struct symbol_block *b = (struct symbol_block *) m->start;
       int offset = (char *) p - (char *) &b->symbols[0];
-      
+
       /* P must point to the start of a Lisp_Symbol, not be
 	 one of the unused cells in the current symbol block,
 	 and not be on the free-list.  */
@@ -3233,7 +3233,7 @@
     {
       struct float_block *b = (struct float_block *) m->start;
       int offset = (char *) p - (char *) &b->floats[0];
-      
+
       /* P must point to the start of a Lisp_Float, not be
 	 one of the unused cells in the current float block,
 	 and not be on the free-list.  */
@@ -3260,7 +3260,7 @@
     {
       struct marker_block *b = (struct marker_block *) m->start;
       int offset = (char *) p - (char *) &b->markers[0];
-      
+
       /* P must point to the start of a Lisp_Misc, not be
 	 one of the unused cells in the current misc block,
 	 and not be on the free-list.  */
@@ -3366,7 +3366,7 @@
 {
   void *po = (void *) XPNTR (obj);
   struct mem_node *m = mem_find (po);
-      
+
   if (m != MEM_NIL)
     {
       int mark_p = 0;
@@ -3412,12 +3412,12 @@
 		case Lisp_Misc_Marker:
 		  mark_p = !XMARKBIT (XMARKER (obj)->chain);
 		  break;
-		      
+
 		case Lisp_Misc_Buffer_Local_Value:
 		case Lisp_Misc_Some_Buffer_Local_Value:
 		  mark_p = !XMARKBIT (XBUFFER_LOCAL_VALUE (obj)->realvalue);
 		  break;
-		      
+
 		case Lisp_Misc_Overlay:
 		  mark_p = !XMARKBIT (XOVERLAY (obj)->plist);
 		  break;
@@ -3456,30 +3456,30 @@
      assume that Lisp data is aligned on even addresses.  */
   if ((EMACS_INT) p & 1)
     return;
-      
+
   m = mem_find (p);
   if (m != MEM_NIL)
     {
       Lisp_Object obj = Qnil;
-      
+
       switch (m->type)
 	{
 	case MEM_TYPE_NON_LISP:
 	  /* Nothing to do; not a pointer to Lisp memory.  */
 	  break;
-	  
+
 	case MEM_TYPE_BUFFER:
 	  if (live_buffer_p (m, p)
 	      && !XMARKBIT (((struct buffer *) p)->name))
 	    XSETVECTOR (obj, p);
 	  break;
-	  
+
 	case MEM_TYPE_CONS:
 	  if (live_cons_p (m, p)
 	      && !XMARKBIT (((struct Lisp_Cons *) p)->car))
 	    XSETCONS (obj, p);
 	  break;
-	  
+
 	case MEM_TYPE_STRING:
 	  if (live_string_p (m, p)
 	      && !STRING_MARKED_P ((struct Lisp_String *) p))
@@ -3491,20 +3491,20 @@
 	    {
 	      Lisp_Object tem;
 	      XSETMISC (tem, p);
-	      
+
 	      switch (XMISCTYPE (tem))
 		{
 		case Lisp_Misc_Marker:
 		  if (!XMARKBIT (XMARKER (tem)->chain))
 		    obj = tem;
 		  break;
-		      
+
 		case Lisp_Misc_Buffer_Local_Value:
 		case Lisp_Misc_Some_Buffer_Local_Value:
 		  if (!XMARKBIT (XBUFFER_LOCAL_VALUE (tem)->realvalue))
 		    obj = tem;
 		  break;
-		      
+
 		case Lisp_Misc_Overlay:
 		  if (!XMARKBIT (XOVERLAY (tem)->plist))
 		    obj = tem;
@@ -3512,19 +3512,19 @@
 		}
 	    }
 	  break;
-	  
+
 	case MEM_TYPE_SYMBOL:
 	  if (live_symbol_p (m, p)
 	      && !XMARKBIT (((struct Lisp_Symbol *) p)->plist))
 	    XSETSYMBOL (obj, p);
 	  break;
-	  
+
 	case MEM_TYPE_FLOAT:
 	  if (live_float_p (m, p)
 	      && !XMARKBIT (((struct Lisp_Float *) p)->type))
 	    XSETFLOAT (obj, p);
 	  break;
-	  
+
 	case MEM_TYPE_VECTOR:
 	case MEM_TYPE_PROCESS:
 	case MEM_TYPE_HASH_TABLE:
@@ -3552,7 +3552,7 @@
 
 /* Mark Lisp objects referenced from the address range START..END.  */
 
-static void 
+static void
 mark_memory (start, end)
      void *start, *end;
 {
@@ -3593,7 +3593,7 @@
      Here, `obj' isn't really used, and the compiler optimizes it
      away.  The only reference to the life string is through the
      pointer `s'.  */
-  
+
   for (pp = (void **) start; (void *) pp < end; ++pp)
     mark_maybe_pointer (*pp);
 }
@@ -3783,14 +3783,14 @@
 #ifdef sparc
   asm ("ta 3");
 #endif
-  
+
   /* Save registers that we need to see on the stack.  We need to see
      registers used to hold register variables and registers used to
      pass parameters.  */
 #ifdef GC_SAVE_REGISTERS_ON_STACK
   GC_SAVE_REGISTERS_ON_STACK (end);
 #else /* not GC_SAVE_REGISTERS_ON_STACK */
-  
+
 #ifndef GC_SETJMP_WORKS  /* If it hasn't been checked yet that
 			    setjmp will definitely work, test it
 			    and print a message with the result
@@ -3801,7 +3801,7 @@
       test_setjmp ();
     }
 #endif /* GC_SETJMP_WORKS */
-  
+
   setjmp (j);
   end = stack_grows_down_p ? (char *) &j + sizeof j : (char *) &j;
 #endif /* not GC_SAVE_REGISTERS_ON_STACK */
@@ -4146,7 +4146,7 @@
 	   Qt tends to return NULL, which effectively turns undo back on.
 	   So don't call truncate_undo_list if undo_list is Qt.  */
 	if (! EQ (nextb->undo_list, Qt))
-	  nextb->undo_list 
+	  nextb->undo_list
 	    = truncate_undo_list (nextb->undo_list, undo_limit,
 				  undo_strong_limit);
 
@@ -4199,7 +4199,7 @@
 	  XMARK (tail->var[i]);
 	}
 #endif
-  
+
   mark_byte_stack ();
   for (bind = specpdl; bind != specpdl_ptr; bind++)
     {
@@ -4210,12 +4210,12 @@
     {
       mark_object (&catch->tag);
       mark_object (&catch->val);
-    }  
+    }
   for (handler = handlerlist; handler; handler = handler->next)
     {
       mark_object (&handler->handler);
       mark_object (&handler->var);
-    }  
+    }
   for (backlist = backtrace_list; backlist; backlist = backlist->next)
     {
       if (!XMARKBIT (*backlist->function))
@@ -4233,7 +4233,7 @@
 	    mark_object (&backlist->args[i]);
 	    XMARK (backlist->args[i]);
 	  }
-    }  
+    }
   mark_kboards ();
 
   /* Look thru every buffer's undo list
@@ -4300,7 +4300,7 @@
     for (i = 0; i < tail->nvars; i++)
       XUNMARK (tail->var[i]);
 #endif
-  
+
   unmark_byte_stack ();
   for (backlist = backtrace_list; backlist; backlist = backlist->next)
     {
@@ -4311,7 +4311,7 @@
 	i = backlist->nargs - 1;
       for (; i >= 0; i--)
 	XUNMARK (backlist->args[i]);
-    }  
+    }
   XUNMARK (buffer_defaults.name);
   XUNMARK (buffer_local_symbols.name);
 
@@ -4357,7 +4357,7 @@
   {
     /* Compute average percentage of zombies.  */
     double nlive = 0;
-      
+
     for (i = 0; i < 7; ++i)
       if (CONSP (total[i]))
 	nlive += XFASTINT (XCAR (total[i]));
@@ -4408,7 +4408,7 @@
 	  {
 	    struct glyph *glyph = row->glyphs[area];
 	    struct glyph *end_glyph = glyph + row->used[area];
-	    
+
 	    for (; glyph < end_glyph; ++glyph)
 	      if (GC_STRINGP (glyph->object)
 		  && !STRING_MARKED_P (XSTRING (glyph->object)))
@@ -4450,7 +4450,7 @@
      struct image *img;
 {
   mark_object (&img->spec);
-  
+
   if (!NILP (img->data.lisp_val))
     mark_object (&img->data.lisp_val);
 }
@@ -4538,13 +4538,13 @@
     CHECK_ALLOCATED ();				\
     CHECK_LIVE (LIVEP);				\
   } while (0)					\
-  
+
 #else /* not GC_CHECK_MARKED_OBJECTS */
-  
+
 #define CHECK_ALLOCATED()		(void) 0
 #define CHECK_LIVE(LIVEP)		(void) 0
 #define CHECK_ALLOCATED_AND_LIVE(LIVEP)	(void) 0
-  
+
 #endif /* not GC_CHECK_MARKED_OBJECTS */
 
   switch (SWITCH_ENUM_CAST (XGCTYPE (obj)))
@@ -4571,7 +4571,7 @@
 	  && po != &buffer_local_symbols)
 	abort ();
 #endif /* GC_CHECK_MARKED_OBJECTS */
-      
+
       if (GC_BUFFERP (obj))
 	{
 	  if (!XMARKBIT (XBUFFER (obj)->name))
@@ -4602,7 +4602,7 @@
 
 	  if (size & ARRAY_MARK_FLAG)
 	    break;   /* Already marked */
-	  
+
 	  CHECK_LIVE (live_vector_p);
 	  ptr->size |= ARRAY_MARK_FLAG; /* Else mark it */
 	  size &= PSEUDOVECTOR_SIZE_MASK;
@@ -4695,18 +4695,18 @@
 	{
 	  struct Lisp_Hash_Table *h = XHASH_TABLE (obj);
 	  EMACS_INT size = h->size;
-	  
+
 	  /* Stop if already marked.  */
 	  if (size & ARRAY_MARK_FLAG)
 	    break;
-	  
+
 	  /* Mark it.  */
 	  CHECK_LIVE (live_vector_p);
 	  h->size |= ARRAY_MARK_FLAG;
 
 	  /* Mark contents.  */
 	  /* Do not mark next_free or next_weak.
-	     Being in the next_weak chain 
+	     Being in the next_weak chain
 	     should not keep the hash table alive.
 	     No need to mark `count' since it is an integer.  */
 	  mark_object (&h->test);
@@ -4725,7 +4725,7 @@
 	    mark_object (&h->key_and_value);
 	  else
 	    XVECTOR (h->key_and_value)->size |= ARRAY_MARK_FLAG;
-	    
+
 	}
       else
 	{
@@ -4759,7 +4759,7 @@
 	if (!PURE_POINTER_P (XSTRING (ptr->xname)))
 	  MARK_STRING (XSTRING (ptr->xname));
 	MARK_INTERVAL_TREE (STRING_INTERVALS (ptr->xname));
-	
+
 	/* Note that we do not mark the obarray of the symbol.
 	   It is safe not to do so because nothing accesses that
 	   slot except to check whether it is nil.  */
@@ -4933,7 +4933,7 @@
   /* If this is an indirect buffer, mark its base buffer.  */
   if (buffer->base_buffer && !XMARKBIT (buffer->base_buffer->name))
     {
-      XSETBUFFER (base_buffer, buffer->base_buffer); 
+      XSETBUFFER (base_buffer, buffer->base_buffer);
       mark_buffer (base_buffer);
     }
 }
@@ -4975,7 +4975,7 @@
      Lisp_Object obj;
 {
   int survives_p;
-  
+
   switch (XGCTYPE (obj))
     {
     case Lisp_Int:
@@ -4992,12 +4992,12 @@
 	case Lisp_Misc_Marker:
 	  survives_p = XMARKBIT (obj);
 	  break;
-	  
+
 	case Lisp_Misc_Buffer_Local_Value:
 	case Lisp_Misc_Some_Buffer_Local_Value:
 	  survives_p = XMARKBIT (XBUFFER_LOCAL_VALUE (obj)->realvalue);
 	  break;
-	  
+
 	case Lisp_Misc_Intfwd:
 	case Lisp_Misc_Boolfwd:
 	case Lisp_Misc_Objfwd:
@@ -5005,7 +5005,7 @@
 	case Lisp_Misc_Kboard_Objfwd:
 	  survives_p = 1;
 	  break;
-	  
+
 	case Lisp_Misc_Overlay:
 	  survives_p = XMARKBIT (XOVERLAY (obj)->plist);
 	  break;
@@ -5071,7 +5071,7 @@
     register int num_free = 0, num_used = 0;
 
     cons_free_list = 0;
-  
+
     for (cblk = cons_block; cblk; cblk = *cprev)
       {
 	register int i;
@@ -5121,7 +5121,7 @@
     register int num_free = 0, num_used = 0;
 
     float_free_list = 0;
-  
+
     for (fblk = float_block; fblk; fblk = *fprev)
       {
 	register int i;
@@ -5221,7 +5221,7 @@
     register int num_free = 0, num_used = 0;
 
     symbol_free_list = NULL;
-  
+
     for (sblk = symbol_block; sblk; sblk = *sprev)
       {
 	int this_free = 0;
@@ -5234,7 +5234,7 @@
 	       it might be pointed to by pure bytecode which we don't trace,
 	       so we conservatively assume that it is live.  */
 	    int pure_p = PURE_POINTER_P (XSTRING (sym->xname));
-	    
+
 	    if (!XMARKBIT (sym->plist) && !pure_p)
 	      {
 		*(struct Lisp_Symbol **) &sym->value = symbol_free_list;
@@ -5252,7 +5252,7 @@
 		XUNMARK (sym->plist);
 	      }
 	  }
-	
+
 	lim = SYMBOL_BLOCK_SIZE;
 	/* If this block contains only free symbols and we have already
 	   seen more than two blocks worth of free symbols then deallocate
@@ -5284,7 +5284,7 @@
     register int num_free = 0, num_used = 0;
 
     marker_free_list = 0;
-  
+
     for (mblk = marker_block; mblk; mblk = *mprev)
       {
 	register int i;
@@ -5414,7 +5414,7 @@
 	  prev = vector, vector = vector->next;
 	}
   }
-  
+
 #ifdef GC_CHECK_STRING_BYTES
   if (!noninteractive)
     check_string_bytes (1);
--- a/src/alloca.s	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/alloca.s	Tue Feb 04 14:56:31 2003 +0000
@@ -59,7 +59,7 @@
 	data
 	text
 	globl	_alloca
-_alloca	
+_alloca
 	move.l	(sp)+,a0	; pop return addr from top of stack
 	move.l	(sp)+,d0	; pop size in bytes from top of stack
 	add.l	#ROUND,d0	; round size up to long word
@@ -112,7 +112,7 @@
 alloca:
 #ifdef MOTOROLA_DELTA
 /* slightly modified version of alloca to motorola sysV/68 pcc - based
-   compiler. 
+   compiler.
    this compiler saves used registers relative to %sp instead of %fp.
    alright, just make new copy of saved register set whenever we allocate
    new space from stack..
@@ -251,9 +251,9 @@
  * We have to copy registers, and therefore waste 32 bytes.
  *
  * Stack layout:
- * new	sp ->	junk	
+ * new	sp ->	junk
  *	 	registers (copy)
- *	r0 ->	new data		
+ *	r0 ->	new data
  *		 | 	  (orig retval)
  *		 |	  (orig arg)
  * old  sp ->	regs	  (orig)
--- a/src/atimer.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/atimer.c	Tue Feb 04 14:56:31 2003 +0000
@@ -132,12 +132,12 @@
     case ATIMER_ABSOLUTE:
       t->expiration = time;
       break;
-      
+
     case ATIMER_RELATIVE:
       EMACS_GET_TIME (t->expiration);
       EMACS_ADD_TIME (t->expiration, t->expiration, time);
       break;
-      
+
     case ATIMER_CONTINUOUS:
       EMACS_GET_TIME (t->expiration);
       EMACS_ADD_TIME (t->expiration, t->expiration, time);
@@ -151,7 +151,7 @@
 
   /* Arrange for a SIGALRM at the time the next atimer is ripe.  */
   set_alarm ();
-  
+
   return t;
 }
 
@@ -163,14 +163,14 @@
      struct atimer *timer;
 {
   int i;
-  
+
   BLOCK_ATIMERS;
 
   for (i = 0; i < 2; ++i)
     {
       struct atimer *t, *prev;
       struct atimer **list = i ? &stopped_atimers : &atimers;
-      
+
       /* See if TIMER is active or stopped.  */
       for (t = *list, prev = NULL; t && t != timer; prev = t, t = t->next)
 	;
@@ -184,7 +184,7 @@
 	    prev->next = t->next;
 	  else
 	    *list = t->next;
-	  
+
 	  t->next = free_atimers;
 	  free_atimers = t;
 	  break;
@@ -209,7 +209,7 @@
   else
     {
       struct atimer *p;
-      
+
       for (p = list1; p->next; p = p->next)
 	;
       p->next = list2;
@@ -225,11 +225,11 @@
      struct atimer *t;
 {
   BLOCK_ATIMERS;
-  
+
   if (t)
     {
       struct atimer *p, *prev;
-      
+
       /* See if T is active.  */
       for (p = atimers, prev = 0; p && p != t; p = p->next)
 	;
@@ -246,7 +246,7 @@
 	/* T is not active.  Let's handle this like T == 0.  */
 	t = NULL;
     }
-  
+
   stopped_atimers = append_atimer_lists (atimers, stopped_atimers);
   atimers = t;
   UNBLOCK_ATIMERS;
@@ -263,18 +263,18 @@
     {
       struct atimer *t = atimers;
       struct atimer *next;
-      
+
       BLOCK_ATIMERS;
       atimers = stopped_atimers;
       stopped_atimers = NULL;
-      
+
       while (t)
 	{
 	  next = t->next;
 	  schedule_atimer (t);
 	  t = next;
 	}
-      
+
       UNBLOCK_ATIMERS;
     }
 }
@@ -301,7 +301,7 @@
      must reestablish each time.  */
   signal (SIGALRM, alarm_signal_handler);
 #endif /* USG */
-  
+
   if (atimers)
     {
       EMACS_TIME now, time;
@@ -320,7 +320,7 @@
 	  EMACS_SET_SECS (time, 0);
 	  EMACS_SET_USECS (time, 1000);
 	}
-      
+
       bzero (&it, sizeof it);
       it.it_value = time;
       setitimer (ITIMER_REAL, &it, 0);
@@ -350,7 +350,7 @@
     prev->next = t;
   else
     atimers = t;
-  
+
   t->next = a;
 }
 
@@ -363,20 +363,20 @@
      int signo;
 {
   EMACS_TIME now;
-  
+
   EMACS_GET_TIME (now);
   pending_atimers = 0;
-  
+
   while (atimers
 	 && (pending_atimers = interrupt_input_blocked) == 0
 	 && EMACS_TIME_LE (atimers->expiration, now))
     {
       struct atimer *t;
-      
+
       t = atimers;
       atimers = atimers->next;
       t->fn (t);
-      
+
       if (t->type == ATIMER_CONTINUOUS)
 	{
 	  EMACS_ADD_TIME (t->expiration, now, t->interval);
@@ -387,10 +387,10 @@
 	  t->next = free_atimers;
 	  free_atimers = t;
 	}
-      
+
       EMACS_GET_TIME (now);
     }
-  
+
   set_alarm ();
 }
 
--- a/src/atimer.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/atimer.h	Tue Feb 04 14:56:31 2003 +0000
@@ -51,7 +51,7 @@
 {
   /* The type of this timer.  */
   enum atimer_type type;
-  
+
   /* Time when this timer is ripe.  */
   EMACS_TIME expiration;
 
--- a/src/blockinput.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/blockinput.h	Tue Feb 04 14:56:31 2003 +0000
@@ -42,7 +42,7 @@
    BLOCK_INPUT and UNBLOCK_INPUT may be nested.
 
    * Any complicated interrupt handling code should test
-   interrupt_input_blocked, and put off its work until later.  
+   interrupt_input_blocked, and put off its work until later.
 
    * If the interrupt handling code wishes, it may set
    interrupt_input_pending to a non-zero value.  If that flag is set
--- a/src/buffer.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/buffer.c	Tue Feb 04 14:56:31 2003 +0000
@@ -464,13 +464,13 @@
       OVERLAY_START (overlay) = start;
       OVERLAY_END (overlay) = end;
       OVERLAY_PLIST (overlay) = Fcopy_sequence (OVERLAY_PLIST (old_overlay));
-      
+
       result = Fcons (overlay, result);
     }
 
   return Fnreverse (result);
 }
-     
+
 
 /* Clone per-buffer values of buffer FROM.
 
@@ -487,7 +487,7 @@
   int offset;
 
   XSETBUFFER (to_buffer, to);
-  
+
   for (offset = PER_BUFFER_VAR_OFFSET (name) + sizeof (Lisp_Object);
        offset < sizeof *to;
        offset += sizeof (Lisp_Object))
@@ -507,7 +507,7 @@
     }
 
   bcopy (from->local_flags, to->local_flags, sizeof to->local_flags);
-  
+
   to->overlays_before = copy_overlays (to, from->overlays_before);
   to->overlays_after = copy_overlays (to, from->overlays_after);
 }
@@ -816,7 +816,7 @@
 }
 
 DEFUN ("buffer-local-value", Fbuffer_local_value,
-       Sbuffer_local_value, 2, 2, 0, 
+       Sbuffer_local_value, 2, 2, 0,
        doc: /* Return the value of VARIABLE in BUFFER.
 If VARIABLE does not have a buffer-local binding in BUFFER, the value
 is the default binding of variable. */)
@@ -833,7 +833,7 @@
 
   /* Look in local_var_list */
   result = Fassoc (symbol, buf->local_var_alist);
-  if (NILP (result)) 
+  if (NILP (result))
     {
       int offset, idx;
       int found = 0;
@@ -846,8 +846,8 @@
 	{
 	  idx = PER_BUFFER_IDX (offset);
 	  if ((idx == -1 || PER_BUFFER_VALUE_P (buf, idx))
-	      && SYMBOLP (PER_BUFFER_SYMBOL (offset)) 
-	      && EQ (PER_BUFFER_SYMBOL (offset), symbol)) 
+	      && SYMBOLP (PER_BUFFER_SYMBOL (offset))
+	      && EQ (PER_BUFFER_SYMBOL (offset), symbol))
 	    {
 	      result = PER_BUFFER_VALUE (buf, offset);
 	      found = 1;
@@ -1005,7 +1005,7 @@
 #endif /* CLASH_DETECTION */
 
   SAVE_MODIFF = NILP (flag) ? MODIFF : 0;
-  
+
   /* Set update_mode_lines only if buffer is displayed in some window.
      Packages like jit-lock or lazy-lock preserve a buffer's modified
      state by recording/restoring the state around blocks of code.
@@ -1024,7 +1024,7 @@
       ++update_mode_lines;
       current_buffer->prevent_redisplay_optimizations_p = 1;
     }
-  
+
   return flag;
 }
 
@@ -1038,7 +1038,7 @@
 {
 #ifdef CLASH_DETECTION
   Lisp_Object fn;
-  
+
   /* If buffer becoming modified, lock the file.
      If buffer becoming unmodified, unlock the file.  */
 
@@ -1053,7 +1053,7 @@
 	unlock_file (fn);
     }
 #endif /* CLASH_DETECTION */
-  
+
   SAVE_MODIFF = NILP (flag) ? MODIFF : 0;
   return flag;
 }
@@ -1152,7 +1152,7 @@
 
   /* Consider buffers that have been seen in the selected frame
      before other buffers.  */
-    
+
   tem = frame_buffer_list (frame);
   add_ons = Qnil;
   while (CONSP (tem))
@@ -1354,7 +1354,7 @@
 
       UNGCPRO;
     }
-  
+
   /* Make this buffer not be current.
      In the process, notice if this is the sole visible buffer
      and give up if so.  */
@@ -1495,7 +1495,7 @@
     Vbuffer_alist = XCDR (Vbuffer_alist);
   else
     XSETCDR (prev, XCDR (XCDR (prev)));
-	
+
   XSETCDR (link, Vbuffer_alist);
   Vbuffer_alist = link;
 
@@ -1519,7 +1519,7 @@
 			       XCDR (frame_buffer_list (frame)));
       else
 	XSETCDR (prev, XCDR (XCDR (prev)));
-	
+
       XSETCDR (link, frame_buffer_list (frame));
       set_frame_buffer_list (frame, link);
     }
@@ -1549,7 +1549,7 @@
 	  && NILP (Fget (current_buffer->major_mode, Qmode_class)))
 	function = current_buffer->major_mode;
     }
-  
+
   if (NILP (function) || EQ (function, Qfundamental_mode))
     return Qnil;
 
@@ -1709,7 +1709,7 @@
   if (b->text->beg == NULL)
     enlarge_buffer_text (b, 0);
 #endif /* USE_MMAP_FOR_BUFFERS */
-  
+
   if (current_buffer == b)
     return;
 
@@ -1937,7 +1937,7 @@
   else
     {
       Lisp_Object buf1;
-      
+
       buf1 = Fget_buffer (buffer);
       if (NILP (buf1))
 	nsberror (buffer);
@@ -2175,7 +2175,7 @@
 	      p = GAP_END_ADDR;
 	      stop = Z;
 	    }
-	      
+
 	  if (UNIBYTE_STR_AS_MULTIBYTE_P (p, stop - pos, bytes))
 	    p += bytes, pos += bytes;
 	  else
@@ -2328,7 +2328,7 @@
 
   /* Any which are supposed to be permanent,
      make local again, with the same values they had.  */
-     
+
   for (alist = oalist; !NILP (alist); alist = XCDR (alist))
     {
       sym = XCAR (XCAR (alist));
@@ -2390,7 +2390,7 @@
 }
 
 /* Find all the overlays in the current buffer that contain position POS.
-   Return the number found, and store them in a vector in *VEC_PTR.  
+   Return the number found, and store them in a vector in *VEC_PTR.
    Store in *LEN_PTR the size allocated for the vector.
    Store in *NEXT_PTR the next position after POS where an overlay starts,
      or ZV if there are no more overlays.
@@ -2542,7 +2542,7 @@
 /* Find all the overlays in the current buffer that overlap the range BEG-END
    or are empty at BEG.
 
-   Return the number found, and store them in a vector in *VEC_PTR.  
+   Return the number found, and store them in a vector in *VEC_PTR.
    Store in *LEN_PTR the size allocated for the vector.
    Store in *NEXT_PTR the next position after POS where an overlay starts,
      or ZV if there are no more overlays.
@@ -2691,7 +2691,7 @@
   int end = OVERLAY_POSITION (OVERLAY_END (overlay));
   int n, i, size;
   Lisp_Object *v, tem;
-  
+
   size = 10;
   v = (Lisp_Object *) alloca (size * sizeof *v);
   n = overlays_in (start, end, 0, &v, &size, NULL, NULL);
@@ -3545,7 +3545,7 @@
   XOVERLAY (overlay)->end = end;
   XOVERLAY (overlay)->plist = Qnil;
 
-  /* Put the new overlay on the wrong list.  */ 
+  /* Put the new overlay on the wrong list.  */
   end = OVERLAY_END (overlay);
   if (OVERLAY_POSITION (end) < XINT (b->overlay_center))
     b->overlays_after = Fcons (overlay, b->overlays_after);
@@ -3576,7 +3576,7 @@
     }
 
   BUF_COMPUTE_UNCHANGED (buf, start, end);
-  
+
   /* If this is a buffer not in the selected window,
      we must do other windows.  */
   if (buf != XBUFFER (XWINDOW (selected_window)->buffer))
@@ -3682,7 +3682,7 @@
   Fset_marker (OVERLAY_START (overlay), beg, buffer);
   Fset_marker (OVERLAY_END   (overlay), end, buffer);
 
-  /* Put the overlay on the wrong list.  */ 
+  /* Put the overlay on the wrong list.  */
   end = OVERLAY_END (overlay);
   if (OVERLAY_POSITION (end) < XINT (b->overlay_center))
     b->overlays_after = Fcons (overlay, b->overlays_after);
@@ -3712,7 +3712,7 @@
 
   b = XBUFFER (buffer);
   specbind (Qinhibit_quit, Qt);
-  
+
   b->overlays_before = Fdelq (overlay, b->overlays_before);
   b->overlays_after = Fdelq (overlay, b->overlays_after);
   modify_overlay (b,
@@ -4276,21 +4276,21 @@
 {
   Lisp_Object sym;
   char *type_name;
-  
+
   switch (XINT (PER_BUFFER_TYPE (offset)))
     {
     case Lisp_Int:
       type_name = "integers";
       break;
-      
+
     case Lisp_String:
       type_name = "strings";
       break;
-      
+
     case Lisp_Symbol:
       type_name = "symbols";
       break;
-      
+
     default:
       abort ();
     }
@@ -4353,7 +4353,7 @@
 {
   /* User-specified size.  */
   size_t nbytes_specified;
-  
+
   /* Number of bytes mapped */
   size_t nbytes_mapped;
 
@@ -4444,7 +4444,7 @@
 {
   struct mmap_region *r;
   char *s = (char *) start, *e = (char *) end;
-  
+
   for (r = mmap_regions; r; r = r->next)
     {
       char *rstart = (char *) r;
@@ -4478,7 +4478,7 @@
     r->prev->next = r->next;
   else
     mmap_regions = r->next;
-  
+
   if (munmap ((POINTER_TYPE *) r, r->nbytes_mapped) == -1)
     {
       fprintf (stderr, "munmap: %s\n", emacs_strerror (errno));
@@ -4516,7 +4516,7 @@
   else if (npages > 0)
     {
       nbytes = npages * mmap_page_size;
-      
+
       /* Try to map additional pages at the end of the region.  We
 	 cannot do this if the address range is already occupied by
 	 something else because mmap deletes any previous mapping.
@@ -4524,7 +4524,7 @@
       if (!MMAP_ALLOCATED_P (region_end, region_end + nbytes))
 	{
 	  POINTER_TYPE *p;
-      
+
 	  p = mmap (region_end, nbytes, PROT_READ | PROT_WRITE,
 		    MAP_ANON | MAP_PRIVATE | MAP_FIXED, mmap_fd, 0);
 	  if (p == MAP_FAILED)
@@ -4605,7 +4605,7 @@
   map = ROUND (nbytes + MMAP_REGION_STRUCT_SIZE, mmap_page_size);
   p = mmap (NULL, map, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE,
 	    mmap_fd, 0);
-  
+
   if (p == MAP_FAILED)
     {
       if (errno != ENOMEM)
@@ -4615,7 +4615,7 @@
   else
     {
       struct mmap_region *r = (struct mmap_region *) p;
-      
+
       r->nbytes_specified = nbytes;
       r->nbytes_mapped = map;
       r->var = var;
@@ -4624,10 +4624,10 @@
       if (r->next)
 	r->next->prev = r;
       mmap_regions = r;
-      
+
       p = MMAP_USER_AREA (p);
     }
-  
+
   return *var = p;
 }
 
@@ -4643,12 +4643,12 @@
      size_t nbytes;
 {
   POINTER_TYPE *result;
-  
+
   mmap_init ();
 
   if (*var == NULL)
     result = mmap_alloc (var, nbytes);
-  else if (nbytes == 0) 
+  else if (nbytes == 0)
     {
       mmap_free (var);
       result = mmap_alloc (var, nbytes);
@@ -4657,7 +4657,7 @@
     {
       struct mmap_region *r = MMAP_REGION (*var);
       size_t room = r->nbytes_mapped - MMAP_REGION_STRUCT_SIZE;
-      
+
       if (room < nbytes)
 	{
 	  /* Must enlarge.  */
@@ -4718,7 +4718,7 @@
      POINTER_TYPE **var;
 {
   mmap_init ();
-  
+
   if (*var)
     {
       mmap_free_1 (MMAP_REGION (*var));
@@ -4747,11 +4747,11 @@
   if (mmap_initialized_p)
     return;
   mmap_initialized_p = 1;
-  
+
 #if MAP_ANON != 0
   mmap_fd = -1;
 #endif
-  
+
   mmap_page_size = getpagesize ();
 }
 
@@ -4778,7 +4778,7 @@
      size_t nbytes;
 {
   POINTER_TYPE *p;
-  
+
   BLOCK_INPUT;
 #if defined USE_MMAP_FOR_BUFFERS
   p = mmap_alloc ((POINTER_TYPE **) &b->text->beg, nbytes);
@@ -4787,7 +4787,7 @@
 #else
   p = xmalloc (nbytes);
 #endif
-  
+
   if (p == NULL)
     {
       UNBLOCK_INPUT;
@@ -4817,7 +4817,7 @@
 #else
   p = xrealloc (b->text->beg, nbytes);
 #endif
-  
+
   if (p == NULL)
     {
       UNBLOCK_INPUT;
@@ -4844,7 +4844,7 @@
 #else
   xfree (b->text->beg);
 #endif
-  
+
   BUF_BEG_ADDR (b) = NULL;
   UNBLOCK_INPUT;
 }
@@ -4975,7 +4975,7 @@
   XSETFASTINT (buffer_local_flags.cache_long_line_scans, idx); ++idx;
   XSETFASTINT (buffer_local_flags.category_table, idx); ++idx;
   XSETFASTINT (buffer_local_flags.direction_reversed, idx); ++idx;
-  XSETFASTINT (buffer_local_flags.buffer_file_coding_system, idx); 
+  XSETFASTINT (buffer_local_flags.buffer_file_coding_system, idx);
   /* Make this one a permanent local.  */
   buffer_permanent_local_flags[idx++] = 1;
   XSETFASTINT (buffer_local_flags.left_margin_width, idx); ++idx;
@@ -4991,7 +4991,7 @@
   if (idx >= MAX_PER_BUFFER_VARS)
     abort ();
   last_per_buffer_idx = idx;
-  
+
   Vbuffer_alist = Qnil;
   current_buffer = 0;
   all_buffers = 0;
@@ -5036,13 +5036,13 @@
       text pointers will have been set to null in the dumped Emacs.
       Map new memory.  */
    struct buffer *b;
-   
+
    for (b = all_buffers; b; b = b->next)
      if (b->text->beg == NULL)
        enlarge_buffer_text (b, 0);
  }
 #endif /* USE_MMAP_FOR_BUFFERS */
-  
+
   Fset_buffer (Fget_buffer_create (build_string ("*scratch*")));
   if (NILP (buffer_defaults.enable_multibyte_characters))
     Fset_buffer_multibyte (Qnil);
@@ -5181,17 +5181,17 @@
 		      &buffer_defaults.direction_reversed,
 		      doc: /* Default value of `direction_reversed' for buffers that do not override it.
 This is the same as (default-value 'direction-reversed).  */);
- 
+
    DEFVAR_LISP_NOPRO ("default-enable-multibyte-characters",
 		      &buffer_defaults.enable_multibyte_characters,
 		      doc: /* *Default value of `enable-multibyte-characters' for buffers not overriding it.
 This is the same as (default-value 'enable-multibyte-characters).  */);
- 
+
    DEFVAR_LISP_NOPRO ("default-buffer-file-coding-system",
 		      &buffer_defaults.buffer_file_coding_system,
 		      doc: /* Default value of `buffer-file-coding-system' for buffers not overriding it.
 This is the same as (default-value 'buffer-file-coding-system).  */);
- 
+
   DEFVAR_LISP_NOPRO ("default-truncate-lines",
 		     &buffer_defaults.truncate_lines,
 		     doc: /* Default value of `truncate-lines' for buffers that do not override it.
@@ -5218,7 +5218,7 @@
 This is the same as (default-value 'case-fold-search).  */);
 
 #ifdef DOS_NT
-  DEFVAR_LISP_NOPRO ("default-buffer-file-type", 
+  DEFVAR_LISP_NOPRO ("default-buffer-file-type",
 		     &buffer_defaults.buffer_file_type,
 		     doc: /* Default file type for buffers that do not override it.
 This is the same as (default-value 'buffer-file-type).
@@ -5234,31 +5234,31 @@
 		     &buffer_defaults.right_margin_width,
 		     doc: /* Default value of `right_margin_width' for buffers that don't override it.
 This is the same as (default-value 'right-margin-width).  */);
-  
+
   DEFVAR_LISP_NOPRO ("default-indicate-empty-lines",
 		     &buffer_defaults.indicate_empty_lines,
 		     doc: /* Default value of `indicate-empty-lines' for buffers that don't override it.
 This is the same as (default-value 'indicate-empty-lines).  */);
-  
+
   DEFVAR_LISP_NOPRO ("default-scroll-up-aggressively",
 		     &buffer_defaults.scroll_up_aggressively,
 		     doc: /* Default value of `scroll-up-aggressively'.
 This value applies in buffers that don't have their own local values.
 This variable is an alias for (default-value 'scroll-up-aggressively).  */);
-  
+
   DEFVAR_LISP_NOPRO ("default-scroll-down-aggressively",
 		     &buffer_defaults.scroll_down_aggressively,
 		     doc: /* Default value of `scroll-down-aggressively'.
 This value applies in buffers that don't have their own local values.
 This variable is an alias for (default-value 'scroll-down-aggressively).  */);
-  
+
   DEFVAR_PER_BUFFER ("header-line-format",
 		     &current_buffer->header_line_format,
 		     Qnil,
 		     doc: /* Analogous to `mode-line-format', but controls the header line.
 The header line appears, optionally, at the top of a window;
 the mode line appears at the bottom.  */);
-  
+
   DEFVAR_PER_BUFFER ("mode-line-format", &current_buffer->mode_line_format,
 		     Qnil,
 		     doc: /* Template for displaying mode line for current buffer.
@@ -5269,7 +5269,7 @@
  A string appearing directly as the value of a symbol is processed verbatim
  in that the %-constructs below are not recognized.
  Note that unless the symbol is marked as a `risky-local-variable', all
- properties in any strings, as well as all :eval and :propertize forms 
+ properties in any strings, as well as all :eval and :propertize forms
  in the value of that symbol will be ignored.
 For a list of the form `(:eval FORM)', FORM is evaluated and the result
  is used as a mode line element.  Be careful--FORM should not load any files,
@@ -5506,18 +5506,18 @@
 		     Qnil,
 		     doc: /* *Width of left marginal area for display of a buffer.
 A value of nil means no marginal area.  */);
-  
+
   DEFVAR_PER_BUFFER ("right-margin-width", &current_buffer->right_margin_width,
 		     Qnil,
 		     doc: /* *Width of right marginal area for display of a buffer.
 A value of nil means no marginal area.  */);
-  
+
   DEFVAR_PER_BUFFER ("indicate-empty-lines",
 		     &current_buffer->indicate_empty_lines, Qnil,
 		     doc: /* *Visually indicate empty lines after the buffer end.
 If non-nil, a bitmap is displayed in the left fringe of a window on
 window-systems.  */);
-  
+
   DEFVAR_PER_BUFFER ("scroll-up-aggressively",
 		     &current_buffer->scroll_up_aggressively, Qnil,
 		     doc: /* How far to scroll windows upward.
@@ -5530,7 +5530,7 @@
 point goes at the top, so that in that simple case, the window
 window scrolls by a full window height.  Meaningful values are
 between 0.0 and 1.0, inclusive.  */);
-  
+
   DEFVAR_PER_BUFFER ("scroll-down-aggressively",
 		     &current_buffer->scroll_down_aggressively, Qnil,
 		     doc: /* How far to scroll windows downward.
@@ -5543,7 +5543,7 @@
 point goes at the bottom, so that in that simple case, the window
 window scrolls by a full window height.  Meaningful values are
 between 0.0 and 1.0, inclusive.  */);
-  
+
 /*DEFVAR_LISP ("debug-check-symbol", &Vcheck_symbol,
     "Don't ask.");
 */
--- a/src/buffer.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/buffer.h	Tue Feb 04 14:56:31 2003 +0000
@@ -25,52 +25,52 @@
 /* These macros come in pairs, one for the char position
    and one for the byte position.  */
 
-/* Position of beginning of buffer.  */ 
+/* Position of beginning of buffer.  */
 #define BEG (1)
 #define BEG_BYTE (1)
 
-/* Position of beginning of accessible range of buffer.  */ 
+/* Position of beginning of accessible range of buffer.  */
 #define BEGV (current_buffer->begv)
 #define BEGV_BYTE (current_buffer->begv_byte)
 
 /* Position of point in buffer.  The "+ 0" makes this
-   not an l-value, so you can't assign to it.  Use SET_PT instead.  */ 
+   not an l-value, so you can't assign to it.  Use SET_PT instead.  */
 #define PT (current_buffer->pt + 0)
 #define PT_BYTE (current_buffer->pt_byte + 0)
 
-/* Position of gap in buffer.  */ 
+/* Position of gap in buffer.  */
 #define GPT (current_buffer->text->gpt)
 #define GPT_BYTE (current_buffer->text->gpt_byte)
 
-/* Position of end of accessible range of buffer.  */ 
+/* Position of end of accessible range of buffer.  */
 #define ZV (current_buffer->zv)
 #define ZV_BYTE (current_buffer->zv_byte)
 
-/* Position of end of buffer.  */ 
+/* Position of end of buffer.  */
 #define Z (current_buffer->text->z)
 #define Z_BYTE (current_buffer->text->z_byte)
 
 /* Macros for the addresses of places in the buffer.  */
 
-/* Address of beginning of buffer.  */ 
+/* Address of beginning of buffer.  */
 #define BEG_ADDR (current_buffer->text->beg)
 
-/* Address of beginning of accessible range of buffer.  */ 
+/* Address of beginning of accessible range of buffer.  */
 #define BEGV_ADDR (BYTE_POS_ADDR (current_buffer->begv_byte))
 
-/* Address of point in buffer.  */ 
+/* Address of point in buffer.  */
 #define PT_ADDR (BYTE_POS_ADDR (current_buffer->pt_byte))
 
-/* Address of beginning of gap in buffer.  */ 
+/* Address of beginning of gap in buffer.  */
 #define GPT_ADDR (current_buffer->text->beg + current_buffer->text->gpt_byte - 1)
 
 /* Address of end of gap in buffer.  */
 #define GAP_END_ADDR (current_buffer->text->beg + current_buffer->text->gpt_byte + current_buffer->text->gap_size - 1)
 
-/* Address of end of accessible range of buffer.  */ 
+/* Address of end of accessible range of buffer.  */
 #define ZV_ADDR (BYTE_POS_ADDR (current_buffer->zv_byte))
 
-/* Address of end of buffer.  */ 
+/* Address of end of buffer.  */
 #define Z_ADDR (current_buffer->text->beg + current_buffer->text->gap_size + current_buffer->text->z_byte - 1)
 
 /* Size of gap.  */
@@ -101,27 +101,27 @@
 /* Similar macros to operate on a specified buffer.
    Note that many of these evaluate the buffer argument more than once.  */
 
-/* Position of beginning of buffer.  */ 
+/* Position of beginning of buffer.  */
 #define BUF_BEG(buf) (1)
 #define BUF_BEG_BYTE(buf) (1)
 
-/* Position of beginning of accessible range of buffer.  */ 
+/* Position of beginning of accessible range of buffer.  */
 #define BUF_BEGV(buf) ((buf)->begv)
 #define BUF_BEGV_BYTE(buf) ((buf)->begv_byte)
 
-/* Position of point in buffer.  */ 
+/* Position of point in buffer.  */
 #define BUF_PT(buf) ((buf)->pt)
 #define BUF_PT_BYTE(buf) ((buf)->pt_byte)
 
-/* Position of gap in buffer.  */ 
+/* Position of gap in buffer.  */
 #define BUF_GPT(buf) ((buf)->text->gpt)
 #define BUF_GPT_BYTE(buf) ((buf)->text->gpt_byte)
 
-/* Position of end of accessible range of buffer.  */ 
+/* Position of end of accessible range of buffer.  */
 #define BUF_ZV(buf) ((buf)->zv)
 #define BUF_ZV_BYTE(buf) ((buf)->zv_byte)
 
-/* Position of end of buffer.  */ 
+/* Position of end of buffer.  */
 #define BUF_Z(buf) ((buf)->text->z)
 #define BUF_Z_BYTE(buf) ((buf)->text->z_byte)
 
@@ -197,7 +197,7 @@
 	}								\
     }									\
   while (0)
-     
+
 
 /* Macros to set PT in the current buffer, or another buffer.  */
 
@@ -336,14 +336,14 @@
    or converting between byte positions and addresses,
    in a specified buffer.  */
 
-/* Return the address of character at byte position POS in buffer BUF. 
+/* Return the address of character at byte position POS in buffer BUF.
    Note that both arguments can be computed more than once.  */
 
 #define BUF_BYTE_ADDRESS(buf, pos) \
 ((buf)->text->beg + (pos) - 1		\
  + ((pos) >= (buf)->text->gpt_byte ? (buf)->text->gap_size : 0))
 
-/* Return the address of character at char position POS in buffer BUF. 
+/* Return the address of character at char position POS in buffer BUF.
    Note that both arguments can be computed more than once.  */
 
 #define BUF_CHAR_ADDRESS(buf, pos) \
@@ -396,7 +396,7 @@
        e.g. happen when malloc is called.  So, don't pass a pointer
        into a buffer's text to functions that malloc.  */
     unsigned char *beg;
-    
+
     int gpt;			/* Char pos of gap in buffer.  */
     int z;			/* Char pos of end of buffer.  */
     int gpt_byte;		/* Byte pos of gap in buffer.  */
@@ -487,7 +487,7 @@
      this means the variable is always local in all buffers.  */
 #define MAX_PER_BUFFER_VARS 50
   char local_flags[MAX_PER_BUFFER_VARS];
-    
+
   /* Set to the modtime of the visited file when read or written.
      -1 means visited file was nonexistent.
      0 means visited file modtime unknown; in no case complain
@@ -579,7 +579,7 @@
      So we copy it around in set_buffer_internal.
      This comes before `name' because it is marked in a special way.  */
   Lisp_Object undo_list;
-    
+
   /* Analogous to mode_line_format for the line displayed at the top
      of windows.  Nil means don't display that line.  */
   Lisp_Object header_line_format;
@@ -712,7 +712,7 @@
 
   /* Incremented each time the buffer is displayed in a window.  */
   Lisp_Object display_count;
- 
+
   /* Widths of left and right marginal areas for windows displaying
      this buffer.  */
   Lisp_Object left_margin_width, right_margin_width;
@@ -729,7 +729,7 @@
      that point ends up this number of lines from the top of the
      window.  Nil means that scrolling method isn't used.  */
   Lisp_Object scroll_up_aggressively;
-    
+
   /* If scrolling the display because point is above the top of a
      window showing this buffer, try to choose a window start so
      that point ends up this number of lines from the bottom of the
--- a/src/callint.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/callint.c	Tue Feb 04 14:56:31 2003 +0000
@@ -743,7 +743,7 @@
 	      args[i] = Qnil;
 	      varies[i] = -1;
 	    }
-	  else 
+	  else
 	    {
 	      args[i]
 		= Fread_non_nil_coding_system (build_string (callint_message));
@@ -820,7 +820,7 @@
     UNGCPRO;
     return unbind_to (speccount, val);
   }
-}  
+}
 
 DEFUN ("prefix-numeric-value", Fprefix_numeric_value, Sprefix_numeric_value,
        1, 1, 0,
@@ -831,7 +831,7 @@
      Lisp_Object raw;
 {
   Lisp_Object val;
-  
+
   if (NILP (raw))
     XSETFASTINT (val, 1);
   else if (EQ (raw, Qminus))
--- a/src/callproc.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/callproc.c	Tue Feb 04 14:56:31 2003 +0000
@@ -253,7 +253,7 @@
 
 #ifndef subprocesses
   /* Without asynchronous processes we cannot have BUFFER == 0.  */
-  if (nargs >= 3 
+  if (nargs >= 3
       && (INTEGERP (CONSP (args[2]) ? XCAR (args[2]) : args[2])))
     error ("Operating system cannot handle asynchronous subprocesses");
 #endif /* subprocesses */
@@ -339,7 +339,7 @@
 	  CHECK_BUFFER (buffer);
 	}
     }
-  else 
+  else
     buffer = Qnil;
 
   /* Make sure that the child will be able to chdir to the current
@@ -431,7 +431,7 @@
       *tempfile = '\0';
     }
   dostounix_filename (tempfile);
-  if (*tempfile == '\0' || tempfile[strlen (tempfile) - 1] != '/') 
+  if (*tempfile == '\0' || tempfile[strlen (tempfile) - 1] != '/')
     strcat (tempfile, "/");
   strcat (tempfile, "detmp.XXX");
   mktemp (tempfile);
@@ -545,7 +545,7 @@
          code does not handle passing the environment to the synchronous
          Mac subprocess.  */
       char *infn, *outfn, *errfn, *currdn;
-      
+
       /* close these files so subprocess can write to them */
       close (outfilefd);
       if (fd_error != outfilefd)
@@ -780,7 +780,7 @@
 
 	/* Now NREAD is the total amount of data in the buffer.  */
 	immediate_quit = 0;
-	
+
 	if (!NILP (buffer))
 	  {
 	    if (! CODING_MAY_REQUIRE_DECODING (&process_coding))
@@ -793,7 +793,7 @@
 	      repeat_decoding:
 		size = decoding_buffer_size (&process_coding, nread);
 		decoding_buf = (char *) xmalloc (size);
-		
+
 		/* We can't use the macro CODING_REQUIRE_DETECTION
 		   because it always returns nonzero if the coding
 		   system requires EOL detection.  Here, we have to
@@ -807,10 +807,10 @@
 		  }
 		if (process_coding.cmp_data)
 		  process_coding.cmp_data->char_offset = PT;
-		
+
 		decode_coding (&process_coding, bufptr, decoding_buf,
 			       nread, size);
-		
+
 		if (display_on_the_fly
 		    && saved_coding.type == coding_type_undecided
 		    && process_coding.type != coding_type_undecided)
@@ -825,7 +825,7 @@
 		    carryover = nread;
 		    continue;
 		  }
-		
+
 		if (process_coding.produced > 0)
 		  insert_1_both (decoding_buf, process_coding.produced_char,
 				 process_coding.produced, 0, 1, 0);
@@ -840,9 +840,9 @@
 			/* CRs have been replaced with LFs.  Undo
 			   that in the text inserted above.  */
 			unsigned char *p;
-			
+
 			move_gap_both (PT, PT_BYTE);
-			
+
 			p = BYTE_POS_ADDR (pt_byte_orig);
 			for (; p < GPT_ADDR; ++p)
 			  if (*p == '\n')
@@ -858,7 +858,7 @@
 			old_pt = PT;
 			old_pt_byte = PT_BYTE;
 			nCR = 0;
-			
+
 			for (bytepos = PT_BYTE - 1;
 			     bytepos >= pt_byte_orig;
 			     --bytepos)
@@ -882,13 +882,13 @@
 		      coding = AREF (eol_type, CODING_EOL_LF);
 		    else
 		      coding = saved_coding.symbol;
-		    
+
 		    process_coding.symbol = coding;
 		    process_coding.eol_type = CODING_EOL_LF;
 		    process_coding.mode
 		      &= ~CODING_MODE_INHIBIT_INCONSISTENT_EOL;
 		  }
-		
+
 		nread -= process_coding.consumed;
 		carryover = nread;
 		if (carryover > 0)
@@ -1106,7 +1106,7 @@
     unbind_to (count1, Qnil);
   }
 
-  /* Note that Fcall_process takes care of binding 
+  /* Note that Fcall_process takes care of binding
      coding-system-for-read.  */
 
   record_unwind_protect (delete_temp_file, filename_string);
@@ -1144,7 +1144,7 @@
    of environ around the vfork and the call to this function.
 
    SET_PGRP is nonzero if we should put the subprocess into a separate
-   process group.  
+   process group.
 
    CURRENT_DIR is an elisp string giving the path of the current
    directory the subprocess should have.  Since we can't really signal
@@ -1467,7 +1467,7 @@
 #endif /* not VMS */
 
 /* This is run before init_cmdargs.  */
-  
+
 void
 init_callproc_1 ()
 {
@@ -1475,7 +1475,7 @@
   char *doc_dir = egetenv ("EMACSDOC");
 
   Vdata_directory
-    = Ffile_name_as_directory (build_string (data_dir ? data_dir 
+    = Ffile_name_as_directory (build_string (data_dir ? data_dir
 					     : PATH_DATA));
   Vdoc_directory
     = Ffile_name_as_directory (build_string (doc_dir ? doc_dir
@@ -1494,7 +1494,7 @@
 init_callproc ()
 {
   char *data_dir = egetenv ("EMACSDATA");
-    
+
   register char * sh;
   Lisp_Object tempdir;
 
@@ -1512,7 +1512,7 @@
 	  Vexec_path = Fcons (tem, Vexec_path);
 	  Vexec_path = nconc2 (decode_env_path ("PATH", ""), Vexec_path);
 	}
-      
+
       Vexec_directory = Ffile_name_as_directory (tem);
 #endif /* not DOS_NT */
 
--- a/src/casetab.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/casetab.c	Tue Feb 04 14:56:31 2003 +0000
@@ -71,7 +71,7 @@
   while (tem = Fcase_table_p (obj), NILP (tem))
     obj = wrong_type_argument (Qcase_table_p, obj);
   return (obj);
-}   
+}
 
 DEFUN ("current-case-table", Fcurrent_case_table, Scurrent_case_table, 0, 0, 0,
        doc: /* Return the case table of the current buffer.  */)
--- a/src/category.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/category.c	Tue Feb 04 14:56:31 2003 +0000
@@ -167,7 +167,7 @@
   while (tem = Fcategory_table_p (table), NILP (tem))
     table = wrong_type_argument (Qcategory_table_p, table);
   return table;
-}   
+}
 
 DEFUN ("category-table", Fcategory_table, Scategory_table, 0, 0, 0,
        doc: /* Return the current category table.
@@ -377,7 +377,7 @@
 
   if (NILP (CATEGORY_DOCSTRING (table, XFASTINT (category))))
     error ("Undefined category: %c", XFASTINT (category));
-  
+
   set_value = NILP (reset) ? Qt : Qnil;
 
   if (c < CHAR_TABLE_SINGLE_BYTE_SLOTS)
@@ -534,7 +534,7 @@
   Fput (Qcategory_table, Qchar_table_extra_slots, make_number (2));
 
   Vstandard_category_table = Fmake_char_table (Qcategory_table, Qnil);
-  /* Set a category set which contains nothing to the default.  */ 
+  /* Set a category set which contains nothing to the default.  */
   XCHAR_TABLE (Vstandard_category_table)->defalt = MAKE_CATEGORY_SET;
   Fset_char_table_extra_slot (Vstandard_category_table, make_number (0),
 			      Fmake_vector (make_number (95), Qnil));
--- a/src/category.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/category.h	Tue Feb 04 14:56:31 2003 +0000
@@ -109,7 +109,7 @@
 #else
 #define CATEGORY_SET(c) \
   Faref (current_buffer->category_table, make_number (c))
-#endif   
+#endif
 
 /* Return the doc string of CATEGORY in category table TABLE.  */
 #define CATEGORY_DOCSTRING(table, category) \
--- a/src/ccl.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/ccl.c	Tue Feb 04 14:56:31 2003 +0000
@@ -426,7 +426,7 @@
 					extended_command (rrr,RRR,Rrr,ARGS)
 				      */
 
-/* 
+/*
    Here after, Extended CCL Instructions.
    Bit length of extended command is 14.
    Therefore, the instruction code range is 0..16384(0x3fff).
@@ -484,7 +484,7 @@
 					3:MAP-ID1
 					4:MAP-ID2
 					...
-				     */ 
+				     */
 
 /* Map the code in reg[rrr] by MAPs starting from the Nth (N =
    reg[RRR]) map.
@@ -562,7 +562,7 @@
    where
 	STARTPOINT is an offset to be used for indexing a map,
 	ENDPOINT is a maximum index number of a map,
-	VAL and VALn is a number, nil, t, or lambda.  
+	VAL and VALn is a number, nil, t, or lambda.
 
    Valid index range of a map of type (a) is:
 	STARTPOINT <= index < STARTPOINT + map_size - 1
@@ -862,7 +862,7 @@
     int ic;			/* Instruction Counter.  */
   };
 
-/* For the moment, we only support depth 256 of stack.  */ 
+/* For the moment, we only support depth 256 of stack.  */
 static struct ccl_prog_stack ccl_prog_stack_struct[256];
 
 int
@@ -1096,7 +1096,7 @@
 		  }
 		CCL_INVALID_CMD;
 	      }
-	    
+
 	    ccl_prog_stack_struct[stack_idx].ccl_prog = ccl_prog;
 	    ccl_prog_stack_struct[stack_idx].ic = ic;
 	    stack_idx++;
@@ -1260,7 +1260,7 @@
 		  src++;
 		  goto ccl_read_multibyte_character_suspend;
 		}
-	      
+
 	      if (!ccl->multibyte)
 		{
 		  int bytes;
@@ -1274,7 +1274,7 @@
 	      i = *src++;
 	      if (i == '\n' && ccl->eol_type != CODING_EOL_LF)
 		{
-		  /* We are encoding.  */ 
+		  /* We are encoding.  */
 		  if (ccl->eol_type == CODING_EOL_CRLF)
 		    {
 		      if (ccl->cr_consumed)
@@ -1399,7 +1399,7 @@
 	      SPLIT_CHAR (op, reg[RRR], i, j);
 	      if (j != -1)
 		i = (i << 7) | j;
-	      
+
 	      reg[rrr] = i;
 	      break;
 
@@ -1411,14 +1411,14 @@
 	      SPLIT_CHAR (op, reg[RRR], i, j);
 	      if (j != -1)
 		i = (i << 7) | j;
-	      
+
 	      reg[rrr] = i;
 	      break;
 
 	    case CCL_LookupIntConstTbl:
 	      op = XINT (ccl_prog[ic]); /* table */
 	      ic++;
-	      {		
+	      {
 		struct Lisp_Hash_Table *h = GET_HASH_TABLE (op);
 
 		op = hash_lookup (h, make_number (reg[RRR]), NULL);
@@ -1443,7 +1443,7 @@
 	      op = XINT (ccl_prog[ic]); /* table */
 	      ic++;
 	      CCL_MAKE_CHAR (reg[RRR], reg[rrr], i);
-	      {		
+	      {
 		struct Lisp_Hash_Table *h = GET_HASH_TABLE (op);
 
 		op = hash_lookup (h, make_number (i), NULL);
@@ -1517,7 +1517,7 @@
 			else
 			  continue;
 		      }
-		    else 
+		    else
 		      continue;
 
 		    if (NILP (content))
@@ -1553,7 +1553,7 @@
 		ic = fin_ic;
 	      }
 	      break;
-	      
+
 	    case CCL_MapMultiple:
 	      {
 		Lisp_Object map, content, attrib, value;
@@ -1640,7 +1640,7 @@
 		      }
 		  }
 		map_vector_size = ASIZE (Vcode_conversion_map_vector);
-		
+
 		do {
 		  for (;map_set_rest_length > 0;i++, ic++, map_set_rest_length--)
 		    {
@@ -1690,7 +1690,7 @@
 			  else
 			    continue;
 			}
-		      else 
+		      else
 			continue;
 
 		      if (NILP (content))
@@ -1808,7 +1808,7 @@
 		  }
 	      }
 	      break;
-	      
+
 	    default:
 	      CCL_INVALID_CMD;
 	    }
@@ -1881,7 +1881,7 @@
 	  bcopy (msg, dst, msglen);
 	  dst += msglen;
 	}
-      
+
       if (ccl->status == CCL_STAT_INVALID_CMD)
 	{
 #if 0 /* If the remaining bytes contain 0x80..0x9F, copying them
@@ -2317,7 +2317,7 @@
 
   CHECK_SYMBOL (symbol);
   CHECK_VECTOR (map);
-  
+
   for (i = 0; i < len; i++)
     {
       Lisp_Object slot = AREF (Vcode_conversion_map_vector, i);
--- a/src/ccl.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/ccl.h	Tue Feb 04 14:56:31 2003 +0000
@@ -44,7 +44,7 @@
   int private_state;            /* CCL instruction may use this
 				   for private use, mainly for saving
 				   internal states on suspending.
-				   This variable is set to 0 when ccl is 
+				   This variable is set to 0 when ccl is
 				   set up.  */
   int last_block;		/* Set to 1 while processing the last
 				   block. */
--- a/src/charset.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/charset.c	Tue Feb 04 14:56:31 2003 +0000
@@ -210,7 +210,7 @@
       /* If C still has any modifier bits, just ignore it.  */
       c &= ~CHAR_MODIFIER_MASK;
     }
-  
+
   if (SINGLE_BYTE_CHAR_P (c))
     {
       if (ASCII_BYTE_P (c) || c >= 0xA0)
@@ -345,7 +345,7 @@
     return 0;
   else if (c >= MAX_CHAR)
     return 0;
-  
+
   SPLIT_CHAR (c, charset, c1, c2);
   if (! CHARSET_DEFINED_P (charset))
     return 0;
@@ -817,7 +817,7 @@
 	    {
 	      maskbits |= (*ptr < 0x80 ? 1 : *ptr < 0xA0 ? 2 : 4);
 	      ptr++;
-	    }	      
+	    }
 
 	  if (maskbits & 1)
 	    charsets[CHARSET_ASCII] = 1;
@@ -1548,7 +1548,7 @@
 	{
 	  while (n--)
 	    *to++ = *p++;
-	}	  
+	}
       else
 	{
 	  *to++ = LEADING_CODE_8_BIT_CONTROL;
@@ -1600,7 +1600,7 @@
   endp = str + len;
   safe_bcopy (p, endp - bytes, bytes);
   p = endp - bytes;
-  while (p < endp)      
+  while (p < endp)
     {
       if (*p < 0x80 || *p >= 0xA0)
 	*to++ = *p++;
@@ -1624,7 +1624,7 @@
 
   while (p < endp && *p != LEADING_CODE_8_BIT_CONTROL) p++;
   to = p;
-  while (p < endp)      
+  while (p < endp)
     {
       if (*p == LEADING_CODE_8_BIT_CONTROL)
 	*to++ = *(p + 1) - 0x20, p += 2;
--- a/src/cm.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/cm.c	Tue Feb 04 14:56:31 2003 +0000
@@ -224,7 +224,7 @@
     if (doit)
 	while (--deltay >= 0)
 	    tputs (p, 1, cmputc);
-x: 
+x:
     if ((deltax = dstx - srcx) == 0)
 	goto done;
     if (deltax < 0) {
@@ -235,7 +235,7 @@
     if (Wcm.cc_tab >= BIG || !Wcm.cm_usetabs)
 	goto olddelta;		/* forget it! */
 
-    /* 
+    /*
      * ntabs is # tabs towards but not past dstx; n2tabs is one more
      * (ie past dstx), but this is only valid if that is not past the
      * right edge of the screen.  We can check that at the same time
@@ -251,7 +251,7 @@
     if (tab2x >= Wcm.cm_cols)	/* too far (past edge) */
 	n2tabs = 0;
 
-    /* 
+    /*
      * Now set tabcost to the cost for using ntabs, and c to the cost
      * for using n2tabs, then pick the minimum.
      */
@@ -270,7 +270,7 @@
     if (tabcost >= BIG)		/* caint use tabs */
 	goto newdelta;
 
-    /* 
+    /*
      * See if tabcost is less than just moving right
      */
 
@@ -282,20 +282,20 @@
 	srcx = tabx;
     }
 
-    /* 
+    /*
      * Now might as well just recompute the delta.
      */
 
-newdelta: 
+newdelta:
     if ((deltax = dstx - srcx) == 0)
 	goto done;
-olddelta: 
+olddelta:
     if (deltax > 0)
 	p = Wcm.cm_right, c = Wcm.cc_right;
     else
 	p = Wcm.cm_left, c = Wcm.cc_left, deltax = -deltax;
 
-dodelta: 
+dodelta:
     if (c == BIG) {		/* caint get thar from here */
 fail:
 	if (doit)
@@ -306,7 +306,7 @@
     if (doit)
 	while (--deltax >= 0)
 	    tputs (p, 1, cmputc);
-done: 
+done:
     return totalcost;
 }
 
@@ -379,7 +379,7 @@
       dcm = Wcm.cm_abs;
     }
 
-  /* 
+  /*
    * In the following comparison, the = in <= is because when the costs
    * are the same, it looks nicer (I think) to move directly there.
    */
@@ -400,17 +400,17 @@
 
   switch (use)
     {
-    case USEHOME: 
+    case USEHOME:
       tputs (Wcm.cm_home, 1, cmputc);
       curY = 0, curX = 0;
       break;
 
-    case USELL: 
+    case USELL:
       tputs (Wcm.cm_ll, 1, cmputc);
       curY = Wcm.cm_rows - 1, curX = 0;
       break;
 
-    case USECR: 
+    case USECR:
       tputs (Wcm.cm_cr, 1, cmputc);
       if (Wcm.cm_autolf)
 	curY++;
--- a/src/coding.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/coding.c	Tue Feb 04 14:56:31 2003 +0000
@@ -6514,7 +6514,7 @@
   int c, len, i;
   Lisp_Object val, ch;
   Lisp_Object prev, tail;
-  
+
   while (p < pend)
     {
       c = STRING_CHAR_AND_LENGTH (p, pend - p, len);
@@ -6635,7 +6635,7 @@
       else
 	/* ... and append generic coding systems.  */
 	val = Fcopy_sequence (XCAR (Vcoding_system_safe_chars));
-      
+
       for (; CONSP (safe_codings); safe_codings = XCDR (safe_codings))
 	val = Fcons (XCAR (XCAR (safe_codings)), val);
       safe_codings = val;
--- a/src/composite.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/composite.c	Tue Feb 04 14:56:31 2003 +0000
@@ -249,7 +249,7 @@
     }
 
   /* This composition is a new one.  We must register it.  */
-	  
+
   /* Check if we have sufficient memory to store this information.  */
   if (composition_table_size == 0)
     {
@@ -485,7 +485,7 @@
 
   if (inhibit_modification_hooks)
     return;
-  
+
   /* If FROM and TO are not in a valid range, do nothing.  */
   if (! (BEGV <= from && from <= to && to <= ZV))
     return;
@@ -754,7 +754,7 @@
 }
 
 DEFUN ("find-composition-internal", Ffind_composition_internal,
-       Sfind_composition_internal, 4, 4, 0, 
+       Sfind_composition_internal, 4, 4, 0,
        doc: /* Internal use only.
 
 Return information about composition at or nearest to position POS.
@@ -775,7 +775,7 @@
     }
   else
     end = -1;
-  
+
   if (!NILP (string))
     {
       CHECK_STRING (string);
@@ -839,7 +839,7 @@
   {
     Lisp_Object args[6];
     extern Lisp_Object QCsize;
-    
+
     args[0] = QCtest;
     args[1] = Qequal;
     args[2] = QCweakness;
--- a/src/composite.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/composite.h	Tue Feb 04 14:56:31 2003 +0000
@@ -147,7 +147,7 @@
 
    When a composition is assigned an ID number (by
    get_composition_id), this structure is allocated for the
-   composition and linked in composition_table[ID].  
+   composition and linked in composition_table[ID].
 
    Identical compositions appearing at different places have the same
    ID, and thus share the same instance of this structure.  */
--- a/src/config.in	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/config.in	Tue Feb 04 14:56:31 2003 +0000
@@ -22,7 +22,7 @@
 
 
 /* No code in Emacs #includes config.h twice, but some bits of code
-   intended to work with other packages as well (like gmalloc.c) 
+   intended to work with other packages as well (like gmalloc.c)
    think they can include it as many times as they like.  */
 #ifndef EMACS_CONFIG_H
 #define EMACS_CONFIG_H
@@ -999,7 +999,7 @@
 #ifdef __GNUC__
 #  ifndef GC_SETJMP_WORKS
   /* GC_SETJMP_WORKS is nearly always appropriate for GCC --
-     see NON_SAVING_SETJMP in the target descriptions.  */   
+     see NON_SAVING_SETJMP in the target descriptions.  */
   /* Exceptions (see NON_SAVING_SETJMP in target description) are ns32k,
      SCO5 non-ELF (but Emacs specifies ELF) and SVR3 on x86.
      Fixme: Deal with ns32k, SVR3.  */
@@ -1022,7 +1022,7 @@
 
 #endif /* EMACS_CONFIG_H */
 
-/* 
+/*
 Local Variables:
 mode: c
 End:
--- a/src/dired.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/dired.c	Tue Feb 04 14:56:31 2003 +0000
@@ -130,7 +130,7 @@
   return Qnil;
 }
 
-/* Function shared by Fdirectory_files and Fdirectory_files_and_attributes.  
+/* Function shared by Fdirectory_files and Fdirectory_files_and_attributes.
    When ATTRS is zero, return a list of directory filenames; when
    non-zero, return a list of directory filenames and their attributes.  */
 
@@ -187,7 +187,7 @@
      have to make sure it gets closed, and setting up an
      unwind_protect to do so would be a pain.  */
  retry:
-  
+
   d = opendir (SDATA (dirfilename));
   if (d == NULL)
     report_file_error ("Opening directory", Fcons (directory, Qnil));
@@ -219,7 +219,7 @@
       if (dp == NULL && errno == EAGAIN)
 	continue;
 #endif
-      
+
       if (dp == NULL)
 	break;
 
@@ -233,7 +233,7 @@
 	  len = NAMLEN (dp);
 	  name = finalname = make_unibyte_string (dp->d_name, len);
 	  GCPRO2 (finalname, name);
-	  
+
 	  /* Note: ENCODE_FILE can GC; it should protect its argument,
 	     though.  */
 	  name = DECODE_FILE (name);
@@ -261,24 +261,24 @@
 		  fullname = make_uninit_multibyte_string (nbytes, nbytes);
 		  bcopy (SDATA (directory), SDATA (fullname),
 			 directory_nbytes);
-		  
+
 		  if (needsep)
 		    SSET (fullname, directory_nbytes, DIRECTORY_SEP);
-		  
+
 		  bcopy (SDATA (name),
 			 SDATA (fullname) + directory_nbytes + needsep,
 			 len);
-		  
+
 		  nchars = chars_in_text (SDATA (fullname), nbytes);
 
 		  /* Some bug somewhere.  */
 		  if (nchars > nbytes)
 		    abort ();
-		      
+
 		  STRING_SET_CHARS (fullname, nchars);
 		  if (nchars == nbytes)
 		    STRING_SET_UNIBYTE (fullname);
-		  
+
 		  finalname = fullname;
 		}
 	      else
@@ -328,7 +328,7 @@
   if (NILP (nosort))
     list = Fsort (Fnreverse (list),
 		  attrs ? Qfile_attributes_lessp : Qstring_lessp);
-  
+
   RETURN_UNGCPRO (list);
 }
 
@@ -686,7 +686,7 @@
 		  /* This tests that the current file is an exact match
 		     but BESTMATCH is not (it is too long).  */
 		  if ((matchsize == len
-		       && matchsize + !!directoryp 
+		       && matchsize + !!directoryp
 			  < SCHARS (bestmatch))
 		      ||
 		      /* If there is no exact match ignoring case,
@@ -699,7 +699,7 @@
 			 either both or neither are exact.  */
 		      (((matchsize == len)
 			==
-			(matchsize + !!directoryp 
+			(matchsize + !!directoryp
 			 == SCHARS (bestmatch)))
 		       && !bcmp (p2, SDATA (encoded_file), SCHARS (encoded_file))
 		       && bcmp (p1, SDATA (encoded_file), SCHARS (encoded_file))))
--- a/src/dispextern.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/dispextern.h	Tue Feb 04 14:56:31 2003 +0000
@@ -112,7 +112,7 @@
 
 #endif /* GLYPH_DEBUG == 0 */
 
-     
+
 
 /***********************************************************************
 			    Text positions
@@ -121,7 +121,7 @@
 /* Starting with Emacs 20.3, characters from strings and buffers have
    both a character and a byte position associated with them.  The
    following structure holds such a pair of positions.  */
-     
+
 struct text_pos
 {
   /* Character position.  */
@@ -177,7 +177,7 @@
 
 #define SET_MARKER_FROM_TEXT_POS(MARKER, POS) \
      set_marker_both ((MARKER), Qnil, CHARPOS ((POS)), BYTEPOS ((POS)))
-     
+
 /* Value is non-zero if character and byte positions of POS1 and POS2
    are equal.  */
 
@@ -224,7 +224,7 @@
 enum glyph_type
 {
   /* Glyph describes a character.  */
-  CHAR_GLYPH, 	
+  CHAR_GLYPH,
 
   /* Glyph describes a composition sequence.  */
   COMPOSITE_GLYPH,
@@ -255,7 +255,7 @@
   int charpos;
 
   /* Lisp object source of this glyph.  Currently either a buffer or
-     a string, if the glyph was produced from characters which came from 
+     a string, if the glyph was produced from characters which came from
      a buffer or a string; or 0 if the glyph was inserted by redisplay
      for its own purposes such as padding.  */
   Lisp_Object object;
@@ -334,7 +334,7 @@
       unsigned ascent  : 16;
     }
     stretch;
-    
+
     /* Used to compare all bit-fields above in one step.  */
     unsigned val;
   } u;
@@ -347,7 +347,7 @@
      (GLYPH_FROM_CHAR_GLYPH ((GLYPH)) == SPACEGLYPH)
 
 /* Are glyphs *X and *Y displayed equal?  */
-     
+
 #define GLYPH_EQUAL_P(X, Y)					\
      ((X)->type == (Y)->type					\
       && (X)->u.val == (Y)->u.val				\
@@ -367,7 +367,7 @@
 
 /* Fill a character glyph GLYPH.  CODE, FACE_ID, PADDING_P correspond
    to the bits defined for the typedef `GLYPH' in lisp.h.  */
-     
+
 #define SET_CHAR_GLYPH(GLYPH, CODE, FACE_ID, PADDING_P)	\
      do							\
        {						\
@@ -379,7 +379,7 @@
 
 /* Fill a character type glyph GLYPH from a glyph typedef FROM as
    defined in lisp.h.  */
-     
+
 #define SET_CHAR_GLYPH_FROM_GLYPH(GLYPH, FROM)			\
      SET_CHAR_GLYPH ((GLYPH),					\
 	 	     FAST_GLYPH_CHAR ((FROM)),			\
@@ -389,14 +389,14 @@
 /* Construct a glyph code from a character glyph GLYPH.  If the
    character is multibyte, return -1 as we can't use glyph table for a
    multibyte character.  */
-     
+
 #define GLYPH_FROM_CHAR_GLYPH(GLYPH)				\
   ((GLYPH).u.ch < 256						\
    ? ((GLYPH).u.ch | ((GLYPH).face_id << CHARACTERBITS))	\
    : -1)
 
 /* Is GLYPH a padding glyph?  */
-     
+
 #define CHAR_GLYPH_PADDING_P(GLYPH) (GLYPH).padding_p
 
 
@@ -557,7 +557,7 @@
 
    Each row is partitioned into three areas.  The start and end of
    each area is recorded in a pointer as shown below.
-   
+
    +--------------------+-------------+---------------------+
    |  left margin area  |  text area  |  right margin area  |
    +--------------------+-------------+---------------------+
@@ -565,13 +565,13 @@
    glyphs[LEFT_MARGIN_AREA]           glyphs[RIGHT_MARGIN_AREA]
 			|                                   |
 			glyphs[TEXT_AREA]                   |
-			                      glyphs[LAST_AREA]   
+			                      glyphs[LAST_AREA]
 
    Rows in frame matrices reference glyph memory allocated in a frame
    glyph pool (see the description of struct glyph_pool).  Rows in
    window matrices on frames having frame matrices reference slices of
    the glyphs of corresponding rows in the frame matrix.
-   
+
    Rows in window matrices on frames having no frame matrices point to
    glyphs allocated from the heap via xmalloc;
    glyphs[LEFT_MARGIN_AREA] is the start address of the allocated
@@ -655,7 +655,7 @@
 
   /* 1 means the overlay arrow is on this line.  */
   unsigned overlay_arrow_p : 1;
-  
+
   /* 1 means that this row displays a continued line, i.e. it has a
      continuation mark at the right side.  */
   unsigned continued_p : 1;
@@ -695,7 +695,7 @@
      of more than one glyph.  Some glyphs have been put in this row,
      the rest are put in rows below this one.  */
   unsigned ends_in_middle_of_char_p : 1;
-  
+
   /* 1 means this line starts in the middle of a character consisting
      of more than one glyph.  Some glyphs have been put in the
      previous row, the rest are put in this row.  */
@@ -726,7 +726,7 @@
 #define MATRIX_ROW(MATRIX, ROW)	  ((MATRIX)->rows + (ROW))
 #endif
 
-/* Return a pointer to the row reserved for the mode line in MATRIX.  
+/* Return a pointer to the row reserved for the mode line in MATRIX.
    Row MATRIX->nrows - 1 is always reserved for the mode line.  */
 
 #define MATRIX_MODE_LINE_ROW(MATRIX) \
@@ -751,29 +751,29 @@
      (MATRIX_ROW ((MATRIX), (ROW))->glyphs[TEXT_AREA])
 
 /* Return the number of used glyphs in the text area of a row.  */
-     
+
 #define MATRIX_ROW_USED(MATRIX, ROW) \
      (MATRIX_ROW ((MATRIX), (ROW))->used[TEXT_AREA])
 
 /* Return the character/ byte position at which the display of ROW
    starts.  */
-     
+
 #define MATRIX_ROW_START_CHARPOS(ROW) ((ROW)->start.pos.charpos)
 #define MATRIX_ROW_START_BYTEPOS(ROW) ((ROW)->start.pos.bytepos)
 
 /* Return the character/ byte position at which ROW ends.  */
-     
+
 #define MATRIX_ROW_END_CHARPOS(ROW) ((ROW)->end.pos.charpos)
 #define MATRIX_ROW_END_BYTEPOS(ROW) ((ROW)->end.pos.bytepos)
 
 /* Return the vertical position of ROW in MATRIX.  */
-     
+
 #define MATRIX_ROW_VPOS(ROW, MATRIX) ((ROW) - (MATRIX)->rows)
 
 /* Return the last glyph row + 1 in MATRIX on window W reserved for
    text.  If W has a mode line, the last row in the matrix is reserved
    for it.  */
-     
+
 #define MATRIX_BOTTOM_TEXT_ROW(MATRIX, W)		\
      ((MATRIX)->rows					\
       + (MATRIX)->nrows					\
@@ -781,46 +781,46 @@
 
 /* Non-zero if the face of the last glyph in ROW's text area has
    to be drawn to the end of the text area.  */
-     
+
 #define MATRIX_ROW_EXTENDS_FACE_P(ROW) ((ROW)->fill_line_p)
 
 /* Set and query the enabled_p flag of glyph row ROW in MATRIX.  */
-     
+
 #define SET_MATRIX_ROW_ENABLED_P(MATRIX, ROW, VALUE) \
      (MATRIX_ROW ((MATRIX), (ROW))->enabled_p = (VALUE) != 0)
-     
+
 #define MATRIX_ROW_ENABLED_P(MATRIX, ROW) \
      (MATRIX_ROW ((MATRIX), (ROW))->enabled_p)
 
 /* Non-zero if ROW displays text.  Value is non-zero if the row is
    blank but displays a line end.  */
-     
+
 #define MATRIX_ROW_DISPLAYS_TEXT_P(ROW) ((ROW)->displays_text_p)
 
 /* Non-zero if ROW is not completely visible in window W.  */
-     
+
 #define MATRIX_ROW_PARTIALLY_VISIBLE_P(ROW)	\
      ((ROW)->height != (ROW)->visible_height)
 
 /* Non-zero if ROW is partially visible at the top of window W.  */
-     
+
 #define MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P(W, ROW)		\
      (MATRIX_ROW_PARTIALLY_VISIBLE_P ((ROW))			\
       && (ROW)->y < WINDOW_DISPLAY_HEADER_LINE_HEIGHT ((W)))
 
 /* Non-zero if ROW is partially visible at the bottom of window W.  */
-     
+
 #define MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P(W, ROW)		      \
      (MATRIX_ROW_PARTIALLY_VISIBLE_P ((ROW))				      \
       && (ROW)->y + (ROW)->height > WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE ((W)))
 
 /* Return the bottom Y + 1 of ROW.   */
-     
+
 #define MATRIX_ROW_BOTTOM_Y(ROW) ((ROW)->y + (ROW)->height)
 
 /* Is ROW the last visible one in the display described by the
    iterator structure pointed to by IT?.  */
-     
+
 #define MATRIX_ROW_LAST_VISIBLE_P(ROW, IT) \
      (MATRIX_ROW_BOTTOM_Y ((ROW)) >= (IT)->last_visible_y)
 
@@ -844,7 +844,7 @@
      ((ROW)->end.overlay_string_index >= 0)
 
 /* Non-zero if ROW starts in the middle of a character.  See above.  */
-     
+
 #define MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P(ROW)	\
      ((ROW)->start.dpvec_index >= 0			\
       || (ROW)->starts_in_middle_of_char_p		\
@@ -1016,14 +1016,14 @@
        * CANON_X_UNIT (XFRAME (WINDOW_FRAME ((W))))))
 
 /* Height of the display region of W, including a mode line, if any.  */
-     
+
 #define WINDOW_DISPLAY_PIXEL_HEIGHT(W)					\
      (XFASTINT ((W)->height)						\
       * CANON_Y_UNIT (XFRAME (WINDOW_FRAME ((W)))))
 
 /* Height in pixels of the mode line.  May be zero if W doesn't have a
    mode line.  */
-     
+
 #define WINDOW_DISPLAY_MODE_LINE_HEIGHT(W)	\
      (WINDOW_WANTS_MODELINE_P ((W))		\
       ? CURRENT_MODE_LINE_HEIGHT (W)		\
@@ -1031,27 +1031,27 @@
 
 /* Height in pixels of the header line.  Zero if W doesn't have a header
    line.  */
-     
+
 #define WINDOW_DISPLAY_HEADER_LINE_HEIGHT(W)	\
      (WINDOW_WANTS_HEADER_LINE_P ((W))		\
       ? CURRENT_HEADER_LINE_HEIGHT (W)		\
       : 0)
 
 /* Pixel height of window W without mode line.  */
-     
+
 #define WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE(W)	\
      (WINDOW_DISPLAY_PIXEL_HEIGHT ((W))		\
       - WINDOW_DISPLAY_MODE_LINE_HEIGHT ((W)))
 
 /* Pixel height of window W without mode and header line.  */
-     
+
 #define WINDOW_DISPLAY_TEXT_HEIGHT(W)		\
      (WINDOW_DISPLAY_PIXEL_HEIGHT ((W))		\
       - WINDOW_DISPLAY_MODE_LINE_HEIGHT ((W))	\
       - WINDOW_DISPLAY_HEADER_LINE_HEIGHT ((W)))
 
 /* Left edge of W in pixels relative to its frame.  */
-     
+
 #define WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X(W)				\
      (FRAME_INTERNAL_BORDER_WIDTH_SAFE (XFRAME (WINDOW_FRAME ((W))))	\
       + (WINDOW_LEFT_MARGIN ((W))					\
@@ -1059,54 +1059,54 @@
       + FRAME_LEFT_FRINGE_WIDTH (XFRAME (WINDOW_FRAME ((W)))))
 
 /* Right edge of window W in pixels, relative to its frame.  */
-     
+
 #define WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X(W)		\
      (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X ((W))		\
       + WINDOW_DISPLAY_PIXEL_WIDTH ((W)))
 
 /* Top edge of W in pixels relative to its frame.  */
-     
+
 #define WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y(W)				\
      (FRAME_INTERNAL_BORDER_WIDTH_SAFE (XFRAME (WINDOW_FRAME ((W))))	\
       + (XFASTINT ((W)->top)						\
          * CANON_Y_UNIT (XFRAME (WINDOW_FRAME ((W))))))
 
 /* Bottom edge of window W relative to its frame.  */
-     
+
 #define WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y(W)		\
      (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y ((W))		\
       + WINDOW_DISPLAY_PIXEL_HEIGHT ((W)))
-     
+
 /* Convert window W relative pixel X to frame pixel coordinates.  */
-     
+
 #define WINDOW_TO_FRAME_PIXEL_X(W, X) \
      ((X) + WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X ((W)))
 
 /* Convert window W relative pixel Y to frame pixel coordinates.  */
-     
+
 #define WINDOW_TO_FRAME_PIXEL_Y(W, Y) \
      ((Y) + WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y ((W)))
 
 /* Convert frame relative pixel X to window relative pixel X.  */
-     
+
 #define FRAME_TO_WINDOW_PIXEL_X(W, X) \
      ((X) - WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X ((W)))
 
 /* Convert frame relative pixel Y to window relative pixel Y.  */
-     
+
 #define FRAME_TO_WINDOW_PIXEL_Y(W, Y) \
      ((Y) - WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y ((W)))
 
 /* Width of left margin area in pixels.  */
-     
+
 #define WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH(W)		\
      (NILP ((W)->left_margin_width)			\
       ? 0						\
       : (XINT ((W)->left_margin_width)			\
 	 * CANON_X_UNIT (XFRAME (WINDOW_FRAME ((W))))))
-	    
+
 /* Width of right marginal area in pixels.  */
-     
+
 #define WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH(W)	\
      (NILP ((W)->right_margin_width)			\
       ? 0						\
@@ -1114,7 +1114,7 @@
 	 * CANON_X_UNIT (XFRAME (WINDOW_FRAME ((W))))))
 
 /* Width of text area in pixels.  */
-     
+
 #define WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH(W)		\
      (WINDOW_DISPLAY_PIXEL_WIDTH ((W))			\
       - WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH ((W))	\
@@ -1147,7 +1147,7 @@
       : (((AREA) == LEFT_MARGIN_AREA)			\
 	 ? WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH ((W))	\
 	 : WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH ((W))))
-     
+
 /* Value is non-zero if window W wants a mode line.  */
 
 #define WINDOW_WANTS_MODELINE_P(W)					\
@@ -1168,11 +1168,11 @@
       && !NILP (XBUFFER ((W)->buffer)->header_line_format)		\
       && XFASTINT ((W)->height) > 1 + !NILP (XBUFFER ((W)->buffer)->mode_line_format))
 
-     
+
 /***********************************************************************
 				Faces
  ***********************************************************************/
-     
+
 /* Indices of face attributes in Lisp face vectors.  Slot zero is the
    symbol `face'.  */
 
@@ -1230,11 +1230,11 @@
   int id;
 
 #ifdef HAVE_WINDOW_SYSTEM
-  
+
   /* If non-zero, this is a GC that we can use without modification for
      drawing the characters in this face.  */
   GC gc;
-  
+
   /* Font used for this face, or null if the font could not be loaded
      for some reason.  This points to a `font' slot of a struct
      font_info, and we should not call XFreeFont on it because the
@@ -1255,7 +1255,7 @@
   /* Pixel value of foreground color for X frames.  Color index
      for tty frames.  */
   unsigned long foreground;
-  
+
   /* Pixel value or color index of background color.  */
   unsigned long background;
 
@@ -1283,10 +1283,10 @@
      Otherwise, a specific font is loaded from the set of fonts
      specified by the fontset given by the family attribute of the face.  */
   int fontset;
-  
+
   /* Pixmap width and height.  */
   unsigned int pixmap_w, pixmap_h;
-  
+
   /* Non-zero means characters in this face have a box that thickness
      around them.  If it is negative, the absolute value indicates the
      thickness, and the horizontal lines of box (top and bottom) are
@@ -1335,7 +1335,7 @@
   /* 1 means that either no color is specified for underlining or that
      the specified color couldn't be loaded.  Use the foreground
      color when drawing in that case. */
-  unsigned underline_defaulted_p : 1; 
+  unsigned underline_defaulted_p : 1;
 
   /* 1 means that either no color is specified for the corresponding
      attribute or that the specified color couldn't be loaded.
@@ -1415,7 +1415,7 @@
 {
   /* Hash table of cached realized faces.  */
   struct face **buckets;
-  
+
   /* Back-pointer to the frame this cache belongs to.  */
   struct frame *f;
 
@@ -1460,7 +1460,7 @@
 /* Return the id of the realized face on frame F that is like the face
    with id ID but is suitable for displaying character CHAR.
    This macro is only meaningful for multibyte character CHAR.  */
-   
+
 #define FACE_FOR_CHAR(F, FACE, CHAR)	\
   (SINGLE_BYTE_CHAR_P (CHAR)		\
    ? (FACE)->ascii_face->id		\
@@ -1690,7 +1690,7 @@
 
   /* Stack pointer.  */
   int sp;
-  
+
   /* Setting of buffer-local variable selective-display-ellipsis.  */
   unsigned selective_display_ellipsis_p : 1;
 
@@ -1715,7 +1715,7 @@
   /* Non-null means that the current character is the first in a run
      of characters with box face.  */
   unsigned start_of_box_run_p : 1;
-  
+
   /* Non-zero means that the current character is the last in a run
      of characters with box face.  */
   unsigned end_of_box_run_p : 1;
@@ -1809,7 +1809,7 @@
   /* Number of glyphs needed for the last character requested via
      produce_glyphs.  This is 1 except for tabs.  */
   int nglyphs;
-  
+
   /* Width of the display element in pixels.  Result of
      produce_glyphs.  */
   int pixel_width;
@@ -1925,7 +1925,7 @@
   /* Produce glyphs/get display metrics for the display element IT is
      loaded with.  */
   void (*produce_glyphs) P_ ((struct it *it));
-  
+
   /* Write or insert LEN glyphs from STRING at the nominal output
      position.  */
   void (*write_glyphs) P_ ((struct glyph *string, int len));
@@ -1934,7 +1934,7 @@
   /* Clear from nominal output position to X.  X < 0 means clear
      to right end of display.  */
   void (*clear_end_of_line) P_ ((int x));
-  
+
   /* Function to call to scroll the display as described by RUN on
      window W.  */
   void (*scroll_run_hook) P_ ((struct window *w, struct run *run));
@@ -1955,7 +1955,7 @@
      have to update the mouse highlight.  */
   void (*update_window_end_hook) P_ ((struct window *w, int cursor_on_p,
 				      int mouse_face_overwritten_p));
-  
+
   /* Move cursor to row/column position VPOS/HPOS, pixel coordinates
      Y/X. HPOS/VPOS are window-relative row and column numbers and X/Y
      are window-relative pixel positions.  */
--- a/src/dispnew.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/dispnew.c	Tue Feb 04 14:56:31 2003 +0000
@@ -317,7 +317,7 @@
 
 int fonts_changed_p;
 
-/* Convert vpos and hpos from frame to window and vice versa. 
+/* Convert vpos and hpos from frame to window and vice versa.
    This may only be used for terminal frames.  */
 
 #if GLYPH_DEBUG
@@ -368,12 +368,12 @@
      int paused_p;
 {
   char *buf;
-  
+
   if (history_idx >= REDISPLAY_HISTORY_SIZE)
     history_idx = 0;
   buf = redisplay_history[history_idx].trace;
   ++history_idx;
-  
+
   sprintf (buf, "%d: window %p (`%s')%s\n",
 	   history_tick++,
 	   w,
@@ -396,12 +396,12 @@
      int paused_p;
 {
   char *buf;
-  
+
   if (history_idx >= REDISPLAY_HISTORY_SIZE)
     history_idx = 0;
   buf = redisplay_history[history_idx].trace;
   ++history_idx;
-  
+
   sprintf (buf, "%d: update frame %p%s",
 	   history_tick++,
 	   f, paused_p ? " ***paused***" : "");
@@ -490,7 +490,7 @@
 	  bcopy (from, to, endt - from);
 	}
     }
-}     
+}
 
 
 
@@ -530,7 +530,7 @@
    is freed.  If the count gets negative, more structures were freed
    than allocated, i.e. one matrix was freed more than once or a bogus
    pointer was passed to this function.
- 
+
    If MATRIX->pool is null, this means that the matrix manages its own
    glyph memory---this is done for matrices on X frames.  Freeing the
    matrix also frees the glyph memory in this case.  */
@@ -552,7 +552,7 @@
       if (matrix->pool == NULL)
 	for (i = 0; i < matrix->rows_allocated; ++i)
 	  xfree (matrix->rows[i].glyphs[LEFT_MARGIN_AREA]);
-      
+
       /* Free row structures and the matrix itself.  */
       xfree (matrix->rows);
       xfree (matrix);
@@ -655,7 +655,7 @@
 	  && matrix->window_width == window_width)
 	return;
     }
-  
+
   /* Enlarge MATRIX->rows if necessary.  New rows are cleared.  */
   if (matrix->rows_allocated < dim.height)
     {
@@ -675,7 +675,7 @@
   if (matrix->pool)
     {
       xassert (matrix->pool->glyphs);
-      
+
       if (w)
 	{
 	  left = margin_glyphs_to_reserve (w, dim.width,
@@ -685,16 +685,16 @@
 	}
       else
 	left = right = 0;
-      
+
       for (i = 0; i < dim.height; ++i)
 	{
 	  struct glyph_row *row = &matrix->rows[i];
-	  
-	  row->glyphs[LEFT_MARGIN_AREA] 
+
+	  row->glyphs[LEFT_MARGIN_AREA]
 	    = (matrix->pool->glyphs
 	       + (y + i) * matrix->pool->ncolumns
 	       + x);
-	  
+
 	  if (w == NULL
 	      || row == matrix->rows + dim.height - 1
 	      || (row == matrix->rows && matrix->header_line_p))
@@ -716,7 +716,7 @@
 		= row->glyphs[LEFT_MARGIN_AREA] + dim.width;
 	    }
 	}
-      
+
       matrix->left_margin_glyphs = left;
       matrix->right_margin_glyphs = right;
     }
@@ -731,14 +731,14 @@
 	{
 	  struct glyph_row *row = matrix->rows;
 	  struct glyph_row *end = row + matrix->rows_allocated;
-	  
+
 	  while (row < end)
 	    {
 	      row->glyphs[LEFT_MARGIN_AREA]
 		= (struct glyph *) xrealloc (row->glyphs[LEFT_MARGIN_AREA],
 					     (dim.width
 					      * sizeof (struct glyph)));
-	      
+
 	      /* The mode line never has marginal areas.  */
 	      if (row == matrix->rows + dim.height - 1
 		  || (row == matrix->rows && matrix->header_line_p))
@@ -767,7 +767,7 @@
       matrix->left_margin_glyphs = left;
       matrix->right_margin_glyphs = right;
     }
-  
+
   /* Number of rows to be used by MATRIX.  */
   matrix->nrows = dim.height;
   xassert (matrix->nrows >= 0);
@@ -782,7 +782,7 @@
 	     building desired matrices when this function runs.  */
 	  if (window_width < 0)
 	    window_width = window_box_width (w, -1);
-      
+
 	  /* Optimize the case that only the height has changed (C-x 2,
 	     upper window).  Invalidate all rows that are no longer part
 	     of the window.  */
@@ -807,7 +807,7 @@
 	      if (INTEGERP (w->window_end_vpos)
 		  && XFASTINT (w->window_end_vpos) >= i)
 		w->window_end_valid = Qnil;
-	  
+
 	      while (i < matrix->nrows)
 		matrix->rows[i++].enabled_p = 0;
 	    }
@@ -827,8 +827,8 @@
 	    matrix->rows[i].enabled_p = 0;
 	}
     }
-    
-  
+
+
   /* Remember last values to be able to optimize frame redraws.  */
   matrix->matrix_x = x;
   matrix->matrix_y = y;
@@ -939,7 +939,7 @@
   xassert (start <= end);
   xassert (start >= 0 && start < matrix->nrows);
   xassert (end >= 0 && end <= matrix->nrows);
-  
+
   for (; start < end; ++start)
     matrix->rows[start].enabled_p = enabled_p != 0;
 }
@@ -965,7 +965,7 @@
       matrix->no_scrolling_p = 0;
     }
 }
-  
+
 
 /* Shift part of the glyph matrix MATRIX of window W up or down.
    Increment y-positions in glyph rows between START and END by DY,
@@ -978,21 +978,21 @@
      int start, end, dy;
 {
   int min_y, max_y;
-  
+
   xassert (start <= end);
   xassert (start >= 0 && start < matrix->nrows);
   xassert (end >= 0 && end <= matrix->nrows);
-  
+
   min_y = WINDOW_DISPLAY_HEADER_LINE_HEIGHT (w);
   max_y = WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE (w);
-  
+
   for (; start < end; ++start)
     {
       struct glyph_row *row = &matrix->rows[start];
-      
+
       row->y += dy;
       row->visible_height = row->height;
-      
+
       if (row->y < min_y)
 	row->visible_height -= min_y - row->y;
       if (row->y + row->height > max_y)
@@ -1037,7 +1037,7 @@
 {
   if (f->desired_matrix)
     clear_glyph_matrix (f->desired_matrix);
-  
+
   if (WINDOWP (f->menu_bar_window))
     clear_glyph_matrix (XWINDOW (f->menu_bar_window)->desired_matrix);
 
@@ -1142,16 +1142,16 @@
      int y;
 {
   int min_y, max_y;
-  
+
   min_y = WINDOW_DISPLAY_HEADER_LINE_HEIGHT (w);
   max_y = WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE (w);
-  
+
   clear_glyph_row (row);
   row->y = y;
   row->ascent = row->phys_ascent = 0;
   row->height = row->phys_height = CANON_Y_UNIT (XFRAME (w->frame));
   row->visible_height = row->height;
-      
+
   if (row->y < min_y)
     row->visible_height -= min_y - row->y;
   if (row->y + row->height > max_y)
@@ -1290,7 +1290,7 @@
   /* Copy glyphs from FROM to TO.  */
   for (area = 0; area < LAST_AREA; ++area)
     if (from->used[area])
-      bcopy (from->glyphs[area], to->glyphs[area], 
+      bcopy (from->glyphs[area], to->glyphs[area],
 	     from->used[area] * sizeof (struct glyph));
 
   /* Increment buffer positions in TO by DELTA.  */
@@ -1383,7 +1383,7 @@
      struct glyph_row *row;
 {
   int hash = 0;
-  
+
   if (row->enabled_p)
     {
       struct glyph *glyph = row->glyphs[TEXT_AREA];
@@ -1431,7 +1431,7 @@
       while (end > beg && CHAR_GLYPH_SPACE_P (*(end - 1)))
 	--end;
 
-      /* All blank line.  */      
+      /* All blank line.  */
       if (end == beg)
 	return 0;
 
@@ -1452,17 +1452,17 @@
       while (beg < end)
 	{
 	  GLYPH g = GLYPH_FROM_CHAR_GLYPH (*beg);
-	  
+
 	  if (g < 0
 	      || GLYPH_SIMPLE_P (glyph_table_base, glyph_table_len, g))
 	    len += 1;
 	  else
 	    len += GLYPH_LENGTH (glyph_table_base, g);
-	  
+
 	  ++beg;
 	}
     }
-  
+
   return len;
 }
 
@@ -1473,7 +1473,7 @@
    visibility.  MOUSE_FACE_P non-zero means compare the mouse_face_p
    flags of A and B, too.  */
 
-static INLINE int 
+static INLINE int
 row_equal_p (w, a, b, mouse_face_p)
      struct window *w;
      struct glyph_row *a, *b;
@@ -1496,15 +1496,15 @@
 	{
 	  if (a->used[area] != b->used[area])
 	    return 0;
-	  
+
 	  a_glyph = a->glyphs[area];
 	  a_end = a_glyph + a->used[area];
 	  b_glyph = b->glyphs[area];
-	  
+
 	  while (a_glyph < a_end
 		 && GLYPH_EQUAL_P (a_glyph, b_glyph))
 	    ++a_glyph, ++b_glyph;
-	  
+
 	  if (a_glyph != a_end)
 	    return 0;
 	}
@@ -1551,10 +1551,10 @@
   /* Allocate a new glyph_pool and clear it.  */
   result = (struct glyph_pool *) xmalloc (sizeof *result);
   bzero (result, sizeof *result);
-  
+
   /* For memory leak and double deletion checking.  */
   ++glyph_pool_count;
-  
+
   return result;
 }
 
@@ -1626,7 +1626,7 @@
      determine pointers to rows of window sub-matrices.  */
   pool->nrows = matrix_dim.height;
   pool->ncolumns = matrix_dim.width;
-  
+
   return changed_p;
 }
 
@@ -1659,7 +1659,7 @@
      struct glyph_matrix *matrix;
 {
   int i, j;
-  
+
   for (i = 0; i < matrix->nrows; ++i)
     for (j = 0; j < matrix->nrows; ++j)
       xassert (i == j
@@ -1684,7 +1684,7 @@
 #if 0
   check_matrix_pointer_lossage (matrix);
 #endif
-  
+
   return matrix->rows + row;
 }
 
@@ -1707,7 +1707,7 @@
   struct buffer *saved = current_buffer;
   struct buffer *buffer = XBUFFER (w->buffer);
   int c;
-  
+
   /* This can sometimes happen for a fresh window.  */
   if (matrix->nrows < 2)
     return;
@@ -1870,18 +1870,18 @@
        && !NILP (XWINDOW (XWINDOW (window)->parent)->hchild));
 
   /* For WINDOW and all windows on the same level.  */
-  do 
+  do
     {
       w = XWINDOW (window);
 
       /* Get the dimension of the window sub-matrix for W, depending
 	 on whether this is a combination or a leaf window.  */
       if (!NILP (w->hchild))
-	dim = allocate_matrices_for_frame_redisplay (w->hchild, x, y, 
+	dim = allocate_matrices_for_frame_redisplay (w->hchild, x, y,
 						     dim_only_p,
 						     window_change_flags);
       else if (!NILP (w->vchild))
-	dim = allocate_matrices_for_frame_redisplay (w->vchild, x, y, 
+	dim = allocate_matrices_for_frame_redisplay (w->vchild, x, y,
 						     dim_only_p,
 						     window_change_flags);
       else
@@ -1893,7 +1893,7 @@
 	      w->current_matrix = new_glyph_matrix (f->current_pool);
 	      *window_change_flags |= NEW_LEAF_MATRIX;
 	    }
-  
+
 	  /* Width and height MUST be chosen so that there are no
 	     holes in the frame matrix.  */
 	  dim.width = required_matrix_width (w);
@@ -1929,7 +1929,7 @@
 	 below W.  */
       if (in_horz_combination_p)
 	x += dim.width;
-      else 
+      else
         y += dim.height;
 
       /* Remember maximum glyph matrix dimensions.  */
@@ -1952,7 +1952,7 @@
       total.width = x - x0;
       total.height = hmax;
     }
-  else 
+  else
     {
       total.width = wmax;
       total.height = y - y0;
@@ -1970,7 +1970,7 @@
 {
 #ifdef HAVE_WINDOW_SYSTEM
   struct frame *f = XFRAME (w->frame);
-  
+
   if (FRAME_WINDOW_P (f))
     {
       int ch_height = FRAME_SMALLEST_FONT_HEIGHT (f);
@@ -1984,7 +1984,7 @@
 	      + 2);
     }
 #endif /* HAVE_WINDOW_SYSTEM */
-      
+
   return XINT (w->height);
 }
 
@@ -2001,7 +2001,7 @@
     {
       int ch_width = FRAME_SMALLEST_CHAR_WIDTH (f);
       int window_pixel_width = XFLOATINT (w->width) * CANON_X_UNIT (f);
-  
+
       /* Compute number of glyphs needed in a glyph row.  */
       return (((window_pixel_width + ch_width - 1)
 	       / ch_width)
@@ -2020,7 +2020,7 @@
 /* Allocate window matrices for window-based redisplay.  W is the
    window whose matrices must be allocated/reallocated.  CH_DIM is the
    size of the smallest character that could potentially be used on W.  */
-   
+
 static void
 allocate_matrices_for_window_redisplay (w)
      struct window *w;
@@ -2048,7 +2048,7 @@
 	  adjust_glyph_matrix (w, w->desired_matrix, 0, 0, dim);
 	  adjust_glyph_matrix (w, w->current_matrix, 0, 0, dim);
 	}
-      
+
       w = NILP (w->next) ? NULL : XWINDOW (w->next);
     }
 }
@@ -2072,7 +2072,7 @@
   else
     {
       Lisp_Object tail, lisp_frame;
-      
+
       FOR_EACH_FRAME (tail, lisp_frame)
 	adjust_frame_glyphs (XFRAME (lisp_frame));
     }
@@ -2082,9 +2082,9 @@
 
 
 /* Adjust frame glyphs when Emacs is initialized.
-   
-   To be called from init_display. 
-   
+
+   To be called from init_display.
+
    We need a glyph matrix because redraw will happen soon.
    Unfortunately, window sizes on selected_frame are not yet set to
    meaningful values.  I believe we can assume that there are only two
@@ -2115,7 +2115,7 @@
   adjust_frame_glyphs (sf);
   glyphs_initialized_initially_p = 1;
 }
-  
+
 
 /* Allocate/reallocate glyph matrices of a single frame F.  */
 
@@ -2127,7 +2127,7 @@
     adjust_frame_glyphs_for_window_redisplay (f);
   else
     adjust_frame_glyphs_for_frame_redisplay (f);
-  
+
   /* Don't forget the message buffer and the buffer for
      decode_mode_spec.  */
   adjust_frame_message_buffer (f);
@@ -2145,11 +2145,11 @@
      Lisp_Object window;
 {
   struct window *w;
-      
+
   for (; !NILP (window); window = w->next)
     {
       w = XWINDOW (window);
-      
+
       if (!NILP (w->hchild))
 	fake_current_matrices (w->hchild);
       else if (!NILP (w->vchild))
@@ -2163,7 +2163,7 @@
 
 	  xassert (m->matrix_h == XFASTINT (w->height));
 	  xassert (m->matrix_w == XFASTINT (w->width));
-	  
+
 	  for (i = 0; i < m->matrix_h; ++i)
 	    {
 	      struct glyph_row *r = m->rows + i;
@@ -2238,7 +2238,7 @@
       to->used[TEXT_AREA] = from->used[TEXT_AREA];
       xfree (from->glyphs[TEXT_AREA]);
     }
-  
+
   xfree (saved->rows);
   xfree (saved);
 }
@@ -2264,7 +2264,7 @@
   /* Determine the smallest character in any font for F.  On
      console windows, all characters have dimension (1, 1).  */
   ch_dim.width = ch_dim.height = 1;
-  
+
   top_window_y = FRAME_TOP_MARGIN (f);
 
   /* Allocate glyph pool structures if not already done.  */
@@ -2280,7 +2280,7 @@
       f->desired_matrix = new_glyph_matrix (f->desired_pool);
       f->current_matrix = new_glyph_matrix (f->current_pool);
     }
-  
+
   /* Compute window glyph matrices.  (This takes the mini-buffer
      window into account).  The result is the size of the frame glyph
      matrix needed.  The variable window_change_flags is set to a bit
@@ -2301,7 +2301,7 @@
   pool_changed_p = realloc_glyph_pool (f->desired_pool, matrix_dim);
   realloc_glyph_pool (f->current_pool, matrix_dim);
 
-  /* Set up glyph pointers within window matrices.  Do this only if 
+  /* Set up glyph pointers within window matrices.  Do this only if
      absolutely necessary since it requires a frame redraw.  */
   if (pool_changed_p || window_change_flags)
     {
@@ -2315,7 +2315,7 @@
 	 to the frame width (from CHANGE_FRAME_SIZE_1).  */
       xassert (matrix_dim.width == FRAME_WIDTH (f)
 	       && matrix_dim.height == FRAME_HEIGHT (f));
-  
+
       /* Pointers to glyph memory in glyph rows are exchanged during
 	 the update phase of redisplay, which means in general that a
 	 frame's current matrix consists of pointers into both the
@@ -2357,7 +2357,7 @@
   struct window *w;
 
   xassert (FRAME_WINDOW_P (f) && FRAME_LIVE_P (f));
-  
+
   /* Get minimum sizes.  */
 #ifdef HAVE_WINDOW_SYSTEM
   ch_dim.width = FRAME_SMALLEST_CHAR_WIDTH (f);
@@ -2365,7 +2365,7 @@
 #else
   ch_dim.width = ch_dim.height = 1;
 #endif
-    
+
   /* Allocate/reallocate window matrices.  */
   allocate_matrices_for_window_redisplay (XWINDOW (FRAME_ROOT_WINDOW (f)));
 
@@ -2416,7 +2416,7 @@
 }
 
 
-/* Adjust/ allocate message buffer of frame F. 
+/* Adjust/ allocate message buffer of frame F.
 
    Note that the message buffer is never freed.  Since I could not
    find a free in 19.34, I assume that freeing it would be
@@ -2474,7 +2474,7 @@
          event while we're in an inconsistent state.  */
       BLOCK_INPUT;
       f->glyphs_initialized_p = 0;
-      
+
       /* Release window sub-matrices.  */
       if (!NILP (f->root_window))
         free_window_matrices (XWINDOW (f->root_window));
@@ -2516,7 +2516,7 @@
 	  free_glyph_pool (f->current_pool);
 	  f->desired_pool = f->current_pool = NULL;
 	}
-      
+
       UNBLOCK_INPUT;
     }
 }
@@ -2536,7 +2536,7 @@
 	free_window_matrices (XWINDOW (w->hchild));
       else if (!NILP (w->vchild))
 	free_window_matrices (XWINDOW (w->vchild));
-      else 
+      else
 	{
 	  /* This is a leaf window.  Free its memory and reset fields
 	     to zero in case this function is called a second time for
@@ -2611,7 +2611,7 @@
    up glyph lengths of the window matrices.  A line in the frame
    matrix is enabled, if a corresponding line in a window matrix is
    enabled.
-   
+
    After building the desired frame matrix, it will be passed to
    terminal code, which will manipulate both the desired and current
    frame matrix.  Changes applied to the frame's current matrix have
@@ -2624,7 +2624,7 @@
    contents needed in a frame matrix.  Thus, any modification of
    glyphs done in terminal code will be reflected in window matrices
    automatically.
-   
+
    2. Exchanges of rows in a frame matrix done by terminal code are
    intercepted by hook functions so that corresponding row operations
    on window matrices can be performed.  This is necessary because we
@@ -2649,7 +2649,7 @@
 
   /* F must have a frame matrix when this function is called.  */
   xassert (!FRAME_WINDOW_P (f));
-  
+
   /* Clear all rows in the frame matrix covered by window matrices.
      Menu bar lines are not covered by windows.  */
   for (i = FRAME_TOP_MARGIN (f); i < f->desired_matrix->nrows; ++i)
@@ -2747,7 +2747,7 @@
 	  window_row = w->current_matrix->rows + window_y;
 	  current_row_p = 1;
 	}
-      
+
       if (current_row_p)
 	{
 	  /* Copy window row to frame row.  */
@@ -2758,11 +2758,11 @@
       else
 	{
 	  xassert (window_row->enabled_p);
-	  
+
 	  /* Only when a desired row has been displayed, we want
 	     the corresponding frame row to be updated.  */
 	  frame_row->enabled_p = 1;
-	  
+
           /* Maybe insert a vertical border between horizontally adjacent
 	     windows.  */
           if (right_border_glyph)
@@ -2774,10 +2774,10 @@
 	  /* Window row window_y must be a slice of frame row
 	     frame_y.  */
 	  xassert (glyph_row_slice_p (window_row, frame_row));
-	  
+
 	  /* If rows are in sync, we don't have to copy glyphs because
 	     frame and window share glyphs.  */
-	  
+
 #if GLYPH_DEBUG
 	  strcpy (w->current_matrix->method, w->desired_matrix->method);
 	  add_window_display_history (w, w->current_matrix->method, 0);
@@ -2787,7 +2787,7 @@
       /* Set number of used glyphs in the frame matrix.  Since we fill
          up with spaces, and visit leaf windows from left to right it
          can be done simply.  */
-      frame_row->used[TEXT_AREA] 
+      frame_row->used[TEXT_AREA]
 	= window_matrix->matrix_x + window_matrix->matrix_w;
 
       /* Next row.  */
@@ -2853,7 +2853,7 @@
 {
   int i = row->used[TEXT_AREA];
   struct glyph *glyph = row->glyphs[TEXT_AREA];
-  
+
   while (i < upto)
     glyph[i++] = space_glyph;
 
@@ -2949,7 +2949,7 @@
 	      current_row->enabled_p = 1;
 	    }
 	}
-      
+
       w = NILP (w->next) ? 0 : XWINDOW (w->next);
     }
 }
@@ -2964,7 +2964,7 @@
    row 0 <= I < NLINES which is empty.
 
    This function is called from do_scrolling and do_direct_scrolling.  */
-   
+
 void
 mirrored_line_dance (matrix, unchanged_at_top, nlines, copy_from,
 		     retained_p)
@@ -2978,7 +2978,7 @@
 
   /* Rows to assign to.  */
   struct glyph_row *new_rows = MATRIX_ROW (matrix, unchanged_at_top);
-  
+
   int i;
 
   /* Make a copy of the original rows.  */
@@ -3030,7 +3030,7 @@
   window_row = w->current_matrix->rows;
   window_row_end = window_row + w->current_matrix->nrows;
   frame_row = f->current_matrix->rows + XFASTINT (w->top);
-  
+
   for (; window_row < window_row_end; ++window_row, ++frame_row)
     {
       window_row->glyphs[LEFT_MARGIN_AREA]
@@ -3054,7 +3054,7 @@
      int row;
 {
   struct window *found = NULL;
-  
+
   while (w && !found)
     {
       if (!NILP (w->hchild))
@@ -3064,7 +3064,7 @@
       else if (row >= XFASTINT (w->top)
 	       && row < XFASTINT (w->top) + XFASTINT (w->height))
 	found = w;
-      
+
       w = NILP (w->next) ? 0 : XWINDOW (w->next);
     }
 
@@ -3114,36 +3114,36 @@
 	    {
 	      /* Frame relative line assigned to.  */
 	      int frame_to = i + unchanged_at_top;
-	      
+
 	      /* Frame relative line assigned.  */
 	      int frame_from = copy_from[i] + unchanged_at_top;
-	      
+
 	      /* Window relative line assigned to.  */
 	      int window_to = frame_to - m->matrix_y;
-	      
+
 	      /* Window relative line assigned.  */
 	      int window_from = frame_from - m->matrix_y;
-	      
+
 	      /* Is assigned line inside window?  */
 	      int from_inside_window_p
 		= window_from >= 0 && window_from < m->matrix_h;
-	      
+
 	      /* Is assigned to line inside window?  */
 	      int to_inside_window_p
 		= window_to >= 0 && window_to < m->matrix_h;
-	      
+
 	      if (from_inside_window_p && to_inside_window_p)
 		{
 		  /* Enabled setting before assignment.  */
 		  int enabled_before_p;
-		  
+
 		  /* Do the assignment.  The enabled_p flag is saved
 		     over the assignment because the old redisplay did
 		     that.  */
 		  enabled_before_p = m->rows[window_to].enabled_p;
 		  m->rows[window_to] = old_rows[window_from];
 		  m->rows[window_to].enabled_p = enabled_before_p;
-		  
+
 		  /* If frame line is empty, window line is empty, too.  */
 		  if (!retained_p[copy_from[i]])
 		    m->rows[window_to].enabled_p = 0;
@@ -3163,7 +3163,7 @@
 		  m2_from = frame_from - m2->matrix_y;
 		  copy_row_except_pointers (m->rows + window_to,
 					    m2->rows + m2_from);
-		  
+
 		  /* If frame line is empty, window line is empty, too.  */
 		  if (!retained_p[copy_from[i]])
 		    m->rows[window_to].enabled_p = 0;
@@ -3177,7 +3177,7 @@
 	     pointers are in sync with the frame matrix.  */
 	  if (sync_p)
 	    sync_window_with_frame_matrix_rows (w);
-	  
+
 	  /* Check that no pointers are lost.  */
 	  CHECK_MATRIX (m);
 	}
@@ -3212,7 +3212,7 @@
 	  check_matrix_pointers (w->desired_matrix, f->desired_matrix);
 	  check_matrix_pointers (w->current_matrix, f->current_matrix);
 	}
-      
+
       w = NILP (w->next) ? 0 : XWINDOW (w->next);
     }
 }
@@ -3233,7 +3233,7 @@
   /* Row number corresponding to I in FRAME_MATRIX.  */
   int j = window_matrix->matrix_y;
 
-  /* For all rows check that the row in the window matrix is a 
+  /* For all rows check that the row in the window matrix is a
      slice of the row in the frame matrix.  If it isn't we didn't
      mirror an operation on the frame matrix correctly.  */
   while (i < window_matrix->nrows)
@@ -3264,7 +3264,7 @@
      int vpos;
 {
   struct frame *f = XFRAME (w->frame);
-  
+
   xassert (!FRAME_WINDOW_P (f));
   xassert (vpos >= 0 && vpos <= w->desired_matrix->nrows);
   vpos += XFASTINT (w->top);
@@ -3282,12 +3282,12 @@
      int hpos;
 {
   struct frame *f = XFRAME (w->frame);
-  
+
   xassert (!FRAME_WINDOW_P (f));
   hpos += XFASTINT (w->left);
   return hpos;
 }
-  
+
 #endif /* GLYPH_DEBUG */
 
 
@@ -3429,8 +3429,8 @@
 	 is handled specially there (see display_line).  */
       || (MINI_WINDOW_P (w) && XFASTINT (w->hscroll))
       /* Give up if overwriting in the middle of a line.  */
-      || (overwrite_p 
-	  && PT != ZV 
+      || (overwrite_p
+	  && PT != ZV
 	  && FETCH_BYTE (PT) != '\n')
       /* Give up for tabs and line ends.  */
       || g == '\t'
@@ -3474,7 +3474,7 @@
   glyph_row = MATRIX_ROW (w->current_matrix, w->cursor.vpos);
   if (glyph_row->mouse_face_p)
     return 0;
-  
+
   /* Give up if highlighting trailing whitespace and we have trailing
      whitespace in glyph_row.  We would have to remove the trailing
      whitespace face in that case.  */
@@ -3494,7 +3494,7 @@
      if the overlay string has newlines in it.  */
   if (STRINGP (it.string))
     return 0;
-  
+
   it.hpos = w->cursor.hpos;
   it.vpos = w->cursor.vpos;
   it.current_x = w->cursor.x + it.first_visible_x;
@@ -3505,7 +3505,7 @@
 
   /* More than one display element may be returned for PT - 1 if
      (i) it's a control character which is translated into `\003' or
-     `^C', or (ii) it has a display table entry, or (iii) it's a 
+     `^C', or (ii) it has a display table entry, or (iii) it's a
      combination of both.  */
   delta = delta_bytes = 0;
   while (get_next_display_element (&it))
@@ -3562,7 +3562,7 @@
   bcopy (it.glyph_row->glyphs[TEXT_AREA], glyphs, n * sizeof *glyphs);
   glyph_row->used[TEXT_AREA] = min (glyph_row->used[TEXT_AREA] + n,
 				    end - glyph_row->glyphs[TEXT_AREA]);
-  
+
   /* Compute new line width.  */
   glyph = glyph_row->glyphs[TEXT_AREA];
   end = glyph + glyph_row->used[TEXT_AREA];
@@ -3573,18 +3573,18 @@
       ++glyph;
     }
 
-  /* Increment buffer positions for glyphs following the newly 
+  /* Increment buffer positions for glyphs following the newly
      inserted ones.  */
   for (glyph = glyphs + n; glyph < end; ++glyph)
     if (glyph->charpos > 0 && BUFFERP (glyph->object))
       glyph->charpos += delta;
-  
+
   if (MATRIX_ROW_END_CHARPOS (glyph_row) > 0)
     {
       MATRIX_ROW_END_CHARPOS (glyph_row) += delta;
       MATRIX_ROW_END_BYTEPOS (glyph_row) += delta_bytes;
     }
-      
+
   /* Adjust positions in lines following the one we are in.  */
   increment_matrix_positions (w->current_matrix,
 			      w->cursor.vpos + 1,
@@ -3611,7 +3611,7 @@
   if (rif)
     {
       rif->update_window_begin_hook (w);
-      
+
       if (glyphs == end - n
 	  /* In front of a space added by append_space.  */
 	  || (glyphs == end - n - 1
@@ -3684,8 +3684,8 @@
   /* Give up if face attributes have been changed.  */
   if (face_change_count)
     return 0;
-  
-  /* Give up if current matrix is not up to date or we are 
+
+  /* Give up if current matrix is not up to date or we are
      displaying a message.  */
   if (!display_completed || cursor_in_echo_area)
     return 0;
@@ -3712,7 +3712,7 @@
   if (XWINDOW (minibuf_window) == w
       && EQ (minibuf_window, echo_area_window))
     return 0;
-  
+
   /* Give up if we don't know where the cursor is.  */
   if (w->cursor.vpos < 0)
     return 0;
@@ -3725,13 +3725,13 @@
     return 0;
 
   set_cursor_from_row (w, row, w->current_matrix, 0, 0, 0, 0);
-  
+
   w->last_cursor = w->cursor;
   XSETFASTINT (w->last_point, PT);
 
   xassert (w->cursor.hpos >= 0
 	   && w->cursor.hpos < w->desired_matrix->matrix_w);
-  
+
   if (FRAME_WINDOW_P (f))
     rif->cursor_to (w->cursor.vpos, w->cursor.hpos,
 		    w->cursor.y, w->cursor.x);
@@ -3745,7 +3745,7 @@
       y = WINDOW_TO_FRAME_VPOS (w, w->cursor.vpos);
       cursor_to (y, x);
     }
-  
+
   fflush (stdout);
   redisplay_performed_directly_p = 1;
   return 1;
@@ -3762,7 +3762,7 @@
    If FORCE_P is non-zero, don't let redisplay be stopped by detecting
    pending input.  If INHIBIT_HAIRY_ID_P is non-zero, don't try
    scrolling.
-   
+
    Value is non-zero if redisplay was stopped due to pending input.  */
 
 int
@@ -3812,12 +3812,12 @@
 	      f->desired_tool_bar_string = tem;
 	    }
 	}
-  
+
 
       /* Update windows.  */
       paused_p = update_window_tree (root_window, force_p);
       update_end (f);
-      
+
 #if 0 /* This flush is a performance bottleneck under X,
 	 and it doesn't seem to be necessary anyway.  */
       rif->flush_display (f);
@@ -3831,7 +3831,7 @@
 
       /* Build F's desired matrix from window matrices.  */
       build_frame_matrix (f);
-      
+
       /* Update the display  */
       update_begin (f);
       paused_p = update_frame_1 (f, force_p, inhibit_hairy_id_p);
@@ -3850,7 +3850,7 @@
 
   /* Reset flags indicating that a window should be updated.  */
   set_window_update_flags (root_window, 0);
-  
+
   display_completed = !paused_p;
   return paused_p;
 }
@@ -3870,7 +3870,7 @@
      int force_p;
 {
   int paused_p = 0;
-  
+
   while (w && !paused_p)
     {
       if (!NILP (w->hchild))
@@ -3922,7 +3922,7 @@
      int yb;
 {
   int i;
-  
+
   /* If rows overlapping others have been changed, the rows being
      overlapped have to be redrawn.  This won't draw lines that have
      already been drawn in update_window_line because overlapped_p in
@@ -3936,11 +3936,11 @@
 	break;
       else if (row->mode_line_p)
 	continue;
-      
+
       if (row->overlapped_p)
 	{
 	  enum glyph_row_area area;
-	  
+
 	  for (area = LEFT_MARGIN_AREA; area < LAST_AREA; ++area)
 	    {
 	      updated_row = row;
@@ -3950,7 +3950,7 @@
 		rif->write_glyphs (row->glyphs[area], row->used[area]);
 	      rif->clear_end_of_line (-1);
 	    }
-	  
+
 	  row->overlapped_p = 0;
 	}
 
@@ -3970,7 +3970,7 @@
 {
   int i, bottom_y;
   struct glyph_row *row;
-  
+
   for (i = 0; i < w->current_matrix->nrows; ++i)
     {
       row = w->current_matrix->rows + i;
@@ -3979,17 +3979,17 @@
 	break;
       else if (row->mode_line_p)
 	continue;
-      
+
       bottom_y = MATRIX_ROW_BOTTOM_Y (row);
 
       if (row->overlapping_p && i > 0 && bottom_y < yb)
 	{
 	  if (row->used[LEFT_MARGIN_AREA])
 	    rif->fix_overlapping_area (w, row, LEFT_MARGIN_AREA);
-  
+
 	  if (row->used[TEXT_AREA])
 	    rif->fix_overlapping_area (w, row, TEXT_AREA);
-  
+
 	  if (row->used[RIGHT_MARGIN_AREA])
 	    rif->fix_overlapping_area (w, row, RIGHT_MARGIN_AREA);
 
@@ -4078,7 +4078,7 @@
 	 Adjust y-positions of other rows by the header line height.  */
       row = desired_matrix->rows;
       end = row + desired_matrix->nrows - 1;
-      
+
       if (row->mode_line_p)
 	{
 	  header_line_row = row;
@@ -4103,7 +4103,7 @@
 	 be also completely empty matrices.  */
       while (row < end && !row->enabled_p)
 	++row;
-      
+
       /* Try reusing part of the display by copying.  */
       if (row < end && !desired_matrix->no_scrolling_p)
 	{
@@ -4136,7 +4136,7 @@
 	  {
 	    int vpos = MATRIX_ROW_VPOS (row, desired_matrix);
 	    int i;
-	    
+
 	    /* We'll have to play a little bit with when to
 	       detect_input_pending.  If it's done too often,
 	       scrolling large windows with repeated scroll-up
@@ -4163,9 +4163,9 @@
 
       /* Was display preempted?  */
       paused_p = row < end;
-      
+
     set_cursor:
-      
+
       /* Fix the appearance of overlapping/overlapped rows.  */
       if (!paused_p && !w->pseudo_window_p)
 	{
@@ -4174,7 +4174,7 @@
 	      redraw_overlapped_rows (w, yb);
 	      redraw_overlapping_rows (w, yb);
 	    }
-      
+
 	  /* Make cursor visible at cursor position of W.  */
 	  set_window_cursor_after_update (w);
 
@@ -4202,7 +4202,7 @@
   /* check_current_matrix_flags (w); */
   add_window_display_history (w, w->current_matrix->method, paused_p);
 #endif
-  
+
   clear_glyph_matrix (desired_matrix);
 
   return paused_p;
@@ -4248,7 +4248,7 @@
   /* Let functions in xterm.c know what area subsequent X positions
      will be relative to.  */
   updated_area = TEXT_AREA;
-  
+
   /* If rows are at different X or Y, or rows have different height,
      or the current row is marked invalid, write the entire line.  */
   if (!current_row->enabled_p
@@ -4262,11 +4262,11 @@
       || current_row->x != desired_row->x)
     {
       rif->cursor_to (vpos, 0, desired_row->y, desired_row->x);
-      
+
       if (desired_row->used[TEXT_AREA])
 	rif->write_glyphs (desired_row->glyphs[TEXT_AREA],
 			   desired_row->used[TEXT_AREA]);
-      
+
       /* Clear to end of window.  */
       rif->clear_end_of_line (-1);
       changed_p = 1;
@@ -4294,7 +4294,7 @@
 	 extension actually takes place.  */
       if (MATRIX_ROW_EXTENDS_FACE_P (desired_row))
 	--desired_stop_pos;
-      
+
       stop = min (current_row->used[TEXT_AREA], desired_stop_pos);
       i = 0;
       x = desired_row->x;
@@ -4304,7 +4304,7 @@
       while (i < stop)
 	{
 	  int can_skip_p = 1;
-	  
+
 	  /* Skip over glyphs that both rows have in common.  These
 	     don't have to be written.  We can't skip if the last
 	     current glyph overlaps the glyph to its right.  For
@@ -4317,12 +4317,12 @@
 	    {
 	      struct glyph *glyph = &current_row->glyphs[TEXT_AREA][i - 1];
 	      int left, right;
-	      
+
 	      rif->get_glyph_overhangs (glyph, XFRAME (w->frame),
 					&left, &right);
 	      can_skip_p = right == 0;
 	    }
-	  
+
 	  if (can_skip_p)
 	    {
 	      while (i < stop
@@ -4347,7 +4347,7 @@
 		      != desired_row->used[TEXT_AREA]))
 		{
 		  int left, right;
-	      
+
 		  rif->get_glyph_overhangs (current_glyph, XFRAME (w->frame),
 					    &left, &right);
 		  while (left > 0 && i > 0)
@@ -4358,7 +4358,7 @@
 		    }
 		}
 	    }
-	  
+
 	  /* Try to avoid writing the entire rest of the desired row
 	     by looking for a resync point.  This mainly prevents
 	     mode line flickering in the case the mode line is in
@@ -4395,7 +4395,7 @@
 	      changed_p = 1;
 	    }
 	}
-      
+
       /* Write the rest.  */
       if (i < desired_row->used[TEXT_AREA])
 	{
@@ -4403,7 +4403,7 @@
 	  rif->write_glyphs (desired_glyph, desired_row->used[TEXT_AREA] - i);
 	  changed_p = 1;
 	}
-      
+
       /* Maybe clear to end of line.  */
       if (MATRIX_ROW_EXTENDS_FACE_P (desired_row))
 	{
@@ -4427,7 +4427,7 @@
 	  /* Otherwise clear to the end of the old row.  Everything
 	     after that position should be clear already.  */
 	  int x;
-	  
+
 	  if (i >= desired_row->used[TEXT_AREA])
 	    rif->cursor_to (vpos, i, desired_row->y,
 			    desired_row->x + desired_row->pixel_width);
@@ -4470,8 +4470,8 @@
      know what line height values are in effect.  */
   updated_row = desired_row;
 
-  /* A row can be completely invisible in case a desired matrix was 
-     built with a vscroll and then make_cursor_line_fully_visible shifts 
+  /* A row can be completely invisible in case a desired matrix was
+     built with a vscroll and then make_cursor_line_fully_visible shifts
      the matrix.  Make sure to make such rows current anyway, since
      we need the correct y-position, for example, in the current matrix.  */
   if (desired_row->mode_line_p
@@ -4486,7 +4486,7 @@
 	  changed_p = 1;
 	  update_marginal_area (w, LEFT_MARGIN_AREA, vpos);
 	}
-      
+
       /* Update the display of the text area.  */
       if (update_text_area (w, vpos))
 	{
@@ -4494,7 +4494,7 @@
 	  if (current_row->mouse_face_p)
 	    *mouse_face_overwritten_p = 1;
 	}
-      
+
       /* Update display of the right margin area, if there is one.  */
       if (!desired_row->full_width_p
 	  && !NILP (w->right_margin_width))
@@ -4502,7 +4502,7 @@
 	  changed_p = 1;
 	  update_marginal_area (w, RIGHT_MARGIN_AREA, vpos);
 	}
-      
+
       /* Draw truncation marks etc.  */
       if (!current_row->enabled_p
 	  || desired_row->y != current_row->y
@@ -4518,7 +4518,7 @@
 	      != MATRIX_ROW_CONTINUATION_LINE_P (current_row)))
 	rif->after_update_window_line_hook (desired_row);
     }
-  
+
   /* Update current_row from desired_row.  */
   make_current (w->desired_matrix, w->current_matrix, vpos);
   updated_row = NULL;
@@ -4538,7 +4538,7 @@
 
   /* Not intended for frame matrix updates.  */
   xassert (FRAME_WINDOW_P (f));
-  
+
   if (cursor_in_echo_area
       && !NILP (echo_area_buffer[0])
       /* If we are showing a message instead of the mini-buffer,
@@ -4573,7 +4573,7 @@
 		last_row = row;
 	      ++row;
 	    }
-	  
+
 	  if (last_row)
 	    {
 	      struct glyph *start = last_row->glyphs[TEXT_AREA];
@@ -4581,7 +4581,7 @@
 
 	      while (last > start && last->charpos < 0)
 		--last;
-	      
+
 	      for (glyph = start; glyph < last; ++glyph)
 		{
 		  cx += glyph->pixel_width;
@@ -4629,7 +4629,7 @@
 
       w = NILP (w->next) ? 0 : XWINDOW (w->next);
     }
-}    
+}
 
 
 
@@ -4643,16 +4643,16 @@
 {
   /* Number of occurrences of this row in desired and current matrix.  */
   int old_uses, new_uses;
-    
+
   /* Vpos of row in new matrix.  */
   int new_line_number;
 
   /* Bucket index of this row_entry in the hash table row_table.  */
   int bucket;
-    
+
   /* The row described by this entry.  */
   struct glyph_row *row;
-    
+
   /* Hash collision chain.  */
   struct row_entry *next;
 };
@@ -4700,11 +4700,11 @@
 {
   struct row_entry *entry;
   int i = row->hash % row_table_size;
-  
+
   entry = row_table[i];
   while (entry && !row_equal_p (w, entry->row, row, 1))
     entry = entry->next;
-  
+
   if (entry == NULL)
     {
       entry = row_entry_pool + row_entry_idx++;
@@ -4781,7 +4781,7 @@
   /* Give up if some rows in the desired matrix are not enabled.  */
   if (!MATRIX_ROW (desired_matrix, i)->enabled_p)
     return -1;
-  
+
   first_old = first_new = i;
 
   /* Set last_new to the index + 1 of the last enabled row in the
@@ -4833,14 +4833,14 @@
     return 0;
 
   /* Reallocate vectors, tables etc. if necessary.  */
-  
+
   if (current_matrix->nrows > old_lines_size)
     {
       old_lines_size = current_matrix->nrows;
       nbytes = old_lines_size * sizeof *old_lines;
       old_lines = (struct row_entry **) xrealloc (old_lines, nbytes);
     }
-  
+
   if (desired_matrix->nrows > new_lines_size)
     {
       new_lines_size = desired_matrix->nrows;
@@ -4878,7 +4878,7 @@
 
   /* Add rows from the current and desired matrix to the hash table
      row_hash_table to be able to find equal ones quickly.  */
-  
+
   for (i = first_old; i < last_old; ++i)
     {
       if (MATRIX_ROW (current_matrix, i)->enabled_p)
@@ -4927,8 +4927,8 @@
 	       && old_lines[j] == new_lines[k])
 	  {
 	    int h = MATRIX_ROW (current_matrix, j)->height;
-	    --run->current_vpos; 
-	    --run->desired_vpos; 
+	    --run->current_vpos;
+	    --run->desired_vpos;
 	    ++run->nrows;
 	    run->height += h;
 	    run->desired_y -= h;
@@ -4944,7 +4944,7 @@
 	       && old_lines[j] == new_lines[k])
 	  {
 	    int h = MATRIX_ROW (current_matrix, j)->height;
-	    ++run->nrows; 
+	    ++run->nrows;
 	    run->height += h;
 	    ++j, ++k;
 	  }
@@ -4994,7 +4994,7 @@
 	    for (j = i + 1; j < nruns; ++j)
 	      {
 		struct run *p = runs[j];
-		
+
 		if ((p->current_y >= r->desired_y
 		     && p->current_y < r->desired_y + r->height)
 		    || (p->current_y + p->height >= r->desired_y
@@ -5126,7 +5126,7 @@
 	  update_frame_line (f, i);
 	}
     }
-  
+
   pause = (i < FRAME_HEIGHT (f) - 1) ? i : 0;
 
   /* Now just clean up termcap drivers and set cursor, etc.  */
@@ -5161,11 +5161,11 @@
 		 is several lines high, find the last line that has
 		 any text on it.  */
 	      row = FRAME_HEIGHT (f);
-	      do 
+	      do
 		{
 		  --row;
 		  col = 0;
-		  
+
 		  if (MATRIX_ROW_ENABLED_P (current_matrix, row))
 		    {
 		      /* Frame rows are filled up with spaces that
@@ -5178,7 +5178,7 @@
 		      while (last > start
 			     && (last - 1)->charpos < 0)
 			--last;
-		      
+
 		      col = last - start;
 		    }
 		}
@@ -5219,7 +5219,7 @@
 
 	      if (INTEGERP (w->left_margin_width))
 		x += XFASTINT (w->left_margin_width);
-	      
+
 	      /* x = max (min (x, FRAME_WINDOW_WIDTH (f) - 1), 0); */
 	      cursor_to (y, x);
 	    }
@@ -5334,7 +5334,7 @@
      int len;
 {
   int i;
-  
+
   for (i = 0; i < len; ++i)
     if (!CHAR_GLYPH_SPACE_P (r[i]))
       break;
@@ -5353,12 +5353,12 @@
 {
   struct glyph *p1 = str1;
   struct glyph *p2 = str2;
-  
+
   while (p1 < end1
 	 && p2 < end2
 	 && GLYPH_CHAR_AND_FACE_EQUAL_P (p1, p2))
     ++p1, ++p2;
-  
+
   return p1 - str1;
 }
 
@@ -5403,7 +5403,7 @@
     {
       obody = MATRIX_ROW_GLYPH_START (current_matrix, vpos);
       olen = current_row->used[TEXT_AREA];
-      
+
       /* Ignore trailing spaces, if we can.  */
       if (!write_spaces_p)
 	while (olen > 0 && CHAR_GLYPH_SPACE_P (obody[olen-1]))
@@ -5438,7 +5438,7 @@
           cursor_to (vpos, 0);
 	  write_glyphs (nbody, nlen);
 	}
-      
+
       /* Don't call clear_end_of_line if we already wrote the whole
 	 line.  The cursor will not be at the right margin in that
 	 case but in the line below.  */
@@ -5451,7 +5451,7 @@
 	/* Make sure we are in the right row, otherwise cursor movement
 	   with cmgoto might use `ch' in the wrong row.  */
 	cursor_to (vpos, 0);
-      
+
       make_current (desired_matrix, current_matrix, vpos);
       return;
     }
@@ -5480,8 +5480,8 @@
 			 || !GLYPH_EQUAL_P (nbody + j, obody + j)
 			 || CHAR_GLYPH_PADDING_P (nbody[j])))
 		++j;
-		     
-	      /* Output this run of non-matching chars.  */ 
+
+	      /* Output this run of non-matching chars.  */
 	      cursor_to (vpos, i);
 	      write_glyphs (nbody + i, j - i);
 	      i = j - 1;
@@ -5641,17 +5641,17 @@
 	  int del;
 
 	  cursor_to (vpos, nsp + begmatch);
-	  
+
 	  /* Calculate columns we can actually overwrite.  */
 	  while (CHAR_GLYPH_PADDING_P (nbody[nsp + begmatch + out]))
 	    out--;
 	  write_glyphs (nbody + nsp + begmatch, out);
-	  
+
 	  /* If we left columns to be overwritten, we must delete them.  */
 	  del = olen - tem - out;
 	  if (del > 0)
 	    delete_glyphs (del);
-	  
+
 	  /* At last, we insert columns not yet written out.  */
 	  insert_glyphs (nbody + nsp + begmatch + out, nlen - olen + del);
 	  olen = nlen;
@@ -5705,11 +5705,11 @@
   CHARPOS (startp) = min (ZV, max (BEGV, CHARPOS (startp)));
   BYTEPOS (startp) = min (ZV_BYTE, max (BEGV_BYTE, BYTEPOS (startp)));
   start_display (&it, w, startp);
-  
+
   left_area_width = WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH (w);
   move_it_to (&it, -1, *x + it.first_visible_x - left_area_width, *y, -1,
 	      MOVE_TO_X | MOVE_TO_Y);
-  
+
   *x = it.current_x - it.first_visible_x + left_area_width;
   *y = it.current_y;
   current_buffer = old_current_buffer;
@@ -5873,7 +5873,7 @@
   /* If window_change_signal should have run before, run it now.  */
   if (redisplaying_p && !safe)
     return;
-  
+
   while (delayed_size_change)
     {
       Lisp_Object tail, frame;
@@ -5895,7 +5895,7 @@
 
 
 /* Change the frame height and/or width.  Values may be given as zero to
-   indicate no change is to take place. 
+   indicate no change is to take place.
 
    If DELAY is non-zero, then assume we're being called from a signal
    handler, and queue the change for later - perhaps the next
@@ -6017,7 +6017,7 @@
   {
     struct window *w = XWINDOW (FRAME_SELECTED_WINDOW (f));
     int text_area_x, text_area_y, text_area_width, text_area_height;
-    
+
     window_box (w, TEXT_AREA, &text_area_x, &text_area_y, &text_area_width,
 		&text_area_height);
     if (w->cursor.x >= text_area_x + text_area_width)
@@ -6190,14 +6190,14 @@
 #ifdef VMS
   sys_sleep (sec);
 #else /* not VMS */
-/* The reason this is done this way 
+/* The reason this is done this way
     (rather than defined (H_S) && defined (H_T))
    is because the VMS preprocessor doesn't grok `defined'.  */
 #ifdef HAVE_SELECT
   EMACS_GET_TIME (end_time);
   EMACS_SET_SECS_USECS (timeout, sec, usec);
   EMACS_ADD_TIME (end_time, end_time, timeout);
- 
+
   while (1)
     {
       EMACS_GET_TIME (timeout);
@@ -6210,7 +6210,7 @@
   sleep (sec);
 #endif /* HAVE_SELECT */
 #endif /* not VMS */
-  
+
   immediate_quit = 0;
 #endif /* no subprocesses */
 
@@ -6439,7 +6439,7 @@
       display_arg = (display != 0 && *display != 0);
     }
 
-  if (!inhibit_window_system && display_arg 
+  if (!inhibit_window_system && display_arg
 #ifndef CANNOT_DUMP
      && initialized
 #endif
@@ -6463,7 +6463,7 @@
 #endif /* HAVE_X_WINDOWS */
 
 #ifdef HAVE_NTGUI
-  if (!inhibit_window_system) 
+  if (!inhibit_window_system)
     {
       Vwindow_system = intern ("w32");
       Vwindow_system_version = make_number (1);
@@ -6473,7 +6473,7 @@
 #endif /* HAVE_NTGUI */
 
 #ifdef MAC_OS
-  if (!inhibit_window_system) 
+  if (!inhibit_window_system)
     {
       Vwindow_system = intern ("mac");
       Vwindow_system_version = make_number (1);
@@ -6518,11 +6518,11 @@
 	*p = tolower (*p);
 
     terminal_type = new;
-  }	
+  }
 #endif /* VMS */
 
   term_init (terminal_type);
-  
+
   {
     struct frame *sf = SELECTED_FRAME ();
     int width = FRAME_WINDOW_WIDTH (sf);
@@ -6591,7 +6591,7 @@
 	window = selected_window;
       else
 	CHECK_WINDOW (window);
-      
+
       XWINDOW (window)->cursor_off_p = NILP (show);
     }
 
@@ -6607,14 +6607,14 @@
      Lisp_Object window;
 {
   struct window *w;
-  
+
   if (NILP (window))
     window = selected_window;
   else
     CHECK_WINDOW (window);
-  
+
   w = XWINDOW (window);
-  return w->cursor_off_p ? Qnil : Qt;    
+  return w->cursor_off_p ? Qnil : Qt;
 }
 
 
@@ -6652,34 +6652,34 @@
 	      doc: /* *The output baud rate of the terminal.
 On most systems, changing this value will affect the amount of padding
 and the other strategic decisions made during redisplay.  */);
-  
+
   DEFVAR_BOOL ("inverse-video", &inverse_video,
 	       doc: /* *Non-nil means invert the entire frame display.
 This means everything is in inverse video which otherwise would not be.  */);
-  
+
   DEFVAR_BOOL ("visible-bell", &visible_bell,
 	       doc: /* *Non-nil means try to flash the frame to represent a bell.
 
 See also `ring-bell-function'.  */);
-  
+
   DEFVAR_BOOL ("no-redraw-on-reenter", &no_redraw_on_reenter,
 	       doc: /* *Non-nil means no need to redraw entire frame after suspending.
 A non-nil value is useful if the terminal can automatically preserve
 Emacs's frame display when you reenter Emacs.
 It is up to you to set this variable if your terminal can do that.  */);
-  
+
   DEFVAR_LISP ("window-system", &Vwindow_system,
 	       doc: /* Name of window system that Emacs is displaying through.
 The value is a symbol--for instance, `x' for X windows.
 The value is nil if Emacs is using a text-only terminal.  */);
-  
+
   DEFVAR_LISP ("window-system-version", &Vwindow_system_version,
 	       doc: /* The version number of the window system in use.
 For X windows, this is 10 or 11.  */);
-  
+
   DEFVAR_BOOL ("cursor-in-echo-area", &cursor_in_echo_area,
 	       doc: /* Non-nil means put cursor in minibuffer, at end of any message there.  */);
-  
+
   DEFVAR_LISP ("glyph-table", &Vglyph_table,
 	       doc: /* Table defining how to output a glyph code to the frame.
 If not nil, this is a vector indexed by glyph code to define the glyph.
--- a/src/doc.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/doc.c	Tue Feb 04 14:56:31 2003 +0000
@@ -151,7 +151,7 @@
 
   if (!STRINGP (file))
     return Qnil;
-    
+
   /* Put the file name in NAME as a C string.
      If it is relative, combine it with Vdoc_directory.  */
 
@@ -375,12 +375,12 @@
  documentation:
 
   doc = Qnil;
-  
+
   if (SYMBOLP (function)
       && (tem = Fget (function, Qfunction_documentation),
 	  !NILP (tem)))
     return Fdocumentation_property (function, Qfunction_documentation, raw);
-  
+
   fun = Findirect_function (function);
   if (SUBRP (fun))
     {
@@ -487,7 +487,7 @@
   Lisp_Object tem;
 
  documentation_property:
-  
+
   tem = Fget (symbol, prop);
   if (EQ (tem, make_number (0)))
     tem = Qnil;
@@ -512,7 +512,7 @@
   else if (!STRINGP (tem))
     /* Feval protects its argument.  */
     tem = Feval (tem);
-  
+
   if (NILP (raw) && STRINGP (tem))
     tem = Fsubstitute_command_keys (tem);
   return tem;
@@ -918,7 +918,7 @@
 {
   Qfunction_documentation = intern ("function-documentation");
   staticpro (&Qfunction_documentation);
-  
+
   DEFVAR_LISP ("internal-doc-file-name", &Vdoc_file_name,
 	       doc: /* Name of file containing documentation strings of built-in symbols.  */);
   Vdoc_file_name = Qnil;
--- a/src/ecrt0.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/ecrt0.c	Tue Feb 04 14:56:31 2003 +0000
@@ -348,7 +348,7 @@
 {
 #ifdef sun
   finitfp_();
-#endif     
+#endif
 /* On 68000, _start pushes a6 onto stack  */
   start1 ();
 }
--- a/src/editfns.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/editfns.c	Tue Feb 04 14:56:31 2003 +0000
@@ -289,16 +289,16 @@
 {
   extern Lisp_Object Vmark_even_if_inactive; /* Defined in callint.c. */
   Lisp_Object m;
-  
+
   if (!NILP (Vtransient_mark_mode)
       && NILP (Vmark_even_if_inactive)
       && NILP (current_buffer->mark_active))
     Fsignal (Qmark_inactive, Qnil);
-  
+
   m = Fmarker_position (current_buffer->mark);
   if (NILP (m))
     error ("The mark is not set now, so there is no region");
-  
+
   if ((PT < XFASTINT (m)) == beginningp)
     m = make_number (PT);
   return m;
@@ -456,7 +456,7 @@
 		}
 	    }
 	}
-      
+
     }
 
   { /* Now check the text-properties.  */
@@ -881,7 +881,7 @@
   /* visible */
   info = XCDR (info);
   visible_p = !NILP (XCAR (info));
-  
+
 #if 0 /* We used to make the current buffer visible in the selected window
 	 if that was true previously.  That avoids some anomalies.
 	 But it creates others, and it wasn't documented, and it is simpler
@@ -2952,7 +2952,7 @@
 			     clip_to_bounds (beg->charpos, pt, end->charpos),
 			     clip_to_bounds (beg->bytepos, BUF_PT_BYTE (buf),
 					     end->bytepos));
-	  
+
 	  buf->clip_changed = 1; /* Remember that the narrowing changed. */
 	}
     }
--- a/src/eval.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/eval.c	Tue Feb 04 14:56:31 2003 +0000
@@ -234,13 +234,13 @@
   int debug_while_redisplaying;
   int count = SPECPDL_INDEX ();
   Lisp_Object val;
-  
+
   if (lisp_eval_depth + 20 > max_lisp_eval_depth)
     max_lisp_eval_depth = lisp_eval_depth + 20;
-  
+
   if (specpdl_size + 40 > max_specpdl_size)
     max_specpdl_size = specpdl_size + 40;
-  
+
 #ifdef HAVE_X_WINDOWS
   if (display_hourglass_p)
     cancel_hourglass ();
@@ -261,7 +261,7 @@
 	 redisplay, which necessarily leads to display problems.  */
   specbind (Qinhibit_eval_during_redisplay, Qt);
 #endif
-  
+
   val = apply1 (Vdebugger, arg);
 
   /* Interrupting redisplay and resuming it later is not safe under
@@ -535,7 +535,7 @@
   UNGCPRO;
   return val;
 }
-     
+
 DEFUN ("quote", Fquote, Squote, 1, UNEVALLED, 0,
        doc: /* Return the argument, without evaluating it.  `(quote x)' yields `x'.
 usage: (quote ARG)  */)
@@ -544,7 +544,7 @@
 {
   return Fcar (args);
 }
-     
+
 DEFUN ("function", Ffunction, Sfunction, 1, UNEVALLED, 0,
        doc: /* Like `quote', but preferred for objects which are functions.
 In byte compilation, `function' causes its argument to be compiled.
@@ -614,7 +614,7 @@
   fun = Findirect_function (*btp->function);
   if (exclude_subrs_p && SUBRP (fun))
     return 0;
-  
+
   /* btp points to the frame of a Lisp function that called interactive-p.
      Return t if that function was called interactively.  */
   if (btp && btp->next && EQ (*btp->next->function, Qcall_interactively))
@@ -694,7 +694,7 @@
 	  call2 (Vmacro_declaration_function, fn_name, Fcar (tail));
 	  UNGCPRO;
 	}
-      
+
       tail = Fcdr (tail);
     }
 
@@ -703,7 +703,7 @@
   else
     tail = Fcons (lambda_list, Fcons (doc, tail));
   defn = Fcons (Qmacro, Fcons (Qlambda, tail));
-  
+
   if (!NILP (Vpurify_flag))
     defn = Fpurecopy (defn);
   if (CONSP (XSYMBOL (fn_name)->function)
@@ -835,7 +835,7 @@
      Lisp_Object variable;
 {
   Lisp_Object documentation;
-  
+
   if (!SYMBOLP (variable))
       return Qnil;
 
@@ -856,7 +856,7 @@
       || (!NILP (Fget (variable, intern ("custom-autoload")))))
     return Qt;
   return Qnil;
-}  
+}
 
 DEFUN ("let*", FletX, SletX, 1, UNEVALLED, 0,
        doc: /* Bind variables according to VARLIST then eval BODY.
@@ -1168,7 +1168,7 @@
 #endif
   backtrace_list = catch->backlist;
   lisp_eval_depth = catch->lisp_eval_depth;
-  
+
   _longjmp (catch->jmp, 1);
 }
 
@@ -1207,7 +1207,7 @@
 
   record_unwind_protect (0, Fcdr (args));
   val = Feval (Fcar (args));
-  return unbind_to (count, val);  
+  return unbind_to (count, val);
 }
 
 /* Chain of condition handlers currently in effect.
@@ -1288,7 +1288,7 @@
     }
   c.next = catchlist;
   catchlist = &c;
-  
+
   h.var = var;
   h.handler = handlers;
   h.next = handlerlist;
@@ -1486,7 +1486,7 @@
   if (display_hourglass_p)
     cancel_hourglass ();
 #endif
-#endif 
+#endif
 
   /* This hook is used by edebug.  */
   if (! NILP (Vsignal_hook_function)
@@ -1512,13 +1512,13 @@
   for (; handlerlist; handlerlist = handlerlist->next)
     {
       register Lisp_Object clause;
-      
+
       if (lisp_eval_depth + 20 > max_lisp_eval_depth)
 	max_lisp_eval_depth = lisp_eval_depth + 20;
-  
+
       if (specpdl_size + 40 > max_specpdl_size)
 	max_specpdl_size = specpdl_size + 40;
-  
+
       clause = find_handler_clause (handlerlist->handler, conditions,
 				    error_symbol, data, &debugger_value);
 
@@ -1608,7 +1608,7 @@
 	      error_message = Ferror_message_string (data);
 	      first_string = 0;
 	    }
-	  
+
 	  if (fast_string_match (XCAR (tail), error_message) >= 0)
 	    return 1;
 	}
@@ -1933,7 +1933,7 @@
 
   /* Preserve the match data.  */
   record_unwind_protect (Fset_match_data, Fmatch_data (Qnil, Qnil));
-  
+
   /* Value saved here is to be restored into Vautoload_queue.  */
   record_unwind_protect (un_autoload, Vautoload_queue);
   Vautoload_queue = Qt;
@@ -1981,7 +1981,7 @@
 
   if (handling_signal)
     abort ();
-  
+
   if (SYMBOLP (form))
     return Fsymbol_value (form);
   if (!CONSP (form))
@@ -2162,7 +2162,7 @@
 
 #ifdef HAVE_CARBON
   mac_check_for_quit_char();
-#endif  
+#endif
   return val;
 }
 
@@ -2185,7 +2185,7 @@
   funcall_args = 0;
   spread_arg = args [nargs - 1];
   CHECK_LIST (spread_arg);
-  
+
   numargs = XINT (Flength (spread_arg));
 
   if (numargs == 0)
@@ -2280,7 +2280,7 @@
 
   return Qnil;
 }
-      
+
 DEFUN ("run-hook-with-args", Frun_hook_with_args,
        Srun_hook_with_args, 1, MANY, 0,
        doc: /* Run HOOK with the specified arguments ARGS.
@@ -2523,7 +2523,7 @@
 {
   struct gcpro gcpro1;
 #ifdef NO_ARG_ARRAY
-  Lisp_Object args[2];  
+  Lisp_Object args[2];
 
   args[0] = fn;
   args[1] = arg1;
@@ -2779,7 +2779,7 @@
 	default:
 
 	  /* If a subr takes more than 8 arguments without using MANY
-	     or UNEVALLED, we need to extend this function to support it. 
+	     or UNEVALLED, we need to extend this function to support it.
 	     Until this is done, there is no way to call the function.  */
 	  abort ();
 	}
@@ -2887,11 +2887,11 @@
   for (; CONSP (syms_left); syms_left = XCDR (syms_left))
     {
       QUIT;
-      
+
       next = XCAR (syms_left);
       while (!SYMBOLP (next))
 	next = Fsignal (Qinvalid_function, Fcons (fun, Qnil));
-      
+
       if (EQ (next, Qand_rest))
 	rest = 1;
       else if (EQ (next, Qand_optional))
@@ -2928,7 +2928,7 @@
 			AREF (fun, COMPILED_CONSTANTS),
 			AREF (fun, COMPILED_STACK_DEPTH));
     }
-  
+
   return unbind_to (count, val);
 }
 
@@ -3006,7 +3006,7 @@
   else
     {
       Lisp_Object valcontents;
-      
+
       ovalue = find_symbol_value (symbol);
       specpdl_ptr->func = 0;
       specpdl_ptr->old_value = ovalue;
@@ -3020,7 +3020,7 @@
 	  Lisp_Object where, current_buffer;
 
 	  current_buffer = Fcurrent_buffer ();
-	  
+
 	  /* For a local variable, record both the symbol and which
 	     buffer's or frame's value we are saving.  */
 	  if (!NILP (Flocal_variable_p (symbol, Qnil)))
@@ -3112,7 +3112,7 @@
 	    Fset_default (symbol, specpdl_ptr->old_value);
 	  else if (BUFFERP (where))
 	    set_internal (symbol, specpdl_ptr->old_value, XBUFFER (where), 1);
-	  else 
+	  else
 	    set_internal (symbol, specpdl_ptr->old_value, NULL, 1);
 	}
       else
@@ -3126,7 +3126,7 @@
 	    set_internal (specpdl_ptr->symbol, specpdl_ptr->old_value, 0, 1);
 	}
     }
-  
+
   if (NILP (Vquit_flag) && quitf)
     Vquit_flag = Qt;
 
@@ -3300,7 +3300,7 @@
 
   Qdeclare = intern ("declare");
   staticpro (&Qdeclare);
-  
+
   /* Note that the process handling also uses Qexit, but we don't want
      to staticpro it twice, so we just do it here.  */
   Qexit = intern ("exit");
--- a/src/filelock.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/filelock.c	Tue Feb 04 14:56:31 2003 +0000
@@ -80,14 +80,14 @@
 #ifndef WTMP_FILE
 #define WTMP_FILE "/var/log/wtmp"
 #endif
-  
+
 /* The strategy: to lock a file FN, create a symlink .#FN in FN's
    directory, with link data `user@host.pid'.  This avoids a single
    mount (== failure) point for lock files.
 
    When the host in the lock data is the current host, we can check if
    the pid is valid with kill.
-   
+
    Otherwise, we could look at a separate file that maps hostnames to
    reboot times to see if the remote pid can possibly be valid, since we
    don't want Emacs to have to communicate via pipes or sockets or
@@ -105,15 +105,15 @@
    files to be useful on old systems lacking symlinks, nowadays
    virtually all such systems are probably single-user anyway, so it
    didn't seem worth the complication.
-   
+
    Similarly, we don't worry about a possible 14-character limit on
    file names, because those are all the same systems that don't have
    symlinks.
-   
+
    This is compatible with the locking scheme used by Interleaf (which
    has contributed this implementation for Emacs), and was designed by
    Ethan Jacobson, Kimbo Mundy, and others.
-   
+
    --karl@cs.umb.edu/karl@hq.ileaf.com.  */
 
 
@@ -344,7 +344,7 @@
      do something to support 14-character-max file names.  */
   for (p = lockfile + strlen (lockfile); p != lockfile && *p != '/'; p--)
     p[2] = *p;
-  
+
   /* Insert the `.#'.  */
   p[1] = '.';
   p[2] = '#';
@@ -368,7 +368,7 @@
 
 static int
 lock_file_1 (lfname, force)
-     char *lfname; 
+     char *lfname;
      int force;
 {
   register int err;
@@ -394,7 +394,7 @@
 	     (unsigned long) getpid (), (unsigned long) boot_time);
   else
     sprintf (lock_info_str, "%s@%s.%lu", user_name, host_name,
-	     (unsigned long) getpid ());    
+	     (unsigned long) getpid ());
 
   err = symlink (lock_info_str, lfname);
   if (errno == EEXIST && force)
@@ -448,7 +448,7 @@
 #endif
     }
   while (len >= bufsize);
-  
+
   /* If nonexistent lock file, all is well; otherwise, got strange error. */
   if (len == -1)
     {
@@ -458,7 +458,7 @@
 
   /* Link info exists, so `len' is its length.  Null terminate.  */
   lfinfo[len] = 0;
-  
+
   /* Even if the caller doesn't want the owner info, we still have to
      read it to determine return value, so allocate it.  */
   if (!owner)
@@ -466,7 +466,7 @@
       owner = (lock_info_type *) alloca (sizeof (lock_info_type));
       local_owner = 1;
     }
-  
+
   /* Parse USER@HOST.PID:BOOT_TIME.  If can't parse, return -1.  */
   /* The USER is everything before the first @.  */
   at = index (lfinfo, '@');
@@ -480,7 +480,7 @@
   owner->user = (char *) xmalloc (len + 1);
   strncpy (owner->user, lfinfo, len);
   owner->user[len] = 0;
-  
+
   /* The PID is everything from the last `.' to the `:'.  */
   owner->pid = atoi (dot + 1);
   colon = dot;
@@ -500,7 +500,7 @@
 
   /* We're done looking at the link info.  */
   xfree (lfinfo);
-  
+
   /* On current host?  */
   if (STRINGP (Fsystem_name ())
       && strcmp (owner->host, SDATA (Fsystem_name ())) == 0)
@@ -524,7 +524,7 @@
          here's where we'd do it.  */
       ret = 1;
     }
-  
+
   /* Avoid garbage.  */
   if (local_owner || ret <= 0)
     {
@@ -543,7 +543,7 @@
 static int
 lock_if_free (clasher, lfname)
      lock_info_type *clasher;
-     register char *lfname; 
+     register char *lfname;
 {
   while (lock_file_1 (lfname, 0) == 0)
     {
@@ -551,7 +551,7 @@
 
       if (errno != EEXIST)
 	return -1;
-      
+
       locker = current_lock_owner (clasher, lfname);
       if (locker == 2)
         {
@@ -634,7 +634,7 @@
   sprintf (locker, "%s@%s (pid %lu)", lock_info.user, lock_info.host,
            lock_info.pid);
   FREE_LOCK_INFO (lock_info);
-  
+
   attack = call2 (intern ("ask-user-about-lock"), fn, build_string (locker));
   if (!NILP (attack))
     /* User says take the lock */
@@ -691,7 +691,7 @@
   if (SAVE_MODIFF < MODIFF
       && !NILP (file))
     lock_file (file);
-  return Qnil;    
+  return Qnil;
 }
 
 DEFUN ("unlock-buffer", Funlock_buffer, Sunlock_buffer,
--- a/src/floatfns.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/floatfns.c	Tue Feb 04 14:56:31 2003 +0000
@@ -468,7 +468,7 @@
       x = XINT (arg1);
       y = XINT (arg2);
       acc = 1;
-      
+
       if (y < 0)
 	{
 	  if (x == 1)
@@ -992,7 +992,7 @@
 #endif /* FLOAT_CATCH_SIGILL */
 
 #ifdef HAVE_MATHERR
-int 
+int
 matherr (x)
      struct exception *x;
 {
@@ -1026,7 +1026,7 @@
 {
 #ifdef FLOAT_CATCH_SIGILL
   signal (SIGILL, float_error);
-#endif 
+#endif
   in_float = 0;
 }
 
--- a/src/fontset.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/fontset.h	Tue Feb 04 14:56:31 2003 +0000
@@ -97,7 +97,7 @@
      `ascent'.  In other words, the value indicates how many bits
      higher we should draw a character of the font than normal ASCII
      text for a better looking.
-       
+
      We also have to consider the fact that the concept of `baseline'
      differs among languages to which each character belongs.  For
      instance, baseline should be at the bottom most position of all
@@ -195,7 +195,7 @@
 extern Lisp_Object list_fontsets P_ ((struct frame *, Lisp_Object, int));
 
 extern Lisp_Object Qfontset;
-extern Lisp_Object Vuse_default_ascent; 
+extern Lisp_Object Vuse_default_ascent;
 extern Lisp_Object Vignore_relative_composition;
 extern Lisp_Object Valternate_fontname_alist;
 extern Lisp_Object Vfontset_alias_alist;
--- a/src/frame.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/frame.c	Tue Feb 04 14:56:31 2003 +0000
@@ -92,7 +92,7 @@
   XSETFASTINT (w->last_modified, 0);
   XSETFASTINT (w->top, XFASTINT (w->top) + n);
   XSETFASTINT (w->height, XFASTINT (w->height) - n);
-  
+
   if (INTEGERP (w->orig_top))
     XSETFASTINT (w->orig_top, XFASTINT (w->orig_top) + n);
   if (INTEGERP (w->orig_height))
@@ -367,7 +367,7 @@
 	    call1 (intern ("make-initial-minibuffer-frame"), display);
           UNGCPRO;
 	}
-   
+
       mini_window = XFRAME (kb->Vdefault_minibuffer_frame)->minibuffer_window;
     }
 
@@ -576,7 +576,7 @@
      int track, for_deletion;
 {
   struct frame *sf = SELECTED_FRAME ();
-  
+
   /* If FRAME is a switch-frame event, extract the frame we should
      switch to.  */
   if (CONSP (frame)
@@ -774,7 +774,7 @@
      Lisp_Object frame;
 {
   Lisp_Object window;
-  
+
   if (NILP (frame))
     window = SELECTED_FRAME ()->root_window;
   else
@@ -782,7 +782,7 @@
       CHECK_LIVE_FRAME (frame);
       window = XFRAME (frame)->root_window;
     }
-  
+
   return window;
 }
 
@@ -794,7 +794,7 @@
      Lisp_Object frame;
 {
   Lisp_Object window;
-  
+
   if (NILP (frame))
     window = SELECTED_FRAME ()->selected_window;
   else
@@ -816,7 +816,7 @@
 {
   if (NILP (frame))
     frame = selected_frame;
-  
+
   CHECK_LIVE_FRAME (frame);
   CHECK_LIVE_WINDOW (window);
 
@@ -1016,7 +1016,7 @@
 {
   if (NILP (frame))
     frame = selected_frame;
-  
+
   CHECK_LIVE_FRAME (frame);
   return next_frame (frame, miniframe);
 }
@@ -1211,8 +1211,8 @@
     x_clear_frame_selections (f);
 #endif
 
-  /* Free glyphs. 
-     This function must be called before the window tree of the 
+  /* Free glyphs.
+     This function must be called before the window tree of the
      frame is deleted because windows contain dynamically allocated
      memory. */
   free_glyphs (f);
@@ -1592,7 +1592,7 @@
 {
   if (NILP (frame))
     frame = selected_frame;
-  
+
   CHECK_LIVE_FRAME (frame);
 
 #if 0 /* This isn't logically necessary, and it can do GC.  */
@@ -1701,7 +1701,7 @@
     frame = selected_frame;
 
   CHECK_LIVE_FRAME (frame);
-  
+
   if (frame_raise_lower_hook)
     (*frame_raise_lower_hook) (XFRAME (frame), 0);
 
@@ -1749,7 +1749,7 @@
 
   if (frame_rehighlight_hook)
     (*frame_rehighlight_hook) (XFRAME (frame));
-  
+
   return Qnil;
 }
 
@@ -1949,7 +1949,7 @@
 
   /* Update some other special parameters in their special places
      in addition to the alist.  */
-  
+
   if (EQ (prop, Qbuffer_predicate))
     f->buffer_predicate = val;
 
@@ -1999,7 +1999,7 @@
 
   alist = Fcopy_alist (f->param_alist);
   GCPRO1 (alist);
-  
+
   if (!FRAME_WINDOW_P (f))
     {
       int fg = FRAME_FOREGROUND_PIXEL (f);
@@ -2088,10 +2088,10 @@
   else
     CHECK_FRAME (frame);
   CHECK_SYMBOL (parameter);
-  
+
   f = XFRAME (frame);
   value = Qnil;
-  
+
   if (FRAME_LIVE_P (f))
     {
       /* Avoid consing in frequent cases.  */
@@ -2146,12 +2146,12 @@
       else
 	value = Fcdr (Fassq (parameter, Fframe_parameters (frame)));
     }
-  
+
   return value;
 }
 
 
-DEFUN ("modify-frame-parameters", Fmodify_frame_parameters, 
+DEFUN ("modify-frame-parameters", Fmodify_frame_parameters,
        Smodify_frame_parameters, 2, 2, 0,
        doc: /* Modify the parameters of frame FRAME according to ALIST.
 If FRAME is nil, it defaults to the selected frame.
@@ -2278,7 +2278,7 @@
     return make_number (1);
 }
 
-DEFUN ("frame-pixel-height", Fframe_pixel_height, 
+DEFUN ("frame-pixel-height", Fframe_pixel_height,
        Sframe_pixel_height, 0, 1, 0,
        doc: /* Return a FRAME's height in pixels.
 This counts only the height available for text lines,
@@ -2303,7 +2303,7 @@
     return make_number (FRAME_HEIGHT (f));
 }
 
-DEFUN ("frame-pixel-width", Fframe_pixel_width, 
+DEFUN ("frame-pixel-width", Fframe_pixel_width,
        Sframe_pixel_width, 0, 1, 0,
        doc: /* Return FRAME's width in pixels.
 For a terminal frame, the result really gives the width in characters.
@@ -2411,7 +2411,7 @@
   return Qnil;
 }
 
-DEFUN ("set-frame-position", Fset_frame_position, 
+DEFUN ("set-frame-position", Fset_frame_position,
        Sset_frame_position, 3, 3, 0,
        doc: /* Sets position of FRAME in pixels to XOFFSET by YOFFSET.
 This is actually the position of the upper left corner of the frame.
@@ -2525,7 +2525,7 @@
   Vmouse_position_function = Qnil;
 
   DEFVAR_LISP ("mouse-highlight", &Vmouse_highlight,
-	       doc: /* If non-nil, clickable text is highlighted when mouse is over it.  
+	       doc: /* If non-nil, clickable text is highlighted when mouse is over it.
 If the value is an integer, highlighting is only shown after moving the
 mouse, while keyboard input turns off the highlight even when the mouse
 is over the clickable text.  However, the mouse shape still indicates
--- a/src/frame.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/frame.h	Tue Feb 04 14:56:31 2003 +0000
@@ -150,7 +150,7 @@
      or modified with modify-frame-parameters.  */
   Lisp_Object param_alist;
 
-  /* List of scroll bars on this frame.  
+  /* List of scroll bars on this frame.
      Actually, we don't specify exactly what is stored here at all; the
      scroll bar implementation code can use it to store anything it likes.
      This field is marked by the garbage collector.  It is here
@@ -224,7 +224,7 @@
   int tool_bar_lines;
 
   int n_tool_bar_items;
-  
+
   /* A buffer for decode_mode_line. */
   char *decode_mode_spec_buffer;
 
@@ -253,7 +253,7 @@
 
   /* A structure of auxiliary data used for displaying the contents.
      struct x_output is used for X window frames;
-     it is defined in xterm.h.  
+     it is defined in xterm.h.
      struct w32_output is used for W32 window frames;
      it is defined in w32term.h.  */
   union output_data
@@ -325,7 +325,7 @@
   /* True if frame actually has a minibuffer window on it.
      0 if using a minibuffer window that isn't on this frame.  */
   char has_minibuffer;
-     
+
   /* 0 means, if this frame has just one window,
      show no modeline for that window.  */
   char wants_modeline;
@@ -525,8 +525,8 @@
 /* The currently selected window of the window tree of frame F.  */
 #define FRAME_SELECTED_WINDOW(f) (f)->selected_window
 
-#define FRAME_INSERT_COST(f) (f)->insert_line_cost    
-#define FRAME_DELETE_COST(f) (f)->delete_line_cost    
+#define FRAME_INSERT_COST(f) (f)->insert_line_cost
+#define FRAME_DELETE_COST(f) (f)->delete_line_cost
 #define FRAME_INSERTN_COST(f) (f)->insert_n_lines_cost
 #define FRAME_DELETEN_COST(f) (f)->delete_n_lines_cost
 #define FRAME_MESSAGE_BUF(f) (f)->message_buf
@@ -623,7 +623,7 @@
 /* Return the size of message_buf of the frame F.  We multiply the
    width of the frame by 4 because multi-byte form may require at most
    4-byte for a character.  */
-     
+
 #define FRAME_MESSAGE_BUF_SIZE(f) (((int) (f)->width) * 4)
 
 /* Emacs's redisplay code could become confused if a frame's
@@ -649,7 +649,7 @@
    Also, if a frame used to be invisible, but has just become visible,
    it must be marked as garbaged, since redisplay hasn't been keeping
    up its contents.  */
-     
+
 #define FRAME_SAMPLE_VISIBILITY(f) \
   (((f)->async_visible && (f)->visible != (f)->async_visible) ? \
    SET_FRAME_GARBAGED (f) : 0, \
@@ -674,7 +674,7 @@
    loop will set FRAME_VAR, a Lisp_Object, to each frame in
    Vframe_list in succession and execute the statement.  LIST_VAR
    should be a Lisp_Object too; it is used to iterate through the
-   Vframe_list.  
+   Vframe_list.
 
    This macro is a holdover from a time when multiple frames weren't always
    supported.  An alternate definition of the macro would expand to
@@ -731,7 +731,7 @@
 
 /* Return the height in lines of the vertical scroll bar in w.  If the
    window has a mode line, don't make the scroll bar extend that far.  */
-     
+
 #define WINDOW_VERTICAL_SCROLL_BAR_HEIGHT(w) (window_internal_height (w))
 
 /* The currently selected frame.  */
@@ -779,7 +779,7 @@
      (FRAME_WINDOW_P (F) ? FRAME_X_LEFT_FRINGE_WIDTH (F) : 0)
 #define FRAME_RIGHT_FRINGE_WIDTH(F) \
      (FRAME_WINDOW_P (F) ? FRAME_X_RIGHT_FRINGE_WIDTH (F) : 0)
-     
+
 #else /* not HAVE_WINDOW_SYSTEM */
 
 #define FRAME_FRINGE_WIDTH(F)	0
@@ -788,7 +788,7 @@
 #define FRAME_RIGHT_FRINGE_WIDTH(F) 0
 
 #endif /* not HAVE_WINDOW_SYSTEM */
-     
+
 
 
 
@@ -803,16 +803,16 @@
 /* Convert canonical value X to pixels.  F is the frame whose
    canonical char width is to be used.  X must be a Lisp integer or
    float.  Value is a C integer.  */
-     
+
 #define PIXEL_X_FROM_CANON_X(F, X)			\
      (INTEGERP (X)					\
       ? XINT (X) * CANON_X_UNIT (F)			\
       : (int) (XFLOAT_DATA (X) * CANON_X_UNIT (F)))
-      
+
 /* Convert canonical value Y to pixels.  F is the frame whose
    canonical character height is to be used.  X must be a Lisp integer
    or float.  Value is a C integer.  */
-     
+
 #define PIXEL_Y_FROM_CANON_Y(F, Y)			\
      (INTEGERP (Y)					\
       ? XINT (Y) * CANON_Y_UNIT (F)			\
@@ -836,6 +836,6 @@
 #define CANON_Y_FROM_PIXEL_Y(F, Y)			\
      ((Y) % CANON_Y_UNIT (F) 				\
       ? make_float ((double) (Y) / CANON_Y_UNIT (F))	\
-      : make_number ((Y) / CANON_Y_UNIT (F)))	
-			     
+      : make_number ((Y) / CANON_Y_UNIT (F)))
+
 #endif /* not EMACS_FRAME_H */
--- a/src/gmalloc.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/gmalloc.c	Tue Feb 04 14:56:31 2003 +0000
@@ -420,7 +420,7 @@
 
   last_state_size = _heaplimit * sizeof *_heapinfo;
   last_heapinfo   = _heapinfo;
-  
+
   if (protect_p != state_protected_p)
     {
       state_protected_p = protect_p;
@@ -992,7 +992,7 @@
     return;
 
   PROTECT_MALLOC_STATE (0);
-  
+
   for (l = _aligned_blocks; l != NULL; l = l->next)
     if (l->aligned == ptr)
       {
@@ -1214,7 +1214,7 @@
 	}
       break;
     }
-  
+
   PROTECT_MALLOC_STATE (1);
 }
 
@@ -1380,7 +1380,7 @@
   block = BLOCK (ptr);
 
   PROTECT_MALLOC_STATE (0);
-  
+
   type = _heapinfo[block].busy.type;
   switch (type)
     {
@@ -1843,7 +1843,7 @@
      __ptr_t ptr;
 {
   struct hdr *hdr;
-    
+
   if (ptr)
     {
       hdr = ((struct hdr *) ptr) - 1;
@@ -1853,7 +1853,7 @@
     }
   else
     hdr = NULL;
-  
+
   __free_hook = old_free_hook;
   free (hdr);
   __free_hook = freehook;
@@ -1887,7 +1887,7 @@
 {
   struct hdr *hdr = NULL;
   __malloc_size_t osize = 0;
-    
+
   if (ptr)
     {
       hdr = ((struct hdr *) ptr) - 1;
@@ -1897,7 +1897,7 @@
       if (size < osize)
 	flood ((char *) ptr + size, FREEFLOOD, osize - size);
     }
-  
+
   __free_hook = old_free_hook;
   __malloc_hook = old_malloc_hook;
   __realloc_hook = old_realloc_hook;
--- a/src/gtkutil.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/gtkutil.c	Tue Feb 04 14:56:31 2003 +0000
@@ -180,7 +180,7 @@
 xg_list_insert (xg_list_node *list, xg_list_node *node)
 {
   xg_list_node *list_start = list->next;
-  
+
   if (list_start) list_start->prev = node;
   node->next = list_start;
   node->prev = 0;
@@ -213,7 +213,7 @@
      char *str;
 {
   char *utf8_str = str;
-  
+
   /* If not UTF-8, try current locale.  */
   if (str && !g_utf8_validate (str, -1, NULL))
     utf8_str = g_locale_to_utf8 (str, -1, 0, 0, 0);
@@ -242,7 +242,7 @@
     int top = f->output_data.x->top_pos;
     int yneg = f->output_data.x->size_hint_flags & YNegative;
     char geom_str[32];
-    
+
     if (xneg)
       left = -left;
     if (yneg)
@@ -260,7 +260,7 @@
   }
 }
 
-     
+
 /* Resize the outer window of frame F after chainging the height.
    This happend when the menu bar or the tool bar is added or removed.
    COLUMNS/ROWS is the size the edit area shall have after the resize.  */
@@ -299,7 +299,7 @@
   int tbheight = FRAME_TOOLBAR_HEIGHT (f);
   int rows = PIXEL_TO_CHAR_HEIGHT (f, pixelheight - mbheight - tbheight);
   int columns = PIXEL_TO_CHAR_WIDTH (f, pixelwidth);
-  
+
   if (FRAME_GTK_WIDGET (f)
       && (columns != FRAME_WIDTH (f) || rows != FRAME_HEIGHT (f)
           || pixelwidth != PIXEL_WIDTH (f) || pixelheight != PIXEL_HEIGHT (f)))
@@ -333,7 +333,7 @@
   int pixelheight = CHAR_TO_PIXEL_HEIGHT (f, rows)
     + FRAME_MENUBAR_HEIGHT (f) + FRAME_TOOLBAR_HEIGHT (f);
   int pixelwidth = CHAR_TO_PIXEL_WIDTH (f, cols);
-  
+
   /* Take into account the size of the scroll bar.  Always use the
      number of columns occupied by the scroll bar here otherwise we
      might end up with a frame width that is not a multiple of the
@@ -374,7 +374,7 @@
       event.any.window = gdkwin;
       gwdesc = gtk_get_event_widget (&event);
     }
-  
+
   UNBLOCK_INPUT;
   return gwdesc;
 }
@@ -404,13 +404,13 @@
   GtkRcStyle *style;
   int i;
   char *title = 0;
-  
+
   BLOCK_INPUT;
 
   wtop = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   wvbox = gtk_vbox_new (FALSE, 0);
   wfixed = gtk_fixed_new ();  /* Must have this to place scroll bars  */
-  
+
   if (! wtop || ! wvbox || ! wfixed)
     {
       if (wtop) gtk_widget_destroy (wtop);
@@ -430,7 +430,7 @@
   else if (! NILP (f->name)) title = SDATA (f->name);
 
   if (title) gtk_window_set_title (GTK_WINDOW (wtop), title);
-    
+
   FRAME_GTK_OUTER_WIDGET (f) = wtop;
   FRAME_GTK_WIDGET (f) = wfixed;
   f->output_data.x->vbox_widget = wvbox;
@@ -440,7 +440,7 @@
   gtk_widget_set_size_request (wfixed,
                                PIXEL_WIDTH (f),
                                PIXEL_HEIGHT (f));
-  
+
   gtk_container_add (GTK_CONTAINER (wtop), wvbox);
   gtk_box_pack_end (GTK_BOX (wvbox), wfixed, TRUE, TRUE, 0);
 
@@ -456,11 +456,11 @@
      later on when tool bar items are added.  */
   if (FRAME_EXTERNAL_TOOL_BAR (f) && FRAME_TOOLBAR_HEIGHT (f) == 0)
     FRAME_TOOLBAR_HEIGHT (f) = 34;
-  
+
   gtk_widget_set_double_buffered (wvbox, FALSE);
   gtk_widget_set_double_buffered (wfixed, FALSE);
   gtk_widget_set_double_buffered (wtop, FALSE);
-  
+
   /* GTK documents says use gtk_window_set_resizable.  But then a user
      can't shrink the window from its starting size.  */
   gtk_window_set_policy (GTK_WINDOW (wtop), TRUE, TRUE, TRUE);
@@ -472,7 +472,7 @@
      GTK is to destroy the widget.  We want Emacs to do that instead.  */
   g_signal_connect (G_OBJECT (wtop), "delete-event",
                     G_CALLBACK (gtk_true), 0);
-  
+
   /* Convert our geometry parameters into a geometry string
      and specify it.
      GTK will itself handle calculating the real position this way.  */
@@ -508,7 +508,7 @@
   /* Must use g_strdup because gtk_widget_modify_style does g_free.  */
   style->bg_pixmap_name[GTK_STATE_NORMAL] = g_strdup ("<none>");
   gtk_widget_modify_style (wfixed, style);
-  
+
   /* GTK does not set any border, and they look bad with GTK.  */
   f->output_data.x->border_width = 0;
   f->output_data.x->internal_border_width = 0;
@@ -538,7 +538,7 @@
     int base_width, base_height;
     int min_rows = 0, min_cols = 0;
     int win_gravity = f->output_data.x->win_gravity;
-    
+
     if (flags)
       {
         memset (&size_hints, 0, sizeof (size_hints));
@@ -547,7 +547,7 @@
       }
      else
        flags = f->output_data.x->size_hint_flags;
-    
+
     size_hints = f->output_data.x->size_hints;
     hint_flags = f->output_data.x->hint_flags;
 
@@ -567,7 +567,7 @@
     size_hints.min_width  = base_width + min_cols * size_hints.width_inc;
     size_hints.min_height = base_height + min_rows * size_hints.height_inc;
 
-    
+
     /* These currently have a one to one mapping with the X values, but I
        don't think we should rely on that.  */
     hint_flags |= GDK_HINT_WIN_GRAVITY;
@@ -648,7 +648,7 @@
 get_dialog_title (char key)
 {
   char *title = "";
-  
+
   switch (key) {
   case 'E': case 'e':
     title = "Error";
@@ -746,7 +746,7 @@
 
   g_signal_connect (G_OBJECT (wdialog), "delete-event",
                     G_CALLBACK (dialog_delete_callback), 0);
-  
+
   if (deactivate_cb)
     {
       g_signal_connect (G_OBJECT (wdialog), "close", deactivate_cb, 0);
@@ -876,7 +876,7 @@
   GtkFileSelection *filesel;
   int filesel_done = XG_FILE_NOT_DONE;
   char *fn = 0;
-  
+
   filewin = gtk_file_selection_new (prompt);
   filesel = GTK_FILE_SELECTION (filewin);
 
@@ -909,9 +909,9 @@
       gtk_file_selection_hide_fileop_buttons (filesel);
     }
 
-  
+
   gtk_widget_show_all (filewin);
-  
+
   while (filesel_done == XG_FILE_NOT_DONE)
     gtk_main_iteration ();
 
@@ -950,7 +950,7 @@
 
    The menu bar and all sub menus under the menu bar in a frame
    share the same structure, hence the reference count.
-   
+
    Returns CL_DATA if CL_DATA is not NULL,  or a pointer to a newly
    allocated xg_menu_cb_data if CL_DATA is NULL.  */
 static xg_menu_cb_data *
@@ -1069,7 +1069,7 @@
     {
       xg_menu_item_cb_data *data = (xg_menu_item_cb_data*) client_data;
       gpointer call_data = event->type == GDK_LEAVE_NOTIFY ? 0 : client_data;
-      
+
       if (! NILP (data->help) && data->cl_data->highlight_cb)
         {
           GtkCallback func = (GtkCallback) data->cl_data->highlight_cb;
@@ -1125,14 +1125,14 @@
   GtkWidget *wlbl;
   GtkWidget *wkey;
   GtkWidget *wbox;
-  
+
   wbox = gtk_hbox_new (FALSE, 0);
   wlbl = gtk_label_new_with_mnemonic (utf8_label);
   wkey = gtk_label_new (utf8_key);
 
   gtk_misc_set_alignment (GTK_MISC (wlbl), 0.0, 0.5);
   gtk_misc_set_alignment (GTK_MISC (wkey), 0.0, 0.5);
-              
+
   gtk_box_pack_start (GTK_BOX (wbox), wlbl, TRUE, TRUE, 0);
   gtk_box_pack_start (GTK_BOX (wbox), wkey, FALSE, FALSE, 0);
 
@@ -1146,7 +1146,7 @@
    UTF8_LABEL is the text for the menu item (GTK uses UTF8 internally).
    UTF8_KEY is the text representing the key binding.
    ITEM is the widget_value describing the menu item.
-   
+
    GROUP is an in/out parameter.  If the menu item to be created is not
    part of any radio menu group, *GROUP contains NULL on entry and exit.
    If the menu item to be created is part of a radio menu group, on entry
@@ -1164,10 +1164,10 @@
 {
   GtkWidget *w;
   GtkWidget *wtoadd = 0;
-  
+
   if (utf8_key)
     wtoadd = make_widget_for_menu_item (utf8_label, utf8_key);
-  
+
   if (item->button_type == BUTTON_TYPE_TOGGLE)
     {
       *group = NULL;
@@ -1189,7 +1189,7 @@
       if (utf8_key) w = gtk_menu_item_new ();
       else w = gtk_menu_item_new_with_mnemonic (utf8_label);
     }
-  
+
   if (wtoadd) gtk_container_add (GTK_CONTAINER (w), wtoadd);
   if (! item->enabled) gtk_widget_set_sensitive (w, FALSE);
 
@@ -1230,7 +1230,7 @@
 /* Callback invoked when a menu is detached.  It sets the xg_did_tearoff
    variable.
    WIDGET is the GtkTearoffMenuItem.
-   CLIENT_DATA is not used.  */ 
+   CLIENT_DATA is not used.  */
 static void
 tearoff_activate (widget, client_data)
      GtkWidget *widget;
@@ -1257,7 +1257,7 @@
 
   /* Find the top widget for the detached menu.  */
   p = gtk_widget_get_toplevel (submenu);
-    
+
   /* Delay destroying the menu until the detached menu is removed.  */
   g_signal_connect (G_OBJECT (p), "unmap_event",
                     G_CALLBACK (tearoff_remove), menu);
@@ -1308,7 +1308,7 @@
   cb_data->help = item->help;
   cb_data->cl_data = cl_data;
   cb_data->call_data = item->call_data;
-      
+
   g_signal_connect (G_OBJECT (w),
                     "destroy",
                     G_CALLBACK (menuitem_destroy_callback),
@@ -1395,7 +1395,7 @@
       g_object_set_data (G_OBJECT (wmenu), XG_FRAME_DATA, (gpointer)cl_data);
       g_signal_connect (G_OBJECT (wmenu), "destroy",
                         G_CALLBACK (menu_destroy_callback), cl_data);
-      
+
       if (name)
         gtk_widget_set_name (wmenu, name);
 
@@ -1406,7 +1406,7 @@
       g_signal_connect (G_OBJECT (wmenu),
                         "grab-notify", G_CALLBACK (menu_grab_callback), 0);
     }
-  
+
   if (! menu_bar_p && add_tearoff_p)
     {
       GtkWidget *tearoff = gtk_tearoff_menu_item_new ();
@@ -1419,7 +1419,7 @@
   for (item = data; item; item = item->next)
     {
       GtkWidget *w;
-      
+
       if (pop_up_p && !item->contents && !item->call_data
           && !xg_separator_p (item->name))
         {
@@ -1585,7 +1585,7 @@
       /* Add a ref to w so we can explicitly destroy it later.  */
       gtk_widget_ref (w);
       gtk_container_remove (GTK_CONTAINER (wcont), w);
-  
+
       /* If there is a menu under this widget that has been detached,
          there is a reference to it, and just removing w from the
          container does not destroy the submenu.  By explicitly
@@ -1679,7 +1679,7 @@
                 Current:  A B C
                 New:      A C
               Remove B.  */
-          
+
           gtk_widget_ref (GTK_WIDGET (witem));
           gtk_container_remove (GTK_CONTAINER (menubar), GTK_WIDGET (witem));
           gtk_widget_destroy (GTK_WIDGET (witem));
@@ -1707,7 +1707,7 @@
               is up to date when leaving the minibuffer.  */
           GtkLabel *wlabel = GTK_LABEL (gtk_bin_get_child (GTK_BIN (witem)));
           char *utf8_label = get_utf8_string (val->name);
-          
+
           gtk_label_set_text_with_mnemonic (wlabel, utf8_label);
 
           iter = g_list_next (iter);
@@ -1787,8 +1787,8 @@
   const char *old_label = 0;
   const char *old_key = 0;
   xg_menu_item_cb_data *cb_data;
-  
-  wchild = gtk_bin_get_child (GTK_BIN (w));  
+
+  wchild = gtk_bin_get_child (GTK_BIN (w));
   utf8_label = get_utf8_string (val->name);
   utf8_key = get_utf8_string (val->key);
 
@@ -1830,10 +1830,10 @@
         }
     }
 
-  
+
   if (wkey) old_key = gtk_label_get_label (wkey);
   if (wlbl) old_label = gtk_label_get_label (wlbl);
-  
+
   if (wkey && utf8_key && (! old_key || strcmp (utf8_key, old_key) != 0))
     gtk_label_set_text (wkey, utf8_key);
 
@@ -1842,7 +1842,7 @@
 
   if (utf8_key && utf8_key != val->key) g_free (utf8_key);
   if (utf8_label && utf8_label != val->name) g_free (utf8_label);
-  
+
   if (! val->enabled && GTK_WIDGET_SENSITIVE (w))
     gtk_widget_set_sensitive (w, FALSE);
   else if (val->enabled && ! GTK_WIDGET_SENSITIVE (w))
@@ -1855,7 +1855,7 @@
       cb_data->call_data = val->call_data;
       cb_data->help = val->help;
       cb_data->cl_data = cl_data;
-      
+
       /* We assume the callback functions don't change.  */
       if (val->call_data && ! val->contents)
         {
@@ -1951,10 +1951,10 @@
   widget_value *cur;
   int has_tearoff_p = 0;
   GList *first_radio = 0;
-  
+
   if (submenu)
     list = gtk_container_get_children (GTK_CONTAINER (submenu));
-  
+
   for (cur = val, iter = list;
        cur && iter;
        iter = g_list_next (iter), cur = cur->next)
@@ -2046,7 +2046,7 @@
       if (cur && first_radio) remove_from_container (submenu, first_radio);
       else remove_from_container (submenu, iter);
     }
-  
+
   if (cur)
     {
       /* More items added.  Create them.  */
@@ -2062,7 +2062,7 @@
                              cl_data,
                              0);
     }
-    
+
   if (list) g_list_free (list);
 
   return newsub;
@@ -2091,7 +2091,7 @@
   GList *list = gtk_container_get_children (GTK_CONTAINER (menubar));
 
   if (! list) return;
-  
+
   cl_data = (xg_menu_cb_data*) g_object_get_data (G_OBJECT (menubar),
                                                   XG_FRAME_DATA);
 
@@ -2129,7 +2129,7 @@
                   break;
                 }
             }
-          
+
           newsub = xg_update_submenu (sub,
                                       f,
                                       cur->contents,
@@ -2159,7 +2159,7 @@
 {
   struct x_output *x = f->output_data.x;
   GtkRequisition req;
-  
+
   if (!x->menubar_widget || GTK_WIDGET_MAPPED (x->menubar_widget))
     return 0;
 
@@ -2177,7 +2177,7 @@
   /* The height has changed, resize outer widget and set columns
      rows to what we had before adding the menu bar.  */
   xg_resize_outer_widget (f, FRAME_WIDTH (f), FRAME_HEIGHT (f));
-  
+
   SET_FRAME_GARBAGED (f);
   UNBLOCK_INPUT;
 }
@@ -2311,7 +2311,7 @@
 {
   gpointer p;
   int id = (int)data;
-  
+
   p = g_object_get_data (G_OBJECT (widget), XG_LAST_SB_DATA);
   if (p) xfree (p);
   xg_remove_widget_from_map (id);
@@ -2355,7 +2355,7 @@
   GtkWidget *wscroll;
   GtkObject *vadj;
   int scroll_id;
-  
+
   /* Page, step increment values are not so important here, they
      will be corrected in x_set_toolkit_scroll_bar_thumb. */
   vadj = gtk_adjustment_new (XG_SB_MIN, XG_SB_MIN, XG_SB_MAX,
@@ -2364,9 +2364,9 @@
   wscroll = gtk_vscrollbar_new (GTK_ADJUSTMENT (vadj));
   gtk_widget_set_name (wscroll, scroll_bar_name);
   gtk_range_set_update_policy (GTK_RANGE (wscroll), GTK_UPDATE_CONTINUOUS);
-  
+
   scroll_id = xg_store_widget_in_map (wscroll);
-  
+
   g_signal_connect (G_OBJECT (vadj),
                     "value-changed",
                     scroll_callback,
@@ -2386,7 +2386,7 @@
                     "button-release-event",
                     G_CALLBACK (scroll_bar_button_cb),
                     0);
-  
+
   gtk_fixed_put (GTK_FIXED (f->output_data.x->edit_widget),
                  wscroll, 0, 0);
 
@@ -2426,7 +2426,7 @@
    TOP/LEFT are the new pixel positions where the bar shall appear.
    WIDTH, HEIGHT is the size in pixels the bar shall have.  */
 void
-xg_update_scrollbar_pos (f, scrollbar_id, top, left, width, height)     
+xg_update_scrollbar_pos (f, scrollbar_id, top, left, width, height)
      FRAME_PTR f;
      int scrollbar_id;
      int top;
@@ -2483,7 +2483,7 @@
       gdouble shown;
       gdouble top;
       int size, value;
-      
+
       adj = gtk_range_get_adjustment (GTK_RANGE (wscroll));
 
       if (whole <= 0)
@@ -2552,7 +2552,7 @@
     return;
 
   idx *= TOOL_BAR_ITEM_NSLOTS;
-  
+
   key = AREF (f->tool_bar_items, idx + TOOL_BAR_ITEM_KEY);
   XSETFRAME (frame, f);
   event.kind = TOOL_BAR_EVENT;
@@ -2678,10 +2678,10 @@
   x->handlebox_widget = gtk_handle_box_new ();
   gtk_container_add (GTK_CONTAINER (x->handlebox_widget),
                      x->toolbar_widget);
-      
+
   gtk_box_pack_start (GTK_BOX (x->vbox_widget), x->handlebox_widget,
                       FALSE, FALSE, 0);
-      
+
   gtk_box_reorder_child (GTK_BOX (x->vbox_widget), x->handlebox_widget,
                          vbox_pos);
 
@@ -2694,11 +2694,11 @@
 
   gtk_widget_size_request (x->toolbar_widget, &req);
   FRAME_TOOLBAR_HEIGHT (f) = req.height;
-  
+
   /* The height has changed, resize outer widget and set columns
      rows to what we had before adding the tool bar.  */
   xg_resize_outer_widget (f, FRAME_WIDTH (f), FRAME_HEIGHT (f));
-  
+
   SET_FRAME_GARBAGED (f);
 }
 
@@ -2716,7 +2716,7 @@
     return;
 
   BLOCK_INPUT;
-      
+
   if (! x->toolbar_widget)
     xg_create_tool_bar (f);
 
@@ -2724,7 +2724,7 @@
 
   icon_list = gtk_container_get_children (GTK_CONTAINER (x->toolbar_widget));
   iter = icon_list;
-  
+
   for (i = 0; i < f->n_tool_bar_items; ++i)
     {
 #define PROP(IDX) AREF (f->tool_bar_items, i * TOOL_BAR_ITEM_NSLOTS + (IDX))
@@ -2775,7 +2775,7 @@
           if (wicon) gtk_widget_hide (wicon);
           continue;
         }
-          
+
       if (! wicon)
         {
           GdkPixmap *gpix = gdk_pixmap_foreign_new (img->pixmap);
@@ -2788,7 +2788,7 @@
                                    w,
                                    GTK_SIGNAL_FUNC (xg_tool_bar_callback),
                                    (gpointer)i);
-          
+
           /* Save the image so we can see if an update is needed when
              this function is called again.  */
           g_object_set_data (G_OBJECT (w), XG_TOOL_BAR_IMAGE_DATA,
@@ -2798,7 +2798,7 @@
              of the GtkImage parent.  Go upwards until we find the button.  */
           while (! GTK_IS_BUTTON (w))
             w = gtk_widget_get_parent (w);
-          
+
           if (w)
             {
               /* Save the frame in the button so the xg_tool_bar_callback
@@ -2848,7 +2848,7 @@
           gtk_widget_set_sensitive (wicon, enabled_p);
           gtk_widget_show (wicon);
         }
-  
+
 #undef PROP
     }
 
--- a/src/gtkutil.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/gtkutil.h	Tue Feb 04 14:56:31 2003 +0000
@@ -66,7 +66,7 @@
 typedef struct xg_menu_cb_data_
 {
   xg_list_node  ptrs;
-  
+
   FRAME_PTR     f;
   Lisp_Object   menu_bar_vector;
   int           menu_bar_items_used;
@@ -85,7 +85,7 @@
   Lisp_Object   help;
   gpointer	call_data;
   xg_menu_cb_data *cl_data;
-  
+
 } xg_menu_item_cb_data;
 
 
@@ -98,7 +98,7 @@
   char		*name;
   /* value (meaning depend on widget type) */
   char		*value;
-  /* keyboard equivalent. no implications for XtTranslations */ 
+  /* keyboard equivalent. no implications for XtTranslations */
   char		*key;
   /* Help string or nil if none.
      GC finds this string through the frame's menu_bar_vector
--- a/src/hftctl.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/hftctl.c	Tue Feb 04 14:56:31 2003 +0000
@@ -67,7 +67,7 @@
 #define QLOC   ((HFQLOCCH<<8)|HFQLOCCL)
 #define QPS    ((HFQPRESCH<<8)|HFQPRESCL)
 
-#ifndef TCGETS 
+#ifndef TCGETS
 #define TCGETS TCGETA
 #endif
 #ifndef TCSETS
--- a/src/indent.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/indent.h	Tue Feb 04 14:56:31 2003 +0000
@@ -26,13 +26,13 @@
    Example (where W_ stands for a wide-column character):
 	     ----------
 	     abcdefgh\\
-	     W_      
+	     W_
 	     ----------
 
-   To handle this case, we should not calculate the tab offset by 
+   To handle this case, we should not calculate the tab offset by
   	tab_offset += width;
 
-   Instead, we must remember tab_offset of the line. 
+   Instead, we must remember tab_offset of the line.
 
  */
 
--- a/src/insdel.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/insdel.c	Tue Feb 04 14:56:31 2003 +0000
@@ -373,7 +373,7 @@
 	  if (! m->insertion_type)
 	    /* Normal markers will end up at the beginning of the
 	       re-inserted text after undoing a deletion, and must be
-	       adjusted to move them to the correct place.  */ 
+	       adjusted to move them to the correct place.  */
 	    record_marker_adjustment (marker, from - charpos);
 	  else if (charpos < to)
 	    /* Before-insertion markers will automatically move forward
@@ -536,7 +536,7 @@
      That won't work because so many places use `int'.
 
      Make sure we don't introduce overflows in the calculation.  */
-     
+
   if (Z_BYTE - BEG_BYTE + GAP_SIZE
       >= (((EMACS_INT) 1 << (min (VALBITS, BITS_PER_INT) - 1)) - 1
 	  - nbytes_added))
@@ -990,7 +990,7 @@
 {
   if (nchars == 0)
     return;
-  
+
   if (NILP (current_buffer->enable_multibyte_characters))
     nchars = nbytes;
 
@@ -1173,7 +1173,7 @@
   /* Get the intervals for the part of the string we are inserting.  */
   if (nbytes < SBYTES (string))
     intervals = copy_intervals (intervals, pos, nchars);
-			       
+
   /* Insert those intervals.  */
   graft_intervals_into_buffer (intervals, PT, nchars,
 			       current_buffer, inherit);
@@ -1239,13 +1239,13 @@
 
       if (chunk < incoming_nbytes)
 	outgoing_after_gap
-	  = count_size_as_multibyte (BUF_BYTE_ADDRESS (buf, 
+	  = count_size_as_multibyte (BUF_BYTE_ADDRESS (buf,
 						       from_byte + chunk),
 				     incoming_nbytes - chunk);
 
       outgoing_nbytes = outgoing_before_gap + outgoing_after_gap;
     }
-  
+
   /* Make sure point-max won't overflow after this insertion.  */
   XSETINT (temp, outgoing_nbytes + Z);
   if (outgoing_nbytes + Z != XINT (temp))
@@ -1329,7 +1329,7 @@
 	from += nchars;
       intervals = copy_intervals (intervals, from, nchars);
     }
-			       
+
   /* Insert those intervals.  */
   graft_intervals_into_buffer (intervals, PT, nchars, current_buffer, inherit);
 
@@ -2129,7 +2129,7 @@
       return;
     }
 
-  if (!NILP (combine_after_change_list)) 
+  if (!NILP (combine_after_change_list))
     Fcombine_after_change_execute ();
 
   if (!NILP (Vafter_change_functions))
@@ -2260,7 +2260,7 @@
      that was changed.  */
   begpos = BEG + beg;
   endpos = Z - end;
-  
+
   /* We are about to handle these, so discard them.  */
   combine_after_change_list = Qnil;
 
--- a/src/keyboard.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/keyboard.c	Tue Feb 04 14:56:31 2003 +0000
@@ -10897,7 +10897,7 @@
 	       doc: /* The command bound to the current key sequence before remapping.
 It equals `this-command' if the original command was not remapped through
 any of the active keymaps.  Otherwise, the value of `this-command' is the
-result of looking up the original command in the active keymaps.  */); 
+result of looking up the original command in the active keymaps.  */);
   Vthis_original_command = Qnil;
 
   DEFVAR_INT ("auto-save-interval", &auto_save_interval,
--- a/src/keyboard.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/keyboard.h	Tue Feb 04 14:56:31 2003 +0000
@@ -210,7 +210,7 @@
    Using a Lisp vector to hold this information while we decode it
    takes care of protecting all the data from GC.  */
 extern Lisp_Object item_properties;
- 
+
 /* This describes the elements of item_properties.
    The first element is not a property, it is a pointer to the item properties
    that is saved for GC protection. */
--- a/src/lread.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/lread.c	Tue Feb 04 14:56:31 2003 +0000
@@ -215,7 +215,7 @@
    The READCHAR and UNREAD macros are meant for reading/unreading a
    byte code; they do not handle multibyte characters.  The caller
    should manage them if necessary.
-   
+
    [ Actually that seems to be a lie; READCHAR will definitely read
      multibyte characters from buffer sources, at least.  Is the
      comment just out of date?
@@ -233,7 +233,7 @@
   register int c;
 
   readchar_count++;
-  
+
   if (BUFFERP (readcharfun))
     {
       register struct buffer *inbuffer = XBUFFER (readcharfun);
@@ -411,7 +411,7 @@
 static Lisp_Object read_internal_start P_ ((Lisp_Object, Lisp_Object,
 					    Lisp_Object));
 static Lisp_Object read0 P_ ((Lisp_Object));
-static Lisp_Object read1 P_ ((Lisp_Object, int *, int)); 
+static Lisp_Object read1 P_ ((Lisp_Object, int *, int));
 
 static Lisp_Object read_list P_ ((int, Lisp_Object));
 static Lisp_Object read_vector P_ ((Lisp_Object, int));
@@ -457,7 +457,7 @@
   if (display_hourglass_p)
     cancel_hourglass ();
 #endif
-  
+
   delayed_switch_frame = Qnil;
 
   /* Read until we get an acceptable event.  */
@@ -498,7 +498,7 @@
 		XSETFASTINT (val, XINT (tem1) | XINT (Fcar (Fcdr (tem))));
 	    }
 	}
-	  
+
       /* If we don't have a character now, deal with it appropriately.  */
       if (!INTEGERP (val))
 	{
@@ -709,7 +709,7 @@
     }
   else
     file = Fsubstitute_in_file_name (file);
-    
+
 
   /* Avoid weird lossage with null string as arg,
      since it would try to load a directory as a Lisp file */
@@ -1550,7 +1550,7 @@
       read_from_string_index_byte = string_char_to_byte (stream, startval);
       read_from_string_limit = endval;
     }
-      
+
   retval = read0 (stream);
   if (EQ (Vread_with_symbol_positions, Qt)
       || EQ (Vread_with_symbol_positions, stream))
@@ -1751,7 +1751,7 @@
 		break;
 	      }
 	  }
-	
+
 	*byterep = 1;
 	return i;
       }
@@ -1825,11 +1825,11 @@
 	}
       else if (c == '+')
 	c = READCHAR;
-  
+
       while (c >= 0)
 	{
 	  int digit;
-      
+
 	  if (c >= '0' && c <= '9')
 	    digit = c - '0';
 	  else if (c >= 'a' && c <= 'z')
@@ -1894,7 +1894,7 @@
   if (nbytes != *nchars)
     nbytes = str_as_multibyte (read_buffer, read_buffer_size,
 			       *p - read_buffer, nchars);
-  
+
   *p = read_buffer + nbytes;
 }
 
@@ -1992,7 +1992,7 @@
 			== (SCHARS (tmp) - 1) * BITS_PER_CHAR))
 		Fsignal (Qinvalid_read_syntax,
 			 Fcons (make_string ("#&...", 5), Qnil));
-		
+
 	      val = Fmake_bool_vector (length, Qnil);
 	      bcopy (SDATA (tmp), XBOOL_VECTOR (val)->data,
 		     size_in_chars);
@@ -2047,7 +2047,7 @@
 	  UNGCPRO;
 	  return tmp;
 	}
-      
+
       /* #@NUMBER is used to skip NUMBER following characters.
 	 That's used in .elc files to skip over doc strings
 	 and function definitions.  */
@@ -2064,7 +2064,7 @@
 	    }
 	  if (c >= 0)
 	    UNREAD (c);
-	  
+
 	  if (load_force_doc_strings && EQ (readcharfun, Qget_file_char))
 	    {
 	      /* If we are supposed to force doc strings into core right now,
@@ -2170,7 +2170,7 @@
 
 	      /* ...and #n# will use the real value from now on.  */
 	      Fsetcdr (cell, tem);
-	      
+
 	      return tem;
 	    }
 	  /* #n# returns a previously read object.  */
@@ -2183,7 +2183,7 @@
 	    }
 	  else if (c == 'r' ||  c == 'R')
 	    return read_integer (readcharfun, n);
-	  
+
 	  /* Fall through to error message.  */
 	}
       else if (c == 'x' || c == 'X')
@@ -2442,7 +2442,7 @@
 		  p = read_buffer + offset;
 		  end = read_buffer + read_buffer_size;
 		}
-	      
+
 	      if (c == '\\')
 		{
 		  c = READCHAR;
@@ -2536,7 +2536,7 @@
 	    : intern (read_buffer);
 	  if (EQ (Vread_with_symbol_positions, Qt)
 	      || EQ (Vread_with_symbol_positions, readcharfun))
-	    Vread_symbol_positions_list = 
+	    Vread_symbol_positions_list =
 	      /* Kind of a hack; this will probably fail if characters
 		 in the symbol name were escaped.  Not really a big
 		 deal, though.  */
@@ -2567,7 +2567,7 @@
   /* Make all the substitutions. */
   check_object
     = substitute_object_recurse (object, placeholder, object);
-  
+
   /* Clear seen_list because we're done with it. */
   seen_list = Qnil;
 
@@ -2611,7 +2611,7 @@
      read_objects.  */
   if (!EQ (Qnil, Frassq (subtree, read_objects)))
     seen_list = Fcons (subtree, seen_list);
-      
+
   /* Recurse according to subtree's type.
      Every branch must return a Lisp_Object.  */
   switch (XTYPE (subtree))
@@ -2624,7 +2624,7 @@
 	  {
 	    Lisp_Object idx = make_number (i);
 	    SUBSTITUTE (Faref (subtree, idx),
-			Faset (subtree, idx, true_value)); 
+			Faset (subtree, idx, true_value));
 	  }
 	return subtree;
       }
@@ -2645,7 +2645,7 @@
 
 	INTERVAL    root_interval = STRING_INTERVALS (subtree);
 	Lisp_Object arg           = Fcons (object, placeholder);
-	   
+
 	traverse_intervals_noorder (root_interval,
 				    &substitute_in_interval, arg);
 
@@ -2682,7 +2682,7 @@
      register char *cp;
 {
   register int state;
-  
+
   char *start = cp;
 
   state = 0;
@@ -2813,7 +2813,7 @@
     }
   return vector;
 }
-  
+
 /* FLAG = 1 means check for ] to terminate rather than ) and .
    FLAG = -1 means check for starting with defun
     and make structure pure.  */
@@ -2832,7 +2832,7 @@
   struct gcpro gcpro1, gcpro2;
   /* 0 is the normal case.
      1 means this list is a doc reference; replace it with the number 0.
-     2 means this list is a doc reference; replace it with the doc string.  */ 
+     2 means this list is a doc reference; replace it with the doc string.  */
   int doc_reference = 0;
 
   /* Initialize this to 1 if we are reading a list.  */
@@ -3321,7 +3321,7 @@
   /* Intern nil in the obarray */
   XSYMBOL (Qnil)->interned = SYMBOL_INTERNED_IN_INITIAL_OBARRAY;
   XSYMBOL (Qnil)->constant = 1;
-  
+
   /* These locals are to kludge around a pyramid compiler bug. */
   hash = hash_string ("nil", 3);
   /* Separate statement here to avoid VAXC bug. */
@@ -3454,7 +3454,7 @@
   SET_SYMBOL_VALUE (sym, val);
   PER_BUFFER_SYMBOL (offset) = sym;
   PER_BUFFER_TYPE (offset) = type;
-  
+
   if (PER_BUFFER_IDX (offset) == 0)
     /* Did a DEFVAR_PER_BUFFER without initializing the corresponding
        slot of buffer_local_flags */
@@ -3626,8 +3626,8 @@
 #endif
 
 #ifndef WINDOWSNT
-  /* When Emacs is invoked over network shares on NT, PATH_LOADSEARCH is 
-     almost never correct, thereby causing a warning to be printed out that 
+  /* When Emacs is invoked over network shares on NT, PATH_LOADSEARCH is
+     almost never correct, thereby causing a warning to be printed out that
      confuses users.  Since PATH_LOADSEARCH is always overridden by the
      EMACSLOADPATH environment variable below, disable the warning on NT.  */
 
@@ -3750,7 +3750,7 @@
 Note that a symbol will appear multiple times in this list, if it was
 read multiple times.  The list is in the same order as the symbols
 were read in. */);
-  Vread_symbol_positions_list = Qnil;  
+  Vread_symbol_positions_list = Qnil;
 
   DEFVAR_LISP ("load-path", &Vload_path,
 	       doc: /* *List of directories to search for files to load.
@@ -3914,7 +3914,7 @@
   staticpro (&read_objects);
   read_objects = Qnil;
   staticpro (&seen_list);
-  
+
   Vloads_in_progress = Qnil;
   staticpro (&Vloads_in_progress);
 }
--- a/src/m/7300.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/7300.h	Tue Feb 04 14:56:31 2003 +0000
@@ -20,7 +20,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2-2"  */
 
@@ -59,7 +59,7 @@
 
 /* Data type of load average, as read out of kmem.  */
 /* These are commented out since it is not supported by this machine.  */
-  
+
 /* #define LOAD_AVE_TYPE long */
 
 /* Convert that into an integer that is 100 for a load average of 1.0  */
--- a/src/m/alliant-2800.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/alliant-2800.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-3"  */
 
--- a/src/m/alliant.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/alliant.h	Tue Feb 04 14:56:31 2003 +0000
@@ -21,7 +21,7 @@
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-2"  */
 
--- a/src/m/alliant1.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/alliant1.h	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 /* config.h should include this file for version 1 of Alliant's
    operating system.  */
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-2"  */
 
--- a/src/m/alliant4.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/alliant4.h	Tue Feb 04 14:56:31 2003 +0000
@@ -1,7 +1,7 @@
 /* machine description file for Alliant Concentrix 4.0 or later.
    Use alliant.h for versions 2 and 3.  */
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-2"  */
 
--- a/src/m/alpha.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/alpha.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
--- a/src/m/altos.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/altos.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2"  */
 
--- a/src/m/amdahl.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/amdahl.h	Tue Feb 04 14:56:31 2003 +0000
@@ -1,4 +1,4 @@
-/* amdahl machine description file 
+/* amdahl machine description file
    Copyright (C) 1987, 1999, 2002 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -123,7 +123,7 @@
 
 /* Put text and data on non-segment boundary; makes image smaller */
 
-#define LD_SWITCH_MACHINE	-N 
+#define LD_SWITCH_MACHINE	-N
 
 /* When writing the 'xemacs' file, make text segment ro */
 #define EXEC_MAGIC	0410
--- a/src/m/amdx86-64.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/amdx86-64.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="linux"  */
 
--- a/src/m/apollo.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/apollo.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-3"  */
 
--- a/src/m/att3b.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/att3b.h	Tue Feb 04 14:56:31 2003 +0000
@@ -21,7 +21,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2-2"  */
 
--- a/src/m/celerity.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/celerity.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-2"  */
 
--- a/src/m/convex.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/convex.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-3"  */
 
@@ -38,7 +38,7 @@
  * to be corrected before they can be used as byte counts.  */
 
 /* #define WORD_MACHINE */
-  
+
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically.  */
 #ifndef convex  /* The compiler doesn't always do this.  */
@@ -54,7 +54,7 @@
 		    and Ralph Sobek <Ralph.Sobek@cerfacs.fr> agree
 		    must ignore one arg when compiled with convex compiler.  */
 #define CRT0_DUMMIES ignore,
-#else 
+#else
 #define CRT0_DUMMIES
 #endif
 
@@ -86,9 +86,9 @@
 /*#define VIRT_ADDR_VARIES*/
 
 /* Must use the system's termcap.  It does special things.  */
-  
+
 #define LIBS_TERMCAP -ltermcap
-  
+
 /* Define NO_REMAP if memory segmentation makes it not work well
    to change the boundary between the text section and data section
    when Emacs is dumped.  If you define this, the preloaded Lisp
--- a/src/m/cydra5.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/cydra5.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-3"  */
 
--- a/src/m/delta88k.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/delta88k.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-3"  */
 
@@ -54,7 +54,7 @@
 /* Use type int rather than a union, to represent Lisp_Object */
 /* This is desirable for most machines.  */
 
-#define NO_UNION_TYPE 
+#define NO_UNION_TYPE
 
 /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
    the 24-bit bit field into an int.  In other words, if bit fields
@@ -84,7 +84,7 @@
    Otherwise Emacs assumes that text space precedes data space,
    numerically.  */
 
-/* #define VIRT_ADDR_VARIES */ 
+/* #define VIRT_ADDR_VARIES */
 
 /* Define NO_REMAP if memory segmentation makes it not work well
    to change the boundary between the text section and data section
@@ -96,13 +96,13 @@
 /* Motorola SysV has PTYs.  Not all usg3-5 systems do, so this is defined
    here. */
 
-#define HAVE_PTYS 
+#define HAVE_PTYS
 #define SYSV_PTYS
 
 /* Ditto for IPC. */
 
 
-/* 
+/*
  * we now have job control in R32V1
  */
 #undef NOMULTIPLEJOBS
@@ -134,7 +134,7 @@
 /* previously defined in usg5-4, if we choose to use that.  */
 #ifndef LIBS_SYSTEM
 #ifdef USG5_4
-#define LIBS_SYSTEM -lsocket -lnsl 
+#define LIBS_SYSTEM -lsocket -lnsl
 #else
 #define LIBS_SYSTEM -lbsd -lg
 #endif /* USG5_4 */
--- a/src/m/dpx2.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/dpx2.h	Tue Feb 04 14:56:31 2003 +0000
@@ -1,4 +1,4 @@
-/* machine description for Bull DPX/2 range 
+/* machine description for Bull DPX/2 range
    Copyright (C) 1985, 1986, 1999, 2002 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -18,12 +18,12 @@
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-3"  */
 
 /*
- * You need to either un-comment one of these lines, or copy one 
+ * You need to either un-comment one of these lines, or copy one
  * of them to config.h before you include this file.
  * Note that some simply define a constant and others set a value.
  */
--- a/src/m/dual.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/dual.h	Tue Feb 04 14:56:31 2003 +0000
@@ -18,7 +18,7 @@
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
@@ -57,7 +57,7 @@
 
 /* Data type of load average, as read out of kmem.  */
 /* These are commented out since it does not really work in uniplus */
-  
+
 /* #define LOAD_AVE_TYPE long */
 
 /* Convert that into an integer that is 100 for a load average of 1.0  */
--- a/src/m/elxsi.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/elxsi.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2"  */
 
--- a/src/m/gould-np1.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/gould-np1.h	Tue Feb 04 14:56:31 2003 +0000
@@ -18,7 +18,7 @@
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-3"  */
 
--- a/src/m/gould.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/gould.h	Tue Feb 04 14:56:31 2003 +0000
@@ -25,7 +25,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
@@ -37,11 +37,11 @@
 
   On UTX/32 2.0, use -opsystem=bsd4-3
 
-  On UTX/32 1.2 and UTX/32S 1.0, use -opsystem=bsd4-2 and note that compiling 
-  lib-src/sorted-doc tickles a compiler bug:  remove the -g flag to cc in the 
+  On UTX/32 1.2 and UTX/32S 1.0, use -opsystem=bsd4-2 and note that compiling
+  lib-src/sorted-doc tickles a compiler bug:  remove the -g flag to cc in the
   makefile.
 
-  UTX/32 1.3 has a bug in the bcopy library routine.  Fix it by 
+  UTX/32 1.3 has a bug in the bcopy library routine.  Fix it by
   #undef BSTRING in gould.h.
 
   Version 19 incorporates support for releases 2.1 and later of UTX/32.
@@ -70,7 +70,7 @@
 #define GOULD
 #endif
 
-/* sel is an old preprocessor name on gould machines 
+/* sel is an old preprocessor name on gould machines
   - it is no longer needed and interferes with a variable in xmenu.c */
 #undef sel
 
--- a/src/m/hp800.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/hp800.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="hpux"  */
 
@@ -61,7 +61,7 @@
 
 /* The standard definitions of these macros would work ok,
    but these are faster because the constants are short. */
-   
+
 
 #define XUINT(a) (((unsigned)(a) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS)
 
--- a/src/m/hp9000s300.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/hp9000s300.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
--- a/src/m/i860.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/i860.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="<name of system .h file here, without the s- or .h>"  */
 
--- a/src/m/ibm370aix.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/ibm370aix.h	Tue Feb 04 14:56:31 2003 +0000
@@ -49,7 +49,7 @@
 #define LOAD_AVE_TYPE double
 
 #undef LIBS_MACHINE
-#define LIBS_MACHINE 
+#define LIBS_MACHINE
 
 #undef LD_SWITCH_MACHINE
 #define LD_SWITCH_MACHINE -xa
--- a/src/m/ibmps2-aix.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/ibmps2-aix.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
@@ -190,7 +190,7 @@
 #ifdef __GNUC__
 #define alloca(n) __builtin_alloca(n)
 #if __GNUC__ < 2
-#define LIB_STANDARD /usr/local/lib/gcc-gnulib -lbsd -lrts -lc 
+#define LIB_STANDARD /usr/local/lib/gcc-gnulib -lbsd -lrts -lc
 #endif
 /* -g fails to work, so it is omitted.  */
 /* tranle says that -fstrength-reduce does not help.  */
--- a/src/m/ibmrs6000.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/ibmrs6000.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="aix3-1"  */
 
--- a/src/m/ibmrt-aix.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/ibmrt-aix.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2-2"  */
 
--- a/src/m/ibmrt.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/ibmrt.h	Tue Feb 04 14:56:31 2003 +0000
@@ -1,4 +1,4 @@
-/* RTPC machine dependent defines 
+/* RTPC machine dependent defines
    Copyright (C) 1986, 2002 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-2"  */
 
--- a/src/m/ibms390.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/ibms390.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="<name of system .h file here, without the s- or .h>"  */
 
--- a/src/m/intel386.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/intel386.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
@@ -185,7 +185,7 @@
 #endif /* not USG5_4 */
 #endif /* LIB_STANDARD */
 
-#define NO_REMAP 
+#define NO_REMAP
 #define TEXT_START 0
 #endif /* USG */
 #endif /* not XENIX */
--- a/src/m/irist.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/irist.h	Tue Feb 04 14:56:31 2003 +0000
@@ -20,7 +20,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 NOTE-START
--- a/src/m/is386.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/is386.h	Tue Feb 04 14:56:31 2003 +0000
@@ -2,7 +2,7 @@
 
 #include "intel386.h"
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
--- a/src/m/isi-ov.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/isi-ov.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
--- a/src/m/masscomp.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/masscomp.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="rtu"  */
 
--- a/src/m/mega68.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/mega68.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-2"  */
 
--- a/src/m/mg1.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/mg1.h	Tue Feb 04 14:56:31 2003 +0000
@@ -20,7 +20,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
--- a/src/m/mips-siemens.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/mips-siemens.h	Tue Feb 04 14:56:31 2003 +0000
@@ -24,7 +24,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
@@ -140,10 +140,10 @@
 
 #ifdef __GNUC__
 #define C_DEBUG_SWITCH
-#define LD_SWITCH_MACHINE 
+#define LD_SWITCH_MACHINE
 #else
 #define C_DEBUG_SWITCH -DSYSV
-#define C_OPTIMIZE_SWITCH -DSYSV 
+#define C_OPTIMIZE_SWITCH -DSYSV
 #define LD_SWITCH_MACHINE
 #endif
 
--- a/src/m/mips.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/mips.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
--- a/src/m/mips4.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/mips4.h	Tue Feb 04 14:56:31 2003 +0000
@@ -2,7 +2,7 @@
 
 #include "mips.h"
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
--- a/src/m/news-risc.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/news-risc.h	Tue Feb 04 14:56:31 2003 +0000
@@ -18,7 +18,7 @@
 
 #else /* not NEWSOS5 */
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-3"  */
 
--- a/src/m/news.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/news.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
--- a/src/m/nh3000.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/nh3000.h	Tue Feb 04 14:56:31 2003 +0000
@@ -24,7 +24,7 @@
  * series Motorola 88100 and 88110 based machines.
  */
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="<name of system .h file here, without the s- or .h>"  */
 
--- a/src/m/nh4000.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/nh4000.h	Tue Feb 04 14:56:31 2003 +0000
@@ -23,7 +23,7 @@
  * series Motorola 88100 and 88110 based machines.
  */
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="<name of system .h file here, without the s- or .h>"  */
 
--- a/src/m/ns16000.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/ns16000.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
--- a/src/m/ns32000.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/ns32000.h	Tue Feb 04 14:56:31 2003 +0000
@@ -20,7 +20,7 @@
 
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2"  */
 
--- a/src/m/nu.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/nu.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2"  */
 
@@ -50,7 +50,7 @@
 
 /* Data type of load average, as read out of kmem.  */
 /* These are commented out since it does not really work in uniplus */
-  
+
 /* #define LOAD_AVE_TYPE long */
 
 /* Convert that into an integer that is 100 for a load average of 1.0  */
--- a/src/m/orion.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/orion.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-2"  */
 
--- a/src/m/orion105.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/orion105.h	Tue Feb 04 14:56:31 2003 +0000
@@ -20,7 +20,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-2"  */
 
--- a/src/m/plexus.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/plexus.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2"  */
 
@@ -88,7 +88,7 @@
 
 #undef NO_REMAP
 
-/* Use the following on ld so we can use the gnu crt0 
+/* Use the following on ld so we can use the gnu crt0
    The plexus ld looks for start                      */
 #define LD_SWITCH_MACHINE -e __start
 
--- a/src/m/pmax.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/pmax.h	Tue Feb 04 14:56:31 2003 +0000
@@ -2,9 +2,9 @@
 
 #include "mips.h"
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
-   USUAL-OPSYS="note"  
+   USUAL-OPSYS="note"
 
 NOTE-START
 The operating system would be either osf1, ultrix, or NetBSD.
--- a/src/m/powermac.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/powermac.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="darwin"  */
 
--- a/src/m/powerpcle.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/powerpcle.h	Tue Feb 04 14:56:31 2003 +0000
@@ -17,7 +17,7 @@
 along with GNU Emacs; see the file COPYING.  If not, write to
 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="Solaris2.5.1 Windows/NT AIX 4.1.2"
 */
--- a/src/m/pyramid.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/pyramid.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-2"  */
 
--- a/src/m/sequent-ptx.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/sequent-ptx.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="ptx"  */
 
@@ -95,7 +95,7 @@
 #endif
 /* #undef NO_REMAP */
 
-/* If a valid PTX executable could be dumped without NO_REMAP defined, 
+/* If a valid PTX executable could be dumped without NO_REMAP defined,
    here's a guess at some defines to make it work.  */
 #ifndef NO_REMAP
 
--- a/src/m/sequent.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/sequent.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,15 +19,15 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
-   USUAL-OPSYS="note"  
+   USUAL-OPSYS="note"
 
 NOTE-START
 Use -opsystem=bsd4-2, or -opsystem=bsd4-3 on newer systems.
 NOTE-END */
 
-/* NOTE: this file works for DYNIX release 2.0 
+/* NOTE: this file works for DYNIX release 2.0
 	  (not tested on 1.3) on NS32000's */
 
 /* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word
--- a/src/m/sparc.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/sparc.h	Tue Feb 04 14:56:31 2003 +0000
@@ -18,7 +18,7 @@
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
--- a/src/m/sps7.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/sps7.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2"  */
 
@@ -34,7 +34,7 @@
 #define m68000
 #endif
 
-#define sps7  
+#define sps7
 
 /* Use type int rather than a union, to represent Lisp_Object */
 
@@ -99,7 +99,7 @@
 /* Use -T32 for 68020, -T16 otherwise */
 
 #define C_SWITCH_MACHINE -T32
-  
+
 #define BROKEN_SIGIO
 
 /* Other than 68020 use ld16, as32, or undefine (defaults ld and as). */
--- a/src/m/sr2k.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/sr2k.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="hpux"  */
 
@@ -61,7 +61,7 @@
 
 /* The standard definitions of these macros would work ok,
    but these are faster because the constants are short. */
-   
+
 
 #define XUINT(a) (((unsigned)(a) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS)
 
--- a/src/m/stride.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/stride.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2"  */
 
--- a/src/m/sun1.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/sun1.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
--- a/src/m/sun2.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/sun2.h	Tue Feb 04 14:56:31 2003 +0000
@@ -21,7 +21,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
--- a/src/m/sun3-68881.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/sun3-68881.h	Tue Feb 04 14:56:31 2003 +0000
@@ -2,7 +2,7 @@
 
 #include "sun3.h"
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
--- a/src/m/sun3-fpa.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/sun3-fpa.h	Tue Feb 04 14:56:31 2003 +0000
@@ -2,7 +2,7 @@
 
 #include "sun3.h"
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
--- a/src/m/sun3-soft.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/sun3-soft.h	Tue Feb 04 14:56:31 2003 +0000
@@ -2,7 +2,7 @@
 
 #include "sun3.h"
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
--- a/src/m/sun3.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/sun3.h	Tue Feb 04 14:56:31 2003 +0000
@@ -7,7 +7,7 @@
 #define sun3
 #endif
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
--- a/src/m/sun386.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/sun386.h	Tue Feb 04 14:56:31 2003 +0000
@@ -21,7 +21,7 @@
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
@@ -47,7 +47,7 @@
 
 #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
 
-/* Underscores are not prepended to C symbols on this machine.  */ 
+/* Underscores are not prepended to C symbols on this machine.  */
 #undef LDAV_SYMBOL
 #define LDAV_SYMBOL "avenrun"
 
--- a/src/m/symmetry.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/symmetry.h	Tue Feb 04 14:56:31 2003 +0000
@@ -18,18 +18,18 @@
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
-/* CHANGE: [Eric H. Herrin II; eric@ms.uky.edu - 15 Sept 1988] 
- * Modified the sequent.h file for the Sequent Symmetry machine.   
- * Biggest change was to align the sections in the a.out to 4K 
+/* CHANGE: [Eric H. Herrin II; eric@ms.uky.edu - 15 Sept 1988]
+ * Modified the sequent.h file for the Sequent Symmetry machine.
+ * Biggest change was to align the sections in the a.out to 4K
  * boundaries (this is the page size).
  */
 
 
 /* NOTICE: this file works for DYNIX release 3.0.12 on Sequent Symmetry
  * (Intel 80386) machines.  Hasn't been tested on anything else.
- */ 
+ */
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-3"  */
 
--- a/src/m/tad68k.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/tad68k.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-3"  */
 
--- a/src/m/tahoe.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/tahoe.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
--- a/src/m/tandem-s2.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/tandem-s2.h	Tue Feb 04 14:56:31 2003 +0000
@@ -2,7 +2,7 @@
 
 #include "mips.h"
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-3"  */
 
--- a/src/m/targon31.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/targon31.h	Tue Feb 04 14:56:31 2003 +0000
@@ -1,4 +1,4 @@
-/* targon31 machine description file 
+/* targon31 machine description file
    Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2-2"  */
 
--- a/src/m/tek4300.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/tek4300.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-3"  */
 
--- a/src/m/tekxd88.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/tekxd88.h	Tue Feb 04 14:56:31 2003 +0000
@@ -48,7 +48,7 @@
 
 /* Use type int rather than a union, to represent Lisp_Object */
 /* This is desirable for most machines.  */
-#define NO_UNION_TYPE 
+#define NO_UNION_TYPE
 
 /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
    the 24-bit bit field into an int.  In other words, if bit fields
@@ -73,7 +73,7 @@
 
    Otherwise Emacs assumes that text space precedes data space,
    numerically.  */
-/* #define VIRT_ADDR_VARIES */ 
+/* #define VIRT_ADDR_VARIES */
 
 /* Define NO_REMAP if memory segmentation makes it not work well
    to change the boundary between the text section and data section
@@ -100,7 +100,7 @@
 #define HAVE_PTYS	/* XD88 SysV has PTYs. */
 #define SYSV_PTYS	/* Requires <termios.h> */
 
-#ifdef ghs  /* Stands for "Green Hills Software", defined only in /bin/cc */ 
+#ifdef ghs  /* Stands for "Green Hills Software", defined only in /bin/cc */
 /* -X18 means do not allocate programmer-defined local variables to a
    register unless they are declared register.  (Copied from perl-4.036
    Green Hills C hints file.  Might be needed for setjmp, I don't know.) */
--- a/src/m/template.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/template.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="<name of system .h file here, without the s- or .h>"  */
 
--- a/src/m/tower32.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/tower32.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2-2"  */
 
--- a/src/m/tower32v3.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/tower32v3.h	Tue Feb 04 14:56:31 2003 +0000
@@ -20,7 +20,7 @@
 
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-3"  */
 
--- a/src/m/ustation.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/ustation.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-3"  */
 
--- a/src/m/vax.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/vax.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="note"
 
--- a/src/m/wicat.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/wicat.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2"  */
 
--- a/src/m/windowsnt.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/windowsnt.h	Tue Feb 04 14:56:31 2003 +0000
@@ -19,7 +19,7 @@
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="<name of system .h file here, without the s- or .h>"  */
 
--- a/src/m/xps100.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/m/xps100.h	Tue Feb 04 14:56:31 2003 +0000
@@ -21,7 +21,7 @@
 Boston, MA 02111-1307, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2"  */
 
--- a/src/mac.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/mac.c	Tue Feb 04 14:56:31 2003 +0000
@@ -2770,7 +2770,7 @@
   if (!inhibit_window_system && rfds && FD_ISSET (0, rfds))
     return 1;
   else if (inhibit_window_system || noninteractive ||
-	   (timeout && (EMACS_SECS(*timeout)==0) && 
+	   (timeout && (EMACS_SECS(*timeout)==0) &&
 	    (EMACS_USECS(*timeout)==0)))
     return select(n, rfds, wfds, efds, timeout);
   else
@@ -2780,22 +2780,22 @@
       EMACS_GET_TIME (end_time);
       if (timeout)
 	EMACS_ADD_TIME (end_time, end_time, *timeout);
-      
+
       do
 	{
 	  int r;
 	  EMACS_TIME one_second;
 	  SELECT_TYPE orfds;
-	  
+
 	  FD_ZERO (&orfds);
 	  if (rfds)
 	    {
 	      orfds = *rfds;
 	    }
-	  
+
 	  EMACS_SET_SECS (one_second, 1);
 	  EMACS_SET_USECS (one_second, 0);
-	  
+
 	  if (timeout && EMACS_TIME_LT(*timeout, one_second))
 	    one_second = *timeout;
 
@@ -2806,12 +2806,12 @@
 	    }
 
 	  mac_check_for_quit_char();
-	  
+
 	  EMACS_GET_TIME (now);
 	  EMACS_SUB_TIME (now, end_time, now);
 	}
       while (!timeout || !EMACS_TIME_NEG_P (now));
-      
+
       return 0;
     }
 }
@@ -2835,7 +2835,7 @@
       if (sys_select (fds+1, &rfds, 0, 0, NULL) < 0)
 	return -1;
     }
-      
+
   return read (fds, buf, nbyte);
 }
 
--- a/src/macmenu.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/macmenu.c	Tue Feb 04 14:56:31 2003 +0000
@@ -120,7 +120,7 @@
   char*		name;
   /* value (meaning depend on widget type) */
   char*		value;
-  /* keyboard equivalent. no implications for XtTranslations */ 
+  /* keyboard equivalent. no implications for XtTranslations */
   char*		key;
   /* Help string or nil if none.
      GC finds this string through the frame's menu_bar_vector
@@ -174,7 +174,7 @@
 #define TRUE 1
 #define FALSE 0
 #endif /* no TRUE */
-  
+
 Lisp_Object Vmenu_updating_frame;
 
 Lisp_Object Qdebug_on_next_call;
@@ -507,7 +507,7 @@
 
 /* This is a subroutine of single_keymap_panes that handles one
    keymap entry.
-   KEY is a key in a keymap and ITEM is its binding. 
+   KEY is a key in a keymap and ITEM is its binding.
    PENDING_MAPS_PTR points to a list of keymaps waiting to be made into
    separate panes.
    If NOTREAL is nonzero, only check for equivalent key bindings, don't
@@ -523,7 +523,7 @@
   Lisp_Object map, item_string, enabled;
   struct gcpro gcpro1, gcpro2;
   int res;
-  
+
   /* Parse the menu item and leave the result in item_properties.  */
   GCPRO2 (key, item);
   res = parse_menu_item (item, notreal, 0);
@@ -532,7 +532,7 @@
     return;			/* Not a menu item.  */
 
   map = XVECTOR (item_properties)->contents[ITEM_PROPERTY_MAP];
-  
+
   if (notreal)
     {
       /* We don't want to make a menu, just traverse the keymaps to
@@ -543,7 +543,7 @@
     }
 
   enabled = XVECTOR (item_properties)->contents[ITEM_PROPERTY_ENABLE];
-  item_string = XVECTOR (item_properties)->contents[ITEM_PROPERTY_NAME]; 
+  item_string = XVECTOR (item_properties)->contents[ITEM_PROPERTY_NAME];
 
   if (!NILP (map) && SREF (item_string, 0) == '@')
     {
@@ -818,7 +818,7 @@
 
       keymaps = 0;
     }
-  
+
   if (NILP (position))
     {
       discard_menu_items ();
@@ -971,7 +971,7 @@
    But first we recompute the menu bar contents (the whole tree).
 
    This way we can safely execute Lisp code.  */
-   
+
 void
 x_activate_menubar (f)
      FRAME_PTR f;
@@ -1182,7 +1182,7 @@
   first_wv = wv;
   save_wv = 0;
   prev_wv = 0;
- 
+
   /* Loop over all panes and items made during this call
      and construct a tree of widget_value objects.
      Ignore the panes and items made by previous calls to
@@ -1286,7 +1286,7 @@
 #endif /* not HAVE_MULTILINGUAL_MENU */
 
 	  wv = xmalloc_widget_value ();
-	  if (prev_wv) 
+	  if (prev_wv)
 	    prev_wv->next = wv;
 	  else
 	    save_wv->contents = wv;
@@ -1432,7 +1432,7 @@
 	    break;
 
 	  wv = single_submenu (key, string, maps);
-	  if (prev_wv) 
+	  if (prev_wv)
 	    prev_wv->next = wv;
 	  else
 	    first_wv->contents = wv;
@@ -1508,7 +1508,7 @@
 	     This value just has to be different from small integers.  */
 	  wv->call_data = (void *) (EMACS_INT) (-1);
 
-	  if (prev_wv) 
+	  if (prev_wv)
 	    prev_wv->next = wv;
 	  else
 	    first_wv->contents = wv;
@@ -1537,7 +1537,7 @@
 	DisposeMenu (menu);
 	menu = GetMenuHandle (++i);
       }
-    
+
     i = MIN_SUBMENU_ID;
     menu = GetMenuHandle (i);
     while (menu != NULL)
@@ -1549,9 +1549,9 @@
   }
 
   fill_menubar (first_wv->contents);
-  
+
   DrawMenuBar ();
-  
+
   free_menubar_widget_value_tree (first_wv);
 
   UNBLOCK_INPUT;
@@ -1640,7 +1640,7 @@
   wv->help = Qnil;
   first_wv = wv;
   first_pane = 1;
- 
+
   /* Loop over all panes and items, filling in the tree.  */
   i = 0;
   while (i < menu_items_used)
@@ -1743,9 +1743,9 @@
 #endif /* not HAVE_MULTILINGUAL_MENU */
 
 	  wv = xmalloc_widget_value ();
-	  if (prev_wv) 
+	  if (prev_wv)
 	    prev_wv->next = wv;
-	  else 
+	  else
 	    save_wv->contents = wv;
 	  wv->name = (char *) SDATA (item_name);
 	  if (!NILP (descrip))
@@ -1830,14 +1830,14 @@
   menu_item_selection = LoWord (menu_item_choice);
 
   /* Get the refcon to find the correct item*/
-  if (menu_item_selection) 
+  if (menu_item_selection)
     {
       menu = GetMenuHandle (HiWord (menu_item_choice));
       if (menu) {
 	GetMenuItemRefCon (menu, menu_item_selection, &refcon);
       }
     }
-  
+
 #if 0
   /* Clean up extraneous mouse events which might have been generated
      during the call.  */
@@ -1944,13 +1944,13 @@
   SInt16 part_code;
   int control_part_code;
   Point mouse;
-            
+
   dialog_name = wv->name;
   nb_buttons = dialog_name[1] - '0';
   left_count = nb_buttons - (dialog_name[4] - '0');
   button_labels = (char **) alloca (sizeof (char *) * nb_buttons);
   ref_cons = (UInt32 *) alloca (sizeof (UInt32) * nb_buttons);
-  
+
   wv = wv->contents;
   prompt = (char *) alloca (strlen (wv->value) + 1);
   strcpy (prompt, wv->value);
@@ -1974,7 +1974,7 @@
 #else
   SetPort (window_ptr);
 #endif
-  
+
   TextFont (0);
   /* Left and right margins in the dialog are 13 pixels each.*/
   dialog_width = 14;
@@ -1996,7 +1996,7 @@
 #else
   SetPort (window_ptr);
 #endif
-  
+
   TextFont (0);
 
   MoveTo (13, 29);
@@ -2034,7 +2034,7 @@
     }
 
   DisposeWindow (window_ptr);
-  
+
   return i;
 }
 
@@ -2076,7 +2076,7 @@
     pane_name = XVECTOR (menu_items)->contents[MENU_ITEMS_PANE_NAME];
     prefix = XVECTOR (menu_items)->contents[MENU_ITEMS_PANE_PREFIX];
     pane_string = (NILP (pane_name)
-		   ? "" : (char *) SDATA (pane_name));  
+		   ? "" : (char *) SDATA (pane_name));
     prev_wv = xmalloc_widget_value ();
     prev_wv->value = pane_string;
     if (keymaps && !NILP (prefix))
@@ -2085,12 +2085,12 @@
     prev_wv->name = "message";
     prev_wv->help = Qnil;
     first_wv = prev_wv;
- 
+
     /* Loop over all panes and items, filling in the tree.  */
     i = MENU_ITEMS_PANE_LENGTH;
     while (i < menu_items_used)
       {
-	
+
 	/* Create a new item within current pane.  */
 	Lisp_Object item_name, enable, descrip, help;
 
@@ -2099,7 +2099,7 @@
 	descrip
 	  = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_EQUIV_KEY];
         help = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_HELP];
-	
+
 	if (NILP (item_name))
 	  {
 	    free_menubar_widget_value_tree (first_wv);
@@ -2240,10 +2240,10 @@
 
   if (name_is_separator (wv->name))
     AppendMenu (menu, "\p-");
-  else 
+  else
     {
       AppendMenu (menu, "\pX");
-      
+
 #if TARGET_API_MAC_CARBON
       pos = CountMenuItems (menu);
 #else
@@ -2340,7 +2340,7 @@
     {
       MenuHandle menu;
       Str255 title;
-        
+
       strncpy (title, wv->name, 255);
       title[255] = 0;
       c2pstr (title);
@@ -2348,7 +2348,7 @@
 
       if (wv->contents)
         fill_menu (menu, wv->contents);
-      
+
       InsertMenu (menu, 0);
     }
 }
--- a/src/macros.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/macros.c	Tue Feb 04 14:56:31 2003 +0000
@@ -62,7 +62,7 @@
 Use \\[name-last-kbd-macro] to give it a permanent name.
 Non-nil arg (prefix arg) means append to last macro defined;
 this begins by re-executing that macro as if you typed it again.
-If optional second arg, NO-EXEC, is non-nil, do not re-execute last 
+If optional second arg, NO-EXEC, is non-nil, do not re-execute last
 macro before appending to it. */)
      (append, no_exec)
      Lisp_Object append, no_exec;
@@ -127,7 +127,7 @@
       message ("Appending to kbd macro...");
     }
   current_kboard->defining_kbd_macro = Qt;
-  
+
   return Qnil;
 }
 
@@ -155,7 +155,7 @@
 counting the definition just completed as the first repetition.
 An argument of zero means repeat until error.
 
-In Lisp, optional second arg LOOPFUNC may be a function that is called prior to 
+In Lisp, optional second arg LOOPFUNC may be a function that is called prior to
 each iteration of the macro.  Iteration stops if LOOPFUNC returns nil.  */)
      (repeat, loopfunc)
      Lisp_Object repeat, loopfunc;
@@ -198,7 +198,7 @@
       if (kb->kbd_macro_ptr - kb->kbd_macro_buffer == kb->kbd_macro_bufsize)
 	{
 	  int ptr_offset, end_offset, nbytes;
-	  
+
 	  ptr_offset = kb->kbd_macro_ptr - kb->kbd_macro_buffer;
 	  end_offset = kb->kbd_macro_end - kb->kbd_macro_buffer;
 	  kb->kbd_macro_bufsize *= 2;
@@ -208,7 +208,7 @@
 	  kb->kbd_macro_ptr = kb->kbd_macro_buffer + ptr_offset;
 	  kb->kbd_macro_end = kb->kbd_macro_buffer + end_offset;
 	}
-      
+
       *kb->kbd_macro_ptr++ = c;
     }
 }
@@ -248,9 +248,9 @@
 A prefix argument serves as a repeat count.  Zero means repeat until error.
 
 To make a macro permanent so you can call it even after
-defining others, use \\[name-last-kbd-macro].  
+defining others, use \\[name-last-kbd-macro].
 
-In Lisp, optional second arg LOOPFUNC may be a function that is called prior to 
+In Lisp, optional second arg LOOPFUNC may be a function that is called prior to
 each iteration of the macro.  Iteration stops if LOOPFUNC returns nil.  */)
      (prefix, loopfunc)
      Lisp_Object prefix, loopfunc;
@@ -295,9 +295,9 @@
 DEFUN ("execute-kbd-macro", Fexecute_kbd_macro, Sexecute_kbd_macro, 1, 3, 0,
        doc: /* Execute MACRO as string of editor command characters.
 If MACRO is a symbol, its function definition is used.
-COUNT is a repeat count, or nil for once, or 0 for infinite loop. 
+COUNT is a repeat count, or nil for once, or 0 for infinite loop.
 
-Optional third arg LOOPFUNC may be a function that is called prior to 
+Optional third arg LOOPFUNC may be a function that is called prior to
 each iteration of the macro.  Iteration stops if LOOPFUNC returns nil.  */)
      (macro, count, loopfunc)
      Lisp_Object macro, count, loopfunc;
--- a/src/macterm.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/macterm.c	Tue Feb 04 14:56:31 2003 +0000
@@ -202,7 +202,7 @@
 
 /* If a string, XTread_socket generates an event to display that string.
    (The display is done in read_char.)  */
-   
+
 static Lisp_Object help_echo;
 static Lisp_Object help_echo_window;
 static Lisp_Object help_echo_object;
@@ -259,7 +259,7 @@
 
 struct frame *pending_autoraise_frame;
 
-/* Nominal cursor position -- where to draw output.  
+/* Nominal cursor position -- where to draw output.
    HPOS and VPOS are window relative glyph matrix coordinates.
    X and Y are window relative pixel coordinates.  */
 
@@ -456,7 +456,7 @@
 static void x_update_window_cursor P_ ((struct window *, int));
 static void x_erase_phys_cursor P_ ((struct window *));
 void x_display_and_set_cursor P_ ((struct window *, int, int, int, int, int));
-static void x_draw_fringe_bitmap P_ ((struct window *, struct glyph_row *, 
+static void x_draw_fringe_bitmap P_ ((struct window *, struct glyph_row *,
 				      enum fringe_bitmap_type, int left_p));
 static void x_clip_to_row P_ ((struct window *, struct glyph_row *,
 			       GC, int));
@@ -505,7 +505,7 @@
      Pixmap pixmap;
 {
   PixMap *p = (PixMap *) pixmap;
-  
+
   xfree (p->baseAddr);
   xfree (p);
 }
@@ -518,12 +518,12 @@
 mac_set_forecolor (unsigned long color)
 {
   RGBColor fg_color;
-						
+
   fg_color.red = RED_FROM_ULONG (color) * 256;
   fg_color.green = GREEN_FROM_ULONG (color) * 256;
   fg_color.blue = BLUE_FROM_ULONG (color) * 256;
-			
-  RGBForeColor (&fg_color);  
+
+  RGBForeColor (&fg_color);
 }
 
 
@@ -534,12 +534,12 @@
 mac_set_backcolor (unsigned long color)
 {
   RGBColor bg_color;
-						
+
   bg_color.red = RED_FROM_ULONG (color) * 256;
   bg_color.green = GREEN_FROM_ULONG (color) * 256;
   bg_color.blue = BLUE_FROM_ULONG (color) * 256;
-			
-  RGBBackColor (&bg_color);  
+
+  RGBBackColor (&bg_color);
 }
 
 /* Set foreground and background color for subsequent QuickDraw
@@ -626,7 +626,7 @@
 #if TARGET_API_MAC_CARBON
   {
     Rect r;
-    
+
     GetWindowPortBounds (w, &r);
     EraseRect (&r);
   }
@@ -667,7 +667,7 @@
     UnlockPortBits (GetWindowPort (w));
   }
 #else /* not TARGET_API_MAC_CARBON */
-  CopyBits (bitmap, &(w->portBits), &(bitmap->bounds), &r, srcCopy, 0);	
+  CopyBits (bitmap, &(w->portBits), &(bitmap->bounds), &r, srcCopy, 0);
 #endif /* not TARGET_API_MAC_CARBON */
 }
 
@@ -698,7 +698,7 @@
      WindowPtr w;
 {
   Rect r;
-  
+
 #if TARGET_API_MAC_CARBON
   SetPort (GetWindowPort (w));
 #else
@@ -957,12 +957,12 @@
 local_to_global_coord (short *h, short *v)
 {
   Point p;
-  
+
   p.h = *h;
   p.v = *v;
-  
+
   LocalToGlobal (&p);
-  
+
   *h = p.h;
   *v = p.v;
 }
@@ -1023,7 +1023,7 @@
   ForeColor (blackColor);
   BackColor (whiteColor);
   CopyBits (&(w->portBits), &(w->portBits), &src_r, &dest_r, srcCopy, 0);
-  
+
   mac_set_colors (gc);
 #endif
 #endif /* not TARGET_API_MAC_CARBON */
@@ -1033,7 +1033,7 @@
 /* Mac replacement for XCopyArea: dest must be Pixmap.  */
 
 static void
-mac_copy_area_to_pixmap (display, src, dest, gc, src_x, src_y, width, height, 
+mac_copy_area_to_pixmap (display, src, dest, gc, src_x, src_y, width, height,
                      dest_x, dest_y)
      Display *display;
      Pixmap src;
@@ -1050,7 +1050,7 @@
   int h = src_bottom - src_y;
 
   mac_set_colors (gc);
-    
+
   SetRect (&src_r, src_x, src_y, src_right, src_bottom);
   SetRect (&dest_r, dest_x, dest_y, dest_x + w, dest_y + h);
 
@@ -1160,7 +1160,7 @@
 #if TARGET_API_MAC_CARBON
 #define XFlush(DISPLAY) QDFlushPortBuffer (GetQDGlobalsThePort (), NULL)
 #else
-#define XFlush(DISPLAY)	(void) 0 
+#define XFlush(DISPLAY)	(void) 0
 #endif
 
 /* Flush display of frame F, or of all frames if F is null.  */
@@ -1200,7 +1200,7 @@
 /***********************************************************************
 		    Starting and ending an update
  ***********************************************************************/
-									
+
 /* Start an update of frame F.  This function is installed as a hook
    for update_begin, i.e. it is called when update_begin is called.
    This function is called prior to calls to x_update_window_begin for
@@ -1224,7 +1224,7 @@
 {
   struct frame *f = XFRAME (WINDOW_FRAME (w));
   struct mac_display_info *display_info = FRAME_MAC_DISPLAY_INFO (f);
-  
+
   updated_window = w;
   set_output_cursor (&w->cursor);
 
@@ -1246,7 +1246,7 @@
 	 flag set.  So, rows containing mouse-face glyphs are never
 	 scrolled, and we don't have to switch the mouse highlight off
 	 here to prevent it from being scrolled.  */
-      
+
       /* Can we tell that this update does not affect the window
 	 where the mouse highlight is?  If so, no need to turn off.
 	 Likewise, don't do anything if the frame is garbaged;
@@ -1279,7 +1279,7 @@
      struct window *w;
 {
   struct frame *f = XFRAME (WINDOW_FRAME (w));
-  
+
   /* Redraw borders between horizontally adjacent windows.  Don't
      do it for frames with vertical scroll bars because either the
      right scroll bar of a window, or the left scroll bar of its
@@ -1292,13 +1292,13 @@
       window_box_edges (w, -1, &x0, &y0, &x1, &y1);
       x1 += FRAME_X_RIGHT_FRINGE_WIDTH (f);
       y1 -= 1;
-      
-      XDrawLine (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), 
+
+      XDrawLine (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
 		 f->output_data.mac->normal_gc, x1, y0, x1, y1);
     }
 }
 
-   
+
 /* End update of window W (which is equal to updated_window).
 
    Draw vertical borders between horizontally adjacent windows, and
@@ -1328,7 +1328,7 @@
 	x_display_and_set_cursor (w, 1, output_cursor.hpos,
 				  output_cursor.vpos,
 				  output_cursor.x, output_cursor.y);
-      
+
       x_draw_vertical_border (w);
       UNBLOCK_INPUT;
     }
@@ -1371,7 +1371,7 @@
 #endif
 
   mac_set_backcolor (FRAME_BACKGROUND_PIXEL (f));
-  
+
   /* Mouse highlight may be displayed again.  */
   FRAME_MAC_DISPLAY_INFO (f)->mouse_face_defer = 0;
 
@@ -1424,7 +1424,7 @@
   int width, height;
 
   xassert (w);
-  
+
   if (!desired_row->mode_line_p && !w->pseudo_window_p)
     {
       BLOCK_INPUT;
@@ -1459,7 +1459,7 @@
       XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
 		  f->output_data.mac->pixel_width - width, y,
 		  width, height, 0);
-      
+
       UNBLOCK_INPUT;
     }
 }
@@ -1506,13 +1506,13 @@
       h = left_height;
       bits = left_bits;
       break;
-      
+
     case OVERLAY_ARROW_BITMAP:
       wd = ov_width;
       h = ov_height;
       bits = ov_bits;
       break;
-      
+
     case RIGHT_TRUNCATION_BITMAP:
       wd = right_width;
       h = right_height;
@@ -1524,7 +1524,7 @@
       h = continued_height;
       bits = continued_bits;
       break;
-      
+
     case CONTINUATION_LINE_BITMAP:
       wd = continuation_width;
       h = continuation_height;
@@ -1731,7 +1731,7 @@
 
    HPOS and VPOS are column/row positions in a window glyph matrix.  X
    and Y are window text area relative pixel positions.
-   
+
    If this is done during an update, updated_window will contain the
    window that is being updated and the position is the future output
    cursor position for that window.  If updated_window is null, use
@@ -1905,9 +1905,9 @@
 	  ccl->reg[1] = char2b->byte1;
 	  ccl->reg[2] = char2b->byte2;
 	}
-      
+
       ccl_driver (ccl, NULL, NULL, 0, 0, NULL);
-      
+
       /* We assume that MSBs are appropriately set/reset by CCL
 	 program.  */
       if (font->max_byte1 == 0)	/* 1-byte font */
@@ -1920,11 +1920,11 @@
       /* Fixed encoding scheme.  See fontset.h for the meaning of the
 	 encoding numbers.  */
       int enc = font_info->encoding[charset];
-      
+
       if ((enc == 1 || enc == 2)
 	  && CHARSET_DIMENSION (charset) == 2)
 	char2b->byte1 |= 0x80;
-      
+
       if (enc == 1 || enc == 3)
 	char2b->byte2 |= 0x80;
 
@@ -1972,7 +1972,7 @@
   else
     {
       int c1, c2, charset;
-      
+
       /* Split characters into bytes.  If c2 is -1 afterwards, C is
 	 really a one-byte character so that byte1 is zero.  */
       SPLIT_CHAR (c, charset, c1, c2);
@@ -1994,7 +1994,7 @@
   /* Make sure X resources of the face are allocated.  */
   xassert (face != NULL);
   PREPARE_FACE_FOR_DISPLAY (f, face);
-  
+
   return face;
 }
 
@@ -2035,7 +2035,7 @@
   else
     {
       int c1, c2, charset;
-      
+
       /* Split characters into bytes.  If c2 is -1 afterwards, C is
 	 really a one-byte character so that byte1 is zero.  */
       SPLIT_CHAR (glyph->u.ch, charset, c1, c2);
@@ -2066,7 +2066,7 @@
 }
 
 
-/* Store one glyph for IT->char_to_display in IT->glyph_row.  
+/* Store one glyph for IT->char_to_display in IT->glyph_row.
    Called from x_produce_glyphs when IT->glyph_row is non-null.  */
 
 static INLINE void
@@ -2075,10 +2075,10 @@
 {
   struct glyph *glyph;
   enum glyph_row_area area = it->area;
-  
+
   xassert (it->glyph_row);
   xassert (it->char_to_display != '\n' && it->char_to_display != '\t');
-  
+
   glyph = it->glyph_row->glyphs[area] + it->glyph_row->used[area];
   if (glyph < it->glyph_row->glyphs[area + 1])
     {
@@ -2100,7 +2100,7 @@
     }
 }
 
-/* Store one glyph for the composition IT->cmp_id in IT->glyph_row.  
+/* Store one glyph for the composition IT->cmp_id in IT->glyph_row.
    Called from x_produce_glyphs when IT->glyph_row is non-null.  */
 
 static INLINE void
@@ -2109,9 +2109,9 @@
 {
   struct glyph *glyph;
   enum glyph_row_area area = it->area;
-  
+
   xassert (it->glyph_row);
-  
+
   glyph = it->glyph_row->glyphs[area] + it->glyph_row->used[area];
   if (glyph < it->glyph_row->glyphs[area + 1])
     {
@@ -2181,7 +2181,7 @@
   it->pixel_width = img->width + 2 * img->hmargin;
 
   it->nglyphs = 1;
-  
+
   if (face->box != FACE_NO_BOX)
     {
       if (face->box_line_width > 0)
@@ -2189,7 +2189,7 @@
 	  it->ascent += face->box_line_width;
 	  it->descent += face->box_line_width;
 	}
-      
+
       if (it->start_of_box_run_p)
 	it->pixel_width += abs (face->box_line_width);
       if (it->end_of_box_run_p)
@@ -2197,12 +2197,12 @@
     }
 
   take_vertical_position_into_account (it);
-  
+
   if (it->glyph_row)
     {
       struct glyph *glyph;
       enum glyph_row_area area = it->area;
-      
+
       glyph = it->glyph_row->glyphs[area] + it->glyph_row->used[area];
       if (glyph < it->glyph_row->glyphs[area + 1])
 	{
@@ -2226,10 +2226,10 @@
 
 
 /* Append a stretch glyph to IT->glyph_row.  OBJECT is the source
-   of the glyph, WIDTH and HEIGHT are the width and height of the 
-   stretch.  ASCENT is the percentage/100 of HEIGHT to use for the 
+   of the glyph, WIDTH and HEIGHT are the width and height of the
+   stretch.  ASCENT is the percentage/100 of HEIGHT to use for the
    ascent of the glyph (0 <= ASCENT <= 1).  */
-  
+
 static void
 x_append_stretch_glyph (it, object, width, height, ascent)
      struct it *it;
@@ -2241,7 +2241,7 @@
   enum glyph_row_area area = it->area;
 
   xassert (ascent >= 0 && ascent <= 1);
-  
+
   glyph = it->glyph_row->glyphs[area] + it->glyph_row->used[area];
   if (glyph < it->glyph_row->glyphs[area + 1])
     {
@@ -2270,7 +2270,7 @@
    being recognized:
 
    1. `:width WIDTH' specifies that the space should be WIDTH *
-   canonical char width wide.  WIDTH may be an integer or floating 
+   canonical char width wide.  WIDTH may be an integer or floating
    point number.
 
    2. `:relative-width FACTOR' specifies that the width of the stretch
@@ -2280,7 +2280,7 @@
    3. `:align-to HPOS' specifies that the space should be wide enough
    to reach HPOS, a value in canonical character units.
 
-   Exactly one of the above pairs must be present.  
+   Exactly one of the above pairs must be present.
 
    4. `:height HEIGHT' specifies that the height of the stretch produced
    should be HEIGHT, measured in canonical character units.
@@ -2318,7 +2318,7 @@
   XFontStruct *font = face->font ? face->font : FRAME_FONT (it->f);
 
   PREPARE_FACE_FOR_DISPLAY (it->f, face);
-  
+
   /* List should start with `space'.  */
   xassert (CONSP (it->object) && EQ (XCAR (it->object), Qspace));
   plist = XCDR (it->object);
@@ -2336,7 +2336,7 @@
 	 property.  */
       struct it it2;
       unsigned char *p = BYTE_POS_ADDR (IT_BYTEPOS (*it));
-      
+
       it2 = *it;
       if (it->multibyte_p)
 	{
@@ -2358,7 +2358,7 @@
   else
     /* Nothing specified -> width defaults to canonical char width.  */
     width = CANON_X_UNIT (it->f);
-  
+
   /* Compute height.  */
   if (prop = Fplist_get (plist, QCheight),
       NUMVAL (prop) > 0)
@@ -2369,7 +2369,7 @@
   else
     height = FONT_HEIGHT (font);
 
-  /* Compute percentage of height used for ascent.  If 
+  /* Compute percentage of height used for ascent.  If
      `:ascent ASCENT' is present and valid, use that.  Otherwise,
      derive the ascent from the font in use.  */
   if (prop = Fplist_get (plist, QCascent),
@@ -2403,13 +2403,13 @@
 	  it->ascent += face->box_line_width;
 	  it->descent += face->box_line_width;
 	}
-      
+
       if (it->start_of_box_run_p)
 	it->pixel_width += abs (face->box_line_width);
       if (it->end_of_box_run_p)
 	it->pixel_width += abs (face->box_line_width);
     }
-  
+
   take_vertical_position_into_account (it);
 }
 
@@ -2501,7 +2501,7 @@
 	      face = FACE_FROM_ID (it->f, it->face_id);
 	    }
         }
-      
+
       /* Get font to use.  Encode IT->char_to_display.  */
       x_get_char_face_and_encoding (it->f, it->char_to_display,
                                     it->face_id, &char2b,
@@ -2549,7 +2549,7 @@
               it->phys_descent = FONT_DESCENT (font) - boff;
               it->pixel_width = FONT_WIDTH (font);
             }
-          
+
 	  /* If this is a space inside a region of text with
 	     `space-width' property, change its width.  */
 	  stretched_p = it->char_to_display == ' ' && !NILP (it->space_width);
@@ -2562,7 +2562,7 @@
 	  if (face->box != FACE_NO_BOX)
 	    {
 	      int thick = face->box_line_width;
-	      
+
 	      if (thick > 0)
 		{
 		  it->ascent += thick;
@@ -2570,7 +2570,7 @@
 		}
 	      else
 		thick = -thick;
-	      
+
 	      if (it->start_of_box_run_p)
 		it->pixel_width += thick;
 	      if (it->end_of_box_run_p)
@@ -2583,7 +2583,7 @@
 	    it->ascent += 2;
 
 	  take_vertical_position_into_account (it);
-  
+
 	  /* If we have to actually produce glyphs, do it.  */
 	  if (it->glyph_row)
 	    {
@@ -2593,7 +2593,7 @@
 		     into a stretch glyph.  */
 		  double ascent = (double) FONT_BASE (font)
                                 / FONT_HEIGHT (font);
-		  x_append_stretch_glyph (it, it->object, it->pixel_width, 
+		  x_append_stretch_glyph (it, it->object, it->pixel_width,
 					  it->ascent + it->descent, ascent);
 		}
 	      else
@@ -2613,7 +2613,7 @@
 	  it->nglyphs = 0;
 	  it->ascent = it->phys_ascent = FONT_BASE (font) + boff;
 	  it->descent = it->phys_descent = FONT_DESCENT (font) - boff;
-      
+
 	  if (face->box != FACE_NO_BOX
 	      && face->box_line_width > 0)
 	    {
@@ -2626,7 +2626,7 @@
 	  int tab_width = it->tab_width * CANON_X_UNIT (it->f);
 	  int x = it->current_x + it->continuation_lines_width;
 	  int next_tab_x = ((1 + x + tab_width - 1) / tab_width) * tab_width;
-      
+
 	  /* If the distance from the current position to the next tab
 	     stop is less than a canonical character width, use the
 	     tab stop after that.  */
@@ -2637,15 +2637,15 @@
 	  it->nglyphs = 1;
 	  it->ascent = it->phys_ascent = FONT_BASE (font) + boff;
 	  it->descent = it->phys_descent = FONT_DESCENT (font) - boff;
-	  
+
 	  if (it->glyph_row)
 	    {
 	      double ascent = (double) it->ascent / (it->ascent + it->descent);
-	      x_append_stretch_glyph (it, it->object, it->pixel_width, 
+	      x_append_stretch_glyph (it, it->object, it->pixel_width,
 				      it->ascent + it->descent, ascent);
 	    }
 	}
-      else 
+      else
 	{
 	  /* A multi-byte character.  Assume that the display width of the
 	     character is the width of the character multiplied by the
@@ -2691,20 +2691,20 @@
 		}
 	      else
 		thick = - thick;
-	  
+
 	      if (it->start_of_box_run_p)
 		it->pixel_width += thick;
 	      if (it->end_of_box_run_p)
 		it->pixel_width += thick;
 	    }
-  
+
 	  /* If face has an overline, add the height of the overline
 	     (1 pixel) and a 1 pixel margin to the character height.  */
 	  if (face->overline_p)
 	    it->ascent += 2;
 
 	  take_vertical_position_into_account (it);
-  
+
 	  if (it->glyph_row)
 	    x_append_glyph (it);
 	}
@@ -2798,12 +2798,12 @@
 	      ascent = FONT_BASE (font);
 	      descent = FONT_DESCENT (font);
 	    }
-	  
+
 	  rightmost = width;
 	  lowest = - descent + boff;
 	  highest = ascent + boff;
 	  leftmost = 0;
-	  
+
 	  if (font_info
 	      && font_info->default_ascent
 	      && CHAR_TABLE_P (Vuse_default_ascent)
@@ -2964,20 +2964,20 @@
 	    }
 	  else
 	    thick = - thick;
-	  
+
 	  if (it->start_of_box_run_p)
 	    it->pixel_width += thick;
 	  if (it->end_of_box_run_p)
 	    it->pixel_width += thick;
 	}
-  
+
       /* If face has an overline, add the height of the overline
 	 (1 pixel) and a 1 pixel margin to the character height.  */
       if (face->overline_p)
 	it->ascent += 2;
 
       take_vertical_position_into_account (it);
-  
+
       if (it->glyph_row)
 	x_append_composite_glyph (it);
     }
@@ -3024,7 +3024,7 @@
 	      height += 2 * face->box_line_width;
           }
       }
-  
+
   return height;
 }
 
@@ -3194,7 +3194,7 @@
 static void x_init_glyph_string P_ ((struct glyph_string *,
 					XChar2b *, struct window *,
 					struct glyph_row *,
-					enum glyph_row_area, int, 
+					enum glyph_row_area, int,
 					enum draw_glyphs_face));
 static int x_draw_glyphs P_ ((struct window *, int , struct glyph_row *,
 			      enum glyph_row_area, int, int,
@@ -3240,7 +3240,7 @@
 static void x_check_font P_ ((struct frame *, XFontStruct *));
 #endif
 
-     
+
 /* Append the list of glyph strings with head H and tail T to the list
    with head *HEAD and tail *TAIL.  Set *HEAD and *TAIL to the result.  */
 
@@ -3349,11 +3349,11 @@
 
 
 /* Set up S->gc of glyph string S for drawing text in mouse face.  */
-   
+
 static void
 x_set_mouse_face_gc (s)
      struct glyph_string *s;
-{     
+{
   int face_id;
   struct face *face;
 
@@ -3362,7 +3362,7 @@
   face = FACE_FROM_ID (s->f, face_id);
   if (face == NULL)
     face = FACE_FROM_ID (s->f, MOUSE_FACE_ID);
-  
+
   if (s->first_glyph->type == CHAR_GLYPH)
     face_id = FACE_FOR_CHAR (s->f, face, s->first_glyph->u.ch);
   else
@@ -3379,20 +3379,20 @@
 	 but font FONT.  */
       XGCValues xgcv;
       unsigned long mask;
-      
+
       xgcv.background = s->face->background;
       xgcv.foreground = s->face->foreground;
       IF_DEBUG (x_check_font (s->f, s->font));
       xgcv.font = s->font;
       mask = GCForeground | GCBackground | GCFont;
-      
+
       if (FRAME_MAC_DISPLAY_INFO (s->f)->scratch_cursor_gc)
 	XChangeGC (s->display, FRAME_MAC_DISPLAY_INFO (s->f)->scratch_cursor_gc,
 		   mask, &xgcv);
       else
 	FRAME_MAC_DISPLAY_INFO (s->f)->scratch_cursor_gc
 	  = XCreateGC (s->display, s->window, mask, &xgcv);
-      
+
       s->gc = FRAME_MAC_DISPLAY_INFO (s->f)->scratch_cursor_gc;
     }
 
@@ -3407,7 +3407,7 @@
 static INLINE void
 x_set_mode_line_face_gc (s)
      struct glyph_string *s;
-{     
+{
   s->gc = s->face->gc;
 }
 
@@ -3421,7 +3421,7 @@
      struct glyph_string *s;
 {
   PREPARE_FACE_FOR_DISPLAY (s->f, s->face);
-  
+
   if (s->hl == DRAW_NORMAL_TEXT)
     {
       s->gc = s->face->gc;
@@ -3472,7 +3472,7 @@
     {
       /* Draw full-width.  X coordinates are relative to S->w->left.  */
       int canon_x = CANON_X_UNIT (s->f);
-      
+
       r->left = WINDOW_LEFT_MARGIN (s->w) * canon_x;
       r_width = XFASTINT (s->w->width) * canon_x;
 
@@ -3482,7 +3482,7 @@
 	  if (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT (s->f))
 	    r->left -= width;
 	}
-      
+
       r->left += FRAME_INTERNAL_BORDER_WIDTH (s->f);
 
       /* Unless displaying a mode or menu bar line, which are always
@@ -3568,7 +3568,7 @@
 /* Compute overhangs and x-positions for glyph string S and its
    predecessors, or successors.  X is the starting x-position for S.
    BACKWARD_P non-zero means process predecessors.  */
-   
+
 static void
 x_compute_overhangs_and_x (s, x, backward_p)
      struct glyph_string *s;
@@ -3609,7 +3609,7 @@
      int *left, *right;
 {
   *left = *right = 0;
-  
+
   if (glyph->type == CHAR_GLYPH)
     {
       XFontStruct *font;
@@ -3642,7 +3642,7 @@
      struct glyph_string *s;
 {
   int k;
-    
+
   if (s->left_overhang)
     {
       int x = 0, i;
@@ -3704,7 +3704,7 @@
       struct glyph *glyphs = s->row->glyphs[s->area];
       int first = (s->first_glyph - glyphs) + (s->cmp ? 1 : s->nchars);
       int end = s->row->used[s->area];
-      
+
       for (i = first; i < end && s->right_overhang > x; ++i)
 	x += glyphs[i].pixel_width;
 
@@ -3927,9 +3927,9 @@
   struct x_display_info *dpyinfo;
   Lisp_Object tail;
   struct frame *f;
-  
+
   dpyinfo = x_display_info_for_display (XtDisplay (widget));
-  
+
   /* Find the top-level shell of the widget.  Note that this function
      can be called when the widget is not yet realized, so XtWindow
      (widget) == 0.  That's the reason we can't simply use
@@ -4016,7 +4016,7 @@
 	      nearest_delta = delta;
 	    }
 	}
-      
+
       color->red   = cells[nearest].red;
       color->green = cells[nearest].green;
       color->blue  = cells[nearest].blue;
@@ -4027,7 +4027,7 @@
   if (rc)
     register_color (color->pixel);
 #endif /* DEBUG_X_COLORS */
-  
+
   return rc;
 }
 
@@ -4124,7 +4124,7 @@
    DELTA lighter or darker than the relief's background which is found
    in S->f->output_data.x->relief_background.  If such a color cannot
    be allocated, use DEFAULT_PIXEL, instead.  */
-   
+
 static void
 x_setup_relief_color (f, relief, factor, delta, default_pixel)
      struct frame *f;
@@ -4150,7 +4150,7 @@
       relief->allocated_p = 1;
       xgcv.foreground = relief->pixel = pixel;
     }
-  
+
   if (relief->gc == 0)
     {
 #if 0 /* MAC_TODO: stipple */
@@ -4178,7 +4178,7 @@
   else
     {
       XGCValues xgcv;
-      
+
       /* Get the background color of the face.  */
       XGetGCValues (s->display, s->gc, GCBackground, &xgcv);
       color = xgcv.background;
@@ -4213,7 +4213,7 @@
 {
   int i;
   GC gc;
-  
+
   if (raised_p)
     gc = f->output_data.mac->white_relief.gc;
   else
@@ -4239,13 +4239,13 @@
     gc = f->output_data.mac->white_relief.gc;
   mac_set_clip_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
 			  clip_rect);
-  
+
   /* Bottom.  */
   for (i = 0; i < width; ++i)
     XDrawLine (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), gc,
 	       left_x + i * left_p, bottom_y - i,
 	       right_x + 1 - i * right_p, bottom_y - i);
-  
+
   /* Right.  */
   if (right_p)
     for (i = 0; i < width; ++i)
@@ -4271,10 +4271,10 @@
      Rect *clip_rect;
 {
   XGCValues xgcv;
-  
+
   xgcv.foreground = s->face->box_color;
   mac_set_clip_rectangle (s->display, s->window, clip_rect);
-  
+
   /* Top.  */
   XFillRectangle (s->display, s->window, &xgcv,
 		  left_x, top_y, right_x - left_x, width);
@@ -4287,7 +4287,7 @@
   /* Bottom.  */
   XFillRectangle (s->display, s->window, &xgcv,
 		  left_x, bottom_y - width, right_x - left_x, width);
-  
+
   /* Right.  */
   if (right_p)
     XFillRectangle (s->display, s->window, &xgcv,
@@ -4316,7 +4316,7 @@
       if (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT (s->f))
 	last_x += FRAME_SCROLL_BAR_WIDTH (s->f) * CANON_X_UNIT (s->f);
     }
-  
+
   /* The glyph that may have a right box line.  */
   last_glyph = (s->cmp || s->img
 		? s->first_glyph
@@ -4339,7 +4339,7 @@
 	     || (s->hl == DRAW_MOUSE_FACE
 		 && (s->next == NULL
 		     || s->next->hl != s->hl)));
-  
+
   x_get_glyph_string_clip_rect (s, &clip_rect);
 
   if (s->face->box == FACE_SIMPLE_BOX)
@@ -4396,7 +4396,7 @@
 	  xgcv.clip_y_origin = y;
 	  xgcv.function = GXcopy;
 	  XChangeGC (s->display, s->gc, mask, &xgcv);
-	  
+
 	  x_get_glyph_string_clip_rect (s, &clip_rect);
 	  image_rect.x = x;
 	  image_rect.y = y;
@@ -4411,7 +4411,7 @@
 	{
 	  mac_copy_area (s->display, s->img->pixmap, s->window, s->gc,
 		       0, 0, s->img->width, s->img->height, x, y);
-	  
+
 	  /* When the image has a mask, we can expect that at
 	     least part of a mouse highlight or a block cursor will
 	     be visible.  If the image doesn't have a mask, make
@@ -4445,7 +4445,7 @@
   Rect r;
   int x;
   int y = s->ybase - image_ascent (s->img, s->face);
- 
+
   /* If first glyph of S has a left box line, start drawing it to the
      right of that line.  */
   if (s->face->box != FACE_NO_BOX
@@ -4453,12 +4453,12 @@
     x = s->x + abs (s->face->box_line_width);
   else
     x = s->x;
-  
+
   /* If there is a margin around the image, adjust x- and y-position
      by that margin.  */
   x += s->img->hmargin;
   y += s->img->vmargin;
-  
+
   if (s->hl == DRAW_IMAGE_SUNKEN
       || s->hl == DRAW_IMAGE_RAISED)
     {
@@ -4470,12 +4470,12 @@
       thick = abs (s->img->relief);
       raised_p = s->img->relief > 0;
     }
-  
+
   x0 = x - thick;
   y0 = y - thick;
   x1 = x + s->img->width + thick - 1;
   y1 = y + s->img->height + thick - 1;
-  
+
   x_setup_relief_colors (s);
   x_get_glyph_string_clip_rect (s, &r);
   x_draw_relief_rect (s->f, x0, y0, x1, y1, thick, raised_p, 1, 1, &r);
@@ -4534,7 +4534,7 @@
 	{
 	  mac_copy_area_to_pixmap (s->display, s->img->pixmap, pixmap, s->gc,
 		               0, 0, s->img->width, s->img->height, x, y);
-	  
+
 	  /* When the image has a mask, we can expect that at
 	     least part of a mouse highlight or a block cursor will
 	     be visible.  If the image doesn't have a mask, make
@@ -4579,7 +4579,7 @@
 }
 
 
-/* Draw image glyph string S.  
+/* Draw image glyph string S.
 
             s->y
    s->x      +-------------------------
@@ -4622,7 +4622,7 @@
 	x = s->x + box_line_hwidth;
       else
 	x = s->x;
-      
+
       y = s->y + box_line_vwidth;
 #if 0 /* TODO: image mask */
       if (s->img->mask)
@@ -4637,7 +4637,7 @@
  	  pixmap = XCreatePixmap (s->display, s->window,
 				  s->background_width,
 				  s->height, depth);
-	  
+
 	  /* Don't clip in the following because we're working on the
 	     pixmap.  */
 	  XSetClipMask (s->display, s->gc, None);
@@ -4665,7 +4665,7 @@
       else
 #endif
 	x_draw_glyph_string_bg_rect (s, x, y, s->background_width, height);
-      
+
       s->background_filled_p = 1;
     }
 
@@ -4725,7 +4725,7 @@
 	    }
 	  else
 	    gc = s->face->gc;
-  
+
 	  x_get_glyph_string_clip_rect (s, &r);
 	  mac_set_clip_rectangle (s->display, s->window, &r);
 
@@ -4753,7 +4753,7 @@
   else if (!s->background_filled_p)
     x_draw_glyph_string_bg_rect (s, s->x, s->y, s->background_width,
 				 s->height);
-  
+
   s->background_filled_p = 1;
 }
 
@@ -4835,7 +4835,7 @@
 	{
           unsigned long h = 1;
           unsigned long dy = s->height - h;
-      
+
 	  if (s->face->underline_defaulted_p)
 	    XFillRectangle (s->display, s->window, s->gc, s->x, s->y + dy,
 			    s->width, h);
@@ -4868,7 +4868,7 @@
 	      XSetForeground (s->display, s->gc, xgcv.foreground);
 	    }
 	}
-  
+
       /* Draw strike-through.  */
       if (s->face->strike_through_p)
 	{
@@ -4888,7 +4888,7 @@
 	      XSetForeground (s->display, s->gc, xgcv.foreground);
 	    }
 	}
-  
+
       /* Draw relief.  */
       if (!relief_drawn_p && s->face->box != FACE_NO_BOX)
         x_draw_glyph_string_box (s);
@@ -4904,7 +4904,7 @@
 
 
 /* Fill glyph string S with composition components specified by S->cmp.
-   
+
    FACES is an array of faces for all components of this composition.
    S->gidx is the index of the first component for S.
    OVERLAPS_P non-zero means S should draw the foreground only, and
@@ -4952,7 +4952,7 @@
 
   /* Adjust base line for subscript/superscript text.  */
   s->ybase += s->first_glyph->voffset;
-  
+
   xassert (s->face && s->face->gc);
 
   /* This glyph string must always be drawn with 16-bit functions.  */
@@ -4963,7 +4963,7 @@
 
 
 /* Fill glyph string S from a sequence of character glyphs.
-   
+
    FACE_ID is the face id of the string.  START is the index of the
    first glyph to consider, END is the index of the last + 1.
    OVERLAPS_P non-zero means S should draw the foreground only, and
@@ -5013,7 +5013,7 @@
 
   s->font = s->face->font;
   s->font_info = FONT_INFO_FROM_ID (s->f, s->face->font_info_id);
-  
+
   /* If the specified font could not be loaded, use the frame's font,
      but record the fact that we couldn't load it in
      S->font_not_found_p so that we can draw rectangles for the
@@ -5026,7 +5026,7 @@
 
   /* Adjust base line for subscript/superscript text.  */
   s->ybase += voffset;
-  
+
   xassert (s->face && s->face->gc);
   return glyph - s->row->glyphs[s->area];
 }
@@ -5044,7 +5044,7 @@
   s->face = FACE_FROM_ID (s->f, s->first_glyph->face_id);
   s->font = s->face->font;
   s->width = s->first_glyph->pixel_width;
-  
+
   /* Adjust base line for subscript/superscript text.  */
   s->ybase += s->first_glyph->voffset;
 }
@@ -5067,9 +5067,9 @@
 {
   struct glyph *glyph, *last;
   int voffset, face_id;
-  
+
   xassert (s->first_glyph->type == STRETCH_GLYPH);
-  
+
   glyph = s->row->glyphs[s->area] + start;
   last = s->row->glyphs[s->area] + end;
   face_id = glyph->face_id;
@@ -5086,7 +5086,7 @@
 	&& glyph->face_id == face_id);
        ++glyph)
     s->width += glyph->pixel_width;
-  
+
   /* Adjust base line for subscript/superscript text.  */
   s->ybase += voffset;
 
@@ -5102,7 +5102,7 @@
    and area within the row from which S is constructed.  START is the
    index of the first glyph structure covered by S.  HL is a
    face-override for drawing S.  */
-   
+
 static void
 x_init_glyph_string (s, char2b, w, row, area, start, hl)
      struct glyph_string *s;
@@ -5129,7 +5129,7 @@
   /* Display the internal border below the tool-bar window.  */
   if (s->w == XWINDOW (s->f->tool_bar_window))
     s->y -= s->f->output_data.mac->internal_border_width;
-  
+
   s->ybase = s->y + row->ascent;
 }
 
@@ -5147,7 +5147,7 @@
   /* If the face of this glyph string has to be drawn to the end of
      the drawing area, set S->extends_to_end_of_line_p.  */
   struct face *default_face = FACE_FROM_ID (s->f, DEFAULT_FACE_ID);
-  
+
   if (start == s->row->used[s->area]
       && s->area == TEXT_AREA
       && ((s->hl == DRAW_NORMAL_TEXT
@@ -5159,7 +5159,7 @@
 	  || ((s->hl == DRAW_IMAGE_RAISED || s->hl == DRAW_IMAGE_SUNKEN)
 	      && s->row->fill_line_p)))
     s->extends_to_end_of_line_p = 1;
-  
+
   /* If S extends its face to the end of the line, set its
      background_width to the distance to the right edge of the drawing
      area.  */
@@ -5240,7 +5240,7 @@
                                           OVERLAPS_P);			   \
        }								   \
      while (0)
-     
+
 
 /* Add a glyph string for a composite sequence to the list of strings
    between HEAD and TAIL.  START is the index of the first glyph in
@@ -5296,7 +5296,7 @@
     ++START;								  \
     s = first_s;							  \
   } while (0)
-    
+
 
 /* Build a list of glyph strings between HEAD and TAIL for the glyphs
    of AREA of glyph row ROW on window W between indices START and END.
@@ -5365,7 +5365,7 @@
    and clip to the physical height of ROW.
 
    Value is the x-position reached, relative to AREA of W.  */
-     
+
 static int
 x_draw_glyphs (w, x, row, area, start, end, hl, overlaps_p)
      struct window *w;
@@ -5446,7 +5446,7 @@
       /* Prepend glyph strings for glyphs in front of the first glyph
 	 string that are overwritten because of the first glyph
 	 string's left overhang.  The background of all strings
-	 prepended must be drawn because the first glyph string 
+	 prepended must be drawn because the first glyph string
 	 draws over it.  */
       i = x_left_overwritten (head);
       if (i >= 0)
@@ -5524,10 +5524,10 @@
     {
       int x0 = head ? head->x : x;
       int x1 = tail ? tail->x + tail->background_width : x;
-      
+
       x0 = FRAME_TO_WINDOW_PIXEL_X (w, x0);
       x1 = FRAME_TO_WINDOW_PIXEL_X (w, x1);
-      
+
       if (!row->full_width_p && XFASTINT (w->left_margin_width) != 0)
 	{
 	  int left_area_width = window_box_width (w, LEFT_MARGIN_AREA);
@@ -5563,9 +5563,9 @@
      enum glyph_row_area area;
 {
   int i, x;
-  
+
   BLOCK_INPUT;
-  
+
   if (area == LEFT_MARGIN_AREA)
     x = 0;
   else if (area == TEXT_AREA)
@@ -5597,7 +5597,7 @@
 	  ++i;
 	}
     }
-  
+
   UNBLOCK_INPUT;
 }
 
@@ -5617,7 +5617,7 @@
 
   xassert (updated_window && updated_row);
   BLOCK_INPUT;
-  
+
   /* Write glyphs.  */
 
   hpos = start - updated_row->glyphs[updated_area];
@@ -5627,7 +5627,7 @@
 		     DRAW_NORMAL_TEXT, 0);
 
   UNBLOCK_INPUT;
-  
+
   /* Advance the output cursor.  */
   output_cursor.hpos += len;
   output_cursor.x = x;
@@ -5715,10 +5715,10 @@
   struct window *w = updated_window;
   int max_x, min_y, max_y;
   int from_x, from_y, to_y;
-  
+
   xassert (updated_window && updated_row);
   f = XFRAME (w->frame);
-  
+
   if (updated_row->full_width_p)
     {
       max_x = XFASTINT (w->width) * CANON_X_UNIT (f);
@@ -5740,7 +5740,7 @@
     to_x = min (to_x, max_x);
 
   to_y = min (max_y, output_cursor.y + updated_row->height);
-  
+
   /* Notice if the cursor will be cleared by this operation.  */
   if (!updated_row->full_width_p)
     notice_overwritten_cursor (w, updated_area,
@@ -5761,11 +5761,11 @@
       from_x = WINDOW_AREA_TO_FRAME_PIXEL_X (w, updated_area, from_x);
       to_x = WINDOW_AREA_TO_FRAME_PIXEL_X (w, updated_area, to_x);
     }
-  
+
   min_y = WINDOW_DISPLAY_HEADER_LINE_HEIGHT (w);
   from_y = WINDOW_TO_FRAME_PIXEL_Y (w, max (min_y, output_cursor.y));
   to_y = WINDOW_TO_FRAME_PIXEL_Y (w, to_y);
-  
+
   /* Prevent inadvertently clearing to end of the X window.  */
   if (to_x > from_x && to_y > from_y)
     {
@@ -5836,7 +5836,7 @@
       y.tv_usec -= 1000000 * nsec;
       y.tv_sec += nsec;
     }
-  
+
   if (x.tv_usec - y.tv_usec > 1000000)
     {
       int nsec = (y.tv_usec - x.tv_usec) / 1000000;
@@ -5888,7 +5888,7 @@
         select (0, NULL, NULL, NULL, &timeout);
       }
   }
-  
+
   FlashMenuBar (0);
 
   UNBLOCK_INPUT;
@@ -5903,7 +5903,7 @@
 XTring_bell ()
 {
   struct frame *f = SELECTED_FRAME ();
-  
+
 #if defined (HAVE_TIMEVAL) && defined (HAVE_SELECT)
   if (visible_bell)
     XTflash (f);
@@ -5989,7 +5989,7 @@
     }
 
   BLOCK_INPUT;
-  
+
   /* Cursor off.  Will be switched on again in x_update_window_end.  */
   updated_window = w;
   x_clear_cursor (w);
@@ -5999,7 +5999,7 @@
 	         x, from_y,
 	         width, height,
 	         x, to_y);
-  
+
   UNBLOCK_INPUT;
 }
 
@@ -6008,7 +6008,7 @@
 /***********************************************************************
 			   Exposure Events
  ***********************************************************************/
-									
+
 /* Redisplay an exposed area of frame F.  X and Y are the upper-left
    corner of the exposed rectangle.  W and H are width and height of
    the exposed area.  All are pixel values.  W or H zero means redraw
@@ -6167,7 +6167,7 @@
           x += first->pixel_width;
           ++first;
         }
-  
+
       /* Find the last one.  */
       last = first;
       first_x = x;
@@ -6199,7 +6199,7 @@
      Rect *r;
 {
   xassert (row->enabled_p);
-  
+
   if (row->mode_line_p || w->pseudo_window_p)
     x_draw_glyphs (w, 0, row, TEXT_AREA, 0, row->used[TEXT_AREA],
 		   DRAW_NORMAL_TEXT, 0);
@@ -6257,18 +6257,18 @@
      struct glyph_row *last_overlapping_row;
 {
   struct glyph_row *row;
-  
+
   for (row = first_overlapping_row; row <= last_overlapping_row; ++row)
     if (row->overlapping_p)
       {
 	xassert (row->enabled_p && !row->mode_line_p);
-	  
+
 	if (row->used[LEFT_MARGIN_AREA])
 	  x_fix_overlapping_area (w, row, LEFT_MARGIN_AREA);
-  
+
 	if (row->used[TEXT_AREA])
 	  x_fix_overlapping_area (w, row, TEXT_AREA);
-  
+
 	if (row->used[RIGHT_MARGIN_AREA])
 	  x_fix_overlapping_area (w, row, RIGHT_MARGIN_AREA);
       }
@@ -6317,7 +6317,7 @@
       struct glyph_row *row;
       int cursor_cleared_p;
       struct glyph_row *first_overlapping_row, *last_overlapping_row;
-  
+
       TRACE ((stderr, "expose_window (%d, %d, %d, %d)\n",
 	      r.left, r.top, r.right, r.bottom));
 
@@ -6357,11 +6357,11 @@
 		    first_overlapping_row = row;
 		  last_overlapping_row = row;
 		}
-	      
+
 	      if (expose_line (w, row, &r))
 		mouse_face_overwritten_p = 1;
 	    }
-	      
+
 	  if (y1 >= yb)
 	    break;
 	}
@@ -6381,10 +6381,10 @@
 	  /* Fix the display of overlapping rows.  */
 	  if (first_overlapping_row)
 	    expose_overlaps (w, first_overlapping_row, last_overlapping_row);
-	  
+
 	  /* Draw border between windows.  */
 	  x_draw_vertical_border (w);
-      
+
 	  /* Turn the cursor on again.  */
 	  if (cursor_cleared_p)
 	    x_update_window_cursor (w, 1);
@@ -6410,7 +6410,7 @@
   Rect *left, *right;
   Rect *upper, *lower;
   int intersection_p = 0;
-  
+
   /* Rerrange so that R1 is the left-most rectangle.  */
   if (r1->left < r2->left)
     left = r1, right = r2;
@@ -6422,7 +6422,7 @@
   if (right->left <= left->right)
     {
       result->left = right->left;
-      
+
       /* The right end of the intersection is the minimum of the
 	 the right ends of left and right.  */
       result->right = min (left->right, right->right);
@@ -6438,7 +6438,7 @@
       if (lower->top <= upper->bottom)
 	{
 	  result->top = lower->top;
-	  
+
 	  /* The lower end of the intersection is the minimum of the lower
 	     ends of upper and lower.  */
 	  result->bottom = min (lower->bottom, upper->bottom);
@@ -6989,7 +6989,7 @@
 	  else if (!buffer_only_p || BUFFERP (glyph->object))
 	    break;
 	}
-      
+
       x0 += glyph->pixel_width;
       ++glyph;
     }
@@ -7052,13 +7052,13 @@
       struct glyph *glyph, *end;
       Lisp_Object help, map;
       int x0;
-      
+
       /* Find the glyph under X.  */
       glyph = row->glyphs[TEXT_AREA];
       end = glyph + row->used[TEXT_AREA];
       x0 = - (FRAME_LEFT_SCROLL_BAR_WIDTH (f) * CANON_X_UNIT (f)
 	      + FRAME_X_LEFT_FRINGE_WIDTH (f));
-      
+
       while (glyph < end
 	     && x >= x0 + glyph->pixel_width)
 	{
@@ -7418,7 +7418,7 @@
 		 the text ``under'' it might have.  */
 	      struct glyph_row *r = MATRIX_ROW (w->current_matrix, vpos);
 	      int start = MATRIX_ROW_START_CHARPOS (r);
-	      
+
 	      pos = string_buffer_position (w, object, start);
 	      if (pos > 0)
 		mouse_face = get_char_property_and_overlay (make_number (pos),
@@ -7442,7 +7442,7 @@
 				      &dpyinfo->mouse_face_beg_x,
 				      &dpyinfo->mouse_face_beg_y,
 				      object);
-		       
+
 		  dpyinfo->mouse_face_past_end
 		    = !fast_find_position (w, XFASTINT (after),
 					   &dpyinfo->mouse_face_end_col,
@@ -7474,7 +7474,7 @@
 	for (i = noverlays - 1; i >= 0 && NILP (help); --i)
 	  {
 	    overlay = overlay_vec[i];
-	    help = Foverlay_get (overlay, Qhelp_echo); 
+	    help = Foverlay_get (overlay, Qhelp_echo);
 	  }
 
 	if (!NILP (help))
@@ -7521,7 +7521,7 @@
 		     && charpos < ZV)
 	      help = Fget_text_property (make_number (charpos), Qhelp_echo,
 					 object);
-	    
+
 	    if (!NILP (help))
 	      {
 		help_echo = help;
@@ -7608,7 +7608,7 @@
 	  || *hpos < dpyinfo->mouse_face_end_col
 	  || dpyinfo->mouse_face_past_end))
     return 0;
-  
+
   return 1;
 }
 
@@ -7629,7 +7629,7 @@
   Lisp_Object enabled_p;
   int x = button_event->where.h;
   int y = button_event->where.v;
-  
+
   /* If not on the highlighted tool-bar item, return.  */
   frame_to_window_pixel_xy (w, &x, &y);
   if (x_tool_bar_item (f, x, y, &glyph, &hpos, &vpos, &prop_idx) != 0)
@@ -7639,7 +7639,7 @@
   enabled_p = AREF (f->tool_bar_items, prop_idx + TOOL_BAR_ITEM_ENABLED_P);
   if (NILP (enabled_p))
     return;
-  
+
   if (button_event->what == mouseDown)
     {
       /* Show item in pressed state.  */
@@ -7716,7 +7716,7 @@
     goto set_help_echo;
 
   clear_mouse_face (dpyinfo);
-  
+
   /* Mouse is down, but on different tool-bar item?  */
   mouse_down_p = (dpyinfo->grabbed
 		  && f == last_mouse_frame
@@ -7727,7 +7727,7 @@
 
   dpyinfo->mouse_face_image_state = DRAW_NORMAL_TEXT;
   draw = mouse_down_p ? DRAW_IMAGE_SUNKEN : DRAW_IMAGE_RAISED;
-  
+
   /* If tool-bar item is not enabled, don't highlight it.  */
   enabled_p = AREF (f->tool_bar_items, prop_idx + TOOL_BAR_ITEM_ENABLED_P);
   if (!NILP (enabled_p))
@@ -7737,28 +7737,28 @@
       row = MATRIX_ROW (w->current_matrix, vpos);
       for (i = x = 0; i < hpos; ++i)
 	x += row->glyphs[TEXT_AREA][i].pixel_width;
-      
+
       /* Record this as the current active region.  */
       dpyinfo->mouse_face_beg_col = hpos;
       dpyinfo->mouse_face_beg_row = vpos;
       dpyinfo->mouse_face_beg_x = x;
       dpyinfo->mouse_face_beg_y = row->y;
       dpyinfo->mouse_face_past_end = 0;
-      
+
       dpyinfo->mouse_face_end_col = hpos + 1;
       dpyinfo->mouse_face_end_row = vpos;
       dpyinfo->mouse_face_end_x = x + glyph->pixel_width;
       dpyinfo->mouse_face_end_y = row->y;
       dpyinfo->mouse_face_window = window;
       dpyinfo->mouse_face_face_id = TOOL_BAR_FACE_ID;
-      
+
       /* Display it as active.  */
       show_mouse_face (dpyinfo, draw);
       dpyinfo->mouse_face_image_state = draw;
     }
-      
+
  set_help_echo:
-  
+
   /* Set help_echo to a help string.to display for this tool-bar item.
      XTread_socket does the rest.  */
   help_echo_object = help_echo_window = Qnil;
@@ -7780,7 +7780,7 @@
 #if 0 /* This is a version of fast_find_position that's more correct
 	 in the presence of hscrolling, for example.  I didn't install
 	 it right away because the problem fixed is minor, it failed
-	 in 20.x as well, and I think it's too risky to install 
+	 in 20.x as well, and I think it's too risky to install
 	 so near the release of 21.1.  2001-09-25 gerd.  */
 
 static int
@@ -7813,10 +7813,10 @@
   *x = row->x;
   *y = row->y;
   *vpos = MATRIX_ROW_VPOS (row, w->current_matrix);
-  
+
   glyph = row->glyphs[TEXT_AREA];
   end = glyph + row->used[TEXT_AREA];
-  
+
   /* Skip over glyphs not having an object at the start of the row.
      These are special glyphs like truncation marks on terminal
      frames.  */
@@ -8018,7 +8018,7 @@
 	  *x += best_glyph->pixel_width;
 	  ++*hpos;
 	}
-      
+
       *y = best_row->y;
       *vpos = best_row - w->current_matrix->rows;
     }
@@ -8037,7 +8037,7 @@
 {
   struct window *w = XWINDOW (dpyinfo->mouse_face_window);
   struct frame *f = XFRAME (WINDOW_FRAME (w));
-  
+
   if (/* If window is in the process of being destroyed, don't bother
 	 to do anything.  */
       w->current_matrix != NULL
@@ -8052,7 +8052,7 @@
 
       first = MATRIX_ROW (w->current_matrix, dpyinfo->mouse_face_beg_row);
       last = MATRIX_ROW (w->current_matrix, dpyinfo->mouse_face_end_row);
-      
+
       for (row = first; row <= last && row->enabled_p; ++row)
 	{
 	  int start_hpos, end_hpos, start_x;
@@ -8076,7 +8076,7 @@
 
 	  if (end_hpos > start_hpos)
 	    {
-	      x_draw_glyphs (w, start_x, row, TEXT_AREA, 
+	      x_draw_glyphs (w, start_x, row, TEXT_AREA,
 			     start_hpos, end_hpos, draw, 0);
 
 	      row->mouse_face_p
@@ -8307,7 +8307,7 @@
   Lisp_Object frame, tail;
 
   if (is_emacs_window(wp))
-    f = ((mac_output *) GetWRefCon (wp))->mFP;         
+    f = ((mac_output *) GetWRefCon (wp))->mFP;
 
   BLOCK_INPUT;
 
@@ -8339,7 +8339,7 @@
       XSETINT (*y, mouse_pos.v);
       *time = last_mouse_movement_time;
     }
-  
+
   UNBLOCK_INPUT;
 }
 
@@ -8347,7 +8347,7 @@
 /************************************************************************
 			 Scroll bars, general
  ************************************************************************/
-									 
+
 /* Create a scroll bar and return the scroll bar vector for it.  W is
    the Emacs window on which to create the scroll bar. TOP, LEFT,
    WIDTH and HEIGHT are the pixel coordinates and dimensions of the
@@ -8370,7 +8370,7 @@
   r.top = disp_top;
   r.right = left + width;
   r.bottom = disp_top + disp_height;
-  
+
 #ifdef TARGET_API_MAC_CARBON
   ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p", 1, 0, 0, 0,
 		   kControlScrollBarProc, 0L);
@@ -8403,7 +8403,7 @@
 
 
 /* Draw BAR's handle in the proper position.
-   
+
    If the handle is already drawn from START to END, don't bother
    redrawing it, unless REBUILD is non-zero; in that case, always
    redraw it.  (REBUILD is handy for drawing the handle after expose
@@ -8442,7 +8442,7 @@
   else if (start > top_range)
     start = top_range;
   end = start + length;
-  
+
   if (end < start)
     end = start;
   else if (end > top_range && ! dragging)
@@ -8536,10 +8536,10 @@
 
   /* Compute the left edge of the scroll bar.  */
   if (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT (f))
-    sb_left = left + width - sb_width - (width - sb_width) / 2; 
+    sb_left = left + width - sb_width - (width - sb_width) / 2;
   else
     sb_left = left + (width - sb_width) / 2;
-  
+
   /* Adjustments according to Inside Macintosh to make it look nice */
   disp_top = top;
   disp_height = height;
@@ -8553,10 +8553,10 @@
       disp_top++;
       disp_height--;
     }
-    
+
   if (sb_left + sb_width == PIXEL_WIDTH (f))
     sb_left++;
-  
+
   /* Does the scroll bar exist yet?  */
   if (NILP (w->vertical_scroll_bar))
     {
@@ -8572,7 +8572,7 @@
     {
       /* It may just need to be moved and resized.  */
       ControlHandle ch;
-            
+
       bar = XSCROLL_BAR (w->vertical_scroll_bar);
       ch = SCROLL_BAR_CONTROL_HANDLE (bar);
 
@@ -8605,7 +8605,7 @@
           SizeControl (ch, sb_width - VERTICAL_SCROLL_BAR_WIDTH_TRIM * 2,
 		       disp_height);
           ShowControl (ch);
-      
+
           /* Remember new settings.  */
           XSETINT (bar->left, sb_left);
           XSETINT (bar->top, top);
@@ -8749,7 +8749,7 @@
 {
   Lisp_Object bar;
   ControlHandle ch;
-  
+
   bar = FRAME_SCROLL_BARS (frame);
   while (! NILP (bar))
     {
@@ -8773,7 +8773,7 @@
 {
   Lisp_Object bar;
   ControlHandle ch;
-  
+
   bar = FRAME_SCROLL_BARS (frame);
   while (! NILP (bar))
     {
@@ -8782,7 +8782,7 @@
       DeactivateControl (ch);
 #else
       SetControlMaximum (ch, XINT (-1));
-#endif      
+#endif
       bar = XSCROLL_BAR (bar)->next;
     }
 }
@@ -8808,7 +8808,7 @@
   bufp->arg = Qnil;
 
   bar->dragging = Qnil;
- 
+
   switch (part_code)
     {
     case kControlUpButtonPart:
@@ -9034,7 +9034,7 @@
   if (cursor_glyph->type == STRETCH_GLYPH
       && !x_stretch_cursor_p)
     wd = min (CANON_X_UNIT (f), wd);
-  
+
   /* The foreground of cursor_gc is typically the same as the normal
      background color, which can cause the cursor box to be invisible.  */
   xgcv.foreground = f->output_data.mac->cursor_pixel;
@@ -9078,7 +9078,7 @@
       XGCValues xgcv;
       Display *dpy;
       Window window;
-      
+
       cursor_glyph = get_phys_cursor_glyph (w);
       if (cursor_glyph == NULL)
 	return;
@@ -9089,7 +9089,7 @@
       dpy = FRAME_MAC_DISPLAY (f);
       window = FRAME_MAC_WINDOW (f);
       gc = FRAME_X_DISPLAY_INFO (f)->scratch_cursor_gc;
-      
+
       if (gc)
 	XChangeGC (dpy, gc, mask, &xgcv);
       else
@@ -9183,7 +9183,7 @@
      screen.  */
   if (w->phys_cursor_type == NO_CURSOR)
     goto mark_cursor_off;
-	   
+
   /* VPOS >= active_glyphs->nrows means that window has been resized.
      Don't bother to erase the cursor.  */
   if (vpos >= active_glyphs->nrows)
@@ -9194,13 +9194,13 @@
   cursor_row = MATRIX_ROW (active_glyphs, vpos);
   if (!cursor_row->enabled_p)
     goto mark_cursor_off;
-  
+
   /* If row is completely invisible, don't attempt to delete a cursor which
      isn't there.  This may happen if cursor is at top of window, and
      we switch to a buffer with a header line in that window.  */
   if (cursor_row->visible_height <= 0)
     goto mark_cursor_off;
-  
+
   /* This can happen when the new row is shorter than the old one.
      In this case, either x_draw_glyphs or clear_end_of_line
      should have cleared the cursor.  Note that we wouldn't be
@@ -9208,7 +9208,7 @@
      cursor glyph at hand.  */
   if (w->phys_cursor.hpos >= cursor_row->used[TEXT_AREA])
     goto mark_cursor_off;
-	 
+
   /* If the cursor is in the mouse face area, redisplay that when
      we clear the cursor.  */
   if (! NILP (dpyinfo->mouse_face_window)
@@ -9236,7 +9236,7 @@
 	goto mark_cursor_off;
 
       x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x),
-      
+
       XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
 		  x,
 		  WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height,
@@ -9245,7 +9245,7 @@
 		  cursor_row->visible_height,
 		  0);
     }
-  
+
   /* Erase the cursor by redrawing the character underneath it.  */
   if (mouse_face_here_p)
     hl = DRAW_MOUSE_FACE;
@@ -9268,7 +9268,7 @@
   struct mac_display_info *dpyinfo
     = FRAME_MAC_DISPLAY_INFO (XFRAME (w->frame));
   int in_mouse_face = 0;
-  
+
   if (WINDOWP (dpyinfo->mouse_face_window)
       && XWINDOW (dpyinfo->mouse_face_window) == w)
     {
@@ -9323,8 +9323,8 @@
   current_glyphs = w->current_matrix;
   glyph_row = MATRIX_ROW (current_glyphs, vpos);
   glyph = glyph_row->glyphs[TEXT_AREA] + hpos;
-  
-  /* If cursor row is not enabled, we don't really know where to 
+
+  /* If cursor row is not enabled, we don't really know where to
      display the cursor.  */
   if (!glyph_row->enabled_p)
     {
@@ -9356,7 +9356,7 @@
     {
       w->phys_cursor_ascent = glyph_row->ascent;
       w->phys_cursor_height = glyph_row->height;
-      
+
       /* Set phys_cursor_.* before x_draw_.* is called because some
 	 of them may need the information.  */
       w->phys_cursor.x = x;
@@ -9760,7 +9760,7 @@
 #if TARGET_API_MAC_CARBON
       {
         Rect r;
-    
+
         GetWindowPortBounds (FRAME_MAC_WINDOW (f), &r);
         SetPt(&pt, r.left,  r.top);
       }
@@ -9841,9 +9841,9 @@
      int cols, rows;
 {
   int pixelwidth, pixelheight;
-  
+
   BLOCK_INPUT;
-  
+
   check_frame_size (f, &rows, &cols);
   f->output_data.mac->vertical_scroll_bar_extra
     = (!FRAME_HAS_VERTICAL_SCROLL_BARS (f)
@@ -9864,7 +9864,7 @@
      but the window manager will get around to dealing with the size
      change request eventually, and we'll hear how it went when the
      ConfigureNotify event gets here.
-     
+
      We could just not bother storing any of this information here,
      and let the ConfigureNotify event set everything up, but that
      might be kind of confusing to the Lisp code, since size changes
@@ -9889,7 +9889,7 @@
   mark_window_cursors_off (XWINDOW (f->root_window));
 
   /* Clear out any recollection of where the mouse highlighting was,
-     since it might be in a place that's outside the new frame size. 
+     since it might be in a place that's outside the new frame size.
      Actually checking whether it is outside is a pain in the neck,
      so don't try--just let the highlighting be done afresh with new size.  */
   cancel_mouse_face (f);
@@ -10018,7 +10018,7 @@
 		      f->output_data.mac->top_pos, 0);
 
       f->output_data.mac->asked_for_visible = 1;
-      
+
       ShowWindow (FRAME_MAC_WINDOW (f));
     }
 
@@ -10082,11 +10082,11 @@
   /* Don't keep the highlight on an invisible frame.  */
   if (FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame == f)
     FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame = 0;
-  
+
   BLOCK_INPUT;
-  
+
   HideWindow (FRAME_MAC_WINDOW (f));
-  
+
   /* We can't distinguish this from iconification
      just by the event that we get from the server.
      So we can't win using the usual strategy of letting
@@ -10096,7 +10096,7 @@
   FRAME_ICONIFIED_P (f) = 0;
   f->async_visible = 0;
   f->async_iconified = 0;
-  
+
   UNBLOCK_INPUT;
 }
 
@@ -10119,7 +10119,7 @@
   BLOCK_INPUT;
 
   CollapseWindow (FRAME_MAC_WINDOW (f), true);
-  
+
   UNBLOCK_INPUT;
 }
 
@@ -10380,7 +10380,7 @@
   }
 
 #else /* not USE_X_TOOLKIT */
-  
+
   f->output_data.x->wm_hints.flags |= IconPixmapHint;
   XSetWMHints (FRAME_X_DISPLAY (f), window, &f->output_data.x->wm_hints);
 
@@ -10450,7 +10450,7 @@
 }
 
 /* Assume parameter 1 is fully qualified, no wildcards. */
-static int 
+static int
 mac_font_pattern_match (fontname, pattern)
     char * fontname;
     char * pattern;
@@ -10487,7 +10487,7 @@
 
 /* Two font specs are considered to match if their foundry, family,
    weight, slant, and charset match.  */
-static int 
+static int
 mac_font_match (char *mf, char *xf)
 {
   char m_foundry[50], m_family[50], m_weight[20], m_slant[2], m_charset[20];
@@ -10543,7 +10543,7 @@
 	break;
       case smKorean:
         strcpy(cs, "ksc5601.1989-0");
-        break;        
+        break;
       default:
         strcpy(cs, "mac-roman");
         break;
@@ -10553,14 +10553,14 @@
   sprintf(xf, "-%s-%s-%s-%c-normal--%d-%d-75-75-m-%d-%s",
           foundry, family, style & bold ? "bold" : "medium",
 	  style & italic ? 'i' : 'r', size, size * 10, size * 10, cs);
-  
+
   result = (char *) xmalloc (strlen (xf) + 1);
   strcpy (result, xf);
   for (p = result; *p; p++)
     *p = tolower(*p);
   return result;
 }
-                                                                        
+
 
 /* Convert an X font spec to the corresponding mac font name, which
    can then be passed to GetFNum after conversion to a Pascal string.
@@ -10622,7 +10622,7 @@
 {
 #if TARGET_API_MAC_CARBON
   SInt32 sv;
-  
+
   if (Gestalt (gestaltSystemVersion, &sv) == noErr && sv >= 0x1000)
     {
       FMFontFamilyIterator ffi;
@@ -10648,17 +10648,17 @@
 	  FMFontStyle style;
 	  FMFontSize size;
 	  SInt16 sc;
-      
+
 	  if (FMGetFontFamilyName (ff, name) != noErr)
 	    break;
 	  p2cstr (name);
-      
+
 	  sc = FontToScript (ff);
-	  
+
 	  /* Point the instance iterator at the current font family.  */
 	  if (FMResetFontFamilyInstanceIterator(ff, &ffii) != noErr)
 	    break;
-      
+
 	  while (FMGetNextFontFamilyInstance (&ffii, &font, &style, &size)
 		 == noErr)
 	    if (size == 0)
@@ -10683,7 +10683,7 @@
 								-smJapanese));
 	      }
 	}
-  
+
       /* Dispose of the iterators.  */
       FMDisposeFontFamilyIterator (&ffi);
       FMDisposeFontFamilyInstanceIterator (&ffii);
@@ -10701,7 +10701,7 @@
       Str32 name;
       struct FontAssoc *fat;
       struct AsscEntry *assc_entry;
-      
+
       GetPort (&port);  /* save the current font number used */
 #if TARGET_API_MAC_CARBON
       old_fontnum = GetPortTextFont (port);
@@ -10714,19 +10714,19 @@
 	  font_handle = GetIndResource ('FOND', i);
 	  if (!font_handle)
 	    continue;
-	  
+
 	  GetResInfo (font_handle, &id, &type, name);
 	  GetFNum (name, &fontnum);
 	  p2cstr (name);
 	  if (fontnum == 0)
 	    continue;
-	  
+
 	  TextFont (fontnum);
 	  scriptcode = FontToScript (fontnum);
 	  do
 	    {
 	      HLock (font_handle);
-	      
+
 	      if (GetResourceSizeOnDisk (font_handle)
 		  >= sizeof (struct FamRec))
 		{
@@ -10736,7 +10736,7 @@
 		    = (struct AsscEntry *) (*font_handle
 					    + sizeof (struct FamRec)
 					    + sizeof (struct FontAssoc));
-		  
+
 		  for (j = 0; j <= fat->numAssoc; j++, assc_entry++)
 		    {
 		      if (font_name_table_size == 0)
@@ -10770,7 +10770,7 @@
 			}
 		    }
 		}
-	      
+
 	      HUnlock (font_handle);
 	      font_handle_2 = GetNextFOND (font_handle);
 	      ReleaseResource (font_handle);
@@ -10778,7 +10778,7 @@
 	    }
 	  while (ResError () == noErr && font_handle);
 	}
-  
+
       TextFont (old_fontnum);
 #if TARGET_API_MAC_CARBON
     }
@@ -10836,7 +10836,7 @@
             break;
         }
     }
-  
+
   /* MAC_TODO: add code for matching outline fonts here */
 
   UNGCPRO;
@@ -10848,7 +10848,7 @@
 		      XCDR (dpyinfo->name_list_element)));
     }
  label_cached:
-  
+
   return newlist;
 }
 
@@ -10869,7 +10869,7 @@
   xassert (font != NULL);
 
   for (i = 0; i < dpyinfo->n_fonts; i++)
-    if (dpyinfo->font_table[i].name 
+    if (dpyinfo->font_table[i].name
 	&& font == dpyinfo->font_table[i].font)
       break;
 
@@ -10913,20 +10913,20 @@
   MacFontStruct *font;
   int old_width = dpyinfo->smallest_char_width;
   int old_height = dpyinfo->smallest_font_height;
-  
+
   dpyinfo->smallest_font_height = 100000;
   dpyinfo->smallest_char_width = 100000;
-  
+
   for (i = 0; i < dpyinfo->n_fonts; ++i)
     if (dpyinfo->font_table[i].name)
       {
 	struct font_info *fontp = dpyinfo->font_table + i;
 	int w, h;
-	
+
 	font = (MacFontStruct *) fontp->font;
 	xassert (font != (MacFontStruct *) ~0);
 	x_font_min_bounds (font, &w, &h);
-	
+
 	dpyinfo->smallest_font_height = min (dpyinfo->smallest_font_height, h);
 	dpyinfo->smallest_char_width = min (dpyinfo->smallest_char_width, w);
       }
@@ -10951,7 +10951,7 @@
 
   if (*p != '-')
     return 0;
-  
+
   for (i = 0; i < 13; i++)
     {
       q = strchr (p + 1, '-');
@@ -10964,7 +10964,7 @@
 
   if (strchr (p + 1, '-') != NULL)
     return 0;
-  
+
   if (*(p + 1) == '*' && *(p + 2) == '\0')
     return 0;
 
@@ -11006,7 +11006,7 @@
 
       if (i >= font_name_count)
         return NULL;
-  
+
       name = font_name_table[i];
     }
 
@@ -11037,9 +11037,9 @@
   GetFNum (mfontname, &fontnum);
   if (fontnum == 0)
     return NULL;
-    
+
   font = (MacFontStruct *) xmalloc (sizeof (struct MacFontStruct));
-  
+
   font->fontname = (char *) xmalloc (strlen (name) + 1);
   bcopy (name, font->fontname, strlen (name) + 1);
 
@@ -11055,13 +11055,13 @@
   {
     char cs[32];
 
-    if (sscanf (name, 
+    if (sscanf (name,
 		"-%*[^-]-%*[^-]-%*[^-]-%*c-%*[^-]--%*[^-]-%*[^-]-%*[^-]-%*[^-]-%*c-%*[^-]-%31s",
 		cs) == 1
-	&& 0 == strcmp (cs, "jisx0201.1976-0"))  
+	&& 0 == strcmp (cs, "jisx0201.1976-0"))
       font->mac_scriptcode = smRoman;
   }
-  
+
   is_two_byte_font = font->mac_scriptcode == smJapanese ||
                      font->mac_scriptcode == smTradChinese ||
                      font->mac_scriptcode == smSimpChinese ||
@@ -11070,7 +11070,7 @@
   TextFont (fontnum);
   TextSize (size);
   TextFace (fontface);
-  
+
   GetFontInfo (&the_fontinfo);
 
   font->ascent = the_fontinfo.ascent;
@@ -11083,7 +11083,7 @@
     font->max_byte1 = 0;
   font->min_char_or_byte2 = 0x20;
   font->max_char_or_byte2 = 0xff;
-  
+
   if (is_two_byte_font)
     {
       /* Use the width of an "ideographic space" of that font because
@@ -11125,7 +11125,7 @@
 	xmalloc (sizeof (XCharStruct) * (0xff - 0x20 + 1));
       {
         int c;
-    
+
         for (c = 0x20; c <= 0xff; c++)
           {
             font->per_char[c - 0x20] = font->max_bounds;
@@ -11133,11 +11133,11 @@
           }
       }
     }
-  
+
   TextFont (old_fontnum);  /* restore previous font number, size and face */
   TextSize (old_fontsize);
   TextFace (old_fontface);
-  
+
   return font;
 }
 
@@ -11531,7 +11531,7 @@
 
 /* Drag and Drop */
 static OSErr init_mac_drag_n_drop ();
-static pascal OSErr mac_do_receive_drag (WindowPtr, void*, DragReference); 
+static pascal OSErr mac_do_receive_drag (WindowPtr, void*, DragReference);
 
 #if USE_CARBON_EVENTS
 /* Preliminary Support for the OSX Services Menu */
@@ -11546,7 +11546,7 @@
 extern void initialize_applescript();
 extern void terminate_applescript();
 
-static unsigned int 
+static unsigned int
 #if USE_CARBON_EVENTS
 mac_to_emacs_modifiers (UInt32 mods)
 #else
@@ -11568,8 +11568,8 @@
 #if USE_CARBON_EVENTS
 /* Obtains the event modifiers from the event ref and then calls
    mac_to_emacs_modifiers.  */
-static int 
-mac_event_to_emacs_modifiers (EventRef eventRef) 
+static int
+mac_event_to_emacs_modifiers (EventRef eventRef)
 {
   UInt32 mods = 0;
   GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32, NULL,
@@ -11580,20 +11580,20 @@
 /* Given an event ref, return the code to use for the mouse button
    code in the emacs input_event.  */
 static int
-mac_get_mouse_btn (EventRef ref) 
+mac_get_mouse_btn (EventRef ref)
 {
   EventMouseButton result = kEventMouseButtonPrimary;
   GetEventParameter (ref, kEventParamMouseButton, typeMouseButton, NULL,
 		    sizeof (EventMouseButton), NULL, &result);
-  switch (result) 
+  switch (result)
     {
     case kEventMouseButtonPrimary:
       return 0;
     case kEventMouseButtonSecondary:
-      return NILP (Vmac_wheel_button_is_mouse_2) ? 1 : 2; 
+      return NILP (Vmac_wheel_button_is_mouse_2) ? 1 : 2;
     case kEventMouseButtonTertiary:
     case 4:  /* 4 is the number for the mouse wheel button */
-      return NILP (Vmac_wheel_button_is_mouse_2) ? 2 : 1; 
+      return NILP (Vmac_wheel_button_is_mouse_2) ? 2 : 1;
     default:
       return 0;
     }
@@ -11605,24 +11605,24 @@
    checks to see if it is a mouse up or down carbon event that has not
    been converted, and if so, converts it by hand (to be picked up in
    the XTread_socket loop).  */
-static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec) 
+static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec)
 {
   Boolean result = ConvertEventRefToEventRecord (eventRef, eventRec);
   /* Do special case for mouse wheel button.  */
-  if (!result && GetEventClass (eventRef) == kEventClassMouse) 
-    { 
+  if (!result && GetEventClass (eventRef) == kEventClassMouse)
+    {
       UInt32 kind = GetEventKind (eventRef);
-      if (kind == kEventMouseDown && !(eventRec->what == mouseDown)) 
+      if (kind == kEventMouseDown && !(eventRec->what == mouseDown))
 	{
 	  eventRec->what = mouseDown;
 	  result=1;
 	}
-      if (kind == kEventMouseUp && !(eventRec->what == mouseUp)) 
+      if (kind == kEventMouseUp && !(eventRec->what == mouseUp))
 	{
 	  eventRec->what = mouseUp;
 	  result=1;
 	}
-      if (result) 
+      if (result)
 	{
 	  /* Need where and when.  */
 	  UInt32 mods;
@@ -11636,7 +11636,7 @@
 			     typeUInt32, NULL, sizeof (UInt32),
 			     NULL, &mods);
 	  eventRec->modifiers = mods;
-	  
+
 	  eventRec->when = EventTimeToTicks (GetEventTime (eventRef));
 	}
     }
@@ -11650,7 +11650,7 @@
 {
   Handle menubar_handle;
   MenuHandle menu_handle;
-	
+
   menubar_handle = GetNewMBar (128);
   if(menubar_handle == NULL)
     abort ();
@@ -11678,7 +11678,7 @@
   InitDialogs (NULL);
 #endif /* !TARGET_API_MAC_CARBON */
   InitCursor ();
-	
+
 #if !TARGET_API_MAC_CARBON
   /* set up some extra stack space for use by emacs */
   SetApplLimit ((Ptr) ((long) GetApplLimit () - EXTRA_STACK_ALLOC));
@@ -11694,7 +11694,7 @@
 do_check_ram_size (void)
 {
   SInt32 physical_ram_size, logical_ram_size;
-  
+
   if (Gestalt (gestaltPhysicalRAMSize, &physical_ram_size) != noErr
       || Gestalt (gestaltLogicalRAMSize, &logical_ram_size) != noErr
       || physical_ram_size > 256 * 1024 * 1024
@@ -11718,7 +11718,7 @@
           f->async_visible = 1;
           f->async_iconified = 0;
           SET_FRAME_GARBAGED (f);
-          
+
           /* An update event is equivalent to MapNotify on X, so report
              visibility changes properly.  */
           if (! NILP(Vframe_list) && ! NILP (XCDR (Vframe_list)))
@@ -11767,7 +11767,7 @@
     {
       mwp = (mac_output *) GetWRefCon (win);
       f = mwp->mFP;
-      
+
       if (f)
 	{
 	  x_new_focus_frame (FRAME_MAC_DISPLAY_INFO (f), f);
@@ -11786,7 +11786,7 @@
     {
       mwp = (mac_output *) GetWRefCon (win);
       f = mwp->mFP;
-      
+
       if (f == FRAME_MAC_DISPLAY_INFO (f)->x_focus_frame)
 	{
 	  x_new_focus_frame (FRAME_MAC_DISPLAY_INFO (f), 0);
@@ -11850,10 +11850,10 @@
   WindowPtr wp = FrontWindow ();
   struct frame *f;
 
-  if (is_emacs_window (wp)) 
-    {
-      f = ((mac_output *) GetWRefCon (wp))->mFP;            
-      
+  if (is_emacs_window (wp))
+    {
+      f = ((mac_output *) GetWRefCon (wp))->mFP;
+
 #if TARGET_API_MAC_CARBON
       SetPort (GetWindowPort (wp));
 #else
@@ -11861,7 +11861,7 @@
 #endif
 
       GlobalToLocal (&mouse_pos);
-      
+
       note_mouse_movement (f, &mouse_pos);
     }
 }
@@ -11878,7 +11878,7 @@
       else
 	do_app_suspend ();
       break;
-				
+
     case mouseMovedMessage:
       do_mouse_moved (erp->where);
       break;
@@ -11913,7 +11913,7 @@
 #if !TARGET_API_MAC_CARBON
   Str255 item_name;
   SInt16 da_driver_refnum;
-	
+
   if (menu_item == I_ABOUT)
     NoteAlert (ABOUT_ALERT_ID, NULL);
   else
@@ -11928,13 +11928,13 @@
 do_menu_choice (SInt32 menu_choice)
 {
   SInt16 menu_id, menu_item;
-  
+
   menu_id = HiWord (menu_choice);
   menu_item = LoWord (menu_choice);
-  
+
   if (menu_id == 0)
     return;
-  
+
   switch (menu_id)
     {
     case M_APPLE:
@@ -11944,18 +11944,18 @@
     default:
       {
         WindowPtr wp = FrontWindow ();
-        struct frame *f = ((mac_output *) GetWRefCon (wp))->mFP;            
+        struct frame *f = ((mac_output *) GetWRefCon (wp))->mFP;
         MenuHandle menu = GetMenuHandle (menu_id);
         if (menu)
           {
             UInt32 refcon;
-            
+
             GetMenuItemRefCon (menu, menu_item, &refcon);
             menubar_selection_callback (f, refcon);
           }
       }
     }
-  
+
   HiliteMenu (0);
 }
 
@@ -11971,17 +11971,17 @@
   int rows, columns;
   mac_output *mwp = (mac_output *) GetWRefCon (w);
   struct frame *f = mwp->mFP;
-  
+
   SetRect(&limit_rect, MIN_DOC_SIZE, MIN_DOC_SIZE, MAX_DOC_SIZE, MAX_DOC_SIZE);
-  
+
   grow_size = GrowWindow (w, e->where, &limit_rect);
-  
+
   /* see if it really changed size */
   if (grow_size != 0)
     {
       rows = PIXEL_TO_CHAR_HEIGHT (f, HiWord (grow_size));
       columns = PIXEL_TO_CHAR_WIDTH (f, LoWord (grow_size));
-      
+
       x_set_window_size (f, 0, columns, rows);
     }
 }
@@ -12001,7 +12001,7 @@
   int w_title_height, columns, rows, width, height, dummy, x, y;
   mac_output *mwp = (mac_output *) GetWRefCon (w);
   struct frame *f = mwp->mFP;
-   
+
   GetPort (&save_port);
 
 #if TARGET_API_MAC_CARBON
@@ -12015,7 +12015,7 @@
   {
     Rect r;
     BitMap bm;
-    
+
     GetWindowPortBounds (w, &r);
     EraseRect (&r);
 
@@ -12030,7 +12030,7 @@
         zoom_rect = bm.bounds;
         zoom_rect.top += w_title_height;
         InsetRect (&zoom_rect, 8, 4);  /* not too tight */
-    
+
         zoom_rect.right = zoom_rect.left
 	  + CHAR_TO_PIXEL_WIDTH (f, DEFAULT_NUM_COLS);
 
@@ -12052,7 +12052,7 @@
       zoom_rect = qd.screenBits.bounds;
       zoom_rect.top += w_title_height;
       InsetRect (&zoom_rect, 8, 4);  /* not too tight */
-      
+
       zoom_rect.right = zoom_rect.left
 	+ CHAR_TO_PIXEL_WIDTH (f, DEFAULT_NUM_COLS);
 
@@ -12098,7 +12098,7 @@
 
   if (!(result & (1 << gestaltAppleEventsPresent)))
     abort ();
-  
+
 #if TARGET_API_MAC_CARBON
   err = AEInstallEventHandler(kCoreEventClass, kAEOpenApplication,
 			      NewAEEventHandlerUPP
@@ -12175,10 +12175,10 @@
 mac_handle_service_event (EventHandlerCallRef callRef,
 			  EventRef event, void *data)
 {
-  OSStatus err = noErr; 
+  OSStatus err = noErr;
   switch (GetEventKind (event))
     {
-    case kEventServiceGetTypes: 
+    case kEventServiceGetTypes:
       {
 	CFMutableArrayRef copyTypes, pasteTypes;
 	CFStringRef type;
@@ -12214,14 +12214,14 @@
 	      {
 		GetEventParameter (event, kEventParamScrapRef, typeScrapRef, NULL,
 				   sizeof (ScrapRef), NULL, &specificScrap);
-	      
+
 		err = GetScrapFlavorData (currentScrap, kScrapFlavorTypeText,
 					  &byteCount, buffer);
 		if (err == noErr)
 		  PutScrapFlavor (specificScrap, kScrapFlavorTypeText,
 				  kScrapFlavorMaskNone, byteCount, buffer);
 		xfree (buffer);
-	      } 
+	      }
 	  }
 	err = noErr;
       }
@@ -12237,7 +12237,7 @@
         if (err == noErr) {
 	  void * buffer = xmalloc(byteCount);
 	  if (buffer != NULL ) {
-	    err = GetScrapFlavorData(specificScrap, kScrapFlavorTypeText, 
+	    err = GetScrapFlavorData(specificScrap, kScrapFlavorTypeText,
 				     &byteCount, buffer);
 	    if (err == noErr) {
 	      // Actually place in the buffer
@@ -12249,7 +12249,7 @@
 	  xfree(buffer);
         }
         */
-      }   
+      }
     }
   return err;
 }
@@ -12271,7 +12271,7 @@
 /* Called when we receive an AppleEvent with an ID of
    "kAEOpenDocuments".  This routine gets the direct parameter,
    extracts the FSSpecs in it, and puts their names on a list.  */
-static pascal OSErr     
+static pascal OSErr
 do_ae_open_documents(AppleEvent *message, AppleEvent *reply, long refcon)
 {
   OSErr err, err2;
@@ -12287,7 +12287,7 @@
   /* Check to see that we got all of the required parameters from the
      event descriptor.  For an 'odoc' event this should just be the
      file list.  */
-  err = AEGetAttributePtr(message, keyMissedKeywordAttr, typeWildCard, 
+  err = AEGetAttributePtr(message, keyMissedKeywordAttr, typeWildCard,
 			  &actual_type, (Ptr) &keyword,
                           sizeof (keyword), &actual_size);
   /* No error means that we found some unused parameters.
@@ -12309,7 +12309,7 @@
     if (err == noErr)
       {
         int i;
-        
+
         /* AE file list is one based so just use that for indexing here.  */
         for (i = 1; (err == noErr) && (i <= num_files_to_open); i++)
 	  {
@@ -12366,7 +12366,7 @@
   drag_and_drop_file_list = Qnil;
   GetDragMouse (theDrag, &mouse, 0L);
   CountDragItems (theDrag, &items);
-  for (index = 1; index <= items; index++) 
+  for (index = 1; index <= items; index++)
     {
       /* Only handle file references.  */
       GetDragItemReferenceNumber (theDrag, index, &theItem);
@@ -12398,7 +12398,7 @@
     }
   /* If there are items in the list, construct an event and post it to
      the queue like an interrupt using kbd_buffer_store_event.  */
-  if (!NILP (drag_and_drop_file_list)) 
+  if (!NILP (drag_and_drop_file_list))
     {
       struct input_event event;
       Lisp_Object frame;
@@ -12479,7 +12479,7 @@
 
 #if !TARGET_API_MAC_CARBON
 #undef main
-int 
+int
 main (void)
 {
 #if __profile__  /* is the profiler on? */
@@ -12494,9 +12494,9 @@
 #endif
 
   do_init_managers ();
-	
+
   do_get_menus ();
-	
+
   do_check_ram_size ();
 
   init_emacs_passwd_dir ();
@@ -12506,7 +12506,7 @@
   initialize_applescript ();
 
   init_required_apple_events ();
-	
+
   {
     char **argv;
     int argc = 0;
@@ -12544,7 +12544,7 @@
   /*0x38*/ 0, 0, 0, 0,
   /*0x3C*/ 0, 0, 0, 0,
 
-  /*0x40*/ 0, 0xae /*kp-.*/, 0, 0xaa /*kp-**/, 
+  /*0x40*/ 0, 0xae /*kp-.*/, 0, 0xaa /*kp-**/,
   /*0x44*/ 0, 0xab /*kp-+*/, 0, 0x7f /*kp-clear*/,
   /*0x48*/ 0, 0, 0, 0xaf /*kp-/*/,
   /*0x4C*/ 0x8d /*kp-enter*/, 0, 0xad /*kp--*/, 0,
@@ -12555,8 +12555,8 @@
   /*0x5C*/ 0xb9 /*kp-9*/, 0, 0, 0,
 
   /*0x60*/ 0xc2 /*f5*/, 0xc3 /*f6*/, 0xc4 /*f7*/, 0xc0 /*f3*/,
-  /*0x64*/ 0xc5 /*f8*/, 0xc6 /*f9*/, 0, 0xc8 /*f11*/, 
-  /*0x68*/ 0, 0xca /*f13*/, 0, 0xcb /*f14*/, 
+  /*0x64*/ 0xc5 /*f8*/, 0xc6 /*f9*/, 0, 0xc8 /*f11*/,
+  /*0x68*/ 0, 0xca /*f13*/, 0, 0xcb /*f14*/,
   /*0x6C*/ 0, 0xc7 /*f10*/, 0, 0xc9 /*f12*/,
 
   /*0x70*/ 0, 0xcc /*f15*/, 0x9e /*insert (or 0x6a==help)*/, 0x95 /*home*/,
@@ -12577,7 +12577,7 @@
 int
 XTread_socket (int sd, struct input_event *bufp, int numchars, int expected)
 {
-  int count = 0; 
+  int count = 0;
 #if USE_CARBON_EVENTS
   OSStatus rneResult;
   EventRef eventRef;
@@ -12629,7 +12629,7 @@
     event_mask -= highLevelEventMask;
 
 #if USE_CARBON_EVENTS
-  rneResult = ReceiveNextEvent (0, NULL, 
+  rneResult = ReceiveNextEvent (0, NULL,
 				expected
 				? TicksToEventTime (app_sleep_time)
 				: 0,
@@ -12637,11 +12637,11 @@
   if (!rneResult)
     {
       /* Handle new events */
-      if (!mac_convert_event_ref (eventRef, &er)) 
-	switch (GetEventClass (eventRef)) 
+      if (!mac_convert_event_ref (eventRef, &er))
+	switch (GetEventClass (eventRef))
 	  {
 	  case kEventClassMouse:
-	    if (GetEventKind (eventRef) == kEventMouseWheelMoved) 
+	    if (GetEventKind (eventRef) == kEventMouseWheelMoved)
 	      {
 		SInt32 delta;
 		Point point;
@@ -12671,7 +12671,7 @@
 		bufp->timestamp = EventTimeToTicks (GetEventTime (eventRef))*(1000/60);
 		count++;
 	      }
-	    else	     
+	    else
 	      SendEventToEventTarget (eventRef, GetEventDispatcherTarget ());
 
 	    break;
@@ -12707,7 +12707,7 @@
             {
 	      struct mac_output *mwp = (mac_output *) GetWRefCon (window_ptr);
 	      Point mouse_loc = er.where;
-	      
+
 	      /* Convert to local coordinates of new window.  */
 #if TARGET_API_MAC_CARBON
               SetPort (GetWindowPort (window_ptr));
@@ -12716,7 +12716,7 @@
 #endif
 
 	      GlobalToLocal (&mouse_loc);
-		  
+
 #if USE_CARBON_EVENTS
 	      bufp->code = mac_get_mouse_btn (eventRef);
 #else
@@ -12736,7 +12736,7 @@
 
               XSETINT (bufp->x, tracked_scroll_bar->left + 2);
               XSETINT (bufp->y, mouse_loc.v - 24);
-              tracked_scroll_bar->dragging = Qnil;		      
+              tracked_scroll_bar->dragging = Qnil;
               mouse_tracking_in_progress = mouse_tracking_none;
               tracked_scroll_bar = NULL;
               count++;
@@ -12744,7 +12744,7 @@
             }
 
 	  part_code = FindWindow (er.where, &window_ptr);
-					
+
 	  switch (part_code)
 	    {
 	    case inMenuBar:
@@ -12768,7 +12768,7 @@
 		  struct mac_output *mwp = (mac_output *)
 		    GetWRefCon (window_ptr);
 		  Point mouse_loc = er.where;
-		  
+
 		  /* convert to local coordinates of new window */
 #if TARGET_API_MAC_CARBON
                   SetPort (GetWindowPort (window_ptr));
@@ -12782,11 +12782,11 @@
 					      &control_part_code);
 #else
 		  control_part_code = FindControl (mouse_loc, window_ptr, &ch);
-#endif		  
+#endif
 
 #if USE_CARBON_EVENTS
 		  bufp->code = mac_get_mouse_btn (eventRef);
-#else		  
+#else
 	          bufp->code = 0;  /* only one mouse button */
 #endif
 		  XSETINT (bufp->x, mouse_loc.h);
@@ -12794,7 +12794,7 @@
 		  bufp->timestamp = er.when * (1000 / 60);
 		    /* ticks to milliseconds */
 
-#if TARGET_API_MAC_CARBON		  
+#if TARGET_API_MAC_CARBON
 		  if (ch != 0)
 #else
 		  if (control_part_code != 0)
@@ -12827,7 +12827,7 @@
 		      else
 		        mouse_tracking_in_progress = mouse_tracking_none;
 	            }
-	      	  		
+
 #if USE_CARBON_EVENTS
 		  bufp->modifiers = mac_event_to_emacs_modifiers (eventRef);
 #else
@@ -12843,7 +12843,7 @@
 		      bufp->modifiers |= up_modifier;
 		      break;
 		    }
-								
+
 	          count++;
 	        }
 	      break;
@@ -12852,7 +12852,7 @@
 #if TARGET_API_MAC_CARBON
 	      {
 	        BitMap bm;
-	        
+
 	        GetQDGlobalsScreenBits (&bm);
 	        DragWindow (window_ptr, er.where, &bm.bounds);
 	      }
@@ -12875,7 +12875,7 @@
 	    case inGrow:
 	      do_grow_window(window_ptr, &er);
 	      break;
-	    
+
 	    /* window zoom handling added --ben */
 	    case inZoomIn:
 	    case inZoomOut:
@@ -12888,22 +12888,22 @@
 	    }
 	}
 	break;
-	
+
       case updateEvt:
       case osEvt:
       case activateEvt:
 #if USE_CARBON_EVENTS
 	if (eventNotHandledErr == SendEventToEventTarget (eventRef, GetEventDispatcherTarget ()))
-#endif	
+#endif
     	do_events (&er);
 	break;
-	
+
       case keyDown:
       case autoKey:
 	{
 	  int keycode = (er.message & keyCodeMask) >> 8;
 	  int xkeysym;
-	  
+
 #if USE_CARBON_EVENTS
 	  /* When using Carbon Events, we need to pass raw keyboard events
 	     to the TSM ourselves.  If TSM handles it, it will pass back
@@ -12921,31 +12921,31 @@
 		break;
 	    }
 #endif
-	  
+
 	  if (!IsValidWindowPtr (FrontNonFloatingWindow ()))
 	    {
 	      SysBeep (1);
 	      UNBLOCK_INPUT;
 	      return 0;
 	    }
-	  
+
 	  ObscureCursor ();
-	  
+
 	  if (keycode_to_xkeysym (keycode, &xkeysym))
 	    {
 	      bufp->code = 0xff00 | xkeysym;
 	      bufp->kind = NON_ASCII_KEYSTROKE_EVENT;
-	    }	   
+	    }
 	  else
 	    {
-	      if (er.modifiers & (controlKey | 
-				  (NILP (Vmac_command_key_is_meta) ? optionKey 
+	      if (er.modifiers & (controlKey |
+				  (NILP (Vmac_command_key_is_meta) ? optionKey
 				   : cmdKey)))
 		{
 		  /* This code comes from Keyboard Resource, Appendix
 		     C of IM - Text.  This is necessary since shift is
 		     ignored in KCHR table translation when option or
-		     command is pressed.  It also does not translate 
+		     command is pressed.  It also does not translate
 		     correctly control-shift chars like C-% so mask off
 		     shift here also */
 		  int new_modifiers = er.modifiers & 0xe600;
@@ -12961,7 +12961,7 @@
 	      bufp->kind = ASCII_KEYSTROKE_EVENT;
 	    }
 	}
-	
+
 	/* If variable mac-convert-keyboard-input-to-latin-1 is non-nil,
 	   convert non-ASCII characters typed at the Mac keyboard
 	   (presumed to be in the Mac Roman encoding) to iso-latin-1
@@ -12974,7 +12974,7 @@
 	    static TECObjectRef converter = NULL;
 	    OSStatus the_err = noErr;
 	    OSStatus convert_status = noErr;
-	    
+
 	    if (converter ==  NULL)
 	      {
 		the_err = TECCreateConverter (&converter,
@@ -12994,14 +12994,14 @@
 					      mac_keyboard_text_encoding);
 		current_mac_keyboard_text_encoding
 		  = mac_keyboard_text_encoding;
-	      } 
-	    
+	      }
+
 	    if (the_err == noErr)
 	      {
 		unsigned char ch = bufp->code;
 		ByteCount actual_input_length, actual_output_length;
 		unsigned char outch;
-		
+
 		convert_status = TECConvertText (converter, &ch, 1,
 						 &actual_input_length,
 						 &outch, 1,
@@ -13012,19 +13012,19 @@
 		  bufp->code = outch;
 	      }
 	  }
-	
+
 #if USE_CARBON_EVENTS
 	bufp->modifiers = mac_event_to_emacs_modifiers (eventRef);
 #else
 	bufp->modifiers = mac_to_emacs_modifiers (er.modifiers);
 #endif
-	
+
 	{
 	  mac_output *mwp
 	    = (mac_output *) GetWRefCon (FrontNonFloatingWindow ());
 	  XSETFRAME (bufp->frame_or_window, mwp->mFP);
 	}
-	
+
 	bufp->timestamp = er.when * (1000 / 60);  /* ticks to milliseconds */
 
 	count++;
@@ -13034,7 +13034,7 @@
         drag_and_drop_file_list = Qnil;
 
         AEProcessAppleEvent(&er);
-        
+
         /* Build a DRAG_N_DROP_EVENT type event as is done in
            constuct_drag_n_drop in w32term.c.  */
         if (!NILP (drag_and_drop_file_list))
@@ -13044,7 +13044,7 @@
             Lisp_Object frame;
 
             wp = FrontNonFloatingWindow ();
-	    
+
 	    if (!wp)
 	      {
 		struct frame *f = XFRAME (XCAR (Vframe_list));
@@ -13053,7 +13053,7 @@
 	      }
 
             if (wp && is_emacs_window(wp))
-	        f = ((mac_output *) GetWRefCon (wp))->mFP;            
+	        f = ((mac_output *) GetWRefCon (wp))->mFP;
 
             bufp->kind = DRAG_N_DROP_EVENT;
             bufp->code = 0;
@@ -13079,14 +13079,14 @@
 #if TARGET_API_MAC_CARBON
 	      {
 	        Rect r;
-	        
+
 	        GetWindowPortBounds (wp, &r);
 	        InvalWindowRect (wp, &r);
 	      }
 #else /* not TARGET_API_MAC_CARBON */
               InvalRect (&(wp->portRect));
 #endif /* not TARGET_API_MAC_CARBON */
-            
+
             count++;
           }
       default:
@@ -13112,7 +13112,7 @@
 
   {
     static Point old_mouse_pos = { -1, -1 };
-    
+
     if (app_is_suspended)
       {
         old_mouse_pos.h = -1;
@@ -13124,7 +13124,7 @@
         WindowPtr wp;
         struct frame *f;
         Lisp_Object bar;
-        struct scroll_bar *sb;         
+        struct scroll_bar *sb;
 
         wp = FrontWindow ();
 	if (is_emacs_window (wp))
@@ -13149,15 +13149,15 @@
 					      TickCount() * (1000 / 60));
 		else
 		  note_mouse_movement (f, &mouse_pos);
-		
-		old_mouse_pos = mouse_pos;            
+
+		old_mouse_pos = mouse_pos;
 	      }
 	  }
       }
   }
-  
+
   UNBLOCK_INPUT;
-  
+
   return count;
 }
 
@@ -13206,7 +13206,7 @@
   else
     if (!(mwp->mWP = GetNewCWindow (WINDOW_RESOURCE, NULL, (WindowPtr) -1)))
       abort ();
-  
+
   SetWRefCon (mwp->mWP, (long) mwp);
     /* so that update events can find this mac_output struct */
   mwp->mFP = fp;  /* point back to emacs frame */
@@ -13218,10 +13218,10 @@
 #endif
 
   mwp->fontset = -1;
-	
+
   SizeWindow (mwp->mWP, mwp->pixel_width, mwp->pixel_height, false);
   ShowWindow (mwp->mWP);
-	
+
 }
 
 
@@ -13232,7 +13232,7 @@
   FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_right;
 
   FRAME_DESIRED_CURSOR (f) = FILLED_BOX_CURSOR;
- 
+
   NewMacWindow(f);
 
   f->output_data.mac->cursor_pixel = 0;
@@ -13247,14 +13247,14 @@
   f->output_data.mac->top_pos = 4;
   f->output_data.mac->border_width = 0;
   f->output_data.mac->explicit_parent = 0;
-  
+
   f->output_data.mac->internal_border_width = 0;
 
   f->output_method = output_mac;
 
   f->auto_raise = 1;
   f->auto_lower = 1;
-  
+
   f->new_width = 0;
   f->new_height = 0;
 }
@@ -13273,7 +13273,7 @@
   f->output_data.mac->fontset = -1;
   f->output_data.mac->scroll_bar_foreground_pixel = -1;
   f->output_data.mac->scroll_bar_background_pixel = -1;
-  
+
   XSETFRAME (FRAME_KBOARD (f)->Vdefault_minibuffer_frame, f);
 
   f->width = 96;
@@ -13282,7 +13282,7 @@
   make_mac_frame (f);
 
   x_make_gc (f);
-  
+
   /* Need to be initialized for unshow_buffer in window.c.  */
   selected_window = f->selected_window;
 
@@ -13384,7 +13384,7 @@
   x_display_name_list = Fcons (Fcons (build_string ("Mac"), Qnil),
                                x_display_name_list);
   dpyinfo->name_list_element = XCAR (x_display_name_list);
-  
+
 #if 0
   dpyinfo->mac_id_name
     = (char *) xmalloc (SCHARS (Vinvocation_name)
@@ -13478,7 +13478,7 @@
 {
   ProcessSerialNumber psn;
   OSErr err;
-  
+
   err = GetCurrentProcess (&psn);
   if (err == noErr)
     (void) SetFrontProcess (&psn);
@@ -13512,7 +13512,7 @@
   mac_quit_char_keycode = 5;
   /* Look at <architecture/adb_kb_map.h> for details */
   /* http://gemma.apple.com/techpubs/mac/Toolbox/Toolbox-40.html#MARKER-9-184*/
-  
+
   mac_determine_quit_char_modifiers();
 }
 
@@ -13526,11 +13526,11 @@
   {
     UInt32 keyCode;
     UInt32 keyModifiers;
-    GetEventParameter(inEvent, kEventParamKeyCode, 
+    GetEventParameter(inEvent, kEventParamKeyCode,
 		      typeUInt32, NULL, sizeof(UInt32), NULL, &keyCode);
     if (keyCode != mac_quit_char_keycode)
       return false;
-    GetEventParameter(inEvent, kEventParamKeyModifiers, 
+    GetEventParameter(inEvent, kEventParamKeyModifiers,
 		      typeUInt32, NULL, sizeof(UInt32), NULL, &keyModifiers);
     if (keyModifiers != mac_quit_char_modifiers)
       return false;
@@ -13552,7 +13552,7 @@
   /* Fill the queue with events */
   ReceiveNextEvent (0, NULL, kEventDurationNoWait, false, &event);
   event = FindSpecificEventInQueue (GetMainEventQueue(), quit_char_comp, NULL);
-  if (event) 
+  if (event)
     {
       struct input_event e;
       struct mac_output *mwp = (mac_output*) GetWRefCon (FrontNonFloatingWindow ());
@@ -13629,7 +13629,7 @@
   x_noop_count = 0;
   last_tool_bar_item = -1;
   any_help_event_p = 0;
-  
+
   /* Try to use interrupt input; if we can't, then start polling.  */
   Fset_input_mode (Qt, Qnil, Qt, Qnil);
 
@@ -13649,7 +13649,7 @@
     start_atimer (ATIMER_CONTINUOUS, interval, x_process_timeouts, 0);
   }
 #endif
-  
+
 #if USE_TOOLKIT_SCROLL_BARS
   xaw3d_arrow_scroll = False;
   xaw3d_pick_top = True;
@@ -13751,7 +13751,7 @@
 
   staticpro (&last_mouse_motion_frame);
   last_mouse_motion_frame = Qnil;
-  
+
   DEFVAR_LISP ("mac-command-key-is-meta", &Vmac_command_key_is_meta,
     doc: /* Non-nil means that the command key is used as the Emacs meta key.
 Otherwise the option key is used.  */);
--- a/src/macterm.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/macterm.h	Tue Feb 04 14:56:31 2003 +0000
@@ -45,7 +45,7 @@
 /* Structure recording bitmaps and reference count.
    If REFCOUNT is 0 then this record is free to be reused.  */
 
-struct mac_bitmap_record 
+struct mac_bitmap_record
 {
   char *bitmap_data;
   int refcount;
@@ -321,7 +321,7 @@
   /* Foreground color for scroll bars.  A value of -1 means use the
      default (black for non-toolkit scroll bars).  */
   unsigned long scroll_bar_foreground_pixel;
-  
+
   /* Background color for scroll bars.  A value of -1 means use the
      default (background color of the frame for non-toolkit scroll
      bars).  */
@@ -337,7 +337,7 @@
   /* Window whose cursor is hourglass_cursor.  This window is temporarily
      mapped to display a hourglass-cursor.  */
   Window hourglass_window;
-  
+
   /* Non-zero means hourglass cursor is currently displayed.  */
   unsigned hourglass_p : 1;
 
@@ -558,7 +558,7 @@
 
 /* Return the length of the rectangle within which the top of the
    handle must stay.  This isn't equivalent to the inside height,
-   because the scroll bar handle has a minimum height.  
+   because the scroll bar handle has a minimum height.
 
    This is the real range of motion for the scroll bar, so when we're
    scaling buffer positions to scroll bar positions, we use this, not
@@ -626,7 +626,7 @@
    + (f)->output_data.mac->internal_border_width)
 
 
-/* Return the row/column (zero-based) of the character cell containing 
+/* Return the row/column (zero-based) of the character cell containing
    the pixel on FRAME at ROW/COL.  */
 #define PIXEL_TO_CHAR_ROW(f, row) \
   (((row) - (f)->output_data.mac->internal_border_width) \
--- a/src/marker.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/marker.c	Tue Feb 04 14:56:31 2003 +0000
@@ -531,14 +531,14 @@
       m->chain = BUF_MARKERS (b);
       BUF_MARKERS (b) = marker;
     }
-  
+
   return marker;
 }
 
 /* This version of Fset_marker won't let the position
    be outside the visible part.  */
 
-Lisp_Object 
+Lisp_Object
 set_marker_restricted (marker, pos, buffer)
      Lisp_Object marker, pos, buffer;
 {
@@ -607,14 +607,14 @@
       m->chain = BUF_MARKERS (b);
       BUF_MARKERS (b) = marker;
     }
-  
+
   return marker;
 }
 
 /* Set the position of MARKER, specifying both the
    character position and the corresponding byte position.  */
 
-Lisp_Object 
+Lisp_Object
 set_marker_both (marker, buffer, charpos, bytepos)
      Lisp_Object marker, buffer;
      int charpos, bytepos;
@@ -658,14 +658,14 @@
       m->chain = BUF_MARKERS (b);
       BUF_MARKERS (b) = marker;
     }
-  
+
   return marker;
 }
 
 /* This version of set_marker_both won't let the position
    be outside the visible part.  */
 
-Lisp_Object 
+Lisp_Object
 set_marker_restricted_both (marker, buffer, charpos, bytepos)
      Lisp_Object marker, buffer;
      int charpos, bytepos;
@@ -718,7 +718,7 @@
       m->chain = BUF_MARKERS (b);
       BUF_MARKERS (b) = marker;
     }
-  
+
   return marker;
 }
 
--- a/src/msdos.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/msdos.c	Tue Feb 04 14:56:31 2003 +0000
@@ -4929,7 +4929,7 @@
 /* When time zones are set from Ms-Dos too many C-libraries are playing
    tricks with time values.  We solve this by defining our own version
    of `gettimeofday' bypassing GO32.  Our version needs to be initialized
-   once and after each call to `tzset' with TZ changed.  That is 
+   once and after each call to `tzset' with TZ changed.  That is
    accomplished by aliasing tzset to init_gettimeofday. */
 
 static struct tm time_rec;
@@ -5092,7 +5092,7 @@
 #else /* not POSIX_SIGNALS */
 
 sigsetmask (x) int x; { return 0; }
-sigblock (mask) int mask; { return 0; } 
+sigblock (mask) int mask; { return 0; }
 
 #endif /* not POSIX_SIGNALS */
 #endif /* not __DJGPP_MINOR__ < 2 */
--- a/src/print.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/print.c	Tue Feb 04 14:56:31 2003 +0000
@@ -189,7 +189,7 @@
    and must start with PRINTPREPARE, end with PRINTFINISH,
    and use PRINTDECLARE to declare common variables.
    Use PRINTCHAR to output one character,
-   or call strout to output a block of characters. */ 
+   or call strout to output a block of characters. */
 
 #define PRINTDECLARE							\
    struct buffer *old = current_buffer;					\
@@ -321,7 +321,7 @@
       int len = CHAR_STRING (ch, str);
 
       QUIT;
-      
+
       if (NILP (fun))
 	{
 	  if (print_buffer_pos_byte + len >= print_buffer_size)
@@ -340,7 +340,7 @@
 	{
 	  int multibyte_p
 	    = !NILP (current_buffer->enable_multibyte_characters);
-	  
+
 	  setup_echo_area_for_printing (multibyte_p);
 	  insert_char (ch);
 	  message_dolog (str, len, 0, multibyte_p);
@@ -397,10 +397,10 @@
       int i;
       int multibyte_p
 	= !NILP (current_buffer->enable_multibyte_characters);
-      
+
       setup_echo_area_for_printing (multibyte_p);
       message_dolog (ptr, size_byte, 0, multibyte_p);
-      
+
       if (size == size_byte)
 	{
 	  for (i = 0; i < size; ++i)
@@ -415,7 +415,7 @@
 	      insert_char (ch);
 	    }
 	}
-      
+
 #ifdef MAX_PRINT_CHARS
       if (max_print)
         print_chars += size;
@@ -653,7 +653,7 @@
 
 If variable `temp-buffer-show-function' is non-nil, call it at the end
 to get the buffer displayed instead of just displaying the non-selected
-buffer and calling the hook.  It gets one argument, the buffer to display.  
+buffer and calling the hook.  It gets one argument, the buffer to display.
 
 usage: (with-output-to-temp-buffer BUFFNAME BODY ...)  */)
      (args)
@@ -1005,7 +1005,7 @@
       else
 	Fprin1 (obj, stream);
     }
-  
+
   UNGCPRO;
 }
 
@@ -1016,9 +1016,9 @@
  * largest float, printed in the biggest notation.  This is undoubtedly
  * 20d float_output_format, with the negative of the C-constant "HUGE"
  * from <math.h>.
- * 
+ *
  * On the vax the worst case is -1e38 in 20d format which takes 61 bytes.
- * 
+ *
  * I assume that IEEE-754 format numbers can take 329 bytes for the worst
  * case of -1e307 in 20d float_output_format. What is one to do (short of
  * re-writing _doprnt to be more sane)?
@@ -1032,7 +1032,7 @@
 {
   unsigned char *cp;
   int width;
-      
+
   /* Check for plus infinity in a way that won't lose
      if there is no plus infinity.  */
   if (data == data / 2 && data > 1.0)
@@ -1061,7 +1061,7 @@
 	    *buf++ = '-';
 	    break;
 	  }
-      
+
       strcpy (buf, "0.0e+NaN");
       return;
     }
@@ -1598,7 +1598,7 @@
       else
 	{
 	  PRINTCHAR ('(');
-	  
+
 	  /* If the first element is a backquote form,
 	     print it old-style so it won't be misunderstood.  */
 	  if (print_quoted && CONSP (XCAR (obj))
@@ -1670,18 +1670,18 @@
 			    }
 		      }
 		  }
-		
+
 		if (i++)
 		  PRINTCHAR (' ');
-		
+
 		if (print_length && i > print_length)
 		  {
 		    strout ("...", 3, 3, printcharfun, 0);
 		    goto end_of_list;
 		  }
-		
+
 		print_object (XCAR (obj), printcharfun, escapeflag);
-		
+
 		obj = XCDR (obj);
 		if (!(i & 1))
 		  halftail = XCDR (halftail);
@@ -1694,7 +1694,7 @@
 	      strout (" . ", 3, 3, printcharfun, 0);
 	      print_object (obj, printcharfun, escapeflag);
 	    }
-	  
+
 	end_of_list:
 	  PRINTCHAR (')');
 	}
--- a/src/process.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/process.c	Tue Feb 04 14:56:31 2003 +0000
@@ -101,7 +101,7 @@
 #ifdef IRIS
 #include <sys/sysmacros.h>	/* for "minor" */
 #endif /* not IRIS */
-  
+
 #ifdef HAVE_SYS_WAIT
 #include <sys/wait.h>
 #endif
@@ -357,7 +357,7 @@
   p->raw_status_high = Qnil;
 }
 
-/*  Convert a process status word in Unix format to 
+/*  Convert a process status word in Unix format to
     the list that we use internally.  */
 
 Lisp_Object
@@ -406,7 +406,7 @@
 
 /* Return a string describing a process status list.  */
 
-Lisp_Object 
+Lisp_Object
 status_message (status)
      Lisp_Object status;
 {
@@ -685,7 +685,7 @@
     {
       Fkill_process (process, Qnil);
       /* Do this now, since remove_process will make sigchld_handler do nothing.  */
-      XPROCESS (process)->status 
+      XPROCESS (process)->status
 	= Fcons (Qsignal, Fcons (make_number (SIGKILL), Qnil));
       XSETINT (XPROCESS (process)->tick, ++process_tick);
       status_notify ();
@@ -847,7 +847,7 @@
 
 When a process has a filter, its buffer is not used for output.
 Instead, each time it does output, the entire string of output is
-passed to the filter.  
+passed to the filter.
 
 The filter gets two arguments: the process and the string of output.
 The string argument is normally a multibyte string, except:
@@ -860,7 +860,7 @@
      register Lisp_Object process, filter;
 {
   struct Lisp_Process *p;
-  
+
   CHECK_PROCESS (process);
   p = XPROCESS (process);
 
@@ -871,7 +871,7 @@
      (setq process (start-process ...))
      (debug)
      (set-process-filter process ...)  */
-  
+
   if (XINT (p->infd) >= 0)
     {
       if (EQ (filter, Qt) && !EQ (p->status, Qlisten))
@@ -886,7 +886,7 @@
 	  FD_SET (XINT (p->infd), &non_keyboard_wait_mask);
 	}
     }
-  
+
   p->filter = filter;
   if (NETCONN1_P (p))
     p->childp = Fplist_put (p->childp, QCfilter, filter);
@@ -937,7 +937,7 @@
   CHECK_PROCESS (process);
   CHECK_NATNUM (height);
   CHECK_NATNUM (width);
-  
+
   if (XINT (XPROCESS (process)->infd) < 0
       || set_window_size (XINT (XPROCESS (process)->infd),
 			  XINT (height), XINT (width)) <= 0)
@@ -1033,7 +1033,7 @@
 #ifdef DATAGRAM_SOCKETS
   if (DATAGRAM_CONN_P (process)
       && (EQ (key, Qt) || EQ (key, QCremote)))
-    contact = Fplist_put (contact, QCremote, 
+    contact = Fplist_put (contact, QCremote,
 			  Fprocess_datagram_address (process));
 #endif
 
@@ -1127,7 +1127,7 @@
       args[0] = build_string ("<Family %d>");
       args[1] = Fcar (address);
       return Fformat (2, args);
-      
+
     }
 
   return Qnil;
@@ -1232,7 +1232,7 @@
       if (CONSP (p->status))
 	symbol = XCAR (p->status);
 
-      
+
       if (EQ (symbol, Qsignal))
 	{
 	  Lisp_Object tem;
@@ -1319,7 +1319,7 @@
 		   (STRINGP (host) ? (char *)SDATA (host) : "?"));
 	  insert_string (tembuf);
         }
-      else 
+      else
 	{
 	  tem = p->command;
 	  while (1)
@@ -1408,7 +1408,7 @@
 
     GCPRO2 (buffer, current_dir);
 
-    current_dir 
+    current_dir
       = expand_and_dir_to_file (Funhandled_file_name_directory (current_dir),
 				Qnil);
     if (NILP (Ffile_accessible_directory_p (current_dir)))
@@ -1512,7 +1512,7 @@
       strcat (new_argv, SDATA (tem));
     }
   /* Need to add code here to check for program existence on VMS */
-  
+
 #else /* not VMS */
   new_argv = (unsigned char **) alloca ((nargs - 1) * sizeof (char *));
 
@@ -1809,7 +1809,7 @@
   XSETINT (XPROCESS (process)->pid, -1);
 
   BLOCK_INPUT;
-  
+
   {
     /* child_setup must clobber environ on systems with true vfork.
        Protect it from permanent change.  */
@@ -1874,12 +1874,12 @@
 	  }
 #endif
 #endif
-#ifdef TIOCNOTTY 
+#ifdef TIOCNOTTY
 	/* In 4.3BSD, the TIOCSPGRP bug has been fixed, and now you
 	   can do TIOCSPGRP only to the process's controlling tty.  */
 	if (pty_flag)
 	  {
-	    /* I wonder: would just ioctl (0, TIOCNOTTY, 0) work here? 
+	    /* I wonder: would just ioctl (0, TIOCNOTTY, 0) work here?
 	       I can't test it since I don't have 4.3.  */
 	    int j = emacs_open ("/dev/tty", O_RDWR, 0);
 	    ioctl (j, TIOCNOTTY, 0);
@@ -1974,7 +1974,7 @@
 #ifdef WINDOWSNT
 	pid = child_setup (xforkin, xforkout, xforkout,
 			   new_argv, 1, current_dir);
-#else  /* not WINDOWSNT */	
+#else  /* not WINDOWSNT */
 	child_setup (xforkin, xforkout, xforkout,
 		     new_argv, 1, current_dir);
 #endif /* not WINDOWSNT */
@@ -2007,11 +2007,11 @@
       {
 	struct atimer *timer;
 	EMACS_TIME offset;
-	
+
 	stop_polling ();
 	EMACS_SET_SECS_USECS (offset, 1, 0);
 	timer = start_atimer (ATIMER_RELATIVE, offset, create_process_1, 0);
-	
+
 	XPROCESS (process)->subtty = Qnil;
 	if (forkin >= 0)
 	  emacs_close (forkin);
@@ -2019,7 +2019,7 @@
 	cancel_atimer (timer);
 	start_polling ();
       }
-      
+
       if (forkin != forkout && forkout >= 0)
 	emacs_close (forkout);
 
@@ -2260,7 +2260,7 @@
 
 static struct socket_options {
   /* The name of this option.  Should be lowercase version of option
-     name without SO_ prefix. */ 
+     name without SO_ prefix. */
   char *name;
   /* Length of name.  */
   int nlen;
@@ -2406,14 +2406,14 @@
 		  arg = (char *) SDATA (val);
 		else if (XSYMBOL (val))
 		  arg = (char *) SDATA (SYMBOL_NAME (val));
-		else 
+		else
 		  error ("Invalid argument to %s option", name);
 	      }
 	    ret = setsockopt (s, sopt->optlevel, sopt->optnum,
 			      arg, strlen (arg));
 	  }
 
-#ifdef SO_LINGER	    
+#ifdef SO_LINGER
 	case SOPT_LINGER:
 	  {
 	    struct linger linger;
@@ -2455,7 +2455,7 @@
 
 DEFUN ("set-network-process-options",
        Fset_network_process_options, Sset_network_process_options,
-       1, MANY, 0, 
+       1, MANY, 0,
        doc: /* Set one or more options for network process PROCESS.
 Each option is either a string "OPT=VALUE" or a cons (OPT . VALUE).
 A boolean value is false if it either zero or nil, true otherwise.
@@ -2466,9 +2466,9 @@
 bindtodevice=NAME -- bind to interface NAME, or remove binding if nil.
 broadcast=BOOL -- Allow send and receive of datagram broadcasts.
 dontroute=BOOL -- Only send to directly connected hosts.
-keepalive=BOOL -- Send keep-alive messages on network stream. 
+keepalive=BOOL -- Send keep-alive messages on network stream.
 linger=BOOL or TIMEOUT -- Send queued messages before closing.
-oobinline=BOOL -- Place out-of-band data in receive data stream. 
+oobinline=BOOL -- Place out-of-band data in receive data stream.
 priority=INT -- Set protocol defined priority for sent packets.
 reuseaddr=BOOL -- Allow reusing a recently used address.
 
@@ -2507,8 +2507,8 @@
    connection has no PID; you cannot signal it.  All you can do is
    stop/continue it and deactivate/close it via delete-process */
 
-DEFUN ("make-network-process", Fmake_network_process, Smake_network_process, 
-       0, MANY, 0, 
+DEFUN ("make-network-process", Fmake_network_process, Smake_network_process,
+       0, MANY, 0,
        doc: /* Create and return a network server or client process.
 
 In Emacs, network connections are represented by process objects, so
@@ -2599,20 +2599,20 @@
 and MESSAGE is a string.
 
 :plist PLIST -- Install PLIST as the new process' initial plist.
- 
+
 :server BOOL -- if BOOL is non-nil, create a server process for the
 specified FAMILY, SERVICE, and connection type (stream or datagram).
 Default is a client process.
 
 A server process will listen for and accept connections from
 clients.  When a client connection is accepted, a new network process
-is created for the connection with the following parameters: 
+is created for the connection with the following parameters:
 - The client's process name is constructed by concatenating the server
 process' NAME and a client identification string.
 - If the FILTER argument is non-nil, the client process will not get a
 separate process buffer; otherwise, the client's process buffer is a newly
 created buffer named after the server process' BUFFER name or process
-NAME concatenated with the client identification string.  
+NAME concatenated with the client identification string.
 - The connection type and the process filter and sentinel parameters are
 inherited from the server process' TYPE, FILTER and SENTINEL.
 - The client process' contact info is set according to the client's
@@ -2732,7 +2732,7 @@
   /* Let's handle TERM before things get complicated ...   */
   host = Fplist_get (contact, QChost);
   CHECK_STRING (host);
-  
+
   service = Fplist_get (contact, QCservice);
   if (INTEGERP (service))
     port = htons ((unsigned short) XINT (service));
@@ -2881,7 +2881,7 @@
     {
       struct servent *svc_info;
       CHECK_STRING (service);
-      svc_info = getservbyname (SDATA (service), 
+      svc_info = getservbyname (SDATA (service),
 				(socktype == SOCK_DGRAM ? "udp" : "tcp"));
       if (svc_info == 0)
 	error ("Unknown service: %s", SDATA (service));
@@ -2904,7 +2904,7 @@
       QUIT;
       host_info_ptr = gethostbyname (SDATA (host));
       immediate_quit = 0;
-  
+
       if (host_info_ptr)
 	{
 	  bcopy (host_info_ptr->h_addr, (char *) &address_in.sin_addr,
@@ -2985,7 +2985,7 @@
 	    }
 	}
 #endif
-      
+
       /* Make us close S if quit.  */
       record_unwind_protect (close_file_unwind, make_number (s));
 
@@ -3000,7 +3000,7 @@
 	      if (setsockopt (s, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof optval))
 		report_file_error ("Cannot set reuse option on server socket.", Qnil);
 	    }
-      
+
 	  if (bind (s, lres->ai_addr, lres->ai_addrlen))
 	    report_file_error ("Cannot bind server socket", Qnil);
 
@@ -3035,7 +3035,7 @@
 	 set.
 
 	 It'd be nice to be able to control the connect timeout
-	 though.  Would non-blocking connect calls be portable? 
+	 though.  Would non-blocking connect calls be portable?
 
 	 This used to be conditioned by HAVE_GETADDRINFO.  Why?  */
 
@@ -3111,7 +3111,7 @@
 	    bcopy (lres->ai_addr, datagram_address[s].sa, lres->ai_addrlen);
 	}
 #endif
-      contact = Fplist_put (contact, QCaddress, 
+      contact = Fplist_put (contact, QCaddress,
 			    conv_sockaddr_to_lisp (lres->ai_addr, lres->ai_addrlen));
 #ifdef HAVE_GETSOCKNAME
       if (!is_server)
@@ -3181,7 +3181,7 @@
 
   p->childp = contact;
   p->plist = Fcopy_sequence (Fplist_get (contact, QCplist));
-  
+
   p->buffer = buffer;
   p->sentinel = sentinel;
   p->filter = filter;
@@ -3603,12 +3603,12 @@
   contact = Fplist_put (contact, QChost, host);
   if (!NILP (service))
     contact = Fplist_put (contact, QCservice, service);
-  contact = Fplist_put (contact, QCremote, 
+  contact = Fplist_put (contact, QCremote,
 			conv_sockaddr_to_lisp (&saddr.sa, len));
 #ifdef HAVE_GETSOCKNAME
   len = sizeof saddr;
   if (getsockname (s, &saddr.sa, &len) == 0)
-    contact = Fplist_put (contact, QClocal, 
+    contact = Fplist_put (contact, QClocal,
 			  conv_sockaddr_to_lisp (&saddr.sa, len));
 #endif
 
@@ -3634,7 +3634,7 @@
   if (s > max_process_desc)
     max_process_desc = s;
 
-  /* Setup coding system for new process based on server process.  
+  /* Setup coding system for new process based on server process.
      This seems to be the proper thing to do, as the coding system
      of the new process should reflect the settings at the time the
      server socket was opened; not the current settings. */
@@ -3668,7 +3668,7 @@
 		      build_string ("\n")));
 
   if (!NILP (p->sentinel))
-    exec_sentinel (proc, 
+    exec_sentinel (proc,
 		   concat3 (build_string ("open from "),
 			    (STRINGP (host) ? host : build_string ("-")),
 			    build_string ("\n")));
@@ -3831,7 +3831,7 @@
 	    {
 	      int old_timers_run = timers_run;
 	      struct buffer *old_buffer = current_buffer;
-	      
+
 	      timer_delay = timer_check (1);
 
 	      /* If a timer has run, this might have changed buffers
@@ -3840,7 +3840,7 @@
 		  && old_buffer != current_buffer
 		  && waiting_for_user_input_p == -1)
 		record_asynch_buffer_change ();
-	      
+
 	      if (timers_run != old_timers_run && do_display)
 		/* We must retry, since a timer may have requeued itself
 		   and that could alter the time_delay.  */
@@ -3902,7 +3902,7 @@
 	  Ctemp = connect_wait_mask;
 	  EMACS_SET_SECS_USECS (timeout, 0, 0);
 	  if ((select (max (max_process_desc, max_keyboard_desc) + 1,
-		       &Atemp, 
+		       &Atemp,
 		       (num_pending_connects > 0 ? &Ctemp : (SELECT_TYPE *)0),
 		       (SELECT_TYPE *)0, &timeout)
 	       <= 0))
@@ -3935,7 +3935,7 @@
 	      if (nread == 0)
 		break;
 
-              if (0 < nread) 
+              if (0 < nread)
                 total_nread += nread;
 #ifdef EIO
 	      else if (nread == -1 && EIO == errno)
@@ -3996,7 +3996,7 @@
 	  if (check_connect)
 	    Connecting = connect_wait_mask;
 	  nfds = select (max (max_process_desc, max_keyboard_desc) + 1,
-			 &Available, 
+			 &Available,
 			 (check_connect ? &Connecting : (SELECT_TYPE *)0),
 			 (SELECT_TYPE *)0, &timeout);
 	}
@@ -4093,7 +4093,7 @@
 	  int old_timers_run = timers_run;
 	  struct buffer *old_buffer = current_buffer;
 	  int leave = 0;
-	
+
 	  if (detect_input_pending_run_timers (do_display))
 	    {
 	      swallow_events (do_display);
@@ -4110,8 +4110,8 @@
 
 	  if (leave)
 	    break;
-	}    
-      
+	}
+
       /* If there is unread keyboard input, also return.  */
       if (XINT (read_kbd) != 0
 	  && requeued_events_pending_p ())
@@ -4258,7 +4258,7 @@
 		      = Fcons (Qexit, Fcons (make_number (256), Qnil));
 		}
 	    }
-#ifdef NON_BLOCKING_CONNECT	  
+#ifdef NON_BLOCKING_CONNECT
 	  if (check_connect && FD_ISSET (channel, &Connecting))
 	    {
 	      struct Lisp_Process *p;
@@ -4479,7 +4479,7 @@
   outstream = p->filter;
   if (!NILP (outstream))
     {
-      /* We inhibit quit here instead of just catching it so that 
+      /* We inhibit quit here instead of just catching it so that
 	 hitting ^G when a filter happens to be running won't screw
 	 it up.  */
       int count = SPECPDL_INDEX ();
@@ -4945,7 +4945,7 @@
 		      || errno == EAGAIN
 #endif
 		      )
-		    /* Buffer is full.  Wait, accepting input; 
+		    /* Buffer is full.  Wait, accepting input;
 		       that may allow the program
 		       to finish doing output and read more.  */
 		    {
@@ -4969,7 +4969,7 @@
 			 the terminal is set up that way which it is
 			 here).  The same bytes will be seen again in a
 			 later read(2), without the CRs.  */
-		    
+
 		      if (errno == EAGAIN)
 			{
 			  int flags = FWRITE;
@@ -4977,7 +4977,7 @@
 				 &flags);
 			}
 #endif /* BROKEN_PTY_READ_AFTER_EAGAIN */
-		    
+
 		      /* Running filters might relocate buffers or strings.
 			 Arrange to relocate BUF.  */
 		      if (BUFFERP (object))
@@ -5026,7 +5026,7 @@
       XSETINT (XPROCESS (proc)->tick, ++process_tick);
       deactivate_process (proc);
 #ifdef VMS
-      error ("Error writing to process %s; closed it", 
+      error ("Error writing to process %s; closed it",
 	     SDATA (XPROCESS (proc)->name));
 #else
       error ("SIGPIPE raised on process %s; closed it",
@@ -5109,7 +5109,7 @@
     error ("Process %s is not active",
 	   SDATA (p->name));
 
-#ifdef TIOCGPGRP 
+#ifdef TIOCGPGRP
   if (!NILP (p->subtty))
     ioctl (XFASTINT (p->subtty), TIOCGPGRP, &gid);
   else
@@ -5258,7 +5258,7 @@
       /* The code above always returns from the function.  */
 #endif /* defined (SIGNALS_VIA_CHARACTERS) */
 
-#ifdef TIOCGPGRP 
+#ifdef TIOCGPGRP
       /* Get the current pgrp using the tty itself, if we have that.
 	 Otherwise, use the pty to get the pgrp.
 	 On pfa systems, saka@pfu.fujitsu.co.JP writes:
@@ -5392,7 +5392,7 @@
 
 DEFUN ("stop-process", Fstop_process, Sstop_process, 0, 2, 0,
        doc: /* Stop process PROCESS.  May be process or name of one.
-See function `interrupt-process' for more details on usage.  
+See function `interrupt-process' for more details on usage.
 If PROCESS is a network process, inhibit handling of incoming traffic.  */)
      (process, current_group)
      Lisp_Object process, current_group;
@@ -5401,7 +5401,7 @@
   if (PROCESSP (process) && NETCONN_P (process))
     {
       struct Lisp_Process *p;
-  
+
       p = XPROCESS (process);
       if (NILP (p->command)
 	  && XINT (p->infd) >= 0)
@@ -5423,7 +5423,7 @@
 
 DEFUN ("continue-process", Fcontinue_process, Scontinue_process, 0, 2, 0,
        doc: /* Continue process PROCESS.  May be process or name of one.
-See function `interrupt-process' for more details on usage.  
+See function `interrupt-process' for more details on usage.
 If PROCESS is a network process, resume handling of incoming traffic.  */)
      (process, current_group)
      Lisp_Object process, current_group;
@@ -5484,7 +5484,7 @@
     }
   else
     process = get_process (process);
-      
+
   if (NILP (process))
     return process;
 
@@ -5708,7 +5708,7 @@
 /* On receipt of a signal that a child status has changed, loop asking
    about children with changed statuses until the system says there
    are no more.
-   
+
    All we do is change the status; we do not run sentinels or print
    notifications.  That is saved for the next time keyboard input is
    done, in order to avoid timing errors.
@@ -5752,7 +5752,7 @@
 #define WUNTRACED 0
 #endif /* no WUNTRACED */
       /* Keep trying to get a status until we get a definitive result.  */
-      do 
+      do
 	{
 	  errno = 0;
 	  pid = wait3 (&w, WNOHANG | WUNTRACED, 0);
@@ -5803,18 +5803,18 @@
 	      break;
 	    p = 0;
 	  }
-      
+
       /* Change the status of the process that was found.  */
       if (p != 0)
 	{
 	  union { int i; WAITTYPE wt; } u;
 	  int clear_desc_flag = 0;
-	  
+
 	  XSETINT (p->tick, ++process_tick);
 	  u.wt = w;
 	  XSETINT (p->raw_status_low, u.i & 0xffff);
 	  XSETINT (p->raw_status_high, u.i >> 16);
-	  
+
 	  /* If process has terminated, stop waiting for its output.  */
 	  if ((WIFSIGNALED (w) || WIFEXITED (w))
 	      && XINT (p->infd) >= 0)
@@ -6342,7 +6342,7 @@
   staticpro (&QCoptions);
   QCplist = intern (":plist");
   staticpro (&QCplist);
-    
+
   Qlast_nonmenu_event = intern ("last-nonmenu-event");
   staticpro (&Qlast_nonmenu_event);
 
@@ -6472,7 +6472,7 @@
   int xerrno;
   /* Either nil or a cons cell, the car of which is of interest and
      may be changed outside of this routine.  */
-  Lisp_Object wait_for_cell; 
+  Lisp_Object wait_for_cell;
 
   wait_for_cell = Qnil;
 
--- a/src/puresize.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/puresize.h	Tue Feb 04 14:56:31 2003 +0000
@@ -90,7 +90,7 @@
 #else /* not VIRT_ADDRESS_VARIES, not PNTR_COMPARISON_TYPE */
 
 extern char my_edata[];
-    
+
 #define PURE_P(obj) \
   (XPNTR (obj) < (unsigned int) my_edata)
 
--- a/src/ralloc.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/ralloc.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1,4 +1,4 @@
-/* Block-relocating memory allocator. 
+/* Block-relocating memory allocator.
    Copyright (C) 1993, 1995, 2000 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -42,7 +42,7 @@
 extern void safe_bcopy ();
 
 #ifdef DOUG_LEA_MALLOC
-#define M_TOP_PAD           -2 
+#define M_TOP_PAD           -2
 extern int mallopt ();
 #else /* not DOUG_LEA_MALLOC */
 #ifndef SYSTEM_MALLOC
@@ -98,7 +98,7 @@
 /* This is the size of a page.  We round memory requests to this boundary.  */
 static int page_size;
 
-/* Whenever we get memory from the system, get this many extra bytes.  This 
+/* Whenever we get memory from the system, get this many extra bytes.  This
    must be a multiple of page_size.  */
 static int extra_bytes;
 
@@ -141,7 +141,7 @@
    We try to make just one heap and make it larger as necessary.
    But sometimes we can't do that, because we can't get contiguous
    space to add onto the heap.  When that happens, we start a new heap.  */
-   
+
 typedef struct heap
 {
   struct heap *next;
@@ -174,7 +174,7 @@
 /* These structures are allocated in the malloc arena.
    The linked list is kept in order of increasing '.data' members.
    The data blocks abut each other; if b->next is non-nil, then
-   b->data + b->size == b->next->data.  
+   b->data + b->size == b->next->data.
 
    An element with variable==NIL denotes a freed block, which has not yet
    been collected.  They may only appear while r_alloc_freeze > 0, and will be
@@ -467,8 +467,8 @@
 /* Calculate new locations of blocs in the list beginning with BLOC,
    relocating it to start at ADDRESS, in heap HEAP.  If enough space is
    not presently available in our reserve, call obtain for
-   more space. 
-   
+   more space.
+
    Store the new location of each bloc in its new_data field.
    Do not touch the contents of blocs or break_value.  */
 
@@ -481,7 +481,7 @@
   register bloc_ptr b = bloc;
 
   /* No need to ever call this if arena is frozen, bug somewhere!  */
-  if (r_alloc_freeze_level) 
+  if (r_alloc_freeze_level)
     abort();
 
   while (b)
@@ -506,7 +506,7 @@
 	  /* Add up the size of all the following blocs.  */
 	  while (tb != NIL_BLOC)
 	    {
-	      if (tb->variable) 
+	      if (tb->variable)
 		s += tb->size;
 
 	      tb = tb->next;
@@ -523,7 +523,7 @@
       /* Record the new address of this bloc
 	 and update where the next bloc can start.  */
       b->new_data = address;
-      if (b->variable) 
+      if (b->variable)
 	address = (char *) address + b->size;
       b = b->next;
     }
@@ -639,7 +639,7 @@
   SIZE old_size;
 
   /* No need to ever call this if arena is frozen, bug somewhere!  */
-  if (r_alloc_freeze_level) 
+  if (r_alloc_freeze_level)
     abort();
 
   if (bloc == NIL_BLOC || size == bloc->size)
@@ -681,8 +681,8 @@
 	    {
 	      b->size = 0;
 	      b->data = b->new_data;
-            } 
-	  else 
+            }
+	  else
 	    {
 	      safe_bcopy (b->data, b->new_data, b->size);
 	      *b->variable = b->data = b->new_data;
@@ -708,8 +708,8 @@
 	    {
 	      b->size = 0;
 	      b->data = b->new_data;
-            } 
-	  else 
+            }
+	  else
 	    {
 	      safe_bcopy (b->data, b->new_data, b->size);
 	      *b->variable = b->data = b->new_data;
@@ -738,7 +738,7 @@
       bloc->variable = (POINTER *) NIL;
       return;
     }
-  
+
   resize_bloc (bloc, 0);
 
   if (bloc == first_bloc && bloc == last_bloc)
@@ -794,7 +794,7 @@
    __morecore hook values - in particular, __default_morecore in the
    GNU malloc package.  */
 
-POINTER 
+POINTER
 r_alloc_sbrk (size)
      long size;
 {
@@ -850,7 +850,7 @@
       if (first_heap->bloc_start < new_bloc_start)
 	{
 	  /* This is no clean solution - no idea how to do it better.  */
-	  if (r_alloc_freeze_level) 
+	  if (r_alloc_freeze_level)
 	    return NIL;
 
 	  /* There is a bug here: if the above obtain call succeeded, but the
@@ -1018,7 +1018,7 @@
 
   if (!*ptr)
     return r_alloc (ptr, size);
-  if (!size) 
+  if (!size)
     {
       r_alloc_free (ptr);
       return r_alloc (ptr, 0);
@@ -1028,12 +1028,12 @@
   if (bloc == NIL_BLOC)
     abort ();
 
-  if (size < bloc->size) 
+  if (size < bloc->size)
     {
       /* Wouldn't it be useful to actually resize the bloc here?  */
       /* I think so too, but not if it's too expensive...  */
-      if ((bloc->size - MEM_ROUNDUP (size) >= page_size) 
-          && r_alloc_freeze_level == 0) 
+      if ((bloc->size - MEM_ROUNDUP (size) >= page_size)
+          && r_alloc_freeze_level == 0)
 	{
 	  resize_bloc (bloc, MEM_ROUNDUP (size));
 	  /* Never mind if this fails, just do nothing...  */
@@ -1055,7 +1055,7 @@
           else
 	    return NIL;
 	}
-      else 
+      else
 	{
 	  if (! resize_bloc (bloc, MEM_ROUNDUP (size)))
 	    return NIL;
@@ -1091,22 +1091,22 @@
 r_alloc_thaw ()
 {
 
-  if (! r_alloc_initialized) 
+  if (! r_alloc_initialized)
     r_alloc_init ();
 
   if (--r_alloc_freeze_level < 0)
     abort ();
 
-  /* This frees all unused blocs.  It is not too inefficient, as the resize 
-     and bcopy is done only once.  Afterwards, all unreferenced blocs are 
+  /* This frees all unused blocs.  It is not too inefficient, as the resize
+     and bcopy is done only once.  Afterwards, all unreferenced blocs are
      already shrunk to zero size.  */
-  if (!r_alloc_freeze_level) 
+  if (!r_alloc_freeze_level)
     {
       bloc_ptr *b = &first_bloc;
-      while (*b) 
-	if (!(*b)->variable) 
-	  free_bloc (*b); 
-	else 
+      while (*b)
+	if (!(*b)->variable)
+	  free_bloc (*b);
+	else
 	  b = &(*b)->next;
     }
 }
@@ -1238,7 +1238,7 @@
   if (r_alloc_initialized)
     return;
   r_alloc_initialized = 1;
-  
+
   page_size = PAGE;
 #ifndef SYSTEM_MALLOC
   real_morecore = __morecore;
@@ -1283,6 +1283,6 @@
 	 (char *) first_heap->end - (char *) first_heap->start);
   virtual_break_value = break_value = first_heap->bloc_start = first_heap->end;
 #endif
-  
+
   use_relocatable_buffers = 1;
 }
--- a/src/regex.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/regex.c	Tue Feb 04 14:56:31 2003 +0000
@@ -2065,7 +2065,7 @@
 static void
 extend_range_table_work_area (work_area)
      struct range_table_work_area *work_area;
-{									
+{
   work_area->allocated += 16 * sizeof (int);
   if (work_area->table)
     work_area->table
@@ -2104,7 +2104,7 @@
 
      `strange' indicates a character that has more than one
      case-equivalent.  */
-     
+
   enum case_type {one_case, two_case, strange};
 
   /* Describe the run that is in progress,
@@ -2174,7 +2174,7 @@
 	    }
 	  run_type = strange;
 	}
-	      
+
       if (this_type == strange)
 	{
 	  /* For a strange character, add each of its equivalents, one
@@ -2624,7 +2624,7 @@
 		      (simple || !analyse_first (laststart, b, NULL, 0))
 		      ? on_failure_jump : on_failure_jump_loop;
 		    assert (skip_one_char (laststart) <= b);
-		    
+
 		    if (!zero_times_ok && simple)
 		      { /* Since simple * loops can be made faster by using
 		    	   on_failure_keep_string_jump, we turn simple P+
@@ -3941,7 +3941,7 @@
 	     case has already been handled, so we only need to look at the
 	     fallthrough case.  */
 	  continue;
-	  
+
 	case succeed_n:
 	  /* If N == 0, it should be an on_failure_jump_loop instead.  */
 	  DEBUG_STATEMENT (EXTRACT_NUMBER (j, p + 2); assert (j > 0));
@@ -4424,7 +4424,7 @@
     {
     case anychar:
       break;
-      
+
     case exactn:
       p += *p + 1;
       break;
@@ -4441,7 +4441,7 @@
       else
 	p += 1 + CHARSET_BITMAP_SIZE (p - 1);
       break;
-      
+
     case syntaxspec:
     case notsyntaxspec:
 #ifdef emacs
@@ -4524,7 +4524,7 @@
 	  return 1;
 	}
       break;
-      
+
     case endline:
     case exactn:
       {
@@ -4634,7 +4634,7 @@
 	  }
       }
       break;
-      
+
     case charset_not:
       switch (SWITCH_ENUM_CAST (*p1))
 	{
@@ -5318,7 +5318,7 @@
 
 	  assert (!REG_UNSET (regstart[*p]));
 	  /* Strictly speaking, there should be code such as:
-	     
+
 		assert (REG_UNSET (regend[*p]));
 		PUSH_FAILURE_REGSTOP ((unsigned int)*p);
 
@@ -5735,7 +5735,7 @@
 	      PREFETCH ();
 	      c2 = RE_STRING_CHAR (d, dend - d);
 	      s2 = SYNTAX (c2);
-	
+
 	      /* Case 2: S2 is not Sword. */
 	      if (s2 != Sword)
 		goto fail;
--- a/src/region-cache.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/region-cache.c	Tue Feb 04 14:56:31 2003 +0000
@@ -131,7 +131,7 @@
 struct region_cache *
 new_region_cache ()
 {
-  struct region_cache *c 
+  struct region_cache *c
     = (struct region_cache *) xmalloc (sizeof (struct region_cache));
 
   c->gap_start = 0;
@@ -385,7 +385,7 @@
 
   c->cache_len -= len;
 }
-     
+
 
 
 /* Set the value for a region.  */
@@ -407,12 +407,12 @@
      both the locations of real characters in the buffer.  */
   if (start == end)
     return;
-  
+
   {
     /* We need to make sure that there are no boundaries in the area
        between start to end; the whole area will have the same value,
        so those boundaries will not be necessary.
-       
+
        Let start_ix be the cache index of the boundary governing the
        first character of start..end, and let end_ix be the cache
        index of the earliest boundary after the last character in
@@ -456,7 +456,7 @@
             start_ix++;
           }
       }
-          
+
     /* This is equivalent to letting end_ix float (like a buffer
        marker does) with the insertions and deletions we may have
        done.  */
@@ -553,7 +553,7 @@
 }
 
 
-/* Clean out any cache entries applying to the modified region, and 
+/* Clean out any cache entries applying to the modified region, and
    make the positions of the remaining entries accurate again.
 
    After calling this function, the mess described in the comment in
@@ -606,7 +606,7 @@
      (which will give the modified region the same size in the cache
      as it has in the buffer), and then invalidate the modified
      region. */
-  if (c->buffer_beg + c->beg_unchanged 
+  if (c->buffer_beg + c->beg_unchanged
       == c->buffer_end - c->end_unchanged)
     {
       /* Move the gap so that all the boundaries in the unchanged head
@@ -721,7 +721,7 @@
 /* Interface: using the cache.  */
 
 /* Return true if the text immediately after POS in BUF is known, for
-   the purposes of CACHE.  If NEXT is non-zero, set *NEXT to the nearest 
+   the purposes of CACHE.  If NEXT is non-zero, set *NEXT to the nearest
    position after POS where the knownness changes.  */
 int
 region_cache_forward (buf, c, pos, next)
--- a/src/region-cache.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/region-cache.h	Tue Feb 04 14:56:31 2003 +0000
@@ -86,7 +86,7 @@
 					 struct region_cache *CACHE,
 					 int HEAD, int TAIL));
 
-/* The scanning functions. 
+/* The scanning functions.
 
    Basically, if you're scanning forward/backward from position POS,
    and region_cache_forward/backward returns true, you can skip all
@@ -96,7 +96,7 @@
    might be able to avoid scanning it again.  */
 
 /* Return true if the text immediately after POS in BUF is known, for
-   the purposes of CACHE.  If NEXT is non-zero, set *NEXT to the nearest 
+   the purposes of CACHE.  If NEXT is non-zero, set *NEXT to the nearest
    position after POS where the knownness changes.  */
 extern int region_cache_forward P_ ((struct buffer *BUF,
                                      struct region_cache *CACHE,
--- a/src/s/386bsd.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/386bsd.h	Tue Feb 04 14:56:31 2003 +0000
@@ -6,7 +6,7 @@
 #undef LIB_STANDARD
 #define LIB_STANDARD -lc $(GNULIB_VAR)
 
-/* The following should be set to /netbsd if you are running netbsd > 0.8 
+/* The following should be set to /netbsd if you are running netbsd > 0.8
    Or just link /netbsd -> /386bsd  */
 #undef KERNEL_FILE
 #define KERNEL_FILE "/386bsd"
--- a/src/s/aix4-1.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/aix4-1.h	Tue Feb 04 14:56:31 2003 +0000
@@ -1,4 +1,4 @@
-#define AIX4_1 
+#define AIX4_1
 
 #include "aix4.h"
 
--- a/src/s/bsd4-1.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/bsd4-1.h	Tue Feb 04 14:56:31 2003 +0000
@@ -46,7 +46,7 @@
 /* First pty name is /dev/ptyp0.  */
 
 #define FIRST_PTY_LETTER 'p'
- 
+
 /*
  *	Define HAVE_PTYS if the system supports pty devices.
  */
--- a/src/s/cygwin.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/cygwin.h	Tue Feb 04 14:56:31 2003 +0000
@@ -103,7 +103,7 @@
 
 /* If the system's imake configuration file defines `NeedWidePrototypes'
    as `NO', we must define NARROWPROTO manually.  Such a define is
-   generated in the Makefile generated by `xmkmf'.  If we don't 
+   generated in the Makefile generated by `xmkmf'.  If we don't
    define NARROWPROTO, we will see the wrong function prototypes
    for X functions taking float or double parameters.  */
 
--- a/src/s/darwin.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/darwin.h	Tue Feb 04 14:56:31 2003 +0000
@@ -178,7 +178,7 @@
 
 /* If the system's imake configuration file defines `NeedWidePrototypes'
    as `NO', we must define NARROWPROTO manually.  Such a define is
-   generated in the Makefile generated by `xmkmf'.  If we don't 
+   generated in the Makefile generated by `xmkmf'.  If we don't
    define NARROWPROTO, we will see the wrong function prototypes
    for X functions taking float or double parameters.  */
 
--- a/src/s/freebsd.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/freebsd.h	Tue Feb 04 14:56:31 2003 +0000
@@ -23,7 +23,7 @@
 
 /* Get the correct __FreeBSD_version, even if this is before that was
    defined. */
-#ifndef __FreeBSD_version 
+#ifndef __FreeBSD_version
 #ifndef __FreeBSD__
 #define __FreeBSD_version 199401
 #elif __FreeBSD__ == 1
@@ -144,7 +144,7 @@
 #define BSD_SYSTEM 199506
 #endif
 
-#if 0  /* Shouldn't be necessary and produces warnings with the 
+#if 0  /* Shouldn't be necessary and produces warnings with the
           experimental Autoconf test.  */
 #define WAITTYPE int
 /* get this since it won't be included if WAITTYPE is defined */
@@ -167,7 +167,7 @@
 
 /* If the system's imake configuration file defines `NeedWidePrototypes'
    as `NO', we must define NARROWPROTO manually.  Such a define is
-   generated in the Makefile generated by `xmkmf'.  If we don't 
+   generated in the Makefile generated by `xmkmf'.  If we don't
    define NARROWPROTO, we will see the wrong function prototypes
    for X functions taking float or double parameters.  */
 
--- a/src/s/hiuxmpp.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/hiuxmpp.h	Tue Feb 04 14:56:31 2003 +0000
@@ -14,9 +14,9 @@
 #define BSD4_2
 
 /* Define _BSD to tell the include files we're running under
-   the BSD universe and not the SYSV universe.  
-   Define HITACHI and OSF for Xt's Boolean type as int intead of char.  
-   (But for these defines, /usr/include/X11/Intrinsic.h defines 
+   the BSD universe and not the SYSV universe.
+   Define HITACHI and OSF for Xt's Boolean type as int intead of char.
+   (But for these defines, /usr/include/X11/Intrinsic.h defines
    Boolean as char, but libXt.a on HI-UX/MPP requires it as int.)  */
 
 #define C_SWITCH_SYSTEM	-D_BSD -DHITACHI -DOSF
@@ -34,7 +34,7 @@
 /* Here is how to find X Windows.  LD_SWITCH_X_SITE_AUX gives an -R option
    says where to find X windows at run time.  We convert it to a -rpath option
    which is what OSF1 uses.  */
-#define LD_SWITCH_SYSTEM 
+#define LD_SWITCH_SYSTEM
 
 #undef KERNEL_FILE
 #define KERNEL_FILE "/mach_kernel"
--- a/src/s/hiuxwe2.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/hiuxwe2.h	Tue Feb 04 14:56:31 2003 +0000
@@ -14,9 +14,9 @@
 #define BSD4_2
 
 /* Define _BSD to tell the include files we're running under
-   the BSD universe and not the SYSV universe.  
-   Define HITACHI and OSF for Xt's Boolean type as int intead of char.  
-   (But for these defines, /usr/include/X11/Intrinsic.h defines 
+   the BSD universe and not the SYSV universe.
+   Define HITACHI and OSF for Xt's Boolean type as int intead of char.
+   (But for these defines, /usr/include/X11/Intrinsic.h defines
    Boolean as char, but libXt.a on HI-UX/MPP requires it as int.)  */
 
 #define C_SWITCH_SYSTEM	-D_BSD -DHITACHI -DOSF
@@ -34,7 +34,7 @@
 /* Here is how to find X Windows.  LD_SWITCH_X_SITE_AUX gives an -R option
    says where to find X windows at run time.  We convert it to a -rpath option
    which is what OSF1 uses.  */
-#define LD_SWITCH_SYSTEM 
+#define LD_SWITCH_SYSTEM
 
 #undef KERNEL_FILE
 #define KERNEL_FILE "/mach_kernel"
--- a/src/s/hpux8.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/hpux8.h	Tue Feb 04 14:56:31 2003 +0000
@@ -52,7 +52,7 @@
    and none have sioctl.h, so might as well define this.  */
 #define NO_SIOCTL_H
 
-#if 0 /* autoconf should be detecting the presence or absence of 
+#if 0 /* autoconf should be detecting the presence or absence of
 	 random and srandom now.  */
 /* If you use X11R4 you must define this.  If you use
    X11R5 you must comment this out */
--- a/src/s/irix5-0.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/irix5-0.h	Tue Feb 04 14:56:31 2003 +0000
@@ -4,7 +4,7 @@
 
 #undef sigsetmask  /* use sys_sigsetmask */
 #undef _longjmp /* use system versions, not conservative aliases */
-#undef _setjmp 
+#undef _setjmp
 
 #define SETPGRP_RELEASES_CTTY
 
@@ -73,7 +73,7 @@
 
 /* Since we use POSIX constructs in PTY_OPEN, we must force POSIX
    throughout. */
-#define POSIX_SIGNALS  
+#define POSIX_SIGNALS
 
 /* Info from simon@lia.di.epfl.ch (Simon Leinen) suggests this is needed.  */
 #define GETPGRP_NO_ARG
--- a/src/s/irix5-2.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/irix5-2.h	Tue Feb 04 14:56:31 2003 +0000
@@ -1,8 +1,8 @@
 #include "irix5-0.h"
 
-/* as of version 5.2, irix no longer uses flock, 
+/* as of version 5.2, irix no longer uses flock,
    according to jackr@wpd.sgi.com.  */
-#undef MAIL_USE_FLOCK 
+#undef MAIL_USE_FLOCK
 
 /* C-g in select is not handled properly with restartable
    system calls.  So don't use them.  */
--- a/src/s/ms-w32.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/ms-w32.h	Tue Feb 04 14:56:31 2003 +0000
@@ -440,7 +440,7 @@
 
 #include <sys/stat.h>
 
-/* Define for those source files that do not include enough NT 
+/* Define for those source files that do not include enough NT
    system files.  */
 #ifndef NULL
 #ifdef __cplusplus
--- a/src/s/netbsd.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/netbsd.h	Tue Feb 04 14:56:31 2003 +0000
@@ -112,13 +112,13 @@
    ioctl TIOCSCTTY.  */
 
 #define DONT_REOPEN_PTY
- 
+
 /* Tell that garbage collector that setjmp is known to save all
    registers relevant for conservative garbage collection in the
    jmp_buf.  */
 
 #define GC_SETJMP_WORKS 1
- 
+
 /* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method.  */
 
 #define GC_MARK_STACK	GC_MAKE_GCPROS_NOOPS
--- a/src/s/ptx.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/ptx.h	Tue Feb 04 14:56:31 2003 +0000
@@ -41,8 +41,8 @@
 
 /* PTX has System V streams.  */
 #define SYSV_STREAMS
- 
-/* Leave out -lPW since it conflicts with term.o and because we're not sure 
+
+/* Leave out -lPW since it conflicts with term.o and because we're not sure
    if the alloca found there by autoconf should be trusted on PTX.  */
 #define LIB_STANDARD -lc
 
@@ -159,7 +159,7 @@
   }								\
   strcpy (pty_name, slavename);
 
-/* Define these to prevent the default logic in process.c:allocate_pty 
+/* Define these to prevent the default logic in process.c:allocate_pty
    from being used.  */
 #define PTY_NAME_SPRINTF
 #define PTY_TTY_NAME_SPRINTF
--- a/src/s/sco4.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/sco4.h	Tue Feb 04 14:56:31 2003 +0000
@@ -86,7 +86,7 @@
 #define LIBS_SYSTEM -lsocket -lPW
 
 /* SCO has gettimeofday in socket library */
-/* Autoconf should determine this, but for now, 
+/* Autoconf should determine this, but for now,
    play safe to avoid error rather than deleting this
    and risking the wrong result.  */
 #ifndef HAVE_GETTIMEOFDAY
--- a/src/s/sco5.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/sco5.h	Tue Feb 04 14:56:31 2003 +0000
@@ -150,7 +150,7 @@
 #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->__ptr - (FILE)->__base)
 #endif
 
-/* Use ELF and get real shared libraries */ 
+/* Use ELF and get real shared libraries */
 
 #undef COFF
 #define ELF
--- a/src/s/template.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/template.h	Tue Feb 04 14:56:31 2003 +0000
@@ -168,7 +168,7 @@
 
 /* If the system's imake configuration file defines `NeedWidePrototypes'
    as `NO', we must define NARROWPROTO manually.  Such a define is
-   generated in the Makefile generated by `xmkmf'.  If we don't 
+   generated in the Makefile generated by `xmkmf'.  If we don't
    define NARROWPROTO, we will see the wrong function prototypes
    for X functions taking float or double parameters.  */
 
--- a/src/s/umax.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/umax.h	Tue Feb 04 14:56:31 2003 +0000
@@ -147,7 +147,7 @@
 #define SEGMENT_MASK	(64 * 1024 - 1)
 
 
-/* crt0.c needs this for compilation because it uses asm.  */  
+/* crt0.c needs this for compilation because it uses asm.  */
 
 #define C_SWITCH_ASM -q nodirect_code
 
--- a/src/s/vms.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/s/vms.h	Tue Feb 04 14:56:31 2003 +0000
@@ -130,7 +130,7 @@
 #define LINK_CRTL_SHARE
 
 /* Define this if you want to read the file SYS$SYSTEM:SYSUAF.DAT for user
-   information.  If you do use this, you must either make SYSUAF.DAT world 
+   information.  If you do use this, you must either make SYSUAF.DAT world
    readable or install Emacs with SYSPRV.  */
 
 /* #define READ_SYSUAF */
@@ -192,7 +192,7 @@
 
 /* If user asks for TERM, check first for EMACS_TERM.  */
 #define getenv sys_getenv
-  
+
 /* Standard C abort is less useful than it should be. */
 #define abort sys_abort
 
--- a/src/scroll.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/scroll.c	Tue Feb 04 14:56:31 2003 +0000
@@ -232,13 +232,13 @@
 /* Perform insert-lines and delete-lines operations on CURRENT_MATRIX
    according to the costs in MATRIX, using the general scrolling
    method that is used if the terminal does not support the setting of
-   scroll windows (scroll_region_ok == 0).  
+   scroll windows (scroll_region_ok == 0).
 
    WINDOW_SIZE is the number of lines being considered for scrolling
    and UNCHANGED_AT_TOP is the vpos of the first line being
    considered.  These two arguments can specify any contiguous range
    of lines.  */
- 
+
 static void
 do_scrolling (current_matrix, matrix, window_size, unchanged_at_top)
      struct glyph_matrix *current_matrix;
@@ -258,7 +258,7 @@
   struct queue *queue_start
     = (struct queue *) alloca (current_matrix->nrows * sizeof (struct queue));
   struct queue *queue = queue_start;
-  
+
   char *retained_p = (char *) alloca (window_size * sizeof (char));
   int *copy_from = (int *) alloca (window_size * sizeof (int));
 
@@ -283,7 +283,7 @@
   while (i > 0 || j > 0)
     {
       p = matrix + i * (window_size + 1) + j;
-      
+
       if (p->insertcost < p->writecost && p->insertcost < p->deletecost)
 	{
 	  /* Insert should be done at vpos i-1, plus maybe some before.
@@ -365,7 +365,7 @@
 	    }
 	}
       while (queue > queue_start);
-	  
+
     }
 
   for (k = 0; k < window_size; ++k)
@@ -377,7 +377,7 @@
 
   /* Some sanity checks if GLYPH_DEBUG != 0.  */
   CHECK_MATRIX (current_matrix);
-  
+
   if (terminal_window_p)
     set_terminal_window (0);
 }
@@ -562,7 +562,7 @@
 		   To reduce the cumulative effects of rounding error, we
 		   vary the position at which the difference is computed. */
 		cost1 += first_insert_cost[-j] - first_insert_cost[1-j] +
-		  (delta-1) * (next_insert_cost[-j] - next_insert_cost[1-j]); 
+		  (delta-1) * (next_insert_cost[-j] - next_insert_cost[1-j]);
 	      }
 	    else
 	      {
@@ -570,7 +570,7 @@
 		cost += scroll_overhead + first_delete_cost[-delta] +
 		  (delta-1) * (next_delete_cost[-delta] + extra_cost);
 		cost1 += first_delete_cost[-i] - first_delete_cost[1-i] +
-		  (delta-1) * ( next_delete_cost[-i] - next_delete_cost[1-i]); 
+		  (delta-1) * ( next_delete_cost[-i] - next_delete_cost[1-i]);
 	      }
 	    if (cost1 < cost)
 	      {
@@ -641,7 +641,7 @@
    and UNCHANGED_AT_TOP is the vpos of the first line being
    considered.  These two arguments can specify any contiguous range
    of lines.
- 
+
    In the direct scrolling method, a new scroll window is selected
    before each insertion or deletion, so that groups of lines can be
    scrolled directly to their final vertical positions.  This method
@@ -701,11 +701,11 @@
      without also decrementing i, this corresponds to omitting these
      lines in the new rows, i.e. rows are deleted.  */
   i = j = window_size;
-  
+
   while (i > 0 || j > 0)
     {
       p = cost_matrix + i * (window_size + 1) + j;
-      
+
       if (p->insertcost < p->writecost
 	  && p->insertcost < p->deletecost
 	  && (write_follows_p || i < j))
@@ -717,7 +717,7 @@
 	  queue->window = i;
 	  queue->pos = i - p->insertcount;
 	  ++queue;
-	  
+
 	  i -= p->insertcount;
 	  write_follows_p = 0;
 	}
@@ -736,7 +736,7 @@
 	     place they belong.  */
 	  int n_to_write = p->writecount;
 	  write_follows_p = 1;
-	  xassert (n_to_write > 0); 
+	  xassert (n_to_write > 0);
 
 	  if (i > j)
 	    {
@@ -822,7 +822,7 @@
     {
       calculate_direct_scrolling (frame, matrix, window_size,
 				  unchanged_at_bottom,
-				  draw_cost, old_draw_cost, 
+				  draw_cost, old_draw_cost,
 				  old_hash, new_hash, free_at_end);
       do_direct_scrolling (frame->current_matrix,
 			   matrix, window_size, unchanged_at_top);
@@ -1054,7 +1054,7 @@
 	(int *) xmalloc (FRAME_HEIGHT (frame) * sizeof (int));
       FRAME_INSERTN_COST (frame) =
 	(int *) xmalloc (FRAME_HEIGHT (frame) * sizeof (int));
-      FRAME_DELETE_COST (frame) = 
+      FRAME_DELETE_COST (frame) =
 	(int *) xmalloc (FRAME_HEIGHT (frame) * sizeof (int));
     }
 
--- a/src/search.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/search.c	Tue Feb 04 14:56:31 2003 +0000
@@ -306,12 +306,12 @@
     }
 
   re_match_object = Qnil;
-  
+
   i = re_match_2 (bufp, (char *) p1, s1, (char *) p2, s2,
 		  PT_BYTE - BEGV_BYTE, &search_regs,
 		  ZV_BYTE - BEGV_BYTE);
   immediate_quit = 0;
-  
+
   if (i == -2)
     matcher_overflow ();
 
@@ -390,7 +390,7 @@
 			  STRING_MULTIBYTE (string));
   immediate_quit = 1;
   re_match_object = string;
-  
+
   val = re_search (bufp, (char *) SDATA (string),
 		   SBYTES (string), pos_byte,
 		   SBYTES (string) - pos_byte,
@@ -458,7 +458,7 @@
 			  0, STRING_MULTIBYTE (string));
   immediate_quit = 1;
   re_match_object = string;
-  
+
   val = re_search (bufp, (char *) SDATA (string),
 		   SBYTES (string), 0,
 		   SBYTES (string), 0);
@@ -550,7 +550,7 @@
      int allow_quit;
 {
   struct region_cache *newline_cache;
-  int direction; 
+  int direction;
 
   if (count > 0)
     {
@@ -611,7 +611,7 @@
 	ceiling_byte = min (tem, ceiling_byte);
 
         {
-          /* The termination address of the dumb loop.  */ 
+          /* The termination address of the dumb loop.  */
           register unsigned char *ceiling_addr
 	    = BYTE_POS_ADDR (ceiling_byte) + 1;
           register unsigned char *cursor
@@ -856,7 +856,7 @@
 
   if (shortage == 0)
     pos--;
-  
+
   return pos;
 }
 
@@ -1062,7 +1062,7 @@
 	  s2 = 0;
 	}
       re_match_object = Qnil;
-  
+
       while (n < 0)
 	{
 	  int val;
@@ -1528,7 +1528,7 @@
   int infinity, limit, stride_for_teases = 0;
   register int *BM_tab;
   int *BM_tab_base;
-  register unsigned char *cursor, *p_limit;  
+  register unsigned char *cursor, *p_limit;
   register int i, j;
   unsigned char *pat, *pat_end;
   int multibyte = ! NILP (current_buffer->enable_multibyte_characters);
@@ -1561,14 +1561,14 @@
   /* a single test, a test for having gone past the end of the */
   /* permissible match region, to test for both possible matches (when */
   /* the stride goes past the end immediately) and failure to */
-  /* match (where you get nudged past the end one stride at a time). */ 
+  /* match (where you get nudged past the end one stride at a time). */
 
   /* Here we make a "mickey mouse" BM table.  The stride of the search */
   /* is determined only by the last character of the putative match. */
   /* If that character does not match, we will stride the proper */
   /* distance to propose a match that superimposes it on the last */
   /* instance of a character that matches it (per trt), or misses */
-  /* it entirely if there is none. */  
+  /* it entirely if there is none. */
 
   dirlen = len_byte * direction;
   infinity = dirlen - (lim_byte + pos_byte + len_byte + len_byte) * direction;
@@ -1656,7 +1656,7 @@
 
 	  BM_tab[j] = dirlen - i;
 	  /* A translation table is accompanied by its inverse -- see */
-	  /* comment following downcase_table for details */ 
+	  /* comment following downcase_table for details */
 	  if (this_translated)
 	    {
 	      int starting_ch = ch;
@@ -1844,7 +1844,7 @@
 	      /* This loop can be coded for space rather than */
 	      /* speed because it will usually run only once. */
 	      /* (the reach is at most len + 21, and typically */
-	      /* does not exceed len) */    
+	      /* does not exceed len) */
 	      while ((limit - pos_byte) * direction >= 0)
 		pos_byte += BM_tab[FETCH_BYTE (pos_byte)];
 	      /* now run the same tests to distinguish going off the */
@@ -1957,7 +1957,7 @@
   for (i = 0, i_byte = 0; i < len; )
     {
       int c;
-      
+
       FETCH_STRING_CHAR_ADVANCE (c, string, i, i_byte);
 
       if (SYNTAX (c) != Sword)
@@ -1992,7 +1992,7 @@
     {
       int c;
       int i_byte_orig = i_byte;
-      
+
       FETCH_STRING_CHAR_ADVANCE (c, string, i, i_byte);
 
       if (SYNTAX (c) == Sword)
@@ -2360,7 +2360,7 @@
 	      if (c == '\\')
 		{
 		  FETCH_STRING_CHAR_ADVANCE (c, newtext, pos, pos_byte);
-		      
+
 		  if (c == '&')
 		    {
 		      substart = search_regs.start[sub];
@@ -2593,7 +2593,7 @@
 
   /* Now move point "officially" to the start of the inserted replacement.  */
   move_if_not_intangible (newpoint);
-  
+
   return Qnil;
 }
 
@@ -2639,7 +2639,7 @@
      Lisp_Object subexp;
 {
   return match_limit (subexp, 0);
-} 
+}
 
 DEFUN ("match-data", Fmatch_data, Smatch_data, 0, 2, 0,
        doc: /* Return a list containing all info on what the last search matched.
@@ -2687,7 +2687,7 @@
 			   last_thing_searched);
 	      data[2 * i + 1] = Fmake_marker ();
 	      Fset_marker (data[2 * i + 1],
-			   make_number (search_regs.end[i]), 
+			   make_number (search_regs.end[i]),
 			   last_thing_searched);
 	    }
 	  else
@@ -2740,7 +2740,7 @@
   if (!CONSP (list) && !NILP (list))
     list = wrong_type_argument (Qconsp, list);
 
-  /* Unless we find a marker with a buffer in LIST, assume that this 
+  /* Unless we find a marker with a buffer in LIST, assume that this
      match data came from a string.  */
   last_thing_searched = Qt;
 
@@ -2809,7 +2809,7 @@
       list = Fcdr (list);
     }
 
-  return Qnil;  
+  return Qnil;
 }
 
 /* If non-zero the match data have been saved in saved_search_regs
@@ -2873,7 +2873,7 @@
 
   in = SDATA (string);
   end = in + SBYTES (string);
-  out = temp; 
+  out = temp;
 
   for (; in != end; in++)
     {
@@ -2890,7 +2890,7 @@
 				out - temp,
 				STRING_MULTIBYTE (string));
 }
-  
+
 void
 syms_of_search ()
 {
--- a/src/sunfns.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/sunfns.c	Tue Feb 04 14:56:31 2003 +0000
@@ -158,7 +158,7 @@
 {
   struct timeval Timeout;
   int waitmask = 1;
-  
+
   CHECK_NUMBER (n);
   Timeout.tv_sec = XINT(n) / 1000;
   Timeout.tv_usec = (XINT(n) - (Timeout.tv_sec * 1000)) * 1000;
@@ -178,7 +178,7 @@
 /*
  *   Sun sleep-for (allows a shorter interval than the regular sleep-for)
  */
-DEFUN ("sleep-for-millisecs", 
+DEFUN ("sleep-for-millisecs",
        Fsleep_for_millisecs,
        Ssleep_for_millisecs, 1, 1, 0,
        doc: /* Pause, without updating display, for ARG milliseconds.  */)
@@ -220,12 +220,12 @@
   register short *p;
   register int i;
   Lisp_Object X_Hot, Y_Hot, Data;
-  
+
   CHECK_GFX (Qnil);
   /*
    *	If the icon is null, we just restore the DefaultCursor
    */
-  if (NILP(Icon)) 
+  if (NILP(Icon))
     CurrentCursor = DefaultCursor;
   else {
     /*
@@ -236,7 +236,7 @@
     X_Hot = XVECTOR(Icon)->contents[0];
     Y_Hot = XVECTOR(Icon)->contents[1];
     Data = XVECTOR(Icon)->contents[2];
-    
+
     CHECK_NUMBER (X_Hot);
     CHECK_NUMBER (Y_Hot);
     CHECK_STRING (Data);
@@ -267,7 +267,7 @@
      struct selection *sel;
      FILE *file;
 {
-  fwrite (SDATA (Current_Selection), sizeof (char), 
+  fwrite (SDATA (Current_Selection), sizeof (char),
 	  sel->sel_items, file);
 }
 
@@ -285,7 +285,7 @@
 {
   register int i, n;
   register char *cp;
-  
+
   Current_Selection = make_string ("", 0);
   if (sel->sel_items <= 0)
     return (0);
@@ -306,7 +306,7 @@
    * The shelltool select saves newlines as carriage returns,
    * but emacs wants newlines.
    */
-  for (i = 0; i < n; i++) 
+  for (i = 0; i < n; i++)
     if (cp[i] == '\r') cp[i] = '\n';
 
   Current_Selection = make_string (cp, n);
@@ -379,16 +379,16 @@
   return menu_item;
 }
 
-Menu 
+Menu
 sun_menu_create (Vector)
      Lisp_Object Vector;
 {
   Menu menu;
   int i;
   CHECK_VECTOR(Vector);
-  menu=menu_create(0); 
+  menu=menu_create(0);
   for(i = 0; i < XVECTOR(Vector)->size; i++) {
-    menu_set (menu, MENU_APPEND_ITEM, 
+    menu_set (menu, MENU_APPEND_ITEM,
 	      sun_item_create(XVECTOR(Vector)->contents[i]), 0);
   }
   return menu;
@@ -445,7 +445,7 @@
   Event event0;
   Event *event = &event0;
   Lisp_Object Value, Pair;
-  
+
   CHECK_NUMBER(X_Position);
   CHECK_NUMBER(Y_Position);
   CHECK_LIVE_WINDOW(window);
--- a/src/syntax.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/syntax.c	Tue Feb 04 14:56:31 2003 +0000
@@ -1774,7 +1774,7 @@
 }
 
 DEFUN ("forward-comment", Fforward_comment, Sforward_comment, 1, 1, 0,
-       doc: /* 
+       doc: /*
 Move forward across up to COUNT comments.  If COUNT is negative, move backward.
 Stop scanning if we find something other than a comment or whitespace.
 Set point to where scanning stops.
--- a/src/syntax.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/syntax.h	Tue Feb 04 14:56:31 2003 +0000
@@ -90,7 +90,7 @@
 #endif
 
 /* SYNTAX_ENTRY fetches the information from the entry for character C
-   in syntax table TABLE, or from globally kept data (gl_state).  
+   in syntax table TABLE, or from globally kept data (gl_state).
    Does inheritance.  */
 /* CURRENT_SYNTAX_TABLE gives the syntax table valid for current
    position, it is either the buffer's syntax table, or syntax table
@@ -277,7 +277,7 @@
    search, or after the last position of the backward search.  It
    makes sure that the first char is picked up with correct table, so
    one does not need to call UPDATE_SYNTAX_TABLE immediately after the
-   call. 
+   call.
    Sign of COUNT gives the direction of the search.
  */
 
--- a/src/sysdep.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/sysdep.c	Tue Feb 04 14:56:31 2003 +0000
@@ -391,7 +391,7 @@
       emacs_ospeed = sg.c_cflag & CBAUD;
 #else /* neither VMS nor TERMIOS nor TERMIO */
       struct sgttyb sg;
-      
+
       sg.sg_ospeed = B9600;
       if (ioctl (input_fd, TIOCGETP, &sg) < 0)
 	abort ();
@@ -402,7 +402,7 @@
 #endif /* not DOS_NT */
 #endif /* not INIT_BAUD_RATE */
     }
-   
+
   baud_rate = (emacs_ospeed < sizeof baud_convert / sizeof baud_convert[0]
 	       ? baud_convert[emacs_ospeed] : 9600);
   if (baud_rate == 0)
@@ -543,7 +543,7 @@
  *	flush any pending output
  *      (may flush input as well; it does not matter the way we use it)
  */
- 
+
 void
 flush_pending_output (channel)
      int channel;
@@ -812,7 +812,7 @@
   save_signal_handlers (saved_handlers);
   synch_process_alive = 1;
 #endif /* __DJGPP__ > 1 */
-#else  
+#else
   pid = vfork ();
   if (pid == -1)
     error ("Can't spawn subshell");
@@ -1002,7 +1002,7 @@
 }
 
 #else /* not FASYNC, not STRIDE */
- 
+
 #ifdef _CX_UX
 
 #include <termios.h>
@@ -1046,7 +1046,7 @@
 
   croak ("request_sigio");
 }
- 
+
 void
 unrequest_sigio ()
 {
@@ -1258,7 +1258,7 @@
       || ioctl (fd, TIOCLSET, &settings->lmode) < 0)
     return -1;
 #endif
-  
+
   /* We have survived the tempest.  */
   return 0;
 }
@@ -1298,13 +1298,13 @@
 char _sobuf[BUFSIZ];
 #endif
 #endif
- 
+
 #ifdef HAVE_LTCHARS
 static struct ltchars new_ltchars = {-1,-1,-1,-1,-1,-1};
 #endif
 #ifdef HAVE_TCHARS
 static struct tchars new_tchars = {-1,-1,-1,-1,-1,-1};
-#endif 
+#endif
 
 void
 init_sys_modes ()
@@ -1413,7 +1413,7 @@
 	}
       else
 	tty.main.c_iflag &= ~IXON;	/* Disable start/stop output control */
-      tty.main.c_oflag &= ~ONLCR;	/* Disable map of NL to CR-NL 
+      tty.main.c_oflag &= ~ONLCR;	/* Disable map of NL to CR-NL
 					   on output */
       tty.main.c_oflag &= ~TAB3;	/* Disable tab expansion */
 #ifdef CS8
@@ -1554,7 +1554,7 @@
 	 anything, and leaving it in breaks the meta key.  Go figure.  */
       tty.lmode &= ~LLITOUT;
 #endif
-      
+
 #ifdef BSD4_1
       lmode = tty.lmode;
 #endif
@@ -1679,7 +1679,7 @@
 
 /* Return nonzero if safe to use tabs in output.
    At the time this is called, init_sys_modes has not been done yet.  */
-   
+
 int
 tabs_safe_p ()
 {
@@ -1715,7 +1715,7 @@
 #ifdef TIOCGSIZE
 
   /* SunOS - style.  */
-  struct ttysize size;  
+  struct ttysize size;
 
   if (ioctl (input_fd, TIOCGSIZE, &size) == -1)
     *widthp = *heightp = 0;
@@ -1729,7 +1729,7 @@
 #ifdef VMS
 
   struct sensemode tty;
-  
+
   SYS$QIOW (0, input_fd, IO$_SENSEMODE, &tty, 0, 0,
 	    &tty.class, 12, 0, 0, 0, 0);
   *widthp = tty.scr_wid;
@@ -1772,7 +1772,7 @@
 #ifdef TIOCSSIZE
 
   /* SunOS - style.  */
-  struct ttysize size;  
+  struct ttysize size;
   size.ts_lines = height;
   size.ts_cols = width;
 
@@ -1793,7 +1793,7 @@
 reset_sys_modes ()
 {
   struct frame *sf;
-  
+
   if (noninteractive)
     {
       fflush (stdout);
@@ -1820,7 +1820,7 @@
   cursor_to (FRAME_HEIGHT (sf) - 1, 0);
 #if defined (IBMR2AIX) && defined (AIXHFT)
   {
-    /* HFT devices normally use ^J as a LF/CR.  We forced it to 
+    /* HFT devices normally use ^J as a LF/CR.  We forced it to
        do the LF only.  Now, we need to reset it. */
     struct termio tty;
 
@@ -1903,13 +1903,13 @@
      does this.  Also it is known that telnet mode will hang
      in such a way that Emacs must be stopped (perhaps this
      is the same problem).
-     
+
      If TIOCREMOTE is turned off, then there is a bug in
      hp-ux which sometimes loses data.  Apparently the
      code which blocks the master process when the internal
      buffer fills up does not work.  Other than this,
      though, everything else seems to work fine.
-     
+
      Since the latter lossage is more benign, we may as well
      lose that way.  -- cph */
 #ifdef FIONBIO
@@ -1941,7 +1941,7 @@
 init_vms_input ()
 {
   int status;
-  
+
   if (input_fd == 0)
     {
       status = SYS$ASSIGN (&input_dsc, &input_fd, 0, 0);
@@ -2142,7 +2142,7 @@
   int time [2];
   static int zero = 0;
   static int large = -10000000;
-  
+
   LIB$EMUL (&timeval, &large, &zero, time); 	  /* Convert to VMS format */
 
   SYS$CANTIM (1, 0);
@@ -2242,7 +2242,7 @@
  *	will be patched by unexec to the correct value.
  *
  */
- 
+
 #ifndef start_of_data
 char *
 start_of_data ()
@@ -2542,7 +2542,7 @@
   /* Once a second, till the timer expires, check all the flagged read
    * descriptors to see if any input is available.  If there is some then
    * set the corresponding bit in the return copy of rfds.
-   */ 
+   */
   while (1)
     {
       register int to_check, fd;
@@ -2589,7 +2589,7 @@
       signal (SIGALRM, select_alarm);
       select_alarmed = 0;
       alarm (SELECT_PAUSE);
-      
+
       /* Wait for a SIGALRM (or maybe a SIGTINT) */
       while (select_alarmed == 0 && *local_timeout != 0
 	     && process_tick == update_tick)
@@ -2607,10 +2607,10 @@
 	    pause ();
 	}
       (*local_timeout) -= SELECT_PAUSE;
-      
+
       /* Reset the old alarm if there was one.  */
       turn_on_atimers (1);
-      
+
       if (*local_timeout == 0)  /* Stop on timer being cleared */
 	break;
     }
@@ -3239,10 +3239,10 @@
   register int rtnval;
 
 #ifdef BSD4_1
-  if (oflag & O_CREAT) 
+  if (oflag & O_CREAT)
     return creat (path, mode);
 #endif
-  
+
   while ((rtnval = open (path, oflag, mode)) == -1
 	 && (errno == EINTR));
   return (rtnval);
@@ -3275,7 +3275,7 @@
      unsigned int nbyte;
 {
   register int rtnval;
-  
+
   while ((rtnval = read (fildes, buf, nbyte)) == -1
 	 && (errno == EINTR));
   return (rtnval);
@@ -3415,7 +3415,7 @@
      int newd;
 {
   register int fd, ret;
-  
+
   emacs_close (newd);
 
 #ifdef F_DUPFD
@@ -3444,7 +3444,7 @@
 #ifndef VMS
 #ifndef HAVE_GETTIMEOFDAY
 #ifdef HAVE_TIMEVAL
- 
+
 /* ARGSUSED */
 int
 gettimeofday (tp, tzp)
@@ -3453,18 +3453,18 @@
 {
   extern long time ();
 
-  tp->tv_sec = time ((long *)0);    
+  tp->tv_sec = time ((long *)0);
   tp->tv_usec = 0;
   if (tzp != 0)
     tzp->tz_minuteswest = -1;
   return 0;
 }
- 
+
 #endif
 #endif
 #endif
 #endif /* subprocess && !HAVE_GETTIMEOFDAY && HAVE_TIMEVAL && !VMS */
-  
+
 /*
  *	This function will go away as soon as all the stubs fixed. (fnf)
  */
@@ -3831,7 +3831,7 @@
 
 #ifdef access
 #undef access
-  
+
 /* The following is necessary because 'access' emulation by VMS C (2.0) does
  * not work correctly.  (It also doesn't work well in version 2.3.)
  */
@@ -3872,7 +3872,7 @@
    * access can treat the directory like a file.  */
   if (directory_file_name (path, dir_fn))
     path = dir_fn;
-  
+
   if (mode == F_OK)
     return access (path, mode);
   if (user == NULL && (user = (char *) getenv ("USER")) == NULL)
@@ -3886,7 +3886,7 @@
     static int constant = ACL$C_FILE;
     DESCRIPTOR (path_desc, path);
     DESCRIPTOR (user_desc, user);
- 
+
     flags = 0;
     acces = 0;
     if ((mode & X_OK) && ((stat = access (path, mode)) < 0 || mode == X_OK))
@@ -3951,7 +3951,7 @@
     return access (filename, type);
 
   /* Check write protection. */
-    
+
 #define CHECKPRIV(bit)    (prvmask.bit)
 #define WRITABLE(field)  (! ((xab.xab$w_pro >> field) & XAB$M_NOWRITE))
 
@@ -4013,7 +4013,7 @@
 }
 #endif /* not VMS4_4 */
 #endif /* access */
-  
+
 static char vtbuf[NAM$C_MAXRSS+1];
 
 /* translate a vms file spec to a unix path */
@@ -4054,7 +4054,7 @@
 	    *targ++ = '.';
 	    *targ++ = '.';
 	    break;
-	    
+
 	  default:
 	    *targ++ = *vfile;
 	    break;
@@ -4147,7 +4147,7 @@
       ufile++;
     }
   *targ = '\0';
-  
+
   return utbuf;
 }
 
@@ -4169,7 +4169,7 @@
     }
   strcpy (pathname, ptr);
   xfree (ptr);
-  
+
  return pathname;
 }
 
@@ -4506,7 +4506,7 @@
  * when this is not the desired behavior, for instance, when writing an
  * auto save file (you only want one version), or when you don't have
  * write permission in the directory containing the file (but the file
- * itself is writable).  Hence this routine, which is equivalent to 
+ * itself is writable).  Hence this routine, which is equivalent to
  * "close (creat (fn, 0));" on Unix if fn already exists.
  */
 int
@@ -4563,7 +4563,7 @@
   register status;
   struct FAB uaf_fab;
   struct RAB uaf_rab;
-  
+
   uaf_fab = cc$rms_fab;
   uaf_rab = cc$rms_rab;
   /* initialize fab fields */
@@ -4627,7 +4627,7 @@
   register status;
   struct FAB uaf_fab;
   struct RAB uaf_rab;
-  
+
   uaf_fab = cc$rms_fab;
   uaf_rab = cc$rms_rab;
   /* initialize fab fields */
@@ -4920,7 +4920,7 @@
    bits).  To maintain portability, the VMS implementation of `chmod' wires
    the W and D bits together.  */
 
- 
+
 static struct fibdef fib;	/* We need this initialized to zero */
 char vms_file_written[NAM$C_MAXRSS];
 
@@ -5088,7 +5088,7 @@
 
   /* If we're not on an HFT we shouldn't do any of this.  We determine
      if we are on an HFT by trying to get an HFT error code.  If this
-     call fails, we're not on an HFT. */ 
+     call fails, we're not on an HFT. */
 #ifdef IBMR2AIX
   if (ioctl (0, HFQERROR, &junk) < 0)
     return;
--- a/src/syssignal.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/syssignal.h	Tue Feb 04 14:56:31 2003 +0000
@@ -96,7 +96,7 @@
 #ifdef USG
 
 #ifndef sigunblock
-#define sigunblock(sig) 
+#define sigunblock(sig)
 #endif
 
 #else
--- a/src/systime.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/systime.h	Tue Feb 04 14:56:31 2003 +0000
@@ -81,7 +81,7 @@
 	result in DEST.  SRC should not be negative.
 
    EMACS_SUB_TIME (DEST, SRC1, SRC2) subtracts SRC2 from SRC1 and
-	stores the result in DEST.  SRC should not be negative. 
+	stores the result in DEST.  SRC should not be negative.
    EMACS_TIME_NEG_P (TIME) is true iff TIME is negative.
 
 */
--- a/src/systty.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/systty.h	Tue Feb 04 14:56:31 2003 +0000
@@ -112,7 +112,7 @@
 
 #ifdef NEED_BSDTTY
 #include <sys/bsdtty.h>
-#endif 
+#endif
 
 #if defined (HPUX) && defined (HAVE_PTYS)
 #include <sys/ptyio.h>
--- a/src/syswait.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/syswait.h	Tue Feb 04 14:56:31 2003 +0000
@@ -90,7 +90,7 @@
 #define WCOREDUMP(w) ((w&0200) != 0)
 #endif
 
-#else 
+#else
 
 #ifdef BSD4_1
 #include <wait.h>
--- a/src/term.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/term.c	Tue Feb 04 14:56:31 2003 +0000
@@ -76,7 +76,7 @@
          tputs (a, (int) (FRAME_HEIGHT (XFRAME (selected_frame))	\
 			  - curY), cmputc);				\
      } while (0)
-     
+
 #define OUTPUT1_IF(a) do { if (a) tputs (a, 1, cmputc); } while (0)
 
 /* Function to use to ring the bell.  */
@@ -203,7 +203,7 @@
 
 /* Arrange for all scroll bars on FRAME to be removed at the next call
    to `*judge_scroll_bars_hook'.  A scroll bar may be spared if
-   `*redeem_scroll_bar_hook' is applied to its window before the judgment. 
+   `*redeem_scroll_bar_hook' is applied to its window before the judgment.
 
    This should be applied to each frame each time its window tree is
    redisplayed, even if it is not displaying scroll bars at the moment;
@@ -222,7 +222,7 @@
 void (*redeem_scroll_bar_hook) P_ ((struct window *window));
 
 /* Remove all scroll bars on FRAME that haven't been saved since the
-   last call to `*condemn_scroll_bars_hook'.  
+   last call to `*condemn_scroll_bars_hook'.
 
    This should be applied to each frame after each time its window
    tree is redisplayed, even if it is not displaying scroll bars at the
@@ -431,7 +431,7 @@
 	 We don't specbind it, because that would carefully
 	 restore the bad value if there's an error
 	 and make the loop of errors happen anyway.  */
-      
+
       function = Vring_bell_function;
       Vring_bell_function = Qnil;
 
@@ -499,7 +499,7 @@
     }
   else
     update_end_hook (f);
-  
+
   updating_frame = NULL;
 }
 
@@ -523,7 +523,7 @@
 {
   char *buf;
   struct frame *sf = XFRAME (selected_frame);
-  
+
   if (TS_set_scroll_region)
     buf = tparam (TS_set_scroll_region, 0, 0, start, stop - 1);
   else if (TS_set_scroll_region_1)
@@ -533,7 +533,7 @@
 		  FRAME_HEIGHT (sf));
   else
     buf = tparam (TS_set_window, 0, 0, start, 0, stop, FRAME_WIDTH (sf));
-  
+
   OUTPUT (buf);
   xfree (buf);
   losecursor ();
@@ -644,7 +644,7 @@
      int vpos, hpos;
 {
   struct frame *f = updating_frame ? updating_frame : XFRAME (selected_frame);
-  
+
   if (! FRAME_TERMCAP_P (f) && cursor_to_hook)
     {
       (*cursor_to_hook) (vpos, hpos);
@@ -720,7 +720,7 @@
 clear_frame ()
 {
   struct frame *sf = XFRAME (selected_frame);
-  
+
   if (clear_frame_hook
       && ! FRAME_TERMCAP_P ((updating_frame ? updating_frame : sf)))
     {
@@ -872,7 +872,7 @@
 		  coding->src_multibyte = STRING_MULTIBYTE (tbase[g]);
 		}
 	    }
-	  
+
 	  result = encode_coding (coding, buf, dst, len, dst_end - dst);
 	  len -= coding->consumed;
 	  dst += coding->produced;
@@ -895,7 +895,7 @@
 	}
       src++;
     }
-  
+
   *consumed = src - src_start;
   return (dst - dst_start);
 }
@@ -933,17 +933,17 @@
     return;
 
   cmplus (len);
-  
+
   /* The mode bit CODING_MODE_LAST_BLOCK should be set to 1 only at
      the tail.  */
   terminal_coding.mode &= ~CODING_MODE_LAST_BLOCK;
-  
+
   while (len > 0)
     {
       /* Identify a run of glyphs with the same face.  */
       int face_id = string->face_id;
       int n;
-      
+
       for (n = 1; n < len; ++n)
 	if (string[n].face_id != face_id)
 	  break;
@@ -977,7 +977,7 @@
       turn_off_face (f, face_id);
       turn_off_highlight ();
     }
-  
+
   /* We may have to output some codes to terminate the writing.  */
   if (CODING_REQUIRE_FLUSHING (&terminal_coding))
     {
@@ -994,12 +994,12 @@
 		    termscript);
 	}
     }
-  
+
   cmcheckmagic ();
 }
 
 /* If start is zero, insert blanks instead of a string at start */
- 
+
 void
 insert_glyphs (start, len)
      register struct glyph *start;
@@ -1087,7 +1087,7 @@
 	  turn_off_highlight ();
 	}
     }
-  
+
   cmcheckmagic ();
 }
 
@@ -1148,7 +1148,7 @@
     }
 
   sf = XFRAME (selected_frame);
-  
+
   /* If the lines below the insertion are being pushed
      into the end of the window, this is the same as clearing;
      and we know the lines are already clear, since the matching
@@ -1462,7 +1462,7 @@
 static Lisp_Object term_get_fkeys_1 ();
 
 /* Find the escape codes sent by the function keys for Vfunction_key_map.
-   This function scans the termcap function key sequence entries, and 
+   This function scans the termcap function key sequence entries, and
    adds entries to Vfunction_key_map for each function key it finds.  */
 
 void
@@ -1567,7 +1567,7 @@
 			 Fmake_vector (make_number (1),	\
 				       intern (sym)));	\
 	}
-	  
+
       /* if there's no key_next keycap, map key_npage to `next' keysym */
       CONDITIONAL_REASSIGN ("%5", "kN", "next");
       /* if there's no key_prev keycap, map key_ppage to `previous' keysym */
@@ -1607,7 +1607,7 @@
    for which to produce glyphs; IT->face_id contains the character's
    face.  Padding glyphs are appended if IT->c has a IT->pixel_width >
    1.  */
-   
+
 static void
 append_glyph (it)
      struct it *it;
@@ -1620,8 +1620,8 @@
 	   + it->glyph_row->used[it->area]);
   end = it->glyph_row->glyphs[1 + it->area];
 
-  for (i = 0; 
-       i < it->pixel_width && glyph < end; 
+  for (i = 0;
+       i < it->pixel_width && glyph < end;
        ++i)
     {
       glyph->type = CHAR_GLYPH;
@@ -1631,7 +1631,7 @@
       glyph->padding_p = i > 0;
       glyph->charpos = CHARPOS (it->position);
       glyph->object = it->object;
-      
+
       ++it->glyph_row->used[it->area];
       ++glyph;
     }
@@ -1656,7 +1656,7 @@
    Callers usually don't call produce_glyphs directly;
    instead they use the macro PRODUCE_GLYPHS.  */
 
-void 
+void
 produce_glyphs (it)
      struct it *it;
 {
@@ -1665,7 +1665,7 @@
 	   || it->what == IT_COMPOSITION
 	   || it->what == IT_IMAGE
 	   || it->what == IT_STRETCH);
-  
+
   /* Nothing but characters are supported on terminal frames.  For a
      composition sequence, it->c is the first character of the
      sequence.  */
@@ -1684,8 +1684,8 @@
     {
       int absolute_x = (it->current_x
 			+ it->continuation_lines_width);
-      int next_tab_x 
-	= (((1 + absolute_x + it->tab_width - 1) 
+      int next_tab_x
+	= (((1 + absolute_x + it->tab_width - 1)
 	    / it->tab_width)
 	   * it->tab_width);
       int nspaces;
@@ -1696,17 +1696,17 @@
 	 continued line.  So, we will get the right number of spaces
 	 here.  */
       nspaces = next_tab_x - absolute_x;
-      
+
       if (it->glyph_row)
 	{
 	  int n = nspaces;
-	  
+
 	  it->c = ' ';
 	  it->pixel_width = it->len = 1;
-	  
+
 	  while (n--)
 	    append_glyph (it);
-	  
+
 	  it->c = '\t';
 	}
 
@@ -1734,12 +1734,12 @@
 
       it->pixel_width = CHARSET_WIDTH (charset);
       it->nglyphs = it->pixel_width;
-      
+
       if (it->glyph_row)
 	append_glyph (it);
     }
 
-  /* Advance current_x by the pixel width as a convenience for 
+  /* Advance current_x by the pixel width as a convenience for
      the caller.  */
   if (it->area == TEXT_AREA)
     it->current_x += it->pixel_width;
@@ -1760,7 +1760,7 @@
      enum display_element_type what;
 {
   struct it temp_it;
-  
+
   temp_it = *it;
   temp_it.dp = NULL;
   temp_it.what = IT_CHARACTER;
@@ -1780,7 +1780,7 @@
 	}
       else
 	temp_it.c = '\\';
-      
+
       produce_glyphs (&temp_it);
       it->pixel_width = temp_it.pixel_width;
       it->nglyphs = temp_it.pixel_width;
@@ -1797,7 +1797,7 @@
 	}
       else
 	temp_it.c = '$';
-      
+
       produce_glyphs (&temp_it);
       it->pixel_width = temp_it.pixel_width;
       it->nglyphs = temp_it.pixel_width;
@@ -1918,7 +1918,7 @@
   if (TN_max_colors > 0)
     {
       char *p;
-      
+
       if (fg >= 0 && TS_set_foreground)
 	{
 	  p = tparam (TS_set_foreground, NULL, 0, (int) fg);
@@ -1934,7 +1934,7 @@
 	}
     }
 }
-  
+
 
 /* Turn off appearances of face FACE_ID on tty frame F.  */
 
@@ -1986,8 +1986,8 @@
 	      && face->background != FACE_TTY_DEFAULT_BG_COLOR)))
     OUTPUT1_IF (TS_orig_pair);
 }
-  
-    
+
+
 /* Return non-zero if the terminal on frame F supports all of the
    capabilities in CAPS simultaneously, with foreground and background
    colors FG and BG.  */
@@ -2316,7 +2316,7 @@
   TS_cursor_visible = tgetstr ("vs", address);
   TS_cursor_invisible = tgetstr ("vi", address);
   TS_set_window = tgetstr ("wi", address);
-  
+
   TS_enter_underline_mode = tgetstr ("us", address);
   TS_exit_underline_mode = tgetstr ("ue", address);
   TS_enter_bold_mode = tgetstr ("md", address);
@@ -2326,7 +2326,7 @@
   TS_enter_alt_charset_mode = tgetstr ("as", address);
   TS_exit_alt_charset_mode = tgetstr ("ae", address);
   TS_exit_attribute_mode = tgetstr ("me", address);
-  
+
   MultiUp = tgetstr ("UP", address);
   MultiDown = tgetstr ("DO", address);
   MultiLeft = tgetstr ("LE", address);
@@ -2346,10 +2346,10 @@
 	  TS_set_foreground = tgetstr ("Sf", address);
 	  TS_set_background = tgetstr ("Sb", address);
 	}
-      
+
       TN_max_colors = tgetnum ("Co");
       TN_max_pairs = tgetnum ("pa");
-      
+
       TN_no_color_video = tgetnum ("NC");
       if (TN_no_color_video == -1)
 	TN_no_color_video = 0;
@@ -2387,7 +2387,7 @@
     SET_FRAME_WIDTH (sf, FRAME_WIDTH (sf));
   if (FRAME_HEIGHT (sf) <= 0)
     FRAME_HEIGHT (sf) = tgetnum ("li");
-  
+
   if (FRAME_HEIGHT (sf) < 3 || FRAME_WIDTH (sf) < 3)
     fatal ("Screen size %dx%d is too small",
 	   FRAME_HEIGHT (sf), FRAME_WIDTH (sf));
@@ -2414,7 +2414,7 @@
 
   if (TabWidth < 0)
     TabWidth = 8;
-  
+
 /* Turned off since /etc/termcap seems to have :ta= for most terminals
    and newer termcap doc does not seem to say there is a default.
   if (!Wcm.cm_tab)
--- a/src/termhooks.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/termhooks.h	Tue Feb 04 14:56:31 2003 +0000
@@ -162,7 +162,7 @@
 
 /* Arrange for all scroll bars on FRAME to be removed at the next call
    to `*judge_scroll_bars_hook'.  A scroll bar may be spared if
-   `*redeem_scroll_bar_hook' is applied to its window before the judgement. 
+   `*redeem_scroll_bar_hook' is applied to its window before the judgement.
 
    This should be applied to each frame each time its window tree is
    redisplayed, even if it is not displaying scroll bars at the moment;
@@ -179,7 +179,7 @@
 extern void (*redeem_scroll_bar_hook) P_ ((struct window *window));
 
 /* Remove all scroll bars on FRAME that haven't been saved since the
-   last call to `*condemn_scroll_bars_hook'.  
+   last call to `*condemn_scroll_bars_hook'.
 
    This should be applied to each frame after each time its window
    tree is redisplayed, even if it is not displaying scroll bars at the
@@ -241,8 +241,8 @@
 				   .timestamp gives a timestamp (in
 				   milliseconds) for the click.  */
 #if defined(WINDOWSNT) || defined(MAC_OSX)
-  MOUSE_WHEEL_EVENT,		/* A mouse-wheel event is generated 
-				   on WINDOWSNT or MAC_OSX by a 
+  MOUSE_WHEEL_EVENT,		/* A mouse-wheel event is generated
+				   on WINDOWSNT or MAC_OSX by a
 				   wheel on a mouse (e.g., MS Intellimouse).
 				   The event contains a delta that corresponds
 				   to the amount and direction that the wheel
@@ -298,7 +298,7 @@
 				   files selected outside of Emacs are dropped
 				   onto an Emacs window.
 				   Currently used only on Windows NT.
-				   .modifiers holds the state of the 
+				   .modifiers holds the state of the
 				   modifier keys.
 				   .x and .y give the mouse position,
 				   in characters, within the window.
@@ -346,7 +346,7 @@
 {
   /* What kind of event was this?  */
   enum event_kind kind;
-  
+
   /* For an ASCII_KEYSTROKE_EVENT and MULTIBYTE_CHAR_KEYSTROKE_EVENT,
      this is the character.
      For a NON_ASCII_KEYSTROKE_EVENT, this is the keysym code.
@@ -386,7 +386,7 @@
 
 /* Bits in the modifiers member of the input_event structure.
    Note that reorder_modifiers assumes that the bits are in canonical
-   order.  
+   order.
 
    The modifiers applied to mouse clicks are rather ornate.  The
    window-system-specific code should store mouse clicks with
--- a/src/tparam.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/tparam.c	Tue Feb 04 14:56:31 2003 +0000
@@ -169,7 +169,7 @@
 	      outlen *= 2;
 	      new = (char *) xrealloc (outstring, outlen);
 	    }
-	  
+
 	  op = new + offset;
 	  outend = new + outlen;
 	  outstring = new;
--- a/src/undo.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/undo.c	Tue Feb 04 14:56:31 2003 +0000
@@ -81,7 +81,7 @@
   if (MODIFF <= SAVE_MODIFF)
     record_first_change ();
 
-  /* If we are just after an undo boundary, and 
+  /* If we are just after an undo boundary, and
      point wasn't at start of deleted range, record where it was.  */
   if (at_boundary
       && last_point_position != pt
@@ -175,7 +175,7 @@
   if (NILP (pending_boundary))
     pending_boundary = Fcons (Qnil, Qnil);
 
-  if (!BUFFERP (last_undo_buffer) 
+  if (!BUFFERP (last_undo_buffer)
       || current_buffer != XBUFFER (last_undo_buffer))
     Fundo_boundary ();
   XSETBUFFER (last_undo_buffer, current_buffer);
@@ -312,7 +312,7 @@
      If the first element is an undo boundary, skip past it.
 
      Skip, skip, skip the undo, skip, skip, skip the undo,
-     Skip, skip, skip the undo, skip to the undo bound'ry. 
+     Skip, skip, skip the undo, skip to the undo bound'ry.
      (Get it?  "Skip to my Loo?")  */
   if (CONSP (next) && NILP (XCAR (next)))
     {
@@ -402,7 +402,7 @@
   Lisp_Object next;
   int count = SPECPDL_INDEX ();
   register int arg;
-  
+
 #if 0  /* This is a good feature, but would make undo-start
 	  unable to do what is expected.  */
   Lisp_Object tem;
--- a/src/unexaix.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/unexaix.c	Tue Feb 04 14:56:31 2003 +0000
@@ -175,7 +175,7 @@
       || unrelocate_symbols (new, a_out, a_name, new_name) < 0)
     {
       close (new);
-      return -1;	
+      return -1;
     }
 
   close (new);
@@ -358,7 +358,7 @@
 	    s->s_scnptr += bias;
 	    ptr = s->s_scnptr;
 	  }
-  
+
 	ptr = ptr + s->s_size;
       }
   }
@@ -413,7 +413,7 @@
 }
 
 /* ****************************************************************
- 
+
  *
  * Copy the text and data segments from memory to the new a.out
  */
@@ -589,7 +589,7 @@
 #ifndef ALIGN_DATA_RELOC
   ulong d_reloc = (ulong) &_data - f_ohdr.data_start;
 #else
-  /* This worked (and was needed) before AIX 4.2. 
+  /* This worked (and was needed) before AIX 4.2.
      I have no idea why. -- Mike */
   ulong d_reloc = (ulong) &_data - ALIGN(f_ohdr.data_start, 2);
 #endif
--- a/src/unexalpha.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/unexalpha.c	Tue Feb 04 14:56:31 2003 +0000
@@ -486,9 +486,9 @@
       fprintf (stderr, "...relocated\n");
 #endif
 
-      if (rd_base[i].type == R_REFLONG) 
+      if (rd_base[i].type == R_REFLONG)
 	len = 4;
-      else if (rd_base[i].type == R_REFQUAD) 
+      else if (rd_base[i].type == R_REFQUAD)
 	len = 8;
       else
 	fatal_unexec ("unrecognized relocation type in .dyn.rel section (symbol #%d)", (char *) i);
--- a/src/unexconvex.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/unexconvex.c	Tue Feb 04 14:56:31 2003 +0000
@@ -137,7 +137,7 @@
 program text).  HDR's standard fields are already correct, except that
 this adjustment to the `a_text' field has not yet been made;
 thus, the amount of offset can depend on the data in the file.
-  
+
 * A_TEXT_SEEK(HDR)
 
 If defined, this macro specifies the number of bytes to seek into the
@@ -244,7 +244,7 @@
       || copy_text_and_data (new) < 0
       || copy_sym (new, a_out, a_name, new_name) < 0 ) {
 	close (new);
-	return -1;	
+	return -1;
     }
 
     close (new);
--- a/src/unexec.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/unexec.c	Tue Feb 04 14:56:31 2003 +0000
@@ -134,7 +134,7 @@
 program text).  HDR's standard fields are already correct, except that
 this adjustment to the `a_text' field has not yet been made;
 thus, the amount of offset can depend on the data in the file.
-  
+
 * A_TEXT_SEEK(HDR)
 
 If defined, this macro specifies the number of bytes to seek into the
@@ -399,7 +399,7 @@
     {
       close (new);
       /* unlink (new_name);	    	/* Failed, unlink new a.out */
-      return -1;	
+      return -1;
     }
 
   close (new);
@@ -992,7 +992,7 @@
     char c;
     int mcount_address, mcount_offset, count;
     extern char *_execname;
-   
+
 
     /* The use of _execname is incompatible with RISCiX 1.1 */
     sprintf (command, "nm %s | fgrep mcount", _execname);
@@ -1012,7 +1012,7 @@
     {
       sprintf (errbuf, "Failed to execute the command '%s'\n", command);
       PERROR (errbuf);
-    }  
+    }
 
     sscanf(address_text, "%x", &mcount_address);
     ptr = (char *) unexec_text_start;
--- a/src/unexenix.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/unexenix.c	Tue Feb 04 14:56:31 2003 +0000
@@ -187,7 +187,7 @@
   WRITE (outfd, data_org, datalen,
 	 "write error on %s", new_name);
 
-  for (i = 2, segpos += (2 * sizeof (struct xseg)); 
+  for (i = 2, segpos += (2 * sizeof (struct xseg));
        i < nsegs;
        i++, segpos += sizeof (struct xseg))
     {
--- a/src/unexhp9k800.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/unexhp9k800.c	Tue Feb 04 14:56:31 2003 +0000
@@ -13,25 +13,25 @@
   area with the current data area.  When the new file is executed, the
   process will see the same data structures and data values that the
   original process had when unexec was called.
-  
+
   Unlike other versions of unexec, this one copies symbol table and
   debug information to the new a.out file.  Thus, the new a.out file
   may be debugged with symbolic debuggers.
-  
+
   If you fix any bugs in this, I'd like to incorporate your fixes.
   Send them to uunet!hpda!hpsemc!jmorris or jmorris%hpsemc@hplabs.HP.COM.
-  
+
   CAVEATS:
   This routine saves the current value of all static and external
   variables.  This means that any data structure that needs to be
   initialized must be explicitly reset.  Variables will not have their
   expected default values.
-  
+
   Unfortunately, the HP-UX signal handler has internal initialization
   flags which are not explicitly reset.  Thus, for signals to work in
   conjunction with this routine, the following code must executed when
   the new process starts up.
-  
+
   void _sigreturn ();
   ...
   sigsetreturn (_sigreturn);
@@ -54,7 +54,7 @@
 /* brk value to restore, stored as a global.
    This is really used only if we used shared libraries.  */
 static long brk_on_dump = 0;
-      
+
 /* Called from main, if we use shared libraries.  */
 int
 run_time_remap (ignored)
@@ -81,14 +81,14 @@
   struct header hdr;
   struct som_exec_auxhdr auxhdr;
   long i;
-  
+
   /* For the greatest flexibility, should create a temporary file in
      the same directory as the new file.  When everything is complete,
      rename the temp file to the new name.
      This way, a program could update its own a.out file even while
      it is still executing.  If problems occur, everything is still
      intact.  NOT implemented.  */
-  
+
   /* Open the input and output a.out files */
   old = open (old_name, O_RDONLY);
   if (old < 0)
@@ -96,36 +96,36 @@
   new = open (new_name, O_CREAT|O_RDWR|O_TRUNC, 0777);
   if (new < 0)
     { perror (new_name); exit (1); }
-  
+
   /* Read the old headers */
   read_header (old, &hdr, &auxhdr);
 
   brk_on_dump = (long) sbrk (0);
-  
+
   /* Decide how large the new and old data areas are */
   old_size = auxhdr.exec_dsize;
   /* I suspect these two statements are separate
      to avoid a compiler bug in hpux version 8.  */
   i = (long) sbrk (0);
   new_size = i - auxhdr.exec_dmem;
-  
+
   /* Copy the old file to the new, up to the data space */
   lseek (old, 0, 0);
   copy_file (old, new, auxhdr.exec_dfile);
-  
+
   /* Skip the old data segment and write a new one */
   lseek (old, old_size, 1);
   save_data_space (new, &hdr, &auxhdr, new_size);
-  
+
   /* Copy the rest of the file */
   copy_rest (old, new);
-  
+
   /* Update file pointers since we probably changed size of data area */
   update_file_ptrs (new, &hdr, &auxhdr, auxhdr.exec_dfile, new_size-old_size);
-  
+
   /* Save the modified header */
   write_header (new, &hdr, &auxhdr);
-  
+
   /* Close the binary file */
   close (old);
   close (new);
@@ -143,7 +143,7 @@
   /* Write the entire data space out to the file */
   if (write (file, auxhdr->exec_dmem, size) != size)
     { perror ("Can't save new data space"); exit (1); }
-  
+
   /* Update the header to reflect the new data size */
   auxhdr->exec_dsize = size;
   auxhdr->exec_bsize = 0;
@@ -160,10 +160,10 @@
 {
   struct subspace_dictionary_record subspace;
   int i;
-  
+
   /* Increase the overall size of the module */
   hdr->som_length += offset;
-  
+
   /* Update the various file pointers in the header */
 #define update(ptr) if (ptr > location) ptr = ptr + offset
   update (hdr->aux_header_location);
@@ -176,16 +176,16 @@
   update (hdr->unloadable_sp_location);
   update (auxhdr->exec_tfile);
   update (auxhdr->exec_dfile);
-  
+
   /* Do for each subspace dictionary entry */
   lseek (file, hdr->subspace_location, 0);
   for (i = 0; i < hdr->subspace_total; i++)
     {
       if (read (file, &subspace, sizeof (subspace)) != sizeof (subspace))
 	{ perror ("Can't read subspace record"); exit (1); }
-      
+
       /* If subspace has a file location, update it */
-      if (subspace.initialization_length > 0 
+      if (subspace.initialization_length > 0
 	  && subspace.file_loc_init_value > location)
 	{
 	  subspace.file_loc_init_value += offset;
@@ -193,8 +193,8 @@
 	  if (write (file, &subspace, sizeof (subspace)) != sizeof (subspace))
 	    { perror ("Can't update subspace record"); exit (1); }
 	}
-    } 
-  
+    }
+
   /* Do for each initialization pointer record */
   /* (I don't think it applies to executable files, only relocatables) */
 #undef update
@@ -207,25 +207,25 @@
      struct header *hdr;
      struct som_exec_auxhdr *auxhdr;
 {
-  
+
   /* Read the header in */
   lseek (file, 0, 0);
   if (read (file, hdr, sizeof (*hdr)) != sizeof (*hdr))
     { perror ("Couldn't read header from a.out file"); exit (1); }
-  
+
   if (hdr->a_magic != EXEC_MAGIC && hdr->a_magic != SHARE_MAGIC
       &&  hdr->a_magic != DEMAND_MAGIC)
     {
-      fprintf (stderr, "a.out file doesn't have legal magic number\n"); 
-      exit (1);  
+      fprintf (stderr, "a.out file doesn't have legal magic number\n");
+      exit (1);
     }
-  
+
   lseek (file, hdr->aux_header_location, 0);
   if (read (file, auxhdr, sizeof (*auxhdr)) != sizeof (*auxhdr))
     {
       perror ("Couldn't read auxiliary header from a.out file");
       exit (1);
-    }  
+    }
 }
 
 /* Write out the header records into an a.out file.  */
@@ -237,7 +237,7 @@
 {
   /* Update the checksum */
   hdr->checksum = calculate_checksum (hdr);
-  
+
   /* Write the header back into the a.out file */
   lseek (file, 0, 0);
   if (write (file, hdr, sizeof (*hdr)) != sizeof (*hdr))
@@ -253,12 +253,12 @@
      struct header *hdr;
 {
   int checksum, i, *ptr;
-  
+
   checksum = 0;  ptr = (int *) hdr;
-  
+
   for (i = 0; i < sizeof (*hdr) / sizeof (int) - 1; i++)
     checksum ^= ptr[i];
-  
+
   return (checksum);
 }
 
@@ -270,7 +270,7 @@
 {
   int len;
   int buffer[8192];  /* word aligned will be faster */
-  
+
   for (; size > 0; size -= len)
     {
       len = min (size, sizeof (buffer));
@@ -288,11 +288,11 @@
 {
   int buffer[4096];
   int len;
-  
+
   /* Copy bytes until end of file or error */
   while ((len = read (old, buffer, sizeof (buffer))) > 0)
     if (write (new, buffer, len) != len) break;
-  
+
   if (len != 0)
     { perror ("Unable to copy the rest of the file"); exit (1); }
 }
@@ -304,7 +304,7 @@
 {
   /* Display the header information (debug) */
   printf ("\n\nFILE HEADER\n");
-  printf ("magic number %d \n", hdr->a_magic); 
+  printf ("magic number %d \n", hdr->a_magic);
   printf ("text loc %.8x   size %d \n", auxhdr->exec_tmem, auxhdr->exec_tsize);
   printf ("data loc %.8x   size %d \n", auxhdr->exec_dmem, auxhdr->exec_dsize);
   printf ("entry     %x \n",   auxhdr->exec_entry);
--- a/src/unexmacosx.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/unexmacosx.c	Tue Feb 04 14:56:31 2003 +0000
@@ -276,7 +276,7 @@
 
       if (object_name != MACH_PORT_NULL)
 	mach_port_deallocate (target_task, object_name);
-      
+
       address += size;
     }
 }
@@ -329,15 +329,15 @@
       else
 	{
 	  r = (struct region_t *) malloc (sizeof (struct region_t));
-	  
+
 	  if (!r)
 	    unexec_error ("cannot allocate region structure");
-	  
+
 	  r->address = address;
 	  r->size = size;
 	  r->protection = info.protection;
 	  r->max_protection = info.max_protection;
-	  
+
 	  r->next = 0;
 	  if (region_list_head == 0)
 	    {
@@ -349,13 +349,13 @@
 	      region_list_tail->next = r;
 	      region_list_tail = r;
 	    }
-	  
+
 	  /* Deallocate (unused) object name returned by
 	     vm_region.  */
 	  if (object_name != MACH_PORT_NULL)
 	    mach_port_deallocate (target_task, object_name);
 	}
-      
+
       address += size;
     }
 
@@ -498,7 +498,7 @@
 
   nlc = mh.ncmds;
   lca = (struct load_command **) malloc (nlc * sizeof (struct load_command *));
-  
+
   for (i = 0; i < nlc; i++)
     {
       struct load_command lc;
@@ -513,7 +513,7 @@
       if (lc.cmd == LC_SEGMENT)
 	{
 	  struct segment_command *scp = (struct segment_command *) lca[i];
-	  
+
 	  if (scp->vmaddr + scp->vmsize > infile_lc_highest_addr)
 	    infile_lc_highest_addr = scp->vmaddr + scp->vmsize;
 
@@ -647,7 +647,7 @@
 	}
       else
 	unexec_error ("unrecognized section name in __DATA segment");
-      
+
       printf ("        section %-16.16s at %#8x - %#8x (sz: %#8x)\n",
 	      sectp->sectname, sectp->offset, sectp->offset + sectp->size,
 	      sectp->size);
@@ -675,7 +675,7 @@
   for (j = 0; j < num_unexec_regions; j++)
     {
       struct segment_command sc;
-      
+
       sc.cmd = LC_SEGMENT;
       sc.cmdsize = sizeof (struct segment_command);
       strncpy (sc.segname, SEG_DATA, 16);
@@ -687,7 +687,7 @@
       sc.initprot = VM_PROT_READ | VM_PROT_WRITE;
       sc.nsects = 0;
       sc.flags = 0;
-      
+
       printf ("Writing segment %-16.16s at %#8x - %#8x (sz: %#8x)\n",
 	      sc.segname, sc.fileoff, sc.fileoff + sc.filesize,
 	      sc.filesize);
@@ -696,7 +696,7 @@
 	unexec_error ("cannot write new __DATA segment");
       delta += sc.filesize;
       file_offset += sc.filesize;
-      
+
       if (!unexec_write (curr_header_offset, &sc, sc.cmdsize))
 	unexec_error ("cannot write new __DATA segment's header");
       curr_header_offset += sc.cmdsize;
@@ -850,7 +850,7 @@
     {
       unexec_error ("cannot open input file `%s'", infile);
     }
-        
+
   outfd = open (outfile, O_WRONLY | O_TRUNC | O_CREAT, 0755);
   if (outfd < 0)
     {
--- a/src/unexnext.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/unexnext.c	Tue Feb 04 14:56:31 2003 +0000
@@ -44,7 +44,7 @@
  * pages it vm_allocated and write only those out into the data segment.
  *
  * This kludge may break when we stop using fixed virtual address
- * shared libraries. Actually, emacs will probably continue working, but be 
+ * shared libraries. Actually, emacs will probably continue working, but be
  * much larger on disk than it needs to be (because non-malloced data will
  * be in the file).
  */
@@ -73,7 +73,7 @@
 		*the_commands = malloc(sizeof(*the_commands));
 	} else {
 		(*the_commands_len)++;
-		*the_commands = realloc(*the_commands, 
+		*the_commands = realloc(*the_commands,
 					(*the_commands_len *
 					 sizeof(**the_commands)));
 	}
@@ -125,7 +125,7 @@
 		return (0);
 	}
 	for (i = 0; i < the_header->ncmds; i++) {
-		if (read(fd, &command, sizeof(struct load_command)) != 
+		if (read(fd, &command, sizeof(struct load_command)) !=
 		    sizeof(struct load_command)) {
 		  	fatal_unexec("cannot read macho load command header");
 			return (0);
@@ -138,8 +138,8 @@
 		buf = malloc(command.cmdsize);
 		buf->cmd = command.cmd;
 		buf->cmdsize = command.cmdsize;
-		if (read(fd, ((char *)buf + 
-			      sizeof(struct load_command)), 
+		if (read(fd, ((char *)buf +
+			      sizeof(struct load_command)),
 			 size) != size) {
 		  	fatal_unexec("cannot read load command data");
 			return (0);
@@ -184,31 +184,31 @@
 	region.address = 0;
 	*address = 0;
 	for (;;) {
-		ret = vm_region(task_self(), 
-				&region.address, 
-				&region.size, 
-				&region.protection, 
-				&region.max_protection, 
+		ret = vm_region(task_self(),
+				&region.address,
+				&region.size,
+				&region.protection,
+				&region.max_protection,
 				&region.inheritance,
-				&region.shared, 
-				&region.object_name, 
+				&region.shared,
+				&region.object_name,
 				&region.offset);
 		if (ret != KERN_SUCCESS || region.address >= VM_HIGHDATA) {
 			break;
 		}
 		if (*address != 0) {
 			if (region.address > *address + *size) {
-				if (!filldatagap(*address, size, 
+				if (!filldatagap(*address, size,
 						 region.address)) {
 					return (0);
 				}
-			} 
+			}
 			*size += region.size;
 		} else {
 			if (region.address == sect->addr) {
 				*address = region.address;
 				*size = region.size;
-			} 
+			}
 		}
 		region.address += region.size;
 	}
@@ -293,7 +293,7 @@
 				if (strcmp(segment->segname, SEG_DATA) == 0) {
 					fdatastart = segment->fileoff;
 					fdatasize = segment->filesize;
-					fgrowth = (data_size - 
+					fgrowth = (data_size -
 						   segment->filesize);
 					segment->vmsize = data_size;
 					segment->filesize = data_size;
@@ -332,37 +332,37 @@
 				break;
 			}
 		}
-		
+
 		/*
 		 * Write header
 		 */
-		if (write(outfd, &the_header, 
+		if (write(outfd, &the_header,
 			  sizeof(the_header)) != sizeof(the_header)) {
 			fatal_unexec("cannot write output file");
 			return (0);
 		}
-		
+
 		/*
 		 * Write commands
 		 */
 		for (i = 0; i < the_commands_len; i++) {
-			if (write(outfd, the_commands[i], 
-				  the_commands[i]->cmdsize) != 
+			if (write(outfd, the_commands[i],
+				  the_commands[i]->cmdsize) !=
 			    the_commands[i]->cmdsize) {
 			  	fatal_unexec("cannot write output file");
 				return (0);
 			}
 		}
-		
+
 		/*
 		 * Write original text
 		 */
-		if (lseek(infd, the_header.sizeofcmds + sizeof(the_header), 
+		if (lseek(infd, the_header.sizeofcmds + sizeof(the_header),
 			  L_SET) < 0) {
 		  	fatal_unexec("cannot seek input file");
 			return (0);
 		}
-		size = fdatastart - (sizeof(the_header) + 
+		size = fdatastart - (sizeof(the_header) +
 				     the_header.sizeofcmds);
 		buf = my_malloc(size);
 		if (read(infd, buf, size) != size) {
@@ -375,17 +375,17 @@
 			return (0);
 		}
 		my_free(buf, size);
-		
-		
+
+
 		/*
 		 * Write new data
 		 */
-		if (write(outfd, (char *)data_address, 
+		if (write(outfd, (char *)data_address,
 			  data_size) != data_size) {
 			fatal_unexec("cannot write output file");
 			return (0);
 		}
-		
+
 	}
 
 	/*
@@ -424,7 +424,7 @@
 		fatal_unexec("cannot seek input file");
 		return (0);
 	}
-        
+
         for (i = 0; i < nextrel; i++)
         {
           long zeroval = 0;
@@ -482,7 +482,7 @@
 	  	fatal_unexec("cannot open input file `%s'", infile);
 		exit(1);
 	}
-	
+
 	tmpnam(tmpbuf);
 	tmpfile = rindex(tmpbuf, '/');
 	if (tmpfile == NULL) {
--- a/src/unexsni.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/unexsni.c	Tue Feb 04 14:56:31 2003 +0000
@@ -90,24 +90,24 @@
  * is made the last in the table to avoid changing any existing index.
  */
 
-/* Modified by wtien@urbana.mcd.mot.com of Motorola Inc. 
- * 
+/* Modified by wtien@urbana.mcd.mot.com of Motorola Inc.
+ *
  * The above mechanism does not work if the unexeced ELF file is being
- * re-layout by other applications (such as `strip'). All the applications 
+ * re-layout by other applications (such as `strip'). All the applications
  * that re-layout the internal of ELF will layout all sections in ascending
- * order of their file offsets. After the re-layout, the data2 section will 
- * still be the LAST section in the section header vector, but its file offset 
+ * order of their file offsets. After the re-layout, the data2 section will
+ * still be the LAST section in the section header vector, but its file offset
  * is now being pushed far away down, and causes part of it not to be mapped
- * in (ie. not covered by the load segment entry in PHDR vector), therefore 
+ * in (ie. not covered by the load segment entry in PHDR vector), therefore
  * causes the new binary to fail.
  *
  * The solution is to modify the unexec algorithm to insert the new data2
  * section header right before the new bss section header, so their file
- * offsets will be in the ascending order. Since some of the section's (all 
- * sections AFTER the bss section) indexes are now changed, we also need to 
- * modify some fields to make them point to the right sections. This is done 
+ * offsets will be in the ascending order. Since some of the section's (all
+ * sections AFTER the bss section) indexes are now changed, we also need to
+ * modify some fields to make them point to the right sections. This is done
  * by macro PATCH_INDEX. All the fields that need to be patched are:
- * 
+ *
  * 1. ELF header e_shstrndx field.
  * 2. section header sh_link and sh_info field.
  * 3. symbol table entry st_shndx field.
@@ -124,7 +124,7 @@
  *
  * /home1/marco/emacs/emacs-19.22/src
  * dump -hv temacs
- * 
+ *
  * temacs:
  *
  *	   **** SECTION HEADER TABLE ****
@@ -132,83 +132,83 @@
  *	Link	Info	Adralgn      Entsize
  *
  * [1]	PBIT    -A--	0x4000f4     0xf4         0x13         	.interp
- *	0	0	0x1          0            
+ *	0	0	0x1          0
  *
  * [2]	REGI    -A--	0x400108     0x108        0x18         	.reginfo
- *	0	0	0x4          0x18         
+ *	0	0	0x4          0x18
  *
  * [3]	DYNM    -A--	0x400120     0x120        0xb8         	.dynamic
- *	6	0	0x4          0x8          
+ *	6	0	0x4          0x8
  *
  * [4]	HASH    -A--	0x4001d8     0x1d8        0x8a0        	.hash
- *	5	0	0x4          0x4          
+ *	5	0	0x4          0x4
  *
  * [5]	DYNS    -A--	0x400a78     0xa78        0x11f0       	.dynsym
- *	6	2	0x4          0x10         
+ *	6	2	0x4          0x10
  *
  * [6]	STRT    -A--	0x401c68     0x1c68       0xbf9        	.dynstr
- *	0	0	0x1          0            
+ *	0	0	0x1          0
  *
  * [7]	REL     -A--	0x402864     0x2864       0x18         	.rel.dyn
- *	5	14	0x4          0x8          
+ *	5	14	0x4          0x8
  *
  * [8]	PBIT    -AI-	0x402880     0x2880       0x60         	.init
- *	0	0	0x10         0x1          
+ *	0	0	0x10         0x1
  *
  * [9]	PBIT    -AI-	0x4028e0     0x28e0       0x1234       	.plt
- *	0	0	0x4          0x4          
+ *	0	0	0x4          0x4
  *
  * [10]	PBIT    -AI-	0x403b20     0x3b20       0xee400      	.text
- *	0	0	0x20         0x1          
+ *	0	0	0x20         0x1
  *
  * [11]	PBIT    -AI-	0x4f1f20     0xf1f20      0x60         	.fini
- *	0	0	0x10         0x1          
+ *	0	0	0x10         0x1
  *
  * [12]	PBIT    -A--	0x4f1f80     0xf1f80      0xd90        	.rdata
- *	0	0	0x10         0x1          
+ *	0	0	0x10         0x1
  *
  * [13]	PBIT    -A--	0x4f2d10     0xf2d10      0x17e0       	.rodata
- *	0	0	0x10         0x1          
+ *	0	0	0x10         0x1
  *
  * [14]	PBIT    WA--	0x5344f0     0xf44f0      0x4b3e4      	.data  <<<<<
- *	0	0	0x10         0x1          
+ *	0	0	0x10         0x1
  *
  * [15]	PBIT    WA-G	0x57f8d4     0x13f8d4     0x2a84       	.got
- *	0	0	0x4          0x4          
+ *	0	0	0x4          0x4
  *
  * [16]	PBIT    WA-G	0x582360     0x142360     0x10         	.sdata <<<<<
- *	0	0	0x10         0x1          
+ *	0	0	0x10         0x1
  *
  * [17]	NOBI    WA-G	0x582370     0x142370     0xb84        	.sbss  <<<<<
- *	0	0	0x4          0            
+ *	0	0	0x4          0
  *
  * [18]	NOBI    WA--	0x582f00     0x142370     0x27ec0      	.bss   <<<<<
- *	0	0	0x10         0x1          
+ *	0	0	0x10         0x1
  *
  * [19]	SYMT    ----	0            0x142370     0x10e40      	.symtab
- *	20	1108	0x4          0x10         
+ *	20	1108	0x4          0x10
  *
  * [20]	STRT    ----	0            0x1531b0     0xed9e       	.strtab
- *	0	0	0x1          0            
+ *	0	0	0x1          0
  *
  * [21]	STRT    ----	0            0x161f4e     0xb5         	.shstrtab
- *	0	0	0x1          0            
+ *	0	0	0x1          0
  *
  * [22]	PBIT    ----	0            0x162003     0x28e2a      	.comment
- *	0	0	0x1          0x1          
+ *	0	0	0x1          0x1
  *
  * [23]	PBIT    ----	0            0x18ae2d     0x592        	.debug
- *	0	0	0x1          0            
+ *	0	0	0x1          0
  *
  * [24]	PBIT    ----	0            0x18b3bf     0x80         	.line
- *	0	0	0x1          0            
+ *	0	0	0x1          0
  *
  * [25]	MDBG    ----	0            0x18b440     0x60         	.mdebug
- *	0	0	0x4          0            
+ *	0	0	0x4          0
  *
  *
  * dump -hv emacs
- * 
+ *
  * emacs:
  *
  *	   **** SECTION HEADER TABLE ****
@@ -216,82 +216,82 @@
  *	Link	Info	Adralgn      Entsize
  *
  * [1]	PBIT    -A--	0x4000f4     0xf4         0x13         	.interp
- *	0	0	0x1          0            
+ *	0	0	0x1          0
  *
  * [2]	REGI    -A--	0x400108     0x108        0x18         	.reginfo
- *	0	0	0x4          0x18         
+ *	0	0	0x4          0x18
  *
  * [3]	DYNM    -A--	0x400120     0x120        0xb8         	.dynamic
- *	6	0	0x4          0x8          
+ *	6	0	0x4          0x8
  *
  * [4]	HASH    -A--	0x4001d8     0x1d8        0x8a0        	.hash
- *	5	0	0x4          0x4          
+ *	5	0	0x4          0x4
  *
  * [5]	DYNS    -A--	0x400a78     0xa78        0x11f0       	.dynsym
- *	6	2	0x4          0x10         
+ *	6	2	0x4          0x10
  *
  * [6]	STRT    -A--	0x401c68     0x1c68       0xbf9        	.dynstr
- *	0	0	0x1          0            
+ *	0	0	0x1          0
  *
  * [7]	REL     -A--	0x402864     0x2864       0x18         	.rel.dyn
- *	5	14	0x4          0x8          
+ *	5	14	0x4          0x8
  *
  * [8]	PBIT    -AI-	0x402880     0x2880       0x60         	.init
- *	0	0	0x10         0x1          
+ *	0	0	0x10         0x1
  *
  * [9]	PBIT    -AI-	0x4028e0     0x28e0       0x1234       	.plt
- *	0	0	0x4          0x4          
+ *	0	0	0x4          0x4
  *
  * [10]	PBIT    -AI-	0x403b20     0x3b20       0xee400      	.text
- *	0	0	0x20         0x1          
+ *	0	0	0x20         0x1
  *
  * [11]	PBIT    -AI-	0x4f1f20     0xf1f20      0x60         	.fini
- *	0	0	0x10         0x1          
+ *	0	0	0x10         0x1
  *
  * [12]	PBIT    -A--	0x4f1f80     0xf1f80      0xd90        	.rdata
- *	0	0	0x10         0x1          
+ *	0	0	0x10         0x1
  *
  * [13]	PBIT    -A--	0x4f2d10     0xf2d10      0x17e0       	.rodata
- *	0	0	0x10         0x1          
+ *	0	0	0x10         0x1
  *
  * [14]	PBIT    WA--	0x5344f0     0xf44f0      0x4b3e4      	.data  <<<<<
- *	0	0	0x10         0x1          
+ *	0	0	0x10         0x1
  *
  * [15]	PBIT    WA-G	0x57f8d4     0x13f8d4     0x2a84       	.got
- *	0	0	0x4          0x4          
+ *	0	0	0x4          0x4
  *
  * [16]	PBIT    WA-G	0x582360     0x142360     0xb94        	.sdata <<<<<
- *	0	0	0x10         0x1          
+ *	0	0	0x10         0x1
  *
  * [17]	PBIT    WA--	0x582f00     0x142f00     0x94100      	.data  <<<<<
- *	0	0	0x10         0x1          
+ *	0	0	0x10         0x1
  *
  * [18]	NOBI    WA-G	0x617000     0x1d7000     0            	.sbss  <<<<<
- *	0	0	0x4          0            
+ *	0	0	0x4          0
  *
  * [19]	NOBI    WA--	0x617000     0x1d7000     0            	.bss   <<<<<
- *	0	0	0x4          0x1          
+ *	0	0	0x4          0x1
  *
  * [20]	SYMT    ----	0            0x1d7000     0x10e40      	.symtab
- *	21	1109	0x4          0x10         
+ *	21	1109	0x4          0x10
  *
  * [21]	STRT    ----	0            0x1e7e40     0xed9e       	.strtab
- *	0	0	0x1          0            
+ *	0	0	0x1          0
  *
  * [22]	STRT    ----	0            0x1f6bde     0xb5         	.shstrtab
- *	0	0	0x1          0            
+ *	0	0	0x1          0
  *
  * [23]	PBIT    ----	0            0x1f6c93     0x28e2a      	.comment
- *	0	0	0x1          0x1          
+ *	0	0	0x1          0x1
  *
  * [24]	PBIT    ----	0            0x21fabd     0x592        	.debug
- *	0	0	0x1          0            
+ *	0	0	0x1          0
  *
  * [25]	PBIT    ----	0            0x22004f     0x80         	.line
- *	0	0	0x1          0            
+ *	0	0	0x1          0
  *
  * [26]	MDBG    ----	0            0x2200d0     0x60         	.mdebug
- *	0	0	0x4          0            
+ *	0	0	0x4          0
  *
  */
 
@@ -450,7 +450,7 @@
     {
       old_sdata_index = old_sbss_index - 1;
     }
-  
+
 
   /* Find the old .bss section.
    */
@@ -683,7 +683,7 @@
   if (old_data_index == old_file_h->e_shnum)
     fatal ("Can't find .data in %s.\n", old_name, 0);
 
-  /* Walk through all section headers, insert the new data2 section right 
+  /* Walk through all section headers, insert the new data2 section right
      before the new bss section. */
   for (n = 1, nn = 1; n < old_file_h->e_shnum; n++, nn++)
     {
@@ -698,7 +698,7 @@
 	    {
 	    memcpy (&NEW_SECTION_H(nn), &OLD_SECTION_H(old_data_index),
 		    new_file_h->e_shentsize);
-	  
+
 	    NEW_SECTION_H(nn).sh_addr = new_data3_addr;
 	    NEW_SECTION_H(nn).sh_offset = new_data3_offset;
 	    NEW_SECTION_H(nn).sh_size = new_data3_size;
@@ -709,8 +709,8 @@
 	    NEW_SECTION_H(nn).sh_addralign = OLD_SECTION_H(n).sh_addralign;
 
 	    /* Now copy over what we have in the memory now. */
-	    memcpy (NEW_SECTION_H(nn).sh_offset + new_base, 
-		    (caddr_t) OLD_SECTION_H(n).sh_addr, 
+	    memcpy (NEW_SECTION_H(nn).sh_offset + new_base,
+		    (caddr_t) OLD_SECTION_H(n).sh_addr,
 		    new_data3_size);
 		  /* the new .data2 section should also come before the
 		   * new .sbss section */
@@ -721,14 +721,14 @@
 	    /* We always have a .sdata section: append the contents of the
 	     * old .sbss section.
 	     */
-	    memcpy (new_data3_offset + new_base, 
-		    (caddr_t) OLD_SECTION_H(n).sh_addr, 
+	    memcpy (new_data3_offset + new_base,
+		    (caddr_t) OLD_SECTION_H(n).sh_addr,
 		    new_data3_size);
 	    nn ++;
 	    }
 	}
       else if (n == old_bss_index)
-      
+
       /* If it is bss section, insert the new data2 section before it. */
 	{
 	  Elf32_Word tmp_align;
@@ -741,7 +741,7 @@
 	  /* Steal the data section header for this data2 section. */
 	  memcpy (&NEW_SECTION_H(nn), &OLD_SECTION_H(old_data_index),
 		  new_file_h->e_shentsize);
-	  
+
 	  NEW_SECTION_H(nn).sh_addr = new_data2_addr;
 	  NEW_SECTION_H(nn).sh_offset = new_data2_offset;
 	  NEW_SECTION_H(nn).sh_size = new_data2_size;
@@ -751,14 +751,14 @@
 	  NEW_SECTION_H(nn).sh_addralign = tmp_align;
 
 	  /* Now copy over what we have in the memory now. */
-	  memcpy (NEW_SECTION_H(nn).sh_offset + new_base, 
+	  memcpy (NEW_SECTION_H(nn).sh_offset + new_base,
 		  (caddr_t) tmp_addr, new_data2_size);
 	  nn += 2;
 	}
-      
-      memcpy (&NEW_SECTION_H(nn), &OLD_SECTION_H(n), 
+
+      memcpy (&NEW_SECTION_H(nn), &OLD_SECTION_H(n),
 	      old_file_h->e_shentsize);
-      
+
       if (old_sdata_index && n == old_sdata_index)
 	/* The old .sdata section has now a new size */
 	NEW_SECTION_H(nn).sh_size = new_sdata_size;
@@ -773,7 +773,7 @@
 	  NEW_SECTION_H(nn).sh_addr += new_data2_size + new_data2_align +
 	    new_data3_size;
 	  /* Let the new bss section address alignment be the same as the
-	     section address alignment followed the old bss section, so 
+	     section address alignment followed the old bss section, so
 	     this section will be placed in exactly the same place. */
 	  NEW_SECTION_H(nn).sh_addralign =
 	    OLD_SECTION_H(nn + (old_sdata_index ? 1 : 0)).sh_addralign;
@@ -786,7 +786,7 @@
 	    new_data3_size - old_bss_padding;
 	  NEW_SECTION_H(nn).sh_addr += new_data2_size;
 	  /* Let the new bss section address alignment be the same as the
-	     section address alignment followed the old bss section, so 
+	     section address alignment followed the old bss section, so
 	     this section will be placed in exactly the same place. */
 	  NEW_SECTION_H(nn).sh_addralign =
 	    OLD_SECTION_H((nn - (old_sdata_index ? 0 : 1))).sh_addralign;
@@ -799,19 +799,19 @@
 				       new_data2_align +
 				       new_data3_size -
 				       old_bss_padding;
-      
+
       /* If any section hdr refers to the section after the new .data
-	 section, make it refer to next one because we have inserted 
+	 section, make it refer to next one because we have inserted
 	 a new section in between. */
-      
+
       PATCH_INDEX(NEW_SECTION_H(nn).sh_link);
       PATCH_INDEX(NEW_SECTION_H(nn).sh_info);
-      
+
       /* Now, start to copy the content of sections. */
       if (NEW_SECTION_H(nn).sh_type == SHT_NULL
 	  || NEW_SECTION_H(nn).sh_type == SHT_NOBITS)
 	continue;
-      
+
       /* Write out the sections. .data, .data1 and .sdata get copied from
        * the current process instead of the old file.
        */
@@ -821,7 +821,7 @@
 	src = (caddr_t) OLD_SECTION_H(n).sh_addr;
       else
 	src = old_base + OLD_SECTION_H(n).sh_offset;
-      
+
       memcpy (NEW_SECTION_H(nn).sh_offset + new_base, src,
 	      ((n == old_sdata_index) ?
 	       old_sdata_size :
@@ -833,7 +833,7 @@
 	{
 	  Elf32_Shdr *spt = &NEW_SECTION_H(nn);
 	  unsigned int num = spt->sh_size / spt->sh_entsize;
-	  Elf32_Sym * sym = (Elf32_Sym *) (NEW_SECTION_H(nn).sh_offset + 
+	  Elf32_Sym * sym = (Elf32_Sym *) (NEW_SECTION_H(nn).sh_offset +
 					   new_base);
 	  for (; num--; sym++)
 	    {
@@ -841,7 +841,7 @@
 		  || (sym->st_shndx == SHN_ABS)
 		  || (sym->st_shndx == SHN_COMMON))
 		continue;
-	
+
 	      PATCH_INDEX(sym->st_shndx);
 	    }
 	}
--- a/src/unexsunos4.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/unexsunos4.c	Tue Feb 04 14:56:31 2003 +0000
@@ -98,7 +98,7 @@
 static long cookie;
 
 
-unexec (new_name, a_name, bndry, bss_start, entry) 
+unexec (new_name, a_name, bndry, bss_start, entry)
      char *new_name, *a_name;
      unsigned bndry, bss_start, entry;
 {
@@ -163,7 +163,7 @@
   /* Have to do this some time before dumping the data */
   initialized = 1;
 #endif
-  
+
   /* Handle new data and bss sizes and optional new entry point.
      No one actually uses bss_start and entry,  but tradition compels
      one to support them.
@@ -171,7 +171,7 @@
      but the caller is *supposed* to know what she is doing.  */
   nhdr.a_data = (bss_start ? bss_start : brk_value) - N_DATADDR (nhdr);
   nhdr.a_bss  = bss_start ? brk_value - bss_start : 0;
-  if (entry) 
+  if (entry)
     nhdr.a_entry = entry;
 
   /*
@@ -296,14 +296,14 @@
    * First try argv[0],  will almost always succeed as shells tend to give
    * the full path from the hash list rather than using execvp ()
    */
-  if (is_it (progname)) 
+  if (is_it (progname))
     return;
 
   /*
    * If argv[0] is a full path and does not exist,  not much sense in
    * searching further
    */
-  if (strchr (progname, '/')) 
+  if (strchr (progname, '/'))
     return;
 
   /*
--- a/src/unexw32.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/unexw32.c	Tue Feb 04 14:56:31 2003 +0000
@@ -148,17 +148,17 @@
 
   file = CreateFile (filename, GENERIC_READ, FILE_SHARE_READ, NULL,
 		     OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
-  if (file == INVALID_HANDLE_VALUE) 
+  if (file == INVALID_HANDLE_VALUE)
     return FALSE;
 
   size = GetFileSize (file, &upper_size);
-  file_mapping = CreateFileMapping (file, NULL, PAGE_READONLY, 
+  file_mapping = CreateFileMapping (file, NULL, PAGE_READONLY,
 				    0, size, NULL);
-  if (!file_mapping) 
+  if (!file_mapping)
     return FALSE;
 
   file_base = MapViewOfFile (file_mapping, FILE_MAP_READ, 0, 0, size);
-  if (file_base == 0) 
+  if (file_base == 0)
     return FALSE;
 
   p_file->name = filename;
@@ -179,18 +179,18 @@
 
   file = CreateFile (filename, GENERIC_READ | GENERIC_WRITE, 0, NULL,
 		     CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
-  if (file == INVALID_HANDLE_VALUE) 
+  if (file == INVALID_HANDLE_VALUE)
     return FALSE;
 
-  file_mapping = CreateFileMapping (file, NULL, PAGE_READWRITE, 
+  file_mapping = CreateFileMapping (file, NULL, PAGE_READWRITE,
 				    0, size, NULL);
-  if (!file_mapping) 
+  if (!file_mapping)
     return FALSE;
-  
+
   file_base = MapViewOfFile (file_mapping, FILE_MAP_WRITE, 0, 0, size);
-  if (file_base == 0) 
+  if (file_base == 0)
     return FALSE;
-  
+
   p_file->name = filename;
   p_file->size = size;
   p_file->file = file;
@@ -345,24 +345,24 @@
   PIMAGE_NT_HEADERS nt_header;
   PIMAGE_SECTION_HEADER section;
   int overlap;
-  
+
   dos_header = (PIMAGE_DOS_HEADER) p_infile->file_base;
-  if (dos_header->e_magic != IMAGE_DOS_SIGNATURE) 
+  if (dos_header->e_magic != IMAGE_DOS_SIGNATURE)
     {
       printf ("Unknown EXE header in %s...bailing.\n", p_infile->name);
       exit (1);
     }
-  nt_header = (PIMAGE_NT_HEADERS) (((unsigned long) dos_header) + 
+  nt_header = (PIMAGE_NT_HEADERS) (((unsigned long) dos_header) +
 				   dos_header->e_lfanew);
-  if (nt_header == NULL) 
+  if (nt_header == NULL)
     {
-      printf ("Failed to find IMAGE_NT_HEADER in %s...bailing.\n", 
+      printf ("Failed to find IMAGE_NT_HEADER in %s...bailing.\n",
 	     p_infile->name);
       exit (1);
     }
 
   /* Check the NT header signature ...  */
-  if (nt_header->Signature != IMAGE_NT_SIGNATURE) 
+  if (nt_header->Signature != IMAGE_NT_SIGNATURE)
     {
       printf ("Invalid IMAGE_NT_SIGNATURE 0x%x in %s...bailing.\n",
 	      nt_header->Signature, p_infile->name);
@@ -482,7 +482,7 @@
 /* The dump routines.  */
 
 void
-copy_executable_and_dump_data (file_data *p_infile, 
+copy_executable_and_dump_data (file_data *p_infile,
 			       file_data *p_outfile)
 {
   unsigned char *dst, *dst_save;
@@ -537,10 +537,10 @@
      Note that dst is updated implicitly by each COPY_CHUNK.  */
 
   dos_header = (PIMAGE_DOS_HEADER) p_infile->file_base;
-  nt_header = (PIMAGE_NT_HEADERS) (((unsigned long) dos_header) + 
+  nt_header = (PIMAGE_NT_HEADERS) (((unsigned long) dos_header) +
 				   dos_header->e_lfanew);
   section = IMAGE_FIRST_SECTION (nt_header);
- 
+
   dst = (unsigned char *) p_outfile->file_base;
 
   COPY_CHUNK ("Copying DOS header...", dos_header,
@@ -736,7 +736,7 @@
   if ((q = strrchr (new_name, '/')) == NULL)
     abort ();
   strcpy (p, q);
-  
+
   /* Make sure that the output filename has the ".exe" extension...patch
      it up if not.  */
   p = out_filename + strlen (out_filename) - 4;
@@ -752,7 +752,7 @@
   /* Open the undumped executable file.  */
   if (!open_input_file (&in_file, in_filename))
     {
-      printf ("Failed to open %s (%d)...bailing.\n", 
+      printf ("Failed to open %s (%d)...bailing.\n",
 	      in_filename, GetLastError ());
       exit (1);
     }
@@ -768,7 +768,7 @@
     extra_bss_size_static;
   if (!open_output_file (&out_file, out_filename, size))
     {
-      printf ("Failed to open %s (%d)...bailing.\n", 
+      printf ("Failed to open %s (%d)...bailing.\n",
 	      out_filename, GetLastError ());
       exit (1);
     }
--- a/src/vm-limit.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/vm-limit.c	Tue Feb 04 14:56:31 2003 +0000
@@ -76,7 +76,7 @@
   if (warn_function)
     switch (warnlevel)
       {
-      case 0: 
+      case 0:
 	if (data_size > five_percent * 15)
 	  {
 	    warnlevel++;
@@ -84,7 +84,7 @@
 	  }
 	break;
 
-      case 1: 
+      case 1:
 	if (data_size > five_percent * 17)
 	  {
 	    warnlevel++;
@@ -92,7 +92,7 @@
 	  }
 	break;
 
-      case 2: 
+      case 2:
 	if (data_size > five_percent * 19)
 	  {
 	    warnlevel++;
--- a/src/w32.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/w32.c	Tue Feb 04 14:56:31 2003 +0000
@@ -343,7 +343,7 @@
 int
 gethostname (char *buffer, int size)
 {
-  /* NT only allows small host names, so the buffer is 
+  /* NT only allows small host names, so the buffer is
      certainly large enough.  */
   return !GetComputerName (buffer, &size);
 }
@@ -356,7 +356,7 @@
   int i;
 
   /* A faithful emulation is going to have to be saved for a rainy day.  */
-  for (i = 0; i < nelem; i++) 
+  for (i = 0; i < nelem; i++)
     {
       loadavg[i] = 0.0;
     }
@@ -373,7 +373,7 @@
 static char the_passwd_dir[PASSWD_FIELD_SIZE];
 static char the_passwd_shell[PASSWD_FIELD_SIZE];
 
-static struct passwd the_passwd = 
+static struct passwd the_passwd =
 {
   the_passwd_name,
   the_passwd_passwd,
@@ -385,30 +385,30 @@
   the_passwd_shell,
 };
 
-int 
-getuid () 
-{ 
+int
+getuid ()
+{
   return the_passwd.pw_uid;
 }
 
-int 
-geteuid () 
-{ 
+int
+geteuid ()
+{
   /* I could imagine arguing for checking to see whether the user is
      in the Administrators group and returning a UID of 0 for that
      case, but I don't know how wise that would be in the long run.  */
-  return getuid (); 
+  return getuid ();
 }
 
-int 
-getgid () 
-{ 
+int
+getgid ()
+{
   return the_passwd.pw_gid;
 }
 
-int 
-getegid () 
-{ 
+int
+getegid ()
+{
   return getgid ();
 }
 
@@ -424,7 +424,7 @@
 getpwnam (char *name)
 {
   struct passwd *pw;
-  
+
   pw = getpwuid (getuid ());
   if (!pw)
     return pw;
@@ -782,57 +782,57 @@
 
 /* Routines that are no-ops on NT but are defined to get Emacs to compile.  */
 
-int 
-sigsetmask (int signal_mask) 
-{ 
+int
+sigsetmask (int signal_mask)
+{
   return 0;
 }
 
-int 
-sigmask (int sig) 
-{ 
+int
+sigmask (int sig)
+{
   return 0;
 }
 
-int 
-sigblock (int sig) 
-{ 
+int
+sigblock (int sig)
+{
   return 0;
 }
 
-int 
-sigunblock (int sig) 
-{ 
+int
+sigunblock (int sig)
+{
   return 0;
 }
 
-int 
-setpgrp (int pid, int gid) 
-{ 
+int
+setpgrp (int pid, int gid)
+{
   return 0;
 }
 
-int 
-alarm (int seconds) 
-{ 
+int
+alarm (int seconds)
+{
   return 0;
 }
 
-void 
-unrequest_sigio (void) 
-{ 
+void
+unrequest_sigio (void)
+{
   return;
 }
 
 void
-request_sigio (void) 
-{ 
+request_sigio (void)
+{
   return;
 }
 
 #define REG_ROOT "SOFTWARE\\GNU\\Emacs"
 
-LPBYTE 
+LPBYTE
 w32_get_resource (key, lpdwtype)
     char *key;
     LPDWORD lpdwtype;
@@ -841,42 +841,42 @@
   HKEY hrootkey = NULL;
   DWORD cbData;
   BOOL ok = FALSE;
-  
-  /* Check both the current user and the local machine to see if 
+
+  /* Check both the current user and the local machine to see if
      we have any resources.  */
-  
+
   if (RegOpenKeyEx (HKEY_CURRENT_USER, REG_ROOT, 0, KEY_READ, &hrootkey) == ERROR_SUCCESS)
     {
       lpvalue = NULL;
 
-      if (RegQueryValueEx (hrootkey, key, NULL, NULL, NULL, &cbData) == ERROR_SUCCESS 
-	  && (lpvalue = (LPBYTE) xmalloc (cbData)) != NULL 
+      if (RegQueryValueEx (hrootkey, key, NULL, NULL, NULL, &cbData) == ERROR_SUCCESS
+	  && (lpvalue = (LPBYTE) xmalloc (cbData)) != NULL
 	  && RegQueryValueEx (hrootkey, key, NULL, lpdwtype, lpvalue, &cbData) == ERROR_SUCCESS)
 	{
 	  return (lpvalue);
 	}
 
       if (lpvalue) xfree (lpvalue);
-	
+
       RegCloseKey (hrootkey);
-    } 
-  
+    }
+
   if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, REG_ROOT, 0, KEY_READ, &hrootkey) == ERROR_SUCCESS)
     {
       lpvalue = NULL;
-	
+
       if (RegQueryValueEx (hrootkey, key, NULL, NULL, NULL, &cbData) == ERROR_SUCCESS
 	  && (lpvalue = (LPBYTE) xmalloc (cbData)) != NULL
 	  && RegQueryValueEx (hrootkey, key, NULL, lpdwtype, lpvalue, &cbData) == ERROR_SUCCESS)
 	{
 	  return (lpvalue);
 	}
-	
+
       if (lpvalue) xfree (lpvalue);
-	
+
       RegCloseKey (hrootkey);
-    } 
-  
+    }
+
   return (NULL);
 }
 
@@ -933,7 +933,7 @@
     {
       char * name;
       char * def_value;
-    } env_vars[] = 
+    } env_vars[] =
     {
       {"HOME", "C:/"},
       {"PRELOAD_WINSOCK", NULL},
@@ -987,7 +987,7 @@
 	  *p = 0;
 	  for (p = modname; *p; p++)
 	    if (*p == '\\') *p = '/';
-		  
+
 	  _snprintf (buf, sizeof(buf)-1, "emacs_dir=%s", modname);
 	  _putenv (strdup (buf));
 	}
@@ -1019,7 +1019,7 @@
 		else if (dwType == REG_SZ)
 		  {
 		    char buf[SET_ENV_BUF_SIZE];
-		  
+
 		    _snprintf (buf, sizeof(buf)-1, "%s=%s", env_vars[i].name, lpval);
 		    _putenv (strdup (buf));
 		  }
@@ -1113,7 +1113,7 @@
   static char configuration_buffer[32];
 
   /* Determine the processor type.  */
-  switch (get_processor_type ()) 
+  switch (get_processor_type ())
     {
 
 #ifdef PROCESSOR_INTEL_386
@@ -1230,7 +1230,7 @@
 #include <sys/timeb.h>
 
 /* Emulate gettimeofday (Ulrich Leodolter, 1/11/95).  */
-void 
+void
 gettimeofday (struct timeval *tv, struct timezone *tz)
 {
   struct timeb tb;
@@ -1238,7 +1238,7 @@
 
   tv->tv_sec = tb.time;
   tv->tv_usec = tb.millitm * 1000L;
-  if (tz) 
+  if (tz)
     {
       tz->tz_minuteswest = tb.timezone;	/* minutes west of Greenwich  */
       tz->tz_dsttime = tb.dstflag;	/* type of dst correction  */
@@ -1250,7 +1250,7 @@
 /* ------------------------------------------------------------------------- */
 
 /* Place a wrapper around the MSVC version of ctime.  It returns NULL
-   on network directories, so we handle that case here.  
+   on network directories, so we handle that case here.
    (Ulrich Leodolter, 1/11/95).  */
 char *
 sys_ctime (const time_t *t)
@@ -1356,7 +1356,7 @@
      tell whether they are or not.  Also, the UNC association of drive
      letters mapped to remote volumes can be changed at any time (even
      by other processes) without notice.
-   
+
      As a compromise, so we can benefit from caching info for remote
      volumes, we use a simple expiry mechanism to invalidate cache
      entries that are more than ten seconds old.  */
@@ -1462,7 +1462,7 @@
 
   if (pPath)
     *pPath = name;
-    
+
   info = GetCachedVolumeInformation (rootname);
   if (info != NULL)
     {
@@ -1600,7 +1600,7 @@
 	 stricmp (p, ".cmd") == 0));
 }
 
-/* Emulate the Unix directory procedures opendir, closedir, 
+/* Emulate the Unix directory procedures opendir, closedir,
    and readdir.  We can't use the procedures supplied in sysdep.c,
    so we provide them here.  */
 
@@ -1673,8 +1673,8 @@
 {
   if (wnet_enum_handle != INVALID_HANDLE_VALUE)
     {
-      if (!read_unc_volume (wnet_enum_handle, 
-			      dir_find_data.cFileName, 
+      if (!read_unc_volume (wnet_enum_handle,
+			      dir_find_data.cFileName,
 			      MAX_PATH))
 	return NULL;
     }
@@ -1700,14 +1700,14 @@
       if (!FindNextFile (dir_find_handle, &dir_find_data))
 	return NULL;
     }
-  
+
   /* Emacs never uses this value, so don't bother making it match
      value returned by stat().  */
   dir_static.d_ino = 1;
-  
+
   dir_static.d_reclen = sizeof (struct direct) - MAXNAMLEN + 3 +
     dir_static.d_namlen - dir_static.d_namlen % 4;
-  
+
   dir_static.d_namlen = strlen (dir_find_data.cFileName);
   strcpy (dir_static.d_name, dir_find_data.cFileName);
   if (dir_is_fat)
@@ -1721,27 +1721,27 @@
       if (!*p)
 	_strlwr (dir_static.d_name);
     }
-  
+
   return &dir_static;
 }
 
 HANDLE
 open_unc_volume (char *path)
 {
-  NETRESOURCE nr; 
+  NETRESOURCE nr;
   HANDLE henum;
   int result;
 
-  nr.dwScope = RESOURCE_GLOBALNET; 
-  nr.dwType = RESOURCETYPE_DISK; 
-  nr.dwDisplayType = RESOURCEDISPLAYTYPE_SERVER; 
-  nr.dwUsage = RESOURCEUSAGE_CONTAINER; 
-  nr.lpLocalName = NULL; 
+  nr.dwScope = RESOURCE_GLOBALNET;
+  nr.dwType = RESOURCETYPE_DISK;
+  nr.dwDisplayType = RESOURCEDISPLAYTYPE_SERVER;
+  nr.dwUsage = RESOURCEUSAGE_CONTAINER;
+  nr.lpLocalName = NULL;
   nr.lpRemoteName = map_w32_filename (path, NULL);
-  nr.lpComment = NULL; 
-  nr.lpProvider = NULL;   
-
-  result = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK,  
+  nr.lpComment = NULL;
+  nr.lpProvider = NULL;
+
+  result = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK,
 			RESOURCEUSAGE_CONNECTABLE, &nr, &henum);
 
   if (result == NO_ERROR)
@@ -1802,7 +1802,7 @@
 
 /* Shadow some MSVC runtime functions to map requests for long filenames
    to reasonable short names if necessary.  This was originally added to
-   permit running Emacs on NT 3.1 on a FAT partition, which doesn't support 
+   permit running Emacs on NT 3.1 on a FAT partition, which doesn't support
    long file names.  */
 
 int
@@ -2452,7 +2452,7 @@
     permission = _S_IREAD;
   else
     permission = _S_IREAD | _S_IWRITE;
-  
+
   if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
     permission |= _S_IEXEC;
   else if (is_exec (name))
@@ -2536,7 +2536,7 @@
     permission = _S_IREAD;
   else
     permission = _S_IREAD | _S_IWRITE;
-  
+
   if (info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
     permission |= _S_IEXEC;
   else
@@ -2788,7 +2788,7 @@
   WSAEFAULT               , "Bad address",
   WSAEINVAL               , "Invalid argument",
   WSAEMFILE               , "Too many open files",
-			
+
   WSAEWOULDBLOCK          , "Resource temporarily unavailable",
   WSAEINPROGRESS          , "Operation now in progress",
   WSAEALREADY             , "Operation already in progress",
@@ -2826,7 +2826,7 @@
   WSAEDQUOT               , "Double quote in host name",    /* really not sure */
   WSAESTALE               , "Data is stale",		    /* not sure */
   WSAEREMOTE              , "Remote error",		    /* not sure */
-			
+
   WSASYSNOTREADY          , "Network subsystem is unavailable",
   WSAVERNOTSUPPORTED      , "WINSOCK.DLL version out of range",
   WSANOTINITIALISED       , "Winsock not initialized successfully",
@@ -2844,7 +2844,7 @@
   WSA_E_CANCELLED         , "Operation already cancelled",  /* really not sure */
   WSAEREFUSED             , "Operation refused",	    /* not sure */
 #endif
-			
+
   WSAHOST_NOT_FOUND       , "Host not found",
   WSATRY_AGAIN            , "Authoritative host not found during name lookup",
   WSANO_RECOVERY          , "Non-recoverable error during name lookup",
@@ -2899,7 +2899,7 @@
 
   /* call the real socket function */
   s = pfn_socket (af, type, protocol);
-  
+
   if (s != INVALID_SOCKET)
     return socket_to_fd (s);
 
@@ -2972,7 +2972,7 @@
 		  {
 		    CloseHandle (new_s);
 		  }
-	      } 
+	      }
 	  }
       }
       fd_info[fd].hnd = (HANDLE) s;
@@ -3185,7 +3185,7 @@
       return rc;
     }
   h_errno = ENOTSOCK;
-  return SOCKET_ERROR;      
+  return SOCKET_ERROR;
 }
 
 int
@@ -3206,7 +3206,7 @@
       return rc;
     }
   h_errno = ENOTSOCK;
-  return SOCKET_ERROR;      
+  return SOCKET_ERROR;
 }
 
 int
@@ -3227,7 +3227,7 @@
       return rc;
     }
   h_errno = ENOTSOCK;
-  return SOCKET_ERROR;      
+  return SOCKET_ERROR;
 }
 
 int
@@ -3425,7 +3425,7 @@
   /* make sure we close the destination first if it's a pipe or socket */
   if (src != dst && fd_info[dst].flags != 0)
     sys_close (dst);
-  
+
   rc = _dup2 (src, dst);
   if (rc == 0)
     {
@@ -3485,9 +3485,9 @@
       DebPrint (("_sys_read_ahead: internal error: fd %d is not a pipe or socket!\n", fd));
       abort ();
     }
-  
+
   cp->status = STATUS_READ_IN_PROGRESS;
-  
+
   if (fd_info[fd].flags & FILE_PIPE)
     {
       rc = _read (fd, &cp->chr, sizeof (char));
@@ -3529,7 +3529,7 @@
 	}
     }
 #endif
-  
+
   if (rc == sizeof (char))
     cp->status = STATUS_READ_SUCCEEDED;
   else
@@ -3728,7 +3728,7 @@
 		  next[0] = '\n';
 		  dst = next + 1;
 		  count++;
-		}	    
+		}
 	      else
 		/* copied remaining partial line -> now finished */
 		break;
@@ -3781,7 +3781,7 @@
      it cannot find the Windows installation file.  If this file does
      not exist in the expected place, tell the user.  */
 
-  if (!noninteractive && !inhibit_window_system) 
+  if (!noninteractive && !inhibit_window_system)
     {
       extern Lisp_Object Vwindow_system, Vload_path, Qfile_exists_p;
       Lisp_Object objs[2];
@@ -3794,14 +3794,14 @@
       full_load_path = Fappend (2, objs);
       init_file = build_string ("term/w32-win");
       fd = openp (full_load_path, init_file, Vload_suffixes, NULL, Qnil);
-      if (fd < 0) 
+      if (fd < 0)
 	{
 	  Lisp_Object load_path_print = Fprin1_to_string (full_load_path, Qnil);
 	  char *init_file_name = SDATA (init_file);
 	  char *load_path = SDATA (load_path_print);
 	  char *buffer = alloca (1024);
 
-	  sprintf (buffer, 
+	  sprintf (buffer,
 		   "The Emacs Windows initialization file \"%s.el\" "
 		   "could not be found in your Emacs installation.  "
 		   "Emacs checked the following directories for this file:\n"
@@ -3866,14 +3866,14 @@
 
     /* ignore errors when duplicating and closing; typically the
        handles will be invalid when running as a gui program. */
-    DuplicateHandle (parent, 
-		     GetStdHandle (STD_INPUT_HANDLE), 
+    DuplicateHandle (parent,
+		     GetStdHandle (STD_INPUT_HANDLE),
 		     parent,
-		     &stdin_save, 
-		     0, 
-		     FALSE, 
+		     &stdin_save,
+		     0,
+		     FALSE,
 		     DUPLICATE_SAME_ACCESS);
-    
+
     DuplicateHandle (parent,
 		     GetStdHandle (STD_OUTPUT_HANDLE),
 		     parent,
@@ -3881,7 +3881,7 @@
 		     0,
 		     FALSE,
 		     DUPLICATE_SAME_ACCESS);
-    
+
     DuplicateHandle (parent,
 		     GetStdHandle (STD_ERROR_HANDLE),
 		     parent,
@@ -3889,7 +3889,7 @@
 		     0,
 		     FALSE,
 		     DUPLICATE_SAME_ACCESS);
-    
+
     fclose (stdin);
     fclose (stdout);
     fclose (stderr);
@@ -3926,7 +3926,7 @@
     while (*drive <= 'Z')
     {
       /* Record if this drive letter refers to a fixed drive. */
-      fixed_drives[DRIVE_INDEX (*drive)] = 
+      fixed_drives[DRIVE_INDEX (*drive)] =
 	(GetDriveType (drive) == DRIVE_FIXED);
 
       (*drive)++;
@@ -3935,7 +3935,7 @@
     /* Reset the volume info cache.  */
     volume_cache = NULL;
   }
-  
+
   /* Check to see if Emacs has been installed correctly.  */
   check_windows_init_file ();
 }
--- a/src/w32.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/w32.h	Tue Feb 04 14:56:31 2003 +0000
@@ -112,11 +112,11 @@
 extern BOOL w32_get_long_filename (char * name, char * buf, int size);
 
 /* Prepare our standard handles for proper inheritance by child processes.  */
-extern void prepare_standard_handles (int in, int out, 
+extern void prepare_standard_handles (int in, int out,
 				      int err, HANDLE handles[4]);
 
 /* Reset our standard handles to their original state.  */
-extern void reset_standard_handles (int in, int out, 
+extern void reset_standard_handles (int in, int out,
 				    int err, HANDLE handles[4]);
 
 /* Return the string resource associated with KEY of type TYPE.  */
--- a/src/w32bdf.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/w32bdf.c	Tue Feb 04 14:56:31 2003 +0000
@@ -54,7 +54,7 @@
 
 #define FONT_CACHE_SLOT_OVER_P(p) ((p) >= cached_bitmap_slots + BDF_FONT_CACHE_SIZE)
 
-static int 
+static int
 search_file_line(char *key, char *start, int len, char **val, char **next)
 {
   unsigned int linelen;
@@ -73,7 +73,7 @@
       *val = start + strlen(key);
       return 1;
     }
-  
+
   return 0;
 }
 
@@ -276,7 +276,7 @@
     }
 
   bdffontp = (bdffont *) xmalloc(sizeof(bdffont));
-  
+
   for(i = 0;i < BDF_FIRST_OFFSET_TABLE;i++)
     bdffontp->chtbl[i] = NULL;
   bdffontp->size = fileinfo.nFileSizeLow;
@@ -285,7 +285,7 @@
   bdffontp->hfilemap = hfilemap;
   bdffontp->filename = (char*) xmalloc(strlen(filename) + 1);
   strcpy(bdffontp->filename, filename);
-  
+
   if (!set_bdf_font_info(bdffontp))
     {
       w32_free_bdf_font(bdffontp);
@@ -364,7 +364,7 @@
     {
       pch = fontp->chtbl[BDF_FIRST_OFFSET(index)] =
 	(font_char*) HeapAlloc(hbdf_cp_heap,
-			       HEAP_ZERO_MEMORY, 
+			       HEAP_ZERO_MEMORY,
 			       sizeof(font_char) *
                                BDF_SECOND_OFFSET_TABLE);
       if (!pch) return NULL;
@@ -578,7 +578,7 @@
   pcb->row_byte_size = glyph.row_byte_size;
 
   pch->pcbmp = pcb;
-  
+
   pcached_bitmap_latest++;
   if (FONT_CACHE_SLOT_OVER_P(pcached_bitmap_latest))
     pcached_bitmap_latest = cached_bitmap_slots;
@@ -649,7 +649,7 @@
     return 0;
 
   textalign = GetTextAlign(hdc);
-  
+
   hFgBrush = CreateSolidBrush(GetTextColor(hdc));
   hOrgBrush = SelectObject(hdc, hFgBrush);
 
@@ -679,7 +679,7 @@
 	{
 	  width = pcb->metric.bbw;
 	  height = pcb->metric.bbh;
-	  
+
 	  if (!(hBMP
 		&& (DIBsection_hdc == hdc)
 		&& (DIBsection_width == width)
--- a/src/w32bdf.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/w32bdf.h	Tue Feb 04 14:56:31 2003 +0000
@@ -34,7 +34,7 @@
 #define BDF_FONT_CACHE_SIZE 3000
 #define BDF_FONT_CLEAR_SIZE 600
 
-/* 
+/*
    GLYPH METRIC (# ... character's reference point)
    ^
  y |              (urx, ury)
--- a/src/w32console.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/w32console.c	Tue Feb 04 14:56:31 2003 +0000
@@ -108,7 +108,7 @@
 {
   cursor_coords.X = col;
   cursor_coords.Y = row;
-  
+
   if (updating_frame == (struct frame *) NULL)
     {
       SetConsoleCursorPosition (cur_screen, cursor_coords);
@@ -120,7 +120,7 @@
 clear_to_end (void)
 {
   struct frame * f = PICK_FRAME ();
-  
+
   clear_end_of_line (FRAME_WIDTH (f) - 1);
   ins_del_lines (cursor_coords.Y, FRAME_HEIGHT (f) - cursor_coords.Y - 1);
 }
@@ -191,12 +191,12 @@
     }
   scroll.Left = 0;
   scroll.Right = FRAME_WIDTH (f);
-  
+
   dest.X = 0;
-  
+
   fill.Char.AsciiChar = 0x20;
   fill.Attributes = char_attr_normal;
-  
+
   ScrollConsoleScreenBuffer (cur_screen, &scroll, NULL, dest, &fill);
 
   /* Here we have to deal with a w32 console flake: If the scroll
@@ -222,7 +222,7 @@
       nb = dest.Y + (scroll.Bottom - scroll.Top) + 1;
 
       if (nb < scroll.Top)
-        { 
+        {
 	  for (i = nb; i < scroll.Top; i++)
             {
 	      move_cursor (i, 0);
@@ -230,7 +230,7 @@
             }
         }
     }
-  
+
   cursor_coords.X = 0;
   cursor_coords.Y = vpos;
 }
@@ -249,10 +249,10 @@
   COORD	     dest;
   CHAR_INFO  fill;
   struct frame *  f = PICK_FRAME ();
-  
+
   scroll.Top = cursor_coords.Y;
   scroll.Bottom = cursor_coords.Y;
-  
+
   if (direction == LEFT)
     {
       scroll.Left = cursor_coords.X + dist;
@@ -263,10 +263,10 @@
       scroll.Left = cursor_coords.X;
       scroll.Right = FRAME_WIDTH (f) - dist - 1;
     }
-  
+
   dest.X = cursor_coords.X;
   dest.Y = cursor_coords.Y;
-  
+
   fill.Char.AsciiChar = 0x20;
   fill.Attributes = char_attr_normal;
 
@@ -285,7 +285,7 @@
     {
       /* Print the first len characters of start, cursor_coords.X adjusted
 	 by write_glyphs.  */
-	
+
       write_glyphs (start, len);
     }
   else
@@ -316,7 +316,7 @@
       /* Identify a run of glyphs with the same face.  */
       int face_id = string->face_id;
       int n;
-      
+
       for (n = 1; n < len; ++n)
 	if (string[n].face_id != face_id)
 	  break;
@@ -336,7 +336,7 @@
 	    {
               /* Set the attribute for these characters.  */
               if (!FillConsoleOutputAttribute (cur_screen, char_attr,
-                                               produced, cursor_coords, &r)) 
+                                               produced, cursor_coords, &r))
                 {
                   printf ("Failed writing console attributes: %d\n",
                           GetLastError ());
@@ -354,7 +354,7 @@
 
               cursor_coords.X += produced;
               move_cursor (cursor_coords.Y, cursor_coords.X);
-            }    
+            }
           len -= consumed;
           n -= consumed;
           string += consumed;
@@ -371,7 +371,7 @@
         {
           if (!FillConsoleOutputAttribute (cur_screen, char_attr_normal,
                                            terminal_coding.produced,
-                                           cursor_coords, &r)) 
+                                           cursor_coords, &r))
             {
               printf ("Failed writing console attributes: %d\n",
                       GetLastError ());
@@ -394,8 +394,8 @@
 void
 delete_glyphs (int n)
 {
-  /* delete chars means scroll chars from cursor_coords.X + n to 
-     cursor_coords.X, anything beyond the edge of the screen should 
+  /* delete chars means scroll chars from cursor_coords.X + n to
+     cursor_coords.X, anything beyond the edge of the screen should
      come out empty...  */
 
   scroll_line (n, LEFT);
@@ -407,7 +407,7 @@
 void
 w32_sys_ring_bell (void)
 {
-  if (sound_type == 0xFFFFFFFF) 
+  if (sound_type == 0xFFFFFFFF)
     {
       Beep (666, 100);
     }
@@ -430,17 +430,17 @@
 {
   CHECK_SYMBOL (sound);
 
-  if (NILP (sound)) 
+  if (NILP (sound))
       sound_type = 0xFFFFFFFF;
   else if (EQ (sound, intern ("asterisk")))
       sound_type = MB_ICONASTERISK;
-  else if (EQ (sound, intern ("exclamation"))) 
+  else if (EQ (sound, intern ("exclamation")))
       sound_type = MB_ICONEXCLAMATION;
-  else if (EQ (sound, intern ("hand"))) 
+  else if (EQ (sound, intern ("hand")))
       sound_type = MB_ICONHAND;
-  else if (EQ (sound, intern ("question"))) 
+  else if (EQ (sound, intern ("question")))
       sound_type = MB_ICONQUESTION;
-  else if (EQ (sound, intern ("ok"))) 
+  else if (EQ (sound, intern ("ok")))
       sound_type = MB_OK;
   else if (EQ (sound, intern ("silent")))
       sound_type = MB_EMACS_SILENT;
@@ -449,7 +449,7 @@
 
   return sound;
 }
-   
+
 void
 reset_terminal_modes (void)
 {
@@ -482,7 +482,7 @@
 
 /* hmmm... perhaps these let us bracket screen changes so that we can flush
    clumps rather than one-character-at-a-time...
-   
+
    we'll start with not moving the cursor while an update is in progress.  */
 void
 update_begin (struct frame * f)
@@ -525,7 +525,7 @@
 
   if (face->background != FACE_TTY_DEFAULT_BG_COLOR
       && face->background != FACE_TTY_DEFAULT_COLOR)
-    char_attr = (char_attr & 0xff0f) + ((face->background % 16) << 4); 
+    char_attr = (char_attr & 0xff0f) + ((face->background % 16) << 4);
 
 
   /* NTEMACS_TODO: Faces defined during startup get both foreground
@@ -573,7 +573,7 @@
 initialize_w32_display (void)
 {
   CONSOLE_SCREEN_BUFFER_INFO	info;
-  
+
   cursor_to_hook		= move_cursor;
   raw_cursor_to_hook		= move_cursor;
   clear_to_end_hook		= clear_to_end;
@@ -589,7 +589,7 @@
   set_terminal_window_hook	= set_terminal_window;
   update_begin_hook		= update_begin;
   update_end_hook		= update_end;
-  
+
   read_socket_hook = w32_console_read_socket;
   mouse_position_hook = w32_console_mouse_position;
   estimate_mode_line_height_hook = 0;
@@ -602,7 +602,7 @@
   GetConsoleMode (keyboard_handle, &prev_console_mode);
 
   prev_screen = GetStdHandle (STD_OUTPUT_HANDLE);
-  
+
 #ifdef USE_SEPARATE_SCREEN
   cur_screen = CreateConsoleScreenBuffer (GENERIC_READ | GENERIC_WRITE,
 					  0, NULL,
@@ -656,7 +656,7 @@
   }
 
   GetConsoleScreenBufferInfo (cur_screen, &info);
-  
+
   meta_key = 1;
   char_attr_normal = info.wAttributes;
 
@@ -668,10 +668,10 @@
   else
     {
       /* Lines per page.  Use buffer coords instead of buffer size.  */
-      FRAME_HEIGHT (SELECTED_FRAME ()) = 1 + info.srWindow.Bottom - 
-	info.srWindow.Top; 
+      FRAME_HEIGHT (SELECTED_FRAME ()) = 1 + info.srWindow.Bottom -
+	info.srWindow.Top;
       /* Characters per line.  Use buffer coords instead of buffer size.  */
-      SET_FRAME_WIDTH (SELECTED_FRAME (), 1 + info.srWindow.Right - 
+      SET_FRAME_WIDTH (SELECTED_FRAME (), 1 + info.srWindow.Right -
 		       info.srWindow.Left);
     }
 
@@ -702,7 +702,7 @@
   cci.dwSize = XFASTINT (size);
   cci.bVisible = TRUE;
   (void) SetConsoleCursorInfo (cur_screen, &cci);
-  
+
   return Qt;
 }
 
--- a/src/w32fns.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/w32fns.c	Tue Feb 04 14:56:31 2003 +0000
@@ -10489,7 +10489,7 @@
      string buffer containing data in the same format as an XPM file.  */
 
   specified_file = image_spec_value (img->spec, QCfile, NULL);
-  
+
   {
     HDC frame_dc = get_frame_dc (f);
     hdc = CreateCompatibleDC (frame_dc);
@@ -10535,7 +10535,7 @@
 	  fn_XImageFree (xpm_image);
 	}
       if (xpm_mask && xpm_mask->bitmap)
-	{	  
+	{
 	  /* The mask appears to be inverted compared with what we expect.
 	     TODO: invert our expectations.  See other places where we
 	     have to invert bits because our idea of masks is backwards.  */
@@ -10546,7 +10546,7 @@
 	  SelectObject (hdc, old_obj);
 
 	  img->mask = xpm_mask->bitmap;
-	  fn_XImageFree (xpm_mask);	  
+	  fn_XImageFree (xpm_mask);
 	  DeleteDC (hdc);
 	}
 
--- a/src/w32inevt.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/w32inevt.c	Tue Feb 04 14:56:31 2003 +0000
@@ -82,15 +82,15 @@
 static INPUT_RECORD event_queue[EVENT_QUEUE_SIZE];
 static INPUT_RECORD *queue_ptr = event_queue, *queue_end = event_queue;
 
-static int 
+static int
 fill_queue (BOOL block)
 {
   BOOL rc;
   DWORD events_waiting;
-  
+
   if (queue_ptr < queue_end)
     return queue_end-queue_ptr;
-  
+
   if (!block)
     {
       /* Check to see if there are some events to read before we try
@@ -100,7 +100,7 @@
       if (events_waiting == 0)
 	return 0;
     }
-  
+
   rc = ReadConsoleInput (keyboard_handle, event_queue, EVENT_QUEUE_SIZE,
 			 &events_waiting);
   if (!rc)
@@ -114,13 +114,13 @@
    and return the frame for it
 
    Right now, there's only one frame so return it.  */
-static FRAME_PTR 
+static FRAME_PTR
 get_frame (void)
 {
   return SELECTED_FRAME ();
 }
 
-/* Translate console modifiers to emacs modifiers.  
+/* Translate console modifiers to emacs modifiers.
    German keyboard support (Kai Morgan Zeise 2/18/95).  */
 int
 w32_kbd_mods_to_emacs (DWORD mods, WORD key)
@@ -129,18 +129,18 @@
 
   /* If we recognize right-alt and left-ctrl as AltGr, and it has been
      pressed, first remove those modifiers.  */
-  if (!NILP (Vw32_recognize_altgr) 
-      && (mods & (RIGHT_ALT_PRESSED | LEFT_CTRL_PRESSED)) 
+  if (!NILP (Vw32_recognize_altgr)
+      && (mods & (RIGHT_ALT_PRESSED | LEFT_CTRL_PRESSED))
       == (RIGHT_ALT_PRESSED | LEFT_CTRL_PRESSED))
     mods &= ~ (RIGHT_ALT_PRESSED | LEFT_CTRL_PRESSED);
 
   if (mods & (RIGHT_ALT_PRESSED | LEFT_ALT_PRESSED))
     retval = ((NILP (Vw32_alt_is_meta)) ? alt_modifier : meta_modifier);
-  
+
   if (mods & (RIGHT_CTRL_PRESSED | LEFT_CTRL_PRESSED))
     {
       retval |= ctrl_modifier;
-      if ((mods & (RIGHT_CTRL_PRESSED | LEFT_CTRL_PRESSED)) 
+      if ((mods & (RIGHT_CTRL_PRESSED | LEFT_CTRL_PRESSED))
 	  == (RIGHT_CTRL_PRESSED | LEFT_CTRL_PRESSED))
 	retval |= meta_modifier;
     }
@@ -212,14 +212,14 @@
       isdead = 0;
       return 1;
     }
-  if (event->uChar.AsciiChar != 0) 
+  if (event->uChar.AsciiChar != 0)
     return 1;
 
   memset (keystate, 0, sizeof (keystate));
   keystate[key_code] = 0x80;
-  if (mods & SHIFT_PRESSED) 
+  if (mods & SHIFT_PRESSED)
     keystate[VK_SHIFT] = 0x80;
-  if (mods & CAPSLOCK_ON) 
+  if (mods & CAPSLOCK_ON)
     keystate[VK_CAPITAL] = 1;
   /* If we recognize right-alt and left-ctrl as AltGr, set the key
      states accordingly before invoking ToAscii.  */
@@ -272,7 +272,7 @@
                         keystate, (LPWORD) ansi_code, 0);
     }
 
-  if (isdead == 0) 
+  if (isdead == 0)
     return 0;
   event->uChar.AsciiChar = ansi_code[0];
   return isdead;
@@ -283,9 +283,9 @@
 
 static int faked_key = 0;
 
-/* return code -1 means that event_queue_ptr won't be incremented. 
+/* return code -1 means that event_queue_ptr won't be incremented.
    In other word, this event makes two key codes.   (by himi)       */
-int 
+int
 key_event (KEY_EVENT_RECORD *event, struct input_event *emacs_ev, int *isdead)
 {
   static int mod_key_state = 0;
@@ -506,7 +506,7 @@
 }
 
 /* Mouse position hook.  */
-void 
+void
 w32_console_mouse_position (FRAME_PTR *f,
 			    int insist,
 			    Lisp_Object *bar_window,
@@ -523,16 +523,16 @@
   *bar_window = Qnil;
   *part = 0;
   SELECTED_FRAME ()->mouse_moved = 0;
-  
+
   *x = movement_pos.X;
   *y = movement_pos.Y;
   *time = movement_time;
-  
+
   UNBLOCK_INPUT;
 }
 
 /* Remember mouse motion and notify emacs.  */
-static void 
+static void
 mouse_moved_to (int x, int y)
 {
   /* If we're in the same place, ignore it */
@@ -563,14 +563,14 @@
   0, 2, 1
 };
 
-static int 
+static int
 do_mouse_event (MOUSE_EVENT_RECORD *event,
 		struct input_event *emacs_ev)
 {
   static DWORD button_state = 0;
   DWORD but_change, mask;
   int i;
-  
+
   if (event->dwEventFlags == MOUSE_MOVED)
     {
       /* For movement events we just note that the mouse has moved
@@ -578,14 +578,14 @@
       mouse_moved_to (event->dwMousePosition.X, event->dwMousePosition.Y);
       return 0;
     }
-  
+
   /* It looks like the console code sends us a mouse event with
      dwButtonState == 0 when a window is activated.  Ignore this case.  */
   if (event->dwButtonState == button_state)
     return 0;
-  
+
   emacs_ev->kind = MOUSE_CLICK_EVENT;
-  
+
   /* Find out what button has changed state since the last button event.  */
   but_change = button_state ^ event->dwButtonState;
   mask = 1;
@@ -603,7 +603,7 @@
   emacs_ev->timestamp = GetTickCount ();
   emacs_ev->modifiers = w32_kbd_mods_to_emacs (event->dwControlKeyState, 0) |
     ((event->dwButtonState & mask) ? down_modifier : up_modifier);
-  
+
   XSETFASTINT (emacs_ev->x, event->dwMousePosition.X);
   XSETFASTINT (emacs_ev->y, event->dwMousePosition.Y);
 /* for Mule 2.2 (Based on Emacs 19.28 */
@@ -612,15 +612,15 @@
 #else
   XSETFRAME (emacs_ev->frame_or_window, get_frame ());
 #endif
-  
+
   return 1;
 }
 
-static void 
+static void
 resize_event (WINDOW_BUFFER_SIZE_RECORD *event)
 {
   FRAME_PTR f = get_frame ();
-  
+
   change_frame_size (f, event->dwSize.Y, event->dwSize.X, 0, 1);
   SET_FRAME_GARBAGED (f);
 }
@@ -641,7 +641,7 @@
 		     0, 0);
 }
 
-int 
+int
 w32_console_read_socket (int sd, struct input_event *bufp, int numchars,
 			 int expected)
 {
@@ -654,10 +654,10 @@
       interrupt_input_pending = 1;
       return -1;
     }
-  
+
   interrupt_input_pending = 0;
   BLOCK_INPUT;
-  
+
   for (;;)
     {
       nev = fill_queue (0);
@@ -677,7 +677,7 @@
             case KEY_EVENT:
 	      add = key_event (&queue_ptr->Event.KeyEvent, bufp, &isdead);
 	      if (add == -1) /* 95.7.25 by himi */
-		{ 
+		{
 		  queue_ptr--;
 		  add = 1;
 		}
@@ -697,13 +697,13 @@
 	      if (w32_use_full_screen_buffer)
 		resize_event (&queue_ptr->Event.WindowBufferSizeEvent);
 	      break;
-            
+
             case MENU_EVENT:
             case FOCUS_EVENT:
 	      /* Internal event types, ignored. */
 	      break;
             }
-            
+
 	  queue_ptr++;
 	  nev--;
         }
--- a/src/w32inevt.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/w32inevt.h	Tue Feb 04 14:56:31 2003 +0000
@@ -21,12 +21,12 @@
 #ifndef EMACS_W32INEVT_H
 #define EMACS_W32INEVT_H
 
-extern int w32_console_read_socket (int sd, struct input_event *bufp, 
+extern int w32_console_read_socket (int sd, struct input_event *bufp,
 				    int numchars, int expected);
-extern void w32_console_mouse_position (FRAME_PTR *f, int insist, 
-					Lisp_Object *bar_window, 
-					enum scroll_bar_part *part, 
-					Lisp_Object *x, Lisp_Object *y, 
+extern void w32_console_mouse_position (FRAME_PTR *f, int insist,
+					Lisp_Object *bar_window,
+					enum scroll_bar_part *part,
+					Lisp_Object *x, Lisp_Object *y,
 					unsigned long *time);
 
 #endif /* EMACS_W32INEVT_H */
--- a/src/w32menu.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/w32menu.c	Tue Feb 04 14:56:31 2003 +0000
@@ -69,7 +69,7 @@
   char*		name;
   /* value (meaning depend on widget type) */
   char*		value;
-  /* keyboard equivalent. no implications for XtTranslations */ 
+  /* keyboard equivalent. no implications for XtTranslations */
   char*		key;
   /* Help string or nil if none.
      GC finds this string through the frame's menu_bar_vector
@@ -500,7 +500,7 @@
 
 /* This is a subroutine of single_keymap_panes that handles one
    keymap entry.
-   KEY is a key in a keymap and ITEM is its binding. 
+   KEY is a key in a keymap and ITEM is its binding.
    PENDING_MAPS_PTR points to a list of keymaps waiting to be made into
    separate panes.
    If NOTREAL is nonzero, only check for equivalent key bindings, don't
@@ -516,7 +516,7 @@
   Lisp_Object map, item_string, enabled;
   struct gcpro gcpro1, gcpro2;
   int res;
-  
+
   /* Parse the menu item and leave the result in item_properties.  */
   GCPRO2 (key, item);
   res = parse_menu_item (item, notreal, 0);
@@ -525,7 +525,7 @@
     return;			/* Not a menu item.  */
 
   map = AREF (item_properties, ITEM_PROPERTY_MAP);
-  
+
   if (notreal)
     {
       /* We don't want to make a menu, just traverse the keymaps to
@@ -536,7 +536,7 @@
     }
 
   enabled = AREF (item_properties, ITEM_PROPERTY_ENABLE);
-  item_string = AREF (item_properties, ITEM_PROPERTY_NAME); 
+  item_string = AREF (item_properties, ITEM_PROPERTY_NAME);
 
   if (!NILP (map) && SREF (item_string, 0) == '@')
     {
@@ -811,7 +811,7 @@
 
       keymaps = 0;
     }
-  
+
   if (NILP (position))
     {
       discard_menu_items ();
@@ -828,8 +828,8 @@
       discard_menu_items ();
       UNGCPRO;
       return Qnil;
-    }    
-  
+    }
+
   /* Display them in a menu.  */
   BLOCK_INPUT;
 
@@ -974,7 +974,7 @@
    But first we recompute the menu bar contents (the whole tree).
 
    This way we can safely execute Lisp code.  */
-   
+
 void
 x_activate_menubar (f)
      FRAME_PTR f;
@@ -1105,7 +1105,7 @@
      widget_value *wv;
 {
   if (! wv) return;
-  
+
   wv->name = wv->value = wv->key = (char *) 0xDEADBEEF;
 
   if (wv->contents && (wv->contents != (widget_value*)1))
@@ -1171,7 +1171,7 @@
 			       item_key, 0, 10);
 	}
     }
-  
+
   return top_level_items;
 }
 
@@ -1200,7 +1200,7 @@
   first_wv = wv;
   save_wv = 0;
   prev_wv = 0;
- 
+
   /* Loop over all panes and items made by the preceding call
      to parse_single_submenu and construct a tree of widget_value objects.
      Ignore the panes and items used by previous calls to
@@ -1304,7 +1304,7 @@
 #endif /* not HAVE_MULTILINGUAL_MENU */
 
 	  wv = xmalloc_widget_value ();
-	  if (prev_wv) 
+	  if (prev_wv)
 	    prev_wv->next = wv;
 	  else
 	    save_wv->contents = wv;
@@ -1477,7 +1477,7 @@
 	  menu_items_n_panes = submenu_n_panes[i];
 	  wv = digest_single_submenu (submenu_start[i], submenu_end[i],
 				      submenu_top_level_items[i]);
-	  if (prev_wv) 
+	  if (prev_wv)
 	    prev_wv->next = wv;
 	  else
 	    first_wv->contents = wv;
@@ -1559,7 +1559,7 @@
 	     This value just has to be different from small integers.  */
 	  wv->call_data = (void *) (EMACS_INT) (-1);
 
-	  if (prev_wv) 
+	  if (prev_wv)
 	    prev_wv->next = wv;
 	  else
 	    first_wv->contents = wv;
@@ -1595,7 +1595,7 @@
 
     f->output_data.w32->menubar_widget = menubar_widget;
     SetMenu (FRAME_W32_WINDOW (f), f->output_data.w32->menubar_widget);
-    /* Causes flicker when menu bar is updated 
+    /* Causes flicker when menu bar is updated
     DrawMenuBar (FRAME_W32_WINDOW (f)); */
 
     /* Force the window size to be recomputed so that the frame's text
@@ -1697,7 +1697,7 @@
   wv->help = Qnil;
   first_wv = wv;
   first_pane = 1;
- 
+
   /* Loop over all panes and items, filling in the tree.  */
   i = 0;
   while (i < menu_items_used)
@@ -1800,9 +1800,9 @@
 #endif /* not HAVE_MULTILINGUAL_MENU */
 
 	  wv = xmalloc_widget_value ();
-	  if (prev_wv) 
+	  if (prev_wv)
 	    prev_wv->next = wv;
-	  else 
+	  else
 	    save_wv->contents = wv;
 	  wv->name = (char *) SDATA (item_name);
 	  if (!NILP (descrip))
@@ -1872,7 +1872,7 @@
   menu_item_selection = 0;
 
   /* Display the menu.  */
-  menu_item_selection = SendMessage (FRAME_W32_WINDOW (f), 
+  menu_item_selection = SendMessage (FRAME_W32_WINDOW (f),
 				     WM_EMACS_TRACKPOPUPMENU,
 				     (WPARAM)menu, (LPARAM)&pos);
 
@@ -1981,7 +1981,7 @@
     pane_name = AREF (menu_items, MENU_ITEMS_PANE_NAME);
     prefix = AREF (menu_items, MENU_ITEMS_PANE_PREFIX);
     pane_string = (NILP (pane_name)
-		   ? "" : (char *) SDATA (pane_name));  
+		   ? "" : (char *) SDATA (pane_name));
     prev_wv = xmalloc_widget_value ();
     prev_wv->value = pane_string;
     if (keymaps && !NILP (prefix))
@@ -1990,12 +1990,12 @@
     prev_wv->name = "message";
     prev_wv->help = Qnil;
     first_wv = prev_wv;
- 
+
     /* Loop over all panes and items, filling in the tree.  */
     i = MENU_ITEMS_PANE_LENGTH;
     while (i < menu_items_used)
       {
-	
+
 	/* Create a new item within current pane.  */
 	Lisp_Object item_name, enable, descrip, help;
 
@@ -2003,7 +2003,7 @@
 	enable = AREF (menu_items, i + MENU_ITEMS_ITEM_ENABLE);
 	descrip = AREF (menu_items, i + MENU_ITEMS_ITEM_EQUIV_KEY);
         help = AREF (menu_items, i + MENU_ITEMS_ITEM_HELP);
-	
+
 	if (NILP (item_name))
 	  {
 	    free_menubar_widget_value_tree (first_wv);
@@ -2087,7 +2087,7 @@
   /* Process events that apply to the menu.  */
   popup_get_selection ((XEvent *) 0, FRAME_X_DISPLAY_INFO (f), dialog_id);
 
-  lw_destroy_all_widgets (dialog_id); 
+  lw_destroy_all_widgets (dialog_id);
 
   /* Find the selected item, and its pane, to return
      the proper value.  */
@@ -2164,7 +2164,7 @@
       fuFlags = MF_SEPARATOR;
       out_string = NULL;
     }
-  else 
+  else
     {
       if (wv->enabled)
 	fuFlags = MF_STRING;
--- a/src/w32proc.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/w32proc.c	Tue Feb 04 14:56:31 2003 +0000
@@ -120,11 +120,11 @@
 static signal_handler sig_handlers[NSIG];
 
 /* Fake signal implementation to record the SIGCHLD handler.  */
-signal_handler 
+signal_handler
 sys_signal (int sig, signal_handler handler)
 {
   signal_handler old;
-  
+
   if (sig != SIGCHLD)
     {
       errno = EINVAL;
@@ -151,7 +151,7 @@
 {
   child_process *cp;
   DWORD id;
-  
+
   for (cp = child_procs+(child_proc_count-1); cp >= child_procs; cp--)
     if (!CHILD_ACTIVE (cp))
       goto Initialise;
@@ -182,7 +182,7 @@
   return NULL;
 }
 
-void 
+void
 delete_child (child_process *cp)
 {
   int i;
@@ -257,14 +257,14 @@
    is normally blocked until woken by select() to check for input by
    reading one char.  When the read completes, char_avail is signalled
    to wake up the select emulator and the thread blocks itself again. */
-DWORD WINAPI 
+DWORD WINAPI
 reader_thread (void *arg)
 {
   child_process *cp;
-  
+
   /* Our identity */
   cp = (child_process *)arg;
-  
+
   /* We have to wait for the go-ahead before we can start */
   if (cp == NULL
       || WaitForSingleObject (cp->char_consumed, INFINITE) != WAIT_OBJECT_0)
@@ -287,11 +287,11 @@
 
       if (rc == STATUS_READ_ERROR)
 	return 1;
-        
+
       /* If the read died, the child has died so let the thread die */
       if (rc == STATUS_READ_FAILED)
 	break;
-        
+
       /* Wait until our input is acknowledged before reading again */
       if (WaitForSingleObject (cp->char_consumed, INFINITE) != WAIT_OBJECT_0)
         {
@@ -308,7 +308,7 @@
    sys_spawnve, and is not generally valid at any other time.  */
 static char * process_dir;
 
-static BOOL 
+static BOOL
 create_child (char *exe, char *cmdline, char *env, int is_gui_app,
 	      int * pPid, child_process *cp)
 {
@@ -319,12 +319,12 @@
 #endif
   DWORD flags;
   char dir[ MAXPATHLEN ];
-  
+
   if (cp == NULL) abort ();
-  
+
   memset (&start, 0, sizeof (start));
   start.cb = sizeof (start);
-  
+
 #ifdef HAVE_NTGUI
   if (NILP (Vw32_start_process_show_window) && !is_gui_app)
     start.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
@@ -347,7 +347,7 @@
   sec_attrs.nLength = sizeof (sec_attrs);
   sec_attrs.lpSecurityDescriptor = NULL /* &sec_desc */;
   sec_attrs.bInheritHandle = FALSE;
-  
+
   strcpy (dir, process_dir);
   unixtodos_filename (dir);
 
@@ -383,22 +383,22 @@
    to register the handle with the process
    This way the select emulator knows how to match file handles with
    entries in child_procs.  */
-void 
+void
 register_child (int pid, int fd)
 {
   child_process *cp;
-  
+
   cp = find_child_pid (pid);
   if (cp == NULL)
     {
       DebPrint (("register_child unable to find pid %lu\n", pid));
       return;
     }
-  
+
 #ifdef FULL_DEBUG
   DebPrint (("register_child registered fd %d with pid %lu\n", fd, pid));
 #endif
-  
+
   cp->fd = fd;
 
   /* thread is initially blocked until select is called; set status so
@@ -419,7 +419,7 @@
    signal failure to the select emulator.
    The select emulator then calls this routine to clean up.
    Since the thread signaled failure we can assume it is exiting.  */
-static void 
+static void
 reap_subprocess (child_process *cp)
 {
   if (cp->procinfo.hProcess)
@@ -448,7 +448,7 @@
    When it does, close its handle
    Return the pid and fill in the status if non-NULL.  */
 
-int 
+int
 sys_wait (int *status)
 {
   DWORD active, retval;
@@ -456,7 +456,7 @@
   int pid;
   child_process *cp, *cps[MAX_CHILDREN];
   HANDLE wait_hnd[MAX_CHILDREN];
-  
+
   nh = 0;
   if (dead_child != NULL)
     {
@@ -479,7 +479,7 @@
 	    nh++;
 	  }
     }
-  
+
   if (nh == 0)
     {
       /* Nothing to wait on, so fail */
@@ -535,7 +535,7 @@
     retval = SIGINT;
   else
     retval <<= 8;
-  
+
   cp = cps[active];
   pid = cp->pid;
 #ifdef FULL_DEBUG
@@ -571,7 +571,7 @@
     }
 
   reap_subprocess (cp);
-  
+
   return pid;
 }
 
@@ -580,7 +580,7 @@
 {
   file_data executable;
   char * p;
-  
+
   /* Default values in case we can't tell for sure.  */
   *is_dos_app = FALSE;
   *is_cygnus_app = FALSE;
@@ -590,7 +590,7 @@
     return;
 
   p = strrchr (filename, '.');
-  
+
   /* We can only identify DOS .com programs from the extension. */
   if (p && stricmp (p, ".com") == 0)
     *is_dos_app = TRUE;
@@ -623,11 +623,11 @@
 
       nt_header = (PIMAGE_NT_HEADERS) ((char *) dos_header + dos_header->e_lfanew);
 
-      if ((char *) nt_header > (char *) dos_header + executable.size) 
+      if ((char *) nt_header > (char *) dos_header + executable.size)
 	{
 	  /* Some dos headers (pkunzip) have bogus e_lfanew fields.  */
 	  *is_dos_app = TRUE;
-	} 
+	}
       else if (nt_header->Signature != IMAGE_NT_SIGNATURE
 	       && LOWORD (nt_header->Signature) != IMAGE_OS2_SIGNATURE)
   	{
@@ -664,7 +664,7 @@
 	  *is_gui_app = (nt_header->OptionalHeader.Subsystem == IMAGE_SUBSYSTEM_WINDOWS_GUI);
   	}
     }
-  
+
 unwind:
   close_file_data (&executable);
 }
@@ -717,7 +717,7 @@
 
 /* When a new child process is created we need to register it in our list,
    so intercept spawn requests.  */
-int 
+int
 sys_spawnve (int mode, char *cmdname, char **argv, char **envp)
 {
   Lisp_Object program, full;
@@ -746,7 +746,7 @@
   if (NILP (Ffile_executable_p (program)))
     {
       struct gcpro gcpro1;
-      
+
       full = Qnil;
       GCPRO1 (program);
       openp (Vexec_path, program, Vexec_suffixes, &full, make_number (X_OK));
@@ -789,7 +789,7 @@
 	}
       unixtodos_filename (cmdname);
     }
-  
+
   /* we have to do some conjuring here to put argv and envp into the
      form CreateProcess wants...  argv needs to be a space separated/null
      terminated list of parameters, and envp is a null
@@ -830,8 +830,8 @@
       else
 	escape_char = is_cygnus_app ? '"' : '\\';
     }
-  
-  /* Cygwin apps needs quoting a bit more often */ 
+
+  /* Cygwin apps needs quoting a bit more often */
   if (escape_char == '"')
     sepchars = "\r\n\t\f '";
 
@@ -966,7 +966,7 @@
       targ++;
     }
   *--parg = '\0';
-  
+
   /* and envp...  */
   arglen = 1;
   targ = envp;
@@ -977,7 +977,7 @@
       numenv++;
     }
   /* extra env vars... */
-  sprintf (ppid_env_var_buffer, "EM_PARENT_PROCESS_ID=%d", 
+  sprintf (ppid_env_var_buffer, "EM_PARENT_PROCESS_ID=%d",
 	   GetCurrentProcessId ());
   arglen += strlen (ppid_env_var_buffer) + 1;
   numenv++;
@@ -1004,7 +1004,7 @@
       errno = EAGAIN;
       return -1;
     }
-  
+
   /* Now create the process.  */
   if (!create_child (cmdname, cmdline, env, is_gui_app, &pid, cp))
     {
@@ -1012,7 +1012,7 @@
       errno = ENOEXEC;
       return -1;
     }
-  
+
   return pid;
 }
 
@@ -1043,7 +1043,7 @@
 /* From process.c */
 extern int proc_buffered_char[];
 
-int 
+int
 sys_select (int nfds, SELECT_TYPE *rfds, SELECT_TYPE *wfds, SELECT_TYPE *efds,
 	    EMACS_TIME *timeout)
 {
@@ -1054,11 +1054,11 @@
   child_process *cp, *cps[MAX_CHILDREN];
   HANDLE wait_hnd[MAXDESC + MAX_CHILDREN];
   int fdindex[MAXDESC];   /* mapping from wait handles back to descriptors */
-  
+
   timeout_ms = timeout ? (timeout->tv_sec * 1000 + timeout->tv_usec / 1000) : INFINITE;
 
   /* If the descriptor sets are NULL but timeout isn't, then just Sleep.  */
-  if (rfds == NULL && wfds == NULL && efds == NULL && timeout != NULL) 
+  if (rfds == NULL && wfds == NULL && efds == NULL && timeout != NULL)
     {
       Sleep (timeout_ms);
       return 0;
@@ -1070,7 +1070,7 @@
       errno = EINVAL;
       return -1;
     }
-  
+
   orfds = *rfds;
   FD_ZERO (rfds);
   nr = 0;
@@ -1078,7 +1078,7 @@
   /* Always wait on interrupt_handle, to detect C-g (quit).  */
   wait_hnd[0] = interrupt_handle;
   fdindex[0] = -1;
-  
+
   /* Build a list of pipe handles to wait on.  */
   nh = 1;
   for (i = 0; i < nfds; i++)
@@ -1195,15 +1195,15 @@
 	cps[nc] = cp;
 	nc++;
       }
-  
+
   /* Nothing to look for, so we didn't find anything */
-  if (nh + nc == 0) 
+  if (nh + nc == 0)
     {
       if (timeout)
 	Sleep (timeout_ms);
       return 0;
     }
-  
+
   start_time = GetTickCount ();
 
   /* Wait for input or child death to be signalled.  If user input is
@@ -1362,14 +1362,14 @@
   return TRUE;
 }
 
-int 
+int
 sys_kill (int pid, int sig)
 {
   child_process *cp;
   HANDLE proc_hand;
   int need_to_free = 0;
   int rc = 0;
-  
+
   /* Only handle signals that will result in the process dying */
   if (sig != SIGINT && sig != SIGKILL && sig != SIGQUIT && sig != SIGHUP)
     {
@@ -1396,7 +1396,7 @@
       /* Try to locate console window for process. */
       EnumWindows (find_child_console, (LPARAM) cp);
     }
-  
+
   if (sig == SIGINT || sig == SIGQUIT)
     {
       if (NILP (Vw32_start_process_share_console) && cp && cp->hwnd)
@@ -1572,15 +1572,15 @@
   handles[2] = GetStdHandle (STD_ERROR_HANDLE);
 
   /* make inheritable copies of the new handles */
-  if (!DuplicateHandle (parent, 
+  if (!DuplicateHandle (parent,
 		       (HANDLE) _get_osfhandle (in),
 		       parent,
-		       &newstdin, 
-		       0, 
-		       TRUE, 
+		       &newstdin,
+		       0,
+		       TRUE,
 		       DUPLICATE_SAME_ACCESS))
     report_file_error ("Duplicating input handle for child", Qnil);
-  
+
   if (!DuplicateHandle (parent,
 		       (HANDLE) _get_osfhandle (out),
 		       parent,
@@ -1589,7 +1589,7 @@
 		       TRUE,
 		       DUPLICATE_SAME_ACCESS))
     report_file_error ("Duplicating output handle for child", Qnil);
-  
+
   if (!DuplicateHandle (parent,
 		       (HANDLE) _get_osfhandle (err),
 		       parent,
@@ -1602,7 +1602,7 @@
   /* and store them as our std handles */
   if (!SetStdHandle (STD_INPUT_HANDLE, newstdin))
     report_file_error ("Changing stdin handle", Qnil);
-  
+
   if (!SetStdHandle (STD_OUTPUT_HANDLE, newstdout))
     report_file_error ("Changing stdout handle", Qnil);
 
@@ -1933,7 +1933,7 @@
   return make_number (GetUserDefaultLCID ());
 }
 
-  
+
 DEFUN ("w32-set-current-locale", Fw32_set_current_locale, Sw32_set_current_locale, 1, 1, 0,
        doc: /* Make Windows locale LCID be the current locale setting for Emacs.
 If successful, the new locale id is returned, otherwise nil.  */)
@@ -1990,7 +1990,7 @@
   return make_number (GetConsoleCP ());
 }
 
-  
+
 DEFUN ("w32-set-console-codepage", Fw32_set_console_codepage,
        Sw32_set_console_codepage, 1, 1, 0,
        doc: /* Make Windows codepage CP be the current codepage setting for Emacs.
@@ -2019,7 +2019,7 @@
   return make_number (GetConsoleOutputCP ());
 }
 
-  
+
 DEFUN ("w32-set-console-output-codepage", Fw32_set_console_output_codepage,
        Sw32_set_console_output_codepage, 1, 1, 0,
        doc: /* Make Windows codepage CP be the current codepage setting for Emacs.
@@ -2099,7 +2099,7 @@
 		make_number ((kl >> 16) & 0xffff));
 }
 
-  
+
 DEFUN ("w32-set-keyboard-layout", Fw32_set_keyboard_layout,
        Sw32_set_keyboard_layout, 1, 1, 0,
        doc: /* Make LAYOUT be the current keyboard layout for Emacs.
@@ -2218,7 +2218,7 @@
 This applies when performing completions and file name expansion.
 Note that the value of this setting also affects remote file names,
 so you probably don't want to set to non-nil if you use case-sensitive
-filesystems via ange-ftp.  */); 
+filesystems via ange-ftp.  */);
   Vw32_downcase_file_names = Qnil;
 
 #if 0
--- a/src/w32reg.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/w32reg.c	Tue Feb 04 14:56:31 2003 +0000
@@ -30,7 +30,7 @@
 
 #define REG_ROOT "SOFTWARE\\GNU\\Emacs"
 
-LPBYTE 
+LPBYTE
 w32_get_string_resource (name, class, dwexptype)
      char *name, *class;
      DWORD dwexptype;
@@ -41,23 +41,23 @@
   DWORD cbData;
   BOOL ok = FALSE;
   HKEY hive = HKEY_CURRENT_USER;
-  
+
  trykey:
 
   BLOCK_INPUT;
-  
+
   /* Check both the current user and the local machine to see if we have
      any resources */
 
   if (RegOpenKeyEx (hive, REG_ROOT, 0, KEY_READ, &hrootkey) == ERROR_SUCCESS)
     {
       char *keyname;
-      
+
       if (RegQueryValueEx (hrootkey, name, NULL, &dwType, NULL, &cbData) == ERROR_SUCCESS
 	  && dwType == dwexptype)
 	{
 	  keyname = name;
-	} 
+	}
       else if (RegQueryValueEx (hrootkey, class, NULL, &dwType, NULL, &cbData) == ERROR_SUCCESS
 	       && dwType == dwexptype)
 	{
@@ -67,17 +67,17 @@
 	{
 	  keyname = NULL;
 	}
-      
+
       ok = (keyname
 	    && (lpvalue = (LPBYTE) xmalloc (cbData)) != NULL
 	    && RegQueryValueEx (hrootkey, keyname, NULL, NULL, lpvalue, &cbData) == ERROR_SUCCESS);
-      
+
       RegCloseKey (hrootkey);
     }
-  
+
   UNBLOCK_INPUT;
-  
-  if (!ok) 
+
+  if (!ok)
     {
       if (lpvalue)
 	{
@@ -90,7 +90,7 @@
 	  goto trykey;
 	}
       return (NULL);
-    } 
+    }
   return (lpvalue);
 }
 
--- a/src/w32term.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/w32term.h	Tue Feb 04 14:56:31 2003 +0000
@@ -66,7 +66,7 @@
 /* Structure recording bitmaps and reference count.
    If REFCOUNT is 0 then this record is free to be reused.  */
 
-struct w32_bitmap_record 
+struct w32_bitmap_record
 {
   Pixmap pixmap;
   char *file;
@@ -337,7 +337,7 @@
   /* Foreground color for scroll bars.  A value of -1 means use the
      default (black for non-toolkit scroll bars).  */
   COLORREF scroll_bar_foreground_pixel;
-  
+
   /* Background color for scroll bars.  A value of -1 means use the
      default (background color of the frame for non-toolkit scroll
      bars).  */
@@ -355,7 +355,7 @@
   /* Window whose cursor is hourglass_cursor.  This window is
      temporarily mapped to display an hourglass cursor.  */
   Window hourglass_window;
-  
+
   /* Non-zero means hourglass cursor is currently displayed.  */
   unsigned hourglass_p : 1;
 
@@ -595,7 +595,7 @@
 
 /* Return the length of the rectangle within which the top of the
    handle must stay.  This isn't equivalent to the inside height,
-   because the scroll bar handle has a minimum height.  
+   because the scroll bar handle has a minimum height.
 
    This is the real range of motion for the scroll bar, so when we're
    scaling buffer positions to scroll bar positions, we use this, not
@@ -658,7 +658,7 @@
    + (f)->output_data.w32->internal_border_width)
 
 
-/* Return the row/column (zero-based) of the character cell containing 
+/* Return the row/column (zero-based) of the character cell containing
    the pixel on FRAME at ROW/COL.  */
 #define PIXEL_TO_CHAR_ROW(f, row) \
   (((row) - (f)->output_data.w32->internal_border_width) \
@@ -739,11 +739,11 @@
 #define WM_EMACS_SETCURSOR             (WM_EMACS_START + 19)
 #define WM_EMACS_END                   (WM_EMACS_START + 20)
 
-#define WND_FONTWIDTH_INDEX    (0) 
-#define WND_LINEHEIGHT_INDEX   (4) 
-#define WND_BORDER_INDEX       (8) 
-#define WND_SCROLLBAR_INDEX    (12) 
-#define WND_BACKGROUND_INDEX   (16) 
+#define WND_FONTWIDTH_INDEX    (0)
+#define WND_LINEHEIGHT_INDEX   (4)
+#define WND_BORDER_INDEX       (8)
+#define WND_SCROLLBAR_INDEX    (12)
+#define WND_BACKGROUND_INDEX   (16)
 #define WND_LAST_INDEX         (20)
 
 #define WND_EXTRA_BYTES     (WND_LAST_INDEX)
@@ -831,7 +831,7 @@
 #define WM_MOUSELEAVE 0x02A3
 #define TME_LEAVE 0x00000002;
 
-typedef struct tagTRACKMOUSEEVENT 
+typedef struct tagTRACKMOUSEEVENT
 {
   DWORD cbSize;
   DWORD dwFlags;
--- a/src/w32xfns.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/w32xfns.c	Tue Feb 04 14:56:31 2003 +0000
@@ -38,7 +38,7 @@
 HANDLE input_available = NULL;
 HANDLE interrupt_handle = NULL;
 
-void 
+void
 init_crit ()
 {
   InitializeCriticalSection (&critsect);
@@ -56,7 +56,7 @@
   interrupt_handle = CreateEvent (NULL, TRUE, FALSE, NULL);
 }
 
-void 
+void
 delete_crit ()
 {
   DeleteCriticalSection (&critsect);
@@ -160,33 +160,33 @@
 int_msg *lpTail = NULL;
 int nQueue = 0;
 
-BOOL 
+BOOL
 get_next_msg (lpmsg, bWait)
      W32Msg * lpmsg;
      BOOL bWait;
 {
   BOOL bRet = FALSE;
-  
+
   enter_crit ();
-  
+
   /* The while loop takes care of multiple sets */
-  
+
   while (!nQueue && bWait)
     {
       leave_crit ();
       WaitForSingleObject (input_available, INFINITE);
       enter_crit ();
     }
-  
+
   if (nQueue)
     {
       bcopy (&(lpHead->w32msg), lpmsg, sizeof (W32Msg));
 
       {
 	int_msg * lpCur = lpHead;
-	    
+
 	lpHead = lpHead->lpNext;
-	    
+
 	myfree (lpCur);
       }
 
@@ -197,13 +197,13 @@
 
   if (nQueue == 0)
     ResetEvent (input_available);
-  
+
   leave_crit ();
-  
+
   return (bRet);
 }
 
-BOOL 
+BOOL
 post_msg (lpmsg)
      W32Msg * lpmsg;
 {
@@ -221,14 +221,14 @@
     {
       lpTail->lpNext = lpNew;
     }
-  else 
+  else
     {
       lpHead = lpNew;
     }
 
   lpTail = lpNew;
   SetEvent (input_available);
-    
+
   leave_crit ();
 
   return (TRUE);
@@ -277,7 +277,7 @@
  *   It returns a bitmask that indicates which of the four values
  *   were actually found in the string.  For each value found,
  *   the corresponding argument is updated;  for each value
- *   not found, the corresponding argument is left unchanged. 
+ *   not found, the corresponding argument is left unchanged.
  */
 
 static int
@@ -287,7 +287,7 @@
 {
   register int Result = 0;
   int Sign = 1;
-  
+
   if (*string == '+')
     string++;
   else if (*string == '-')
@@ -306,7 +306,7 @@
     return (-Result);
 }
 
-int 
+int
 XParseGeometry (string, x, y, width, height)
      char *string;
      int *x, *y;
@@ -317,23 +317,23 @@
   unsigned int tempWidth, tempHeight;
   int tempX, tempY;
   char *nextCharacter;
-  
+
   if ((string == NULL) || (*string == '\0')) return (mask);
   if (*string == '=')
     string++;  /* ignore possible '=' at beg of geometry spec */
-  
+
   strind = (char *)string;
-  if (*strind != '+' && *strind != '-' && *strind != 'x') 
+  if (*strind != '+' && *strind != '-' && *strind != 'x')
     {
       tempWidth = read_integer (strind, &nextCharacter);
-      if (strind == nextCharacter) 
+      if (strind == nextCharacter)
 	return (0);
       strind = nextCharacter;
       mask |= WidthValue;
     }
-  
-  if (*strind == 'x' || *strind == 'X') 
-    {	
+
+  if (*strind == 'x' || *strind == 'X')
+    {
       strind++;
       tempHeight = read_integer (strind, &nextCharacter);
       if (strind == nextCharacter)
@@ -341,10 +341,10 @@
       strind = nextCharacter;
       mask |= HeightValue;
     }
-  
-  if ((*strind == '+') || (*strind == '-')) 
+
+  if ((*strind == '+') || (*strind == '-'))
     {
-      if (*strind == '-') 
+      if (*strind == '-')
 	{
 	  strind++;
 	  tempX = -read_integer (strind, &nextCharacter);
@@ -355,7 +355,7 @@
 
 	}
       else
-	{	
+	{
 	  strind++;
 	  tempX = read_integer (strind, &nextCharacter);
 	  if (strind == nextCharacter)
@@ -363,9 +363,9 @@
 	  strind = nextCharacter;
 	}
       mask |= XValue;
-      if ((*strind == '+') || (*strind == '-')) 
+      if ((*strind == '+') || (*strind == '-'))
 	{
-	  if (*strind == '-') 
+	  if (*strind == '-')
 	    {
 	      strind++;
 	      tempY = -read_integer (strind, &nextCharacter);
@@ -386,12 +386,12 @@
 	  mask |= YValue;
 	}
     }
-  
+
   /* If strind isn't at the end of the string the it's an invalid
      geometry specification. */
-  
+
   if (*strind != '\0') return (0);
-  
+
   if (mask & XValue)
     *x = tempX;
   if (mask & YValue)
--- a/src/widget.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/widget.c	Tue Feb 04 14:56:31 2003 +0000
@@ -296,7 +296,7 @@
      (the menubar and the parent of the menubar and all that sort of thing
      are managed by lwlib.)
 
-     The EmacsShell widget is simply a replacement for the Shell widget 
+     The EmacsShell widget is simply a replacement for the Shell widget
      which is able to deal with using an externally-supplied window instead
      of always creating its own.  It is not actually emacs specific, and
      should possibly have class "Shell" instead of "EmacsShell" to simplify
@@ -307,13 +307,13 @@
   /* Hairily merged geometry */
   unsigned int w = ew->emacs_frame.frame->width;
   unsigned int h = ew->emacs_frame.frame->height;
-  
+
   Widget wmshell = get_wm_shell ((Widget) ew);
   /* Each Emacs shell is now independent and top-level.  */
-  
+
   if (! XtIsSubclass (wmshell, shellWidgetClass)) abort ();
 
-  /* We don't need this for the moment. The geometry is computed in 
+  /* We don't need this for the moment. The geometry is computed in
      xfns.c.  */
 #if 0
   /* If the EmacsFrame doesn't have a geometry but the shell does,
@@ -326,20 +326,20 @@
      this bogus? I'm not sure.) */
   if (!ew->emacs_frame.iconic)
     XtVaGetValues (wmshell, XtNiconic, &ew->emacs_frame.iconic, NULL);
-  
-  
+
+
   {
     char *geom = 0;
     XtVaGetValues (app_shell, XtNgeometry, &geom, NULL);
     if (geom)
       app_flags = XParseGeometry (geom, &app_x, &app_y, &app_w, &app_h);
   }
-  
+
   if (ew->emacs_frame.geometry)
     frame_flags = XParseGeometry (ew->emacs_frame.geometry,
 				   &frame_x, &frame_y,
 				   &frame_w, &frame_h);
-  
+
   if (first_frame_p)
     {
       /* If this is the first frame created:
@@ -516,7 +516,7 @@
 		      &char_width, &char_height);
   char_to_pixel_size (ew, char_width, char_height,
 		      &rounded_width, &rounded_height);
-  get_default_char_pixel_size (ew, &cw, &ch); 
+  get_default_char_pixel_size (ew, &cw, &ch);
 
   base_width = (wmshell->core.width - ew->core.width
 		+ (rounded_width - (char_width * cw)));
@@ -531,7 +531,7 @@
   XtVaSetValues (wmshell,
 		 XtNbaseWidth, (XtArgVal) base_width,
 		 XtNbaseHeight, (XtArgVal) base_height,
-		 XtNwidthInc, (XtArgVal) cw, 
+		 XtNwidthInc, (XtArgVal) cw,
 		 XtNheightInc, (XtArgVal) ch,
 		 XtNminWidth, (XtArgVal) (base_width + min_cols * cw),
 		 XtNminHeight, (XtArgVal) (base_height + min_rows * ch),
@@ -667,7 +667,7 @@
   ew->core.border_pixel = x->border_pixel;
 }
 
-static void 
+static void
 EmacsFrameInitialize (request, new, dum1, dum2)
      Widget request;
      Widget new;
@@ -706,7 +706,7 @@
     face_res.default_addr = 0;
     XtGetSubresources ((Widget) ew, (XtPointer) &f, "default", "Face",
 		       &face_res, 1, NULL, 0);
-      
+
     if (f)
 	ew->emacs_frame.font = f;
     else if (! ew->emacs_frame.font)
@@ -721,7 +721,7 @@
 #endif
 
   update_from_various_frame_slots (ew);
-  set_frame_size (ew); 
+  set_frame_size (ew);
 /*create_frame_gcs (ew);
   setup_frame_gcs (ew);
   update_various_frame_slots (ew); */
@@ -745,7 +745,7 @@
   *mask |= CWEventMask;
   XtCreateWindow (widget, InputOutput, (Visual *)CopyFromParent, *mask,
 		  attrs);
-  update_wm_hints (ew); 
+  update_wm_hints (ew);
 }
 
 extern void free_frame_faces (/* struct frame * */);
@@ -781,7 +781,7 @@
 
   pixel_to_char_size (ew, ew->core.width, ew->core.height, &columns, &rows);
   change_frame_size (f, rows, columns, 0, 1, 0);
-  update_wm_hints (ew); 
+  update_wm_hints (ew);
   update_various_frame_slots (ew);
 
   cancel_mouse_face (f);
@@ -806,14 +806,14 @@
   int char_width, char_height;
   Dimension pixel_width;
   Dimension pixel_height;
-  
+
   has_to_recompute_gcs = (cur->emacs_frame.font != new->emacs_frame.font
 			  || (cur->emacs_frame.foreground_pixel
 			      != new->emacs_frame.foreground_pixel)
 			  || (cur->core.background_pixel
 			      != new->core.background_pixel)
 			  );
-  
+
   has_to_recompute_size = (cur->emacs_frame.font != new->emacs_frame.font
 			   && cur->core.width == new->core.width
 			   && cur->core.height == new->core.height);
@@ -825,7 +825,7 @@
       setup_frame_gcs (new);
       needs_a_refresh = True;
     }
-			  
+
   if (has_to_recompute_size)
     {
       pixel_width = new->core.width;
@@ -906,7 +906,7 @@
   EmacsFrame ew = (EmacsFrame) widget;
   Dimension pixel_width, pixel_height;
   struct frame *f = ew->emacs_frame.frame;
-  
+
   if (columns < 3) columns = 3;  /* no way buddy */
 
   check_frame_size (f, &rows, &columns);
@@ -968,7 +968,7 @@
 #ifdef SIGIO
       sigblock (sigmask (SIGIO));
 #endif
-      
+
       /* Do parents first, otherwise LessTif's geometry management
 	 enters an infinite loop (as of 2000-01-15).  This is fixed in
 	 later versions of LessTif (as of 2001-03-13); I'll leave it
@@ -991,7 +991,7 @@
       sigunblock (sigmask (SIGIO));
 #endif
       turn_on_atimers (1);
-      
+
       lw_refigure_widget (f->output_data.x->column_widget, True);
 
       update_hints_inhibit = 0;
--- a/src/widgetprv.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/widgetprv.h	Tue Feb 04 14:56:31 2003 +0000
@@ -38,7 +38,7 @@
   /* The rest of this is crap and should be deleted.
    */
   int		minibuffer;	/* 0: normal frames with minibuffers.
-				 * 1: frames without minibuffers 
+				 * 1: frames without minibuffers
 				 * 2: minibuffer only. */
   Boolean	unsplittable;	/* frame can only have one window */
 
--- a/src/window.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/window.c	Tue Feb 04 14:56:31 2003 +0000
@@ -451,11 +451,11 @@
 
   CHECK_NUMBER (ncol);
   hscroll = max (0, XINT (ncol));
-  
+
   /* Prevent redisplay shortcuts when changing the hscroll.  */
   if (XINT (w->hscroll) != hscroll)
     XBUFFER (w->buffer)->prevent_redisplay_optimizations_p = 1;
-  
+
   w->hscroll = make_number (hscroll);
   return ncol;
 }
@@ -543,7 +543,7 @@
 
   if (*x < x0 || *x >= x1)
     return ON_NOTHING;
-  
+
   /* In what's below, we subtract 1 when computing right_x because we
      want the rightmost pixel, which is given by left_pixel+width-1.  */
   if (w->pseudo_window_p)
@@ -578,7 +578,7 @@
 	 as the vertical border.    If scroll bars on the left,
 	 return the right window.  */
       part = ON_MODE_LINE;
-      
+
       if (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT (f))
 	{
 	  if (abs (*x - x0) < grabbable_width)
@@ -592,7 +592,7 @@
 	   && *y >= top_y)
     {
       part = ON_HEADER_LINE;
-      
+
       if (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT (f))
 	{
 	  if (abs (*x - x0) < grabbable_width)
@@ -626,7 +626,7 @@
 	{
 	  /* Other lines than the mode line don't include fringes and
 	     scroll bars on the left.  */
-      
+
 	  /* Convert X and Y to window-relative pixel coordinates.  */
 	  *x -= left_x;
 	  *y -= top_y;
@@ -659,7 +659,7 @@
 	{
 	  /* Other lines than the mode line don't include fringes and
 	     scroll bars on the left.  */
-      
+
 	  /* Convert X and Y to window-relative pixel coordinates.  */
 	  *x -= left_x;
 	  *y -= top_y;
@@ -744,7 +744,7 @@
     case ON_TEXT:
       /* X and Y are now window relative pixel coordinates.  Convert
 	 them to canonical char units before returning them.  */
-      return Fcons (CANON_X_FROM_PIXEL_X (f, x), 
+      return Fcons (CANON_X_FROM_PIXEL_X (f, x),
 		    CANON_Y_FROM_PIXEL_Y (f, y));
 
     case ON_MODE_LINE:
@@ -758,13 +758,13 @@
 
     case ON_LEFT_FRINGE:
       return Qleft_fringe;
-      
+
     case ON_RIGHT_FRINGE:
       return Qright_fringe;
 
     case ON_LEFT_MARGIN:
       return Qleft_margin;
-      
+
     case ON_RIGHT_MARGIN:
       return Qright_margin;
 
@@ -805,7 +805,7 @@
       XSETWINDOW (*cw->window, w);
       continue_p = 0;
     }
-  
+
   return continue_p;
 }
 
@@ -839,7 +839,7 @@
   window = Qnil;
   cw.window = &window, cw.x = &x, cw.y = &y; cw.part = part;
   foreach_window (f, check_window_containing, &cw);
-  
+
   /* If not found above, see if it's in the tool bar window, if a tool
      bar exists.  */
   if (NILP (window)
@@ -876,7 +876,7 @@
   CHECK_NUMBER_OR_FLOAT (x);
   CHECK_NUMBER_OR_FLOAT (y);
 
-  return window_from_coordinates (f, 
+  return window_from_coordinates (f,
 				  PIXEL_X_FROM_CANON_X (f, x),
 				  PIXEL_Y_FROM_CANON_Y (f, y),
 				  &part, 0);
@@ -976,13 +976,13 @@
 	  old_buffer = current_buffer;
 	  set_buffer_internal (b);
 	}
-      
+
       start_display (&it, w, startp);
       move_it_vertically (&it, window_box_height (w));
       if (it.current_y < it.last_visible_y)
 	move_it_past_eol (&it);
       value = make_number (IT_CHARPOS (it));
-      
+
       if (old_buffer)
 	set_buffer_internal (old_buffer);
     }
@@ -1010,7 +1010,7 @@
      the new value of point.  */
   if (!EQ (window, selected_window))
     ++windows_or_buffers_changed;
-  
+
   return pos;
 }
 
@@ -1093,7 +1093,7 @@
   else if (BUFFERP (w->buffer))
     {
       struct buffer *b = XBUFFER (w->buffer);
-      
+
       if (DISP_TABLE_P (b->display_table))
 	dp = XCHAR_TABLE (b->display_table);
       else if (DISP_TABLE_P (Vstandard_display_table))
@@ -1159,7 +1159,7 @@
 			 clip_to_bounds (BUF_BEGV_BYTE (b),
 					 marker_byte_position (w->pointm),
 					 BUF_ZV_BYTE (b)));
-  
+
   if (WINDOWP (b->last_selected_window)
       && w == XWINDOW (b->last_selected_window))
     b->last_selected_window = Qnil;
@@ -1441,7 +1441,7 @@
 	  Vwindow_list = Fnconc (2, args);
 	}
     }
-  
+
   return Vwindow_list;
 }
 
@@ -1518,14 +1518,14 @@
     *window = selected_window;
   else
     CHECK_LIVE_WINDOW (*window);
-  
+
   /* MINIBUF nil may or may not include minibuffers.  Decide if it
      does.  */
   if (NILP (*minibuf))
     *minibuf = minibuf_level ? minibuf_window : Qlambda;
   else if (!EQ (*minibuf, Qt))
     *minibuf = Qlambda;
-  
+
   /* Now *MINIBUF can be t => count all minibuffer windows, `lambda'
      => count none of them, or a specific minibuffer window (the
      active one) to count.  */
@@ -1543,7 +1543,7 @@
     ;
   else if (!EQ (*all_frames, Qt))
     *all_frames = Qnil;
-  
+
   /* Now *ALL_FRAMES is t meaning search all frames, nil meaning
      search just current frame, `visible' meaning search just visible
      frames, 0 meaning search visible and iconified frames, or a
@@ -1563,17 +1563,17 @@
      int next_p;
 {
   decode_next_window_args (&window, &minibuf, &all_frames);
-  
+
   /* If ALL_FRAMES is a frame, and WINDOW isn't on that frame, just
      return the first window on the frame.  */
   if (FRAMEP (all_frames)
       && !EQ (all_frames, XWINDOW (window)->frame))
     return Fframe_first_window (all_frames);
-  
+
   if (next_p)
     {
       Lisp_Object list;
-      
+
       /* Find WINDOW in the list of all windows.  */
       list = Fmemq (window, window_list ());
 
@@ -1597,7 +1597,7 @@
   else
     {
       Lisp_Object candidate, list;
-      
+
       /* Scan through the list of windows for candidates.  If there are
 	 candidate windows in front of WINDOW, the last one of these
 	 is the one we want.  If there are candidates following WINDOW
@@ -1703,7 +1703,7 @@
 
   CHECK_NUMBER (arg);
   window = selected_window;
-  
+
   for (i = XINT (arg); i > 0; --i)
     window = Fnext_window (window, Qnil, all_frames);
   for (; i < 0; ++i)
@@ -1748,11 +1748,11 @@
 
   decode_next_window_args (&window, &minibuf, &all_frames);
   list = Qnil;
-  
+
   for (tail = window_list (); CONSP (tail); tail = XCDR (tail))
     if (candidate_window_p (XCAR (tail), window, minibuf, all_frames))
       list = Fcons (XCAR (tail), list);
-  
+
   return Fnreverse (list);
 }
 
@@ -1787,7 +1787,7 @@
   Lisp_Object window, windows, best_window, frame_arg;
   struct frame *f;
   struct gcpro gcpro1;
-  
+
   /* If we're only looping through windows on a particular frame,
      frame points to that frame.  If we're looping through windows
      on all frames, frame is 0.  */
@@ -1797,7 +1797,7 @@
     f = SELECTED_FRAME ();
   else
     f = NULL;
-  
+
   if (f)
     frame_arg = Qlambda;
   else if (XFASTINT (frames) == 0)
@@ -1826,10 +1826,10 @@
   for (; CONSP (windows); windows = CDR (windows))
     {
       struct window *w;
-      
+
       window = XCAR (windows);
       w = XWINDOW (window);
-      
+
       /* Note that we do not pay attention here to whether the frame
 	 is visible, since Fwindow_list skips non-visible frames if
 	 that is desired, under the control of frame_arg.  */
@@ -1891,7 +1891,7 @@
 			   && EQ (XWINDOW (XCAR (windows))->frame,
 				  XWINDOW (XCAR (XCDR (windows)))->frame))
 		      windows = XCDR (windows);
-		    
+
 		    /* Now we can safely delete the frame.  */
 		    Fdelete_frame (w->frame, Qnil);
 		  }
@@ -1916,7 +1916,7 @@
 	      /* Ignore dedicated windows and minibuffers.  */
 	      if (MINI_WINDOW_P (w) || EQ (w->dedicated, Qt))
 		break;
-	      
+
 	      if (NILP (best_window))
 		best_window = window;
 	      else
@@ -1934,10 +1934,10 @@
 	      {
 		Lisp_Object buffer;
 		struct frame *f = XFRAME (w->frame);
-		
+
 		/* Find another buffer to show in this window.  */
 		buffer = Fother_buffer (obj, Qnil, w->frame);
-		
+
 		/* If this window is dedicated, and in a frame of its own,
 		   kill the frame.  */
 		if (EQ (window, FRAME_ROOT_WINDOW (f))
@@ -1950,7 +1950,7 @@
 			   && EQ (XWINDOW (XCAR (windows))->frame,
 				  XWINDOW (XCAR (XCDR (windows)))->frame))
 		      windows = XCDR (windows);
-		    
+
 		    /* Now we can safely delete the frame.  */
 		    Fdelete_frame (w->frame, Qnil);
 		  }
@@ -2136,7 +2136,7 @@
       CHECK_BUFFER (buffer);
       window_loop (DELETE_BUFFER_WINDOWS, buffer, 0, frame);
     }
-  
+
   return Qnil;
 }
 
@@ -2212,7 +2212,7 @@
     = ((FRAME_MINIBUF_ONLY_P (frame) || ! FRAME_HAS_MINIBUF_P (frame))
        ? MIN_SAFE_WINDOW_HEIGHT
        : 2 * MIN_SAFE_WINDOW_HEIGHT);
-  
+
   if (FRAME_TOP_MARGIN (frame) > 0)
     min_height += FRAME_TOP_MARGIN (frame);
 
@@ -2236,11 +2236,11 @@
 {
   int fixed_p;
   struct window *c;
-  
+
   if (!NILP (w->hchild))
     {
       c = XWINDOW (w->hchild);
-      
+
       if (width_p)
 	{
 	  /* A horiz. combination is fixed-width if all of if its
@@ -2261,7 +2261,7 @@
   else if (!NILP (w->vchild))
     {
       c = XWINDOW (w->vchild);
-      
+
       if (width_p)
 	{
 	  /* A vert. combination is fixed-width if one of if its
@@ -2287,7 +2287,7 @@
 	{
 	  struct buffer *old = current_buffer;
 	  Lisp_Object val;
-      
+
 	  current_buffer = XBUFFER (w->buffer);
 	  val = find_symbol_value (Qwindow_size_fixed);
 	  current_buffer = old;
@@ -2296,7 +2296,7 @@
 	  if (!EQ (val, Qunbound))
 	    {
 	      fixed_p = !NILP (val);
-	      
+
 	      if (fixed_p
 		  && ((EQ (val, Qheight) && width_p)
 		      || (EQ (val, Qwidth) && !width_p)))
@@ -2309,7 +2309,7 @@
       if (!fixed_p && check_siblings_p && WINDOWP (w->parent))
 	{
 	  Lisp_Object child;
-	  
+
 	  for (child = w->prev; !NILP (child); child = XWINDOW (child)->prev)
 	    if (!window_fixed_size_p (XWINDOW (child), width_p, 0))
 	      break;
@@ -2328,7 +2328,7 @@
 
   return fixed_p;
 }
-  
+
 
 /* Return the minimum size of window W, not taking fixed-width windows
    into account.  WIDTH_P non-zero means return the minimum width,
@@ -2342,12 +2342,12 @@
 {
   struct window *c;
   int size;
-  
+
   if (!NILP (w->hchild))
     {
       c = XWINDOW (w->hchild);
       size = 0;
-      
+
       if (width_p)
 	{
 	  /* The min width of a horizontal combination is
@@ -2374,7 +2374,7 @@
     {
       c = XWINDOW (w->vchild);
       size = 0;
-      
+
       if (width_p)
 	{
 	  /* The min width of a vertical combination is
@@ -2433,15 +2433,15 @@
     fixed_p = 0;
   else
     fixed_p = window_fixed_size_p (w, width_p, 1);
-  
+
   if (fixed)
     *fixed = fixed_p;
-  
+
   if (fixed_p)
     size = width_p ? XFASTINT (w->width) : XFASTINT (w->height);
   else
     size = window_min_size_1 (w, width_p);
-      
+
   return size;
 }
 
@@ -2470,7 +2470,7 @@
 
   check_min_window_sizes ();
   size = max (0, size);
-  
+
   /* If the window has been "too small" at one point,
      don't delete it for being "too small" in the future.
      Preserve it as long as that is at all possible.  */
@@ -2495,7 +2495,7 @@
 	min_size = width_p ? MIN_SAFE_WINDOW_WIDTH : MIN_SAFE_WINDOW_HEIGHT;
       else
 	min_size = width_p ? window_min_width : window_min_height;
-      
+
       if (size < min_size)
 	{
 	  delete_window (window);
@@ -2547,11 +2547,11 @@
       for (child = *forward; !NILP (child); child = c->next, ++nchildren)
 	{
 	  int child_size;
-	  
+
 	  c = XWINDOW (child);
 	  child_size = width_p ? XINT (c->width) : XINT (c->height);
 	  total += child_size;
-	  
+
 	  if (window_fixed_size_p (c, width_p, 0))
 	    {
 	      fixed_size += child_size;
@@ -2576,7 +2576,7 @@
       for (child = *forward; !NILP (child); child = c->next)
 	{
 	  int new_size, old_size;
-	  
+
 	  c = XWINDOW (child);
 	  old_size = width_p ? XFASTINT (c->width) : XFASTINT (c->height);
 	  new_size = old_size;
@@ -2594,7 +2594,7 @@
 	      new_size = old_size + each + extra;
 	      extra = 0;
 	    }
-	  
+
 	  /* Set new height.  Note that size_window also propagates
 	     edge positions to children, so it's not a no-op if we
 	     didn't change the child's size.  */
@@ -2607,7 +2607,7 @@
 
       /* We should have covered the parent exactly with child windows.  */
       xassert (size == last_pos - first_pos);
-      
+
       /* Now delete any children that became too small.  */
       if (!nodelete_p)
 	for (child = *forward; !NILP (child); child = c->next)
@@ -2779,7 +2779,7 @@
 
 /* Note that selected_window can be nil
    when this is called from Fset_window_configuration.  */
- 
+
 static Lisp_Object
 select_window_1 (window, recordflag)
      register Lisp_Object window;
@@ -2862,9 +2862,9 @@
 {
   Lisp_Object frame = XWINDOW (window)->frame;
   FRAME_PTR f = XFRAME (frame);
-  
+
   FRAME_SAMPLE_VISIBILITY (f);
-  
+
   if (!EQ (frame, selected_frame))
     {
       if (FRAME_ICONIFIED_P (f))
@@ -2872,7 +2872,7 @@
       else if (FRAME_VISIBLE_P (f))
 	Fraise_frame (frame);
     }
-  
+
   return window;
 }
 
@@ -2908,7 +2908,7 @@
 	return XCDR (car);
     }
   return Qnil;
-}  
+}
 
 DEFUN ("same-window-p", Fsame_window_p, Ssame_window_p, 1, 1, 0,
        doc: /* Returns non-nil if a new buffer named BUFFER-NAME would use the same window.
@@ -3011,7 +3011,7 @@
     XSETFASTINT (tem, 0);
   else
     XSETFRAME (tem, last_nonminibuf_frame);
-  
+
   window = Fget_buffer_window (buffer, tem);
   if (!NILP (window)
       && (NILP (not_this_window) || !EQ (window, selected_window)))
@@ -3418,7 +3418,7 @@
   return XFASTINT (p->width);
 }
 
-	
+
 #define CURBEG(w) \
   *(widthflag ? &(XWINDOW (w)->left) : &(XWINDOW (w)->top))
 
@@ -3461,19 +3461,19 @@
     {
       p = XWINDOW (window);
       parent = p->parent;
-      
+
       if (NILP (parent))
 	{
 	  if (widthflag)
 	    error ("No other window to side of this one");
 	  break;
 	}
-      
+
       if (widthflag
 	  ? !NILP (XWINDOW (parent)->hchild)
 	  : !NILP (XWINDOW (parent)->vchild))
 	break;
-      
+
       window = parent;
     }
 
@@ -3563,19 +3563,19 @@
 		{
 		  if (this_one > delta)
 		    this_one = delta;
-		  
+
 		  (*setsizefun) (next, (*sizefun) (next) - this_one, 0);
 		  (*setsizefun) (window, XINT (*sizep) + this_one, 0);
 
 		  delta -= this_one;
 		}
-	      
+
 	      next = XWINDOW (next)->next;
 	    }
-	  
+
 	  if (delta == 0)
 	    break;
-	  
+
 	  if (!preserve_before && ! NILP (prev))
 	    {
 	      int this_one = ((*sizefun) (prev)
@@ -3585,15 +3585,15 @@
 		{
 		  if (this_one > delta)
 		    this_one = delta;
-		  
+
 		  first_affected = prev;
-		  
+
 		  (*setsizefun) (prev, (*sizefun) (prev) - this_one, 0);
 		  (*setsizefun) (window, XINT (*sizep) + this_one, 0);
 
 		  delta -= this_one;
 		}
-	      
+
 	      prev = XWINDOW (prev)->prev;
 	    }
 	}
@@ -3657,7 +3657,7 @@
 
 	     The function size_window will compute the new height h'
 	     of the window from delta1 as:
-	     
+
 	     e = delta1/n
 	     x = delta1 - delta1/n * n for the 1st resizable child
 	     h' = h + e + x
@@ -3665,11 +3665,11 @@
 	     where n is the number of children that can be resized.
 	     We can ignore x by choosing a delta1 that is a multiple of
 	     n.  We want the height of this window to come out as
-	     
+
 	     h' = h + delta
 
 	     So, delta1 must be
-	     
+
 	     h + e = h + delta
 	     delta1/n = delta
 	     delta1 = n * delta.
@@ -3731,7 +3731,7 @@
     RESTORE_ORIG_SIZES
 };
 
-static int save_restore_orig_size P_ ((struct window *, 
+static int save_restore_orig_size P_ ((struct window *,
                                        enum save_restore_action));
 
 /* Shrink windows rooted in window W to HEIGHT.  Take the space needed
@@ -3773,7 +3773,7 @@
       int last_top;
 
       last_child = Qnil;
-      
+
       /* Find the last child.  We are taking space from lowest windows
 	 first, so we iterate over children from the last child
 	 backwards.  */
@@ -3784,7 +3784,7 @@
       for (child = last_child; delta && !NILP (child); child = c->prev)
 	{
 	  int this_one;
-	  
+
 	  c = XWINDOW (child);
 	  this_one = XFASTINT (c->height) - MIN_SAFE_WINDOW_HEIGHT;
 
@@ -3814,7 +3814,7 @@
    If ACTION is CHECK_ORIG_SIZES, check if orig_top and orig_height
    members are valid for all windows in the window tree.  Value is
    non-zero if they are valid.
-   
+
    If ACTION is SAVE_ORIG_SIZES, save members top and height in
    orig_top and orig_height for all windows in the tree.
 
@@ -3840,7 +3840,7 @@
 	  if (!save_restore_orig_size (XWINDOW (w->vchild), action))
 	    success_p = 0;
 	}
-      
+
       switch (action)
 	{
 	case CHECK_ORIG_SIZES:
@@ -3885,10 +3885,10 @@
 {
   struct frame *f = XFRAME (w->frame);
   struct window *root;
-  
+
   xassert (MINI_WINDOW_P (w));
   xassert (delta >= 0);
-	   
+
   /* Check values of window_min_width and window_min_height for
      validity.  */
   check_min_window_sizes ();
@@ -3904,7 +3904,7 @@
 	   min_height.  */
 	delta = max (0, XFASTINT (root->height) - min_height);
     }
-    
+
   if (delta)
     {
       /* Save original window sizes and positions, if not already done.  */
@@ -3919,7 +3919,7 @@
       w->height = make_number (XFASTINT (w->height) + delta);
       XSETFASTINT (w->last_modified, 0);
       XSETFASTINT (w->last_overlay_modified, 0);
-      
+
       adjust_glyphs (f);
     }
 }
@@ -4085,7 +4085,7 @@
   int vscrolled = 0;
 
   SET_TEXT_POS_FROM_MARKER (start, w->start);
-  
+
   /* If PT is not visible in WINDOW, move back one half of
      the screen.  Allow PT to be partially visible, otherwise
      something like (scroll-down 1) with PT in the line before
@@ -4099,7 +4099,7 @@
       init_iterator (&it, w, PT, PT_BYTE, NULL, DEFAULT_FACE_ID);
       it.current_y = it.last_visible_y;
       move_it_vertically (&it, - window_box_height (w) / 2);
-      
+
       /* The function move_iterator_vertically may move over more than
 	 the specified y-distance.  If it->w is small, e.g. a
 	 mini-buffer window, we may end up in front of the window's
@@ -4207,9 +4207,9 @@
 	 window-scroll-functions.  */
       w->force_start = Qt;
     }
-  
+
   it.current_y = it.vpos = 0;
-  
+
   /* Preserve the screen position if we must.  */
   if (preserve_y >= 0)
     {
@@ -4250,7 +4250,7 @@
 	  /* Save our position, in case it's correct.  */
 	  charpos = IT_CHARPOS (it);
 	  bytepos = IT_BYTEPOS (it);
-      
+
 	  /* See if point is on a partially visible line at the end.  */
 	  move_it_by_lines (&it, 1, 1);
 	  if (it.current_y > it.last_visible_y)
@@ -4584,7 +4584,7 @@
   Lisp_Object result;
   int hscroll;
   struct window *w = XWINDOW (selected_window);
-  
+
   if (NILP (arg))
     XSETFASTINT (arg, window_internal_width (w) - 2);
   else
@@ -4614,7 +4614,7 @@
   Lisp_Object result;
   int hscroll;
   struct window *w = XWINDOW (selected_window);
-  
+
   if (NILP (arg))
     XSETFASTINT (arg, window_internal_width (w) - 2);
   else
@@ -4622,7 +4622,7 @@
 
   hscroll = XINT (w->hscroll) - XINT (arg);
   result = Fset_window_hscroll (selected_window, make_number (hscroll));
-  
+
   if (interactive_p (0))
     w->min_hscroll = w->hscroll;
 
@@ -4754,7 +4754,7 @@
 	{
 	  struct it it;
 	  struct text_pos pt;
-	  
+
 	  SET_TEXT_POS (pt, PT, PT_BYTE);
 	  start_display (&it, w, pt);
 	  move_it_vertically (&it, - window_box_height (w) / 2);
@@ -4766,7 +4766,7 @@
 	  struct it it;
 	  struct text_pos pt;
 	  int y0, y1, h, nlines;
-	  
+
 	  SET_TEXT_POS (pt, PT, PT_BYTE);
 	  start_display (&it, w, pt);
 	  y0 = it.current_y;
@@ -4783,7 +4783,7 @@
 	     the end of the buffer, count in some empty lines.  */
 	  if (it.vpos < nlines)
 	    y1 += (nlines - it.vpos) * CANON_Y_UNIT (it.f);
-	  
+
 	  h = window_box_height (w) - (y1 - y0);
 
 	  start_display (&it, w, pt);
@@ -4808,7 +4808,7 @@
 	arg = make_number (ht / 2);
       else if (XINT (arg) < 0)
 	arg = make_number (XINT (arg) + ht);
-      
+
       pos = *vmotion (PT, - XINT (arg), w);
       charpos = pos.bufpos;
       bytepos = pos.bytepos;
@@ -4817,14 +4817,14 @@
   /* Set the new window start.  */
   set_marker_both (w->start, w->buffer, charpos, bytepos);
   w->window_end_valid = Qnil;
-  
+
   w->optional_new_start = Qt;
 
   if (bytepos == BEGV_BYTE || FETCH_BYTE (bytepos - 1) == '\n')
     w->start_at_line_beg = Qt;
   else
     w->start_at_line_beg = Qnil;
-  
+
   set_buffer_internal (obuf);
   return Qnil;
 }
@@ -5000,7 +5000,7 @@
 
   frame = XWINDOW (SAVED_WINDOW_N (saved_windows, 0)->window)->frame;
   f = XFRAME (frame);
-  
+
   /* If f is a dead frame, don't bother rebuilding its window tree.
      However, there is other stuff we should still try to do below.  */
   if (FRAME_LIVE_P (f))
@@ -5057,7 +5057,7 @@
       FRAME_WINDOW_SIZES_CHANGED (f) = 1;
 
       /* Problem: Freeing all matrices and later allocating them again
-	 is a serious redisplay flickering problem.  What we would 
+	 is a serious redisplay flickering problem.  What we would
 	 really like to do is to free only those matrices not reused
 	 below.   */
       root_window = XWINDOW (FRAME_ROOT_WINDOW (f));
@@ -5192,7 +5192,7 @@
 	set_marker_restricted (XWINDOW (data->current_window)->pointm,
 			       make_number (old_point),
 			       XWINDOW (data->current_window)->buffer);
-		  
+
       Fselect_window (data->current_window);
       XBUFFER (XWINDOW (selected_window)->buffer)->last_selected_window
 	= selected_window;
@@ -5231,14 +5231,14 @@
 	  if (NILP (leaf_windows[i]->buffer))
 	    {
 	      /* Assert it's not reused as a combination.  */
-	      xassert (NILP (leaf_windows[i]->hchild) 
+	      xassert (NILP (leaf_windows[i]->hchild)
 		       && NILP (leaf_windows[i]->vchild));
 	      free_window_matrices (leaf_windows[i]);
 	    }
 	  else if (EQ (leaf_windows[i]->buffer, new_current_buffer))
 	    ++n;
 	}
-      
+
       adjust_glyphs (f);
 
       UNBLOCK_INPUT;
@@ -5314,7 +5314,7 @@
 }
 
 
-/* Fill vector FLAT with leaf windows under W, starting at index I.  
+/* Fill vector FLAT with leaf windows under W, starting at index I.
    Value is last index + 1.  */
 
 static int
@@ -5329,7 +5329,7 @@
 	i = get_leaf_windows (XWINDOW (w->hchild), flat, i);
       else if (!NILP (w->vchild))
 	i = get_leaf_windows (XWINDOW (w->vchild), flat, i);
-      else 
+      else
 	flat[i++] = w;
 
       w = NILP (w->next) ? 0 : XWINDOW (w->next);
@@ -5541,7 +5541,7 @@
      XSETFASTINT (left, 0);
   if (INTEGERP (left) && XFASTINT (left) == 0)
     left = Qnil;
-  
+
   if ((INTEGERP (right) && XINT (right) < 0)
       || (FLOATP (right) && XFLOAT_DATA (right) <= 0))
     XSETFASTINT (right, 0);
@@ -5587,14 +5587,14 @@
   Lisp_Object result;
   struct frame *f;
   struct window *w;
-  
+
   if (NILP (window))
     window = selected_window;
   else
     CHECK_WINDOW (window);
   w = XWINDOW (window);
   f = XFRAME (w->frame);
-  
+
   if (FRAME_WINDOW_P (f))
     result = CANON_Y_FROM_PIXEL_Y (f, -w->vscroll);
   else
@@ -5613,20 +5613,20 @@
 {
   struct window *w;
   struct frame *f;
-  
+
   if (NILP (window))
     window = selected_window;
   else
     CHECK_WINDOW (window);
   CHECK_NUMBER_OR_FLOAT (vscroll);
-  
+
   w = XWINDOW (window);
   f = XFRAME (w->frame);
 
   if (FRAME_WINDOW_P (f))
     {
       int old_dy = w->vscroll;
-      
+
       w->vscroll = - CANON_Y_UNIT (f) * XFLOATINT (vscroll);
       w->vscroll = min (w->vscroll, 0);
 
@@ -5634,14 +5634,14 @@
 	 area becomes larger than before.  */
       if (w->vscroll < 0 && w->vscroll < old_dy)
 	adjust_glyphs (f);
-      
+
       /* Prevent redisplay shortcuts.  */
       XBUFFER (w->buffer)->prevent_redisplay_optimizations_p = 1;
     }
-  
+
   return Fwindow_vscroll (window);
 }
-       
+
 
 /* Call FN for all leaf windows on frame F.  FN is called with the
    first argument being a pointer to the leaf window, and with
@@ -5669,16 +5669,16 @@
      void *user_data;
 {
   int cont;
-  
+
   for (cont = 1; w && cont;)
     {
       if (!NILP (w->hchild))
  	cont = foreach_window_1 (XWINDOW (w->hchild), fn, user_data);
       else if (!NILP (w->vchild))
  	cont = foreach_window_1 (XWINDOW (w->vchild), fn, user_data);
-      else 
+      else
 	cont = fn (w, user_data);
-      
+
       w = NILP (w->next) ? 0 : XWINDOW (w->next);
     }
 
@@ -5701,7 +5701,7 @@
 	  && ! NILP (Vminibuf_scroll_window)
 	  && w == XWINDOW (Vminibuf_scroll_window)))
     freeze_p = NULL;
-  
+
   w->frozen_window_start_p = freeze_p != NULL;
   return 1;
 }
@@ -5740,7 +5740,7 @@
     wrong_type_argument (Qwindow_configuration_p, c1);
   if (!WINDOW_CONFIGURATIONP (c2))
     wrong_type_argument (Qwindow_configuration_p, c2);
-  
+
   d1 = (struct save_window_data *) XVECTOR (c1);
   d2 = (struct save_window_data *) XVECTOR (c2);
   sw1 = XVECTOR (d1->saved_windows);
@@ -5871,7 +5871,7 @@
 {
   Qwindow_size_fixed = intern ("window-size-fixed");
   staticpro (&Qwindow_size_fixed);
-  
+
   staticpro (&Qwindow_configuration_change_hook);
   Qwindow_configuration_change_hook
     = intern ("window-configuration-change-hook");
--- a/src/window.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/window.h	Tue Feb 04 14:56:31 2003 +0000
@@ -212,7 +212,7 @@
     /* Original window height and top before mini-window was
        enlarged. */
     Lisp_Object orig_height, orig_top;
-    
+
     /* No Lisp data may follow below this point without changing
        mark_object in alloc.c.  The member current_matrix must be the
        first non-Lisp member.  */
@@ -228,17 +228,17 @@
     /* Intended cursor position.   This is a position within the
        glyph matrix.  */
     struct cursor_pos cursor;
-    
+
     /* Where the cursor actually is.  */
     struct cursor_pos phys_cursor;
-    
-    /* Cursor type and width of last cursor drawn on the window.  
+
+    /* Cursor type and width of last cursor drawn on the window.
        Used for X and w32 frames; -1 initially.  */
     int phys_cursor_type, phys_cursor_width;
 
     /* This is handy for undrawing the cursor.  */
     int phys_cursor_ascent, phys_cursor_height;
-    
+
     /* Non-zero means the cursor is currently displayed.  This can be
        set to zero by functions overpainting the cursor image.  */
     unsigned phys_cursor_on_p : 1;
@@ -261,7 +261,7 @@
     /* Amount by which lines of this window are scrolled in
        y-direction (smooth scrolling).  */
     int vscroll;
-    
+
     /* Z_BYTE - the buffer position of the last glyph in the current matrix
        of W.  Only valid if WINDOW_END_VALID is not nil.  */
     int window_end_bytepos;
@@ -284,7 +284,7 @@
 /* Return the window column at which the text in window W starts.
    This is different from the `left' field because it does not include
    a left-hand scroll bar if any.  */
-   
+
 #define WINDOW_LEFT_MARGIN(W) \
      (XFASTINT ((W)->left) \
       + FRAME_LEFT_SCROLL_BAR_WIDTH (XFRAME (WINDOW_FRAME (W))))
@@ -305,16 +305,16 @@
          ? FRAME_SCROLL_BAR_COLS (XFRAME (WINDOW_FRAME (W))) \
          : 0))
 
-/* 1 if window W takes up the full width of its frame.  */ 
+/* 1 if window W takes up the full width of its frame.  */
 
 #define WINDOW_FULL_WIDTH_P(W) \
      (XFASTINT ((W)->width) == FRAME_WINDOW_WIDTH (XFRAME (WINDOW_FRAME (W))))
 
-/* 1 if window W's has no other windows to its right in its frame.  */ 
+/* 1 if window W's has no other windows to its right in its frame.  */
 
 #define WINDOW_RIGHTMOST_P(W) \
      (WINDOW_RIGHT_EDGE (W) == FRAME_WINDOW_WIDTH (XFRAME (WINDOW_FRAME (W))))
-     
+
 
 /* This is the window in which the terminal's cursor should
    be left when nothing is being done with it.  This must
--- a/src/xdisp.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/xdisp.c	Tue Feb 04 14:56:31 2003 +0000
@@ -8001,7 +8001,7 @@
   struct it it;
   struct glyph_row *row;
   int change_height_p = 0;
-  
+
 #ifdef USE_GTK
   if (FRAME_EXTERNAL_TOOL_BAR(f))
     update_frame_tool_bar (f);
@@ -10908,7 +10908,7 @@
       redisplay_tool_bar_p = WINDOWP (f->tool_bar_window)
         && (FRAME_TOOL_BAR_LINES (f) > 0
             || auto_resize_tool_bars_p);
-      
+
 #endif
 
       if (redisplay_tool_bar_p)
--- a/src/xfaces.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/xfaces.c	Tue Feb 04 14:56:31 2003 +0000
@@ -494,7 +494,7 @@
 			    Lisp_Object, struct font_name **));
 static int font_list P_ ((struct frame *, Lisp_Object, Lisp_Object,
 			  Lisp_Object, struct font_name **));
-static int try_font_list P_ ((struct frame *, Lisp_Object *, 
+static int try_font_list P_ ((struct frame *, Lisp_Object *,
 			      Lisp_Object, Lisp_Object, struct font_name **,
 			      int));
 static int try_alternative_families P_ ((struct frame *f, Lisp_Object,
@@ -974,13 +974,13 @@
       || ++clear_font_table_count == CLEAR_FONT_TABLE_COUNT)
     {
       struct x_display_info *dpyinfo;
-      
+
       /* Fonts are common for frames on one display, i.e. on
 	 one X screen.  */
       for (dpyinfo = x_display_list; dpyinfo; dpyinfo = dpyinfo->next)
 	if (dpyinfo->n_fonts > CLEAR_FONT_TABLE_NFONTS)
 	  clear_font_table (dpyinfo);
-      
+
       /* From time to time see if we can unload some fonts.  This also
 	 frees all realized faces on all frames.  Fonts needed by
 	 faces will be loaded again when faces are realized again.  */
@@ -1401,7 +1401,7 @@
   int status = 1;
 
   /* Defaults.  */
-  color_def->pixel = FACE_TTY_DEFAULT_COLOR; 
+  color_def->pixel = FACE_TTY_DEFAULT_COLOR;
   color_def->red = 0;
   color_def->blue = 0;
   color_def->green = 0;
@@ -2238,7 +2238,7 @@
     }
   else
     pixel = atoi (pixel_field);
-  
+
   if (pixel == 0)
     real_pt = 0;
   else
@@ -2306,7 +2306,7 @@
 	    {
 	      char *start, *end;
 	      int j;
-	      
+
 	      for (++p; *p && *p != ']'; ++p)
 		if (*p == '~')
 		  *p = '-';
@@ -2689,7 +2689,7 @@
 
    If REGISTRY is non-nil, return fonts with that registry and the
    alternative registries from Vface_alternative_font_registry_alist.
-   
+
    If REGISTRY is nil return fonts of any registry.
 
    Set *FONTS to a vector of font_name structures allocated from the
@@ -2703,7 +2703,7 @@
      struct font_name **fonts;
 {
   int nfonts = font_list_1 (f, pattern, family, registry, fonts);
-  
+
   if (!NILP (registry)
       && CONSP (Vface_alternative_font_registry_alist))
     {
@@ -3167,7 +3167,7 @@
   for (i = 1; i < LFACE_VECTOR_SIZE; ++i)
     if (i != LFACE_FONT_INDEX && i != LFACE_INHERIT_INDEX
 	&& i != LFACE_AVGWIDTH_INDEX)
-      if (UNSPECIFIEDP (attrs[i])) 
+      if (UNSPECIFIEDP (attrs[i]))
         break;
 
   return i == LFACE_VECTOR_SIZE;
@@ -4308,7 +4308,7 @@
     {
       Lisp_Object font_name;
       char *font;
-      
+
       if (STRINGP (LFACE_FONT (lface)))
 	font_name = LFACE_FONT (lface);
       else
@@ -4322,7 +4322,7 @@
 	  font_name = build_string (font);
 	  xfree (font);
 	}
-  
+
       Fmodify_frame_parameters (frame, Fcons (Fcons (Qfont, font_name), Qnil));
     }
 }
@@ -4524,7 +4524,7 @@
 #else
       const char *popup_path = "menu.popup";
 #endif
-      
+
       if (STRINGP (LFACE_FOREGROUND (lface)))
 	{
 	  sprintf (line, "%s.%s*foreground: %s",
@@ -4548,7 +4548,7 @@
 	  XrmPutLineResource (&rdb, line);
 	  changed_p = 1;
 	}
-	  
+
       if (face->font_name
 	  && (!UNSPECIFIEDP (LFACE_FAMILY (lface))
 	      || !UNSPECIFIEDP (LFACE_SWIDTH (lface))
@@ -4579,7 +4579,7 @@
 #endif /* HAVE_X_WINDOWS && USE_X_TOOLKIT */
 
 
-DEFUN ("face-attribute-relative-p", Fface_attribute_relative_p, 
+DEFUN ("face-attribute-relative-p", Fface_attribute_relative_p,
        Sface_attribute_relative_p,
        2, 2, 0,
        doc: /* Return non-nil if face ATTRIBUTE VALUE is relative.  */)
@@ -5252,7 +5252,7 @@
       else if (weight < XLFD_WEIGHT_MEDIUM)
 	test_caps = TTY_CAP_DIM;
     }
-      
+
   /* underlining */
   val = attrs[LFACE_UNDERLINE_INDEX];
   if (!UNSPECIFIEDP (val) && !NILP (val))
@@ -6286,7 +6286,7 @@
    REGISTRY, if a string, specifies a font registry and encoding to
    match.  A value of nil means include fonts of any registry and
    encoding.
-   
+
    Return in *FONTS a pointer to a vector of font_name structures for
    the fonts matched.  Value is the number of fonts found.  */
 
@@ -6314,7 +6314,7 @@
 		nfonts = font_list (f, Qnil, XCAR (alter), registry, fonts);
 	    }
 	}
-      
+
       /* Try scalable fonts before giving up.  */
       if (nfonts == 0 && NILP (Vscalable_fonts_allowed))
 	{
@@ -6337,7 +6337,7 @@
    REGISTRY, if a string, specifies a font registry and encoding to
    match.  A value of nil means include fonts of any registry and
    encoding.
-   
+
    If PREFER_FACE_FAMILY is nonzero, perfer face's family to FAMILY.
    Otherwise, prefer FAMILY.
 
@@ -6388,7 +6388,7 @@
 	family = build_string ("fixed");
       nfonts = font_list (f, Qnil, family, registry, fonts);
     }
-      
+
   /* Try any family with the given registry.  */
   if (nfonts == 0)
     nfonts = font_list (f, Qnil, Qnil, registry, fonts);
@@ -6447,7 +6447,7 @@
       xassert (!SINGLE_BYTE_CHAR_P (c));
       return NULL;
     }
-  
+
   /* If what we got is a name pattern, return it.  */
   if (STRINGP (pattern))
     return xstrdup (SDATA (pattern));
@@ -6510,7 +6510,7 @@
 	  x_update_menu_appearance (f);
 #endif
 	}
-      
+
       success_p = 1;
     }
 
@@ -6954,10 +6954,10 @@
       pixel = default_pixel = FACE_TTY_DEFAULT_BG_COLOR;
       default_other_pixel = FACE_TTY_DEFAULT_FG_COLOR;
     }
-  
+
   XSETFRAME (frame, f);
   color = face->lface[idx];
-  
+
   if (STRINGP (color)
       && SCHARS (color)
       && CONSP (Vtty_defined_color_alist)
@@ -7052,7 +7052,7 @@
   /* Map color names to color indices.  */
   map_tty_color (f, face, LFACE_FOREGROUND_INDEX, &face_colors_defaulted);
   map_tty_color (f, face, LFACE_BACKGROUND_INDEX, &face_colors_defaulted);
-  
+
   /* Swap colors if face is inverse-video.  If the colors are taken
      from the frame colors, they are already inverted, since the
      frame-creation function calls x-handle-reverse-video.  */
--- a/src/xfns.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/xfns.c	Tue Feb 04 14:56:31 2003 +0000
@@ -288,11 +288,11 @@
      Lisp_Object frame;
 {
   struct x_display_info *dpyinfo = NULL;
-  
+
   if (NILP (frame))
     {
       struct frame *sf = XFRAME (selected_frame);
-      
+
       if (FRAME_X_P (sf) && FRAME_LIVE_P (sf))
 	dpyinfo = FRAME_X_DISPLAY_INFO (sf);
       else if (x_display_list != 0)
@@ -336,7 +336,7 @@
       if (f->output_data.x->hourglass_window == wdesc)
 	return f;
 #ifdef USE_X_TOOLKIT
-      if ((f->output_data.x->edit_widget 
+      if ((f->output_data.x->edit_widget
 	   && XtWindow (f->output_data.x->edit_widget) == wdesc)
 	  /* A tooltip frame?  */
 	  || (!f->output_data.x->edit_widget
@@ -380,7 +380,7 @@
       frame = XCAR (tail);
       if (!GC_FRAMEP (frame))
         continue;
-      
+
       f = XFRAME (frame);
       if (FRAME_X_P (f) && FRAME_X_DISPLAY_INFO (f) == dpyinfo)
 	{
@@ -399,8 +399,8 @@
                       || gwdesc == x->menubar_widget))
                 found = f;
 #else
-	      if (wdesc == XtWindow (x->widget) 
-		  || wdesc == XtWindow (x->column_widget) 
+	      if (wdesc == XtWindow (x->widget)
+		  || wdesc == XtWindow (x->column_widget)
 		  || wdesc == XtWindow (x->edit_widget))
 		found = f;
 	      /* Match if the window is this frame's menubar.  */
@@ -413,7 +413,7 @@
 	    found = f;
 	}
     }
-  
+
   return found;
 }
 
@@ -450,8 +450,8 @@
                   || gwdesc == x->vbox_widget))
             return f;
 #else
-	  if (wdesc == XtWindow (x->widget) 
-	      || wdesc == XtWindow (x->column_widget) 
+	  if (wdesc == XtWindow (x->widget)
+	      || wdesc == XtWindow (x->column_widget)
 	      || wdesc == XtWindow (x->edit_widget))
 	    return f;
 #endif
@@ -489,7 +489,7 @@
         {
           GtkWidget *gwdesc = xg_win_to_widget (wdesc);
           int found = 0;
-          
+
           BLOCK_INPUT;
           if (gwdesc != 0
               && (gwdesc == x->menubar_widget
@@ -543,7 +543,7 @@
 	 but it seems logically wrong,
 	 and it causes trouble for MapNotify events.  */
 	  /* Match if the window is this frame's menubar.  */
-	  if (x->menubar_widget 
+	  if (x->menubar_widget
 	      && wdesc == XtWindow (x->menubar_widget))
 	    return f;
 #endif
@@ -860,7 +860,7 @@
   {"right-fringe",		x_set_fringe_width},
   {"wait-for-wm",		x_set_wait_for_wm},
   {"fullscreen",                x_set_fullscreen},
-  
+
 };
 
 /* Attach the `x-frame-parameter' properties to
@@ -979,7 +979,7 @@
      cursor_color) are dependent upon them.  */
   /* Process default font as well, since fringe widths depends on it.  */
   /* Also, process fullscreen, width and height depend upon that */
-  for (p = 0; p < i; p++) 
+  for (p = 0; p < i; p++)
     {
       Lisp_Object prop, val;
 
@@ -994,7 +994,7 @@
 
 	  old_value = get_frame_param (f, prop);
  	  fullscreen_is_being_set |= EQ (prop, Qfullscreen);
-	  
+
 	  if (NILP (Fequal (val, old_value)))
 	    {
 	      store_frame_param (f, prop, val);
@@ -1094,11 +1094,11 @@
          position.  Resize of the frame is taken care of in the code after
          this if-statement. */
       int new_left, new_top;
-      
+
       x_fullscreen_adjust (f, &width, &height, &new_top, &new_left);
       x_fullscreen_move (f, new_top, new_left);
     }
-  
+
   /* Don't set these parameters unless they've been explicitly
      specified.  The window might be mapped or resized while we're in
      this function, and we don't want to override that unless the lisp
@@ -1242,12 +1242,12 @@
 
       win = wm_window;
     }
-    
+
   if (! had_errors)
     {
       int ign;
       Window child, rootw;
-          
+
       /* Get the real coordinates for the WM window upper left corner */
       XGetGeometry (FRAME_X_DISPLAY (f), win,
                     &rootw, &real_x, &real_y, &ign, &ign, &ign, &ign);
@@ -1286,23 +1286,23 @@
                                  /* From-window, to-window.  */
                                  FRAME_X_DISPLAY_INFO (f)->root_window,
                                  FRAME_OUTER_WINDOW (f),
-                                     
+
                                  /* From-position, to-position.  */
                                  real_x, real_y, &outer_x, &outer_y,
-                         
+
                                  /* Child of win.  */
                                  &child);
     }
 
       had_errors = x_had_errors_p (FRAME_X_DISPLAY (f));
     }
-      
+
   x_uncatch_errors (FRAME_X_DISPLAY (f), count);
-      
+
   UNBLOCK_INPUT;
 
   if (had_errors) return;
-      
+
   f->output_data.x->x_pixels_diff = -win_x;
   f->output_data.x->y_pixels_diff = -win_y;
   f->output_data.x->x_pixels_outer_diff = -outer_x;
@@ -1562,7 +1562,7 @@
   if (FRAME_X_WINDOW (f) != 0)
     {
       Display *dpy = FRAME_X_DISPLAY (f);
-      
+
       BLOCK_INPUT;
       XSetForeground (dpy, x->normal_gc, fg);
       XSetBackground (dpy, x->reverse_gc, fg);
@@ -1573,15 +1573,15 @@
 	  x->cursor_pixel = x_copy_color (f, fg);
 	  XSetBackground (dpy, x->cursor_gc, x->cursor_pixel);
 	}
-      
+
       UNBLOCK_INPUT;
-      
+
       update_face_from_frame_parameter (f, Qforeground_color, arg);
-      
+
       if (FRAME_VISIBLE_P (f))
         redraw_frame (f);
     }
-      
+
   unload_color (f, old_fg);
 }
 
@@ -1600,7 +1600,7 @@
   if (FRAME_X_WINDOW (f) != 0)
     {
       Display *dpy = FRAME_X_DISPLAY (f);
-      
+
       BLOCK_INPUT;
       XSetBackground (dpy, x->normal_gc, bg);
       XSetForeground (dpy, x->reverse_gc, bg);
@@ -1689,7 +1689,7 @@
   else
     hourglass_cursor = XCreateFontCursor (dpy, XC_watch);
   x_check_errors (dpy, "bad hourglass pointer cursor: %s");
-  
+
   x_check_errors (dpy, "bad nontext pointer cursor: %s");
   if (!NILP (Vx_mode_pointer_shape))
     {
@@ -1730,7 +1730,7 @@
     x_query_color (f, &fore_color);
     back_color.pixel = mask_color;
     x_query_color (f, &back_color);
-    
+
     XRecolorCursor (dpy, cursor, &fore_color, &back_color);
     XRecolorCursor (dpy, nontext_cursor, &fore_color, &back_color);
     XRecolorCursor (dpy, mode_cursor, &fore_color, &back_color);
@@ -1761,7 +1761,7 @@
       && x->modeline_cursor != 0)
     XFreeCursor (dpy, f->output_data.x->modeline_cursor);
   x->modeline_cursor = mode_cursor;
-  
+
   if (cross_cursor != x->cross_cursor
       && x->cross_cursor != 0)
     XFreeCursor (dpy, x->cross_cursor);
@@ -1795,7 +1795,7 @@
     }
   else
     fore_pixel = x->background_pixel;
-  
+
   pixel = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f));
   pixel_allocated_p = 1;
 
@@ -1807,7 +1807,7 @@
 	  x_free_colors (f, &pixel, 1);
 	  pixel_allocated_p = 0;
 	}
-      
+
       pixel = x->mouse_pixel;
       if (pixel == fore_pixel)
 	{
@@ -2015,7 +2015,7 @@
 	    ? x_new_fontset (f, SDATA (fontset_name))
 	    : x_new_font (f, SDATA (arg)));
   UNBLOCK_INPUT;
-  
+
   if (EQ (result, Qnil))
     error ("Font `%s' is not defined", SDATA (arg));
   else if (EQ (result, Qt))
@@ -2031,7 +2031,7 @@
 	}
       else if (!NILP (Fequal (result, oldval)))
 	return;
-      
+
       store_frame_param (f, Qfont, result);
       recompute_basic_faces (f);
     }
@@ -2245,7 +2245,7 @@
 
   return;
 #endif
-  
+
      /* Make sure we redisplay all windows in this frame.  */
   ++windows_or_buffers_changed;
 
@@ -2263,7 +2263,7 @@
   FRAME_TOOL_BAR_LINES (f) = nlines;
   x_change_window_heights (root_window, delta);
   adjust_glyphs (f);
-  
+
   /* We also have to make sure that the internal border at the top of
      the frame, below the menu bar or tool bar, is redrawn when the
      tool bar disappears.  This is so because the internal border is
@@ -2309,7 +2309,7 @@
      Lisp_Object value, oldval;
 {
   unsigned long pixel;
-  
+
   if (STRINGP (value))
     pixel = x_decode_color (f, value, BLACK_PIX_DEFAULT (f));
   else
@@ -2317,7 +2317,7 @@
 
   if (f->output_data.x->scroll_bar_foreground_pixel != -1)
     unload_color (f, f->output_data.x->scroll_bar_foreground_pixel);
-  
+
   f->output_data.x->scroll_bar_foreground_pixel = pixel;
   if (FRAME_X_WINDOW (f) && FRAME_VISIBLE_P (f))
     {
@@ -2349,10 +2349,10 @@
     pixel = x_decode_color (f, value, WHITE_PIX_DEFAULT (f));
   else
     pixel = -1;
-  
+
   if (f->output_data.x->scroll_bar_background_pixel != -1)
     unload_color (f, f->output_data.x->scroll_bar_background_pixel);
-  
+
 #ifdef USE_TOOLKIT_SCROLL_BARS
   /* Scrollbar shadow colors.  */
   if (f->output_data.x->scroll_bar_top_shadow_pixel != -1)
@@ -2375,7 +2375,7 @@
 	(*condemn_scroll_bars_hook) (f);
       if (judge_scroll_bars_hook)
 	(*judge_scroll_bars_hook) (f);
-      
+
       update_face_from_frame_parameter (f, Qscroll_bar_background, value);
       redraw_frame (f);
     }
@@ -2470,7 +2470,7 @@
      Lisp_Object name;
      int explicit;
 {
-  /* Make sure that requests from lisp code override requests from 
+  /* Make sure that requests from lisp code override requests from
      Emacs redisplay code.  */
   if (explicit)
     {
@@ -2736,7 +2736,7 @@
 	= (NILP (arg)
 	   ? vertical_scroll_bar_none
 	   : EQ (Qright, arg)
-	   ? vertical_scroll_bar_right 
+	   ? vertical_scroll_bar_right
 	   : vertical_scroll_bar_left);
 
       /* We set this parameter before creating the X window for the
@@ -2767,7 +2767,7 @@
       /* Make the actual width at least 14 pixels and a multiple of a
 	 character width.  */
       FRAME_SCROLL_BAR_COLS (f) = (14 + wid - 1) / wid;
-      
+
       /* Use all of that space (aside from required margins) for the
 	 scroll bar.  */
       FRAME_SCROLL_BAR_PIXEL_WIDTH (f) = 0;
@@ -3096,7 +3096,7 @@
 	      if (!strcmp (SDATA (tem), "on")
 		  || !strcmp (SDATA (tem), "true"))
 		return Qt;
-	      else 
+	      else
 		return Qnil;
 
 	    case RES_TYPE_STRING:
@@ -3215,11 +3215,11 @@
 	     specified.  */
 	  tem = Qnil;
 	}
-      
+
 #else /* not USE_TOOLKIT_SCROLL_BARS */
-      
+
       tem = Qnil;
-      
+
 #endif /* not USE_TOOLKIT_SCROLL_BARS */
     }
 
@@ -3417,7 +3417,7 @@
     {
       int left, top;
       int width, height;
-      
+
       /* It takes both for some WM:s to place it where we want */
       window_prompting = USPosition | PPosition;
       x_fullscreen_adjust (f, &width, &height, &top, &left);
@@ -3428,7 +3428,7 @@
       f->output_data.x->left_pos = left;
       f->output_data.x->top_pos = top;
     }
-  
+
   return window_prompting;
 }
 
@@ -3551,13 +3551,13 @@
   char **missing_list;
   int missing_count;
   char *def_string;
-  
+
   xfs = XCreateFontSet (FRAME_X_DISPLAY (f),
 			base_fontname, &missing_list,
 			&missing_count, &def_string);
   if (missing_list)
     XFreeStringList (missing_list);
-  
+
   /* No need to free def_string. */
   return xfs;
 }
@@ -3597,7 +3597,7 @@
 
   if (FRAME_XIC (f))
     return;
-  
+
   xim = FRAME_X_XIM (f);
   if (xim)
     {
@@ -3695,7 +3695,7 @@
       XFree (preedit_attr);
       XFree (status_attr);
     }
-  
+
   FRAME_XIC (f) = xic;
   FRAME_XIC_STYLE (f) = xic_style;
   FRAME_XIC_FONTSET (f) = xfs;
@@ -3710,7 +3710,7 @@
 {
   if (FRAME_XIC (f) == NULL)
     return;
-  
+
   XDestroyIC (FRAME_XIC (f));
   if (FRAME_XIC_FONTSET (f))
     XFreeFontSet (FRAME_X_DISPLAY (f), FRAME_XIC_FONTSET (f));
@@ -3731,7 +3731,7 @@
   struct frame *f = XFRAME (w->frame);
   XVaNestedList attr;
   XPoint spot;
-      
+
   spot.x = WINDOW_TO_FRAME_PIXEL_X (w, x);
   spot.y = WINDOW_TO_FRAME_PIXEL_Y (w, y) + FONT_BASE (FRAME_FONT (f));
   attr = XVaCreateNestedList (0, XNSpotLocation, &spot, NULL);
@@ -3757,7 +3757,7 @@
   attr = XVaCreateNestedList (0, XNAreaNeeded, &area, NULL);
   XSetICValues (xic, XNStatusAttributes, attr, NULL);
   XFree (attr);
-  
+
   attr = XVaCreateNestedList (0, XNAreaNeeded, &needed, NULL);
   XGetICValues (xic, XNStatusAttributes, attr, NULL);
   XFree (attr);
@@ -3803,7 +3803,7 @@
   if (FRAME_XIC_STYLE (f) & XIMStatusArea)
     XSetICValues (FRAME_XIC (f), XNStatusAttributes, attr, NULL);
   XFree (attr);
-  
+
   if (FRAME_XIC_FONTSET (f))
     XFreeFontSet (FRAME_X_DISPLAY (f), FRAME_XIC_FONTSET (f));
   FRAME_XIC_FONTSET (f) = xfs;
@@ -3839,7 +3839,7 @@
      for the window manager, so GC relocation won't bother it.
 
      Elsewhere we specify the window name for the window manager.  */
-     
+
   {
     char *str = (char *) SDATA (Vx_resource_name);
     f->namebuf = (char *) xmalloc (strlen (str) + 1);
@@ -3876,7 +3876,7 @@
   XtSetValues (pane_widget, al, ac);
   f->output_data.x->column_widget = pane_widget;
 
-  /* mappedWhenManaged to false tells to the paned window to not map/unmap 
+  /* mappedWhenManaged to false tells to the paned window to not map/unmap
      the emacs screen when changing menubar.  This reduces flickering.  */
 
   ac = 0;
@@ -3890,10 +3890,10 @@
   XtSetArg (al[ac], XtNcolormap, FRAME_X_COLORMAP (f)); ac++;
   frame_widget = XtCreateWidget (f->namebuf, emacsFrameClass, pane_widget,
 				 al, ac);
- 
+
   f->output_data.x->edit_widget = frame_widget;
- 
-  XtManageChild (frame_widget); 
+
+  XtManageChild (frame_widget);
 
   /* Do some needed geometry management.  */
   {
@@ -3902,7 +3902,7 @@
     Arg al[2];
     int ac = 0;
     int extra_borders = 0;
-    int menubar_size 
+    int menubar_size
       = (f->output_data.x->menubar_widget
 	 ? (f->output_data.x->menubar_widget->core.height
 	    + f->output_data.x->menubar_widget->core.border_width)
@@ -3946,13 +3946,13 @@
 
       if (window_prompting & USPosition)
 	sprintf (shell_position, "=%dx%d%c%d%c%d",
-		 PIXEL_WIDTH (f) + extra_borders, 
+		 PIXEL_WIDTH (f) + extra_borders,
 		 PIXEL_HEIGHT (f) + menubar_size + extra_borders,
 		 (xneg ? '-' : '+'), left,
 		 (yneg ? '-' : '+'), top);
       else
 	sprintf (shell_position, "=%dx%d",
-		 PIXEL_WIDTH (f) + extra_borders, 
+		 PIXEL_WIDTH (f) + extra_borders,
 		 PIXEL_HEIGHT (f) + menubar_size + extra_borders);
     }
 
@@ -3970,7 +3970,7 @@
   XtManageChild (pane_widget);
   XtRealizeWidget (shell_widget);
 
-  FRAME_X_WINDOW (f) = XtWindow (frame_widget); 
+  FRAME_X_WINDOW (f) = XtWindow (frame_widget);
 
   validate_x_resource_name ();
 
@@ -4017,7 +4017,7 @@
       attributes.event_mask |= fevent;
     }
 #endif /* HAVE_X_I18N */
-  
+
   attribute_mask = CWEventMask;
   XChangeWindowAttributes (XtDisplay (shell_widget), XtWindow (shell_widget),
 			   attribute_mask, &attributes);
@@ -4137,7 +4137,7 @@
     }
 #endif
 #endif /* HAVE_X_I18N */
-  
+
   validate_x_resource_name ();
 
   class_hints.res_name = (char *) SDATA (Vx_resource_name);
@@ -4302,7 +4302,7 @@
      this must be done on a per-frame basis.  */
   f->output_data.x->border_tile
     = (XCreatePixmapFromBitmapData
-       (FRAME_X_DISPLAY (f), FRAME_X_DISPLAY_INFO (f)->root_window, 
+       (FRAME_X_DISPLAY (f), FRAME_X_DISPLAY_INFO (f)->root_window,
 	gray_bits, gray_width, gray_height,
 	f->output_data.x->foreground_pixel,
 	f->output_data.x->background_pixel,
@@ -4321,7 +4321,7 @@
   Display *dpy = FRAME_X_DISPLAY (f);
 
   BLOCK_INPUT;
-  
+
   if (f->output_data.x->normal_gc)
     {
       XFreeGC (dpy, f->output_data.x->normal_gc);
@@ -4333,7 +4333,7 @@
       XFreeGC (dpy, f->output_data.x->reverse_gc);
       f->output_data.x->reverse_gc = 0;
     }
-  
+
   if (f->output_data.x->cursor_gc)
     {
       XFreeGC (dpy, f->output_data.x->cursor_gc);
@@ -4366,7 +4366,7 @@
 #if GLYPH_DEBUG
       struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
 #endif
-      
+
       x_free_frame_resources (f);
 
       /* Check that reference counts are indeed correct.  */
@@ -4374,7 +4374,7 @@
       xassert (dpyinfo->image_cache->refcount == image_cache_refcount);
       return Qt;
     }
-  
+
   return Qnil;
 }
 
@@ -4505,7 +4505,7 @@
     f->output_data.x->cursor_foreground_pixel = -1;
     f->output_data.x->border_pixel = -1;
     f->output_data.x->mouse_pixel = -1;
-    
+
     black = build_string ("black");
     GCPRO1 (black);
     f->output_data.x->foreground_pixel
@@ -4568,7 +4568,7 @@
 	else
 	  font = x_new_font (f, SDATA (font));
       }
-    
+
     /* Try out a font which we hope has bold and italic variations.  */
     if (!STRINGP (font))
       font = x_new_font (f, "-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1");
@@ -4599,7 +4599,7 @@
 
   x_default_parameter (f, parms, Qborder_width, make_number (2),
 		       "borderWidth", "BorderWidth", RES_TYPE_NUMBER);
-  
+
   /* This defaults to 1 in order to match xterm.  We recognize either
      internalBorderWidth or internalBorder (which is what xterm calls
      it).  */
@@ -4654,7 +4654,7 @@
      end up in init_iterator with a null face cache, which should not
      happen.  */
   init_frame_faces (f);
-  
+
   x_default_parameter (f, parms, Qmenu_bar_lines, make_number (1),
 		       "menuBar", "MenuBar", RES_TYPE_NUMBER);
   x_default_parameter (f, parms, Qtool_bar_lines, make_number (1),
@@ -4680,7 +4680,7 @@
   if (FRAME_TOOL_BAR_LINES (f))
     {
       int margin, relief, bar_height;
-      
+
       relief = (tool_bar_button_relief >= 0
 		? tool_bar_button_relief
 		: DEFAULT_TOOL_BAR_BUTTON_RELIEF);
@@ -4694,7 +4694,7 @@
 	margin = XFASTINT (XCDR (Vtool_bar_button_margin));
       else
 	margin = 0;
-	  
+
       bar_height = DEFAULT_TOOL_BAR_IMAGE_HEIGHT + 2 * margin + 2 * relief;
       f->height += (bar_height + CANON_Y_UNIT (f) - 1) / CANON_Y_UNIT (f);
     }
@@ -4728,7 +4728,7 @@
 #else
   x_window (f);
 #endif
-  
+
   x_icon (f, parms);
   x_make_gc (f);
 
@@ -4756,7 +4756,7 @@
      f->height.  */
   width = f->width;
   height = f->height;
-  
+
   f->height = 0;
   SET_FRAME_WIDTH (f, 0);
   change_frame_size (f, height, width, 1, 0, 0);
@@ -4819,7 +4819,7 @@
   /* Make sure windows on this frame appear in calls to next-window
      and similar functions.  */
   Vwindow_list = Qnil;
-  
+
   return unbind_to (count, frame);
 }
 
@@ -4867,7 +4867,7 @@
 		  RevertToParent, CurrentTime);
   x_uncatch_errors (dpy, count);
   UNBLOCK_INPUT;
-  
+
   return Qnil;
 }
 
@@ -5184,7 +5184,7 @@
       error ("Display has an unknown visual class");
       result = Qnil;
     }
-  
+
   return result;
 }
 
@@ -5339,14 +5339,14 @@
 	  || !XMatchVisualInfo (dpy, XScreenNumberOfScreen (screen),
 				dpyinfo->n_planes, class, &vinfo))
 	fatal ("Invalid visual specification `%s'", SDATA (value));
-      
+
       dpyinfo->visual = vinfo.visual;
     }
   else
     {
       int n_visuals;
       XVisualInfo *vinfo, vinfo_template;
-      
+
       dpyinfo->visual = DefaultVisualOfScreen (screen);
 
 #ifdef HAVE_X11R4
@@ -5640,7 +5640,7 @@
      Lisp_Object object;
 {
   int valid_p = 0;
-  
+
   if (CONSP (object) && EQ (XCAR (object), Qimage))
     {
       Lisp_Object tem;
@@ -5656,7 +5656,7 @@
 		if (type)
 		  valid_p = type->valid_p (object);
 	      }
-	    
+
 	    break;
 	  }
     }
@@ -5775,7 +5775,7 @@
 	 was found more than once, it's an error.  */
       keywords[i].value = value;
       ++keywords[i].count;
-      
+
       if (keywords[i].count > 1)
 	return 0;
 
@@ -5819,7 +5819,7 @@
 		   && XINT (value) <= 100)
 	    break;
 	  return 0;
-	      
+
 	case IMAGE_NON_NEGATIVE_INTEGER_VALUE:
 	  if (!INTEGERP (value) || XINT (value) < 0)
 	    return 0;
@@ -5830,7 +5830,7 @@
 
 	case IMAGE_FUNCTION_VALUE:
 	  value = indirect_function (value);
-	  if (SUBRP (value) 
+	  if (SUBRP (value)
 	      || COMPILEDP (value)
 	      || (CONSP (value) && EQ (XCAR (value), Qlambda)))
 	    break;
@@ -5879,7 +5879,7 @@
      int *found;
 {
   Lisp_Object tail;
-  
+
   xassert (valid_image_p (spec));
 
   for (tail = XCDR (spec);
@@ -5893,12 +5893,12 @@
 	  return XCAR (XCDR (tail));
 	}
     }
-  
+
   if (found)
     *found = 0;
   return Qnil;
 }
-     
+
 
 DEFUN ("image-size", Fimage_size, Simage_size, 1, 3, 0,
        doc: /* Return the size of image SPEC as pair (WIDTH . HEIGHT).
@@ -5919,7 +5919,7 @@
       struct image *img = IMAGE_FROM_ID (f, id);
       int width = img->width + 2 * img->hmargin;
       int height = img->height + 2 * img->vmargin;
-  
+
       if (NILP (pixels))
 	size = Fcons (make_float ((double) width / CANON_X_UNIT (f)),
 		      make_float ((double) height / CANON_Y_UNIT (f)));
@@ -5976,7 +5976,7 @@
      unsigned hash;
 {
   struct image *img = (struct image *) xmalloc (sizeof *img);
-  
+
   xassert (valid_image_p (spec));
   bzero (img, sizeof *img);
   img->type = lookup_image_type (image_spec_value (spec, QCtype, NULL));
@@ -6037,7 +6037,7 @@
   if (img->pixmap == None && !img->load_failed_p)
     img->load_failed_p = img->type->load (f, img) == 0;
 }
-     
+
 
 /* Value is the number of pixels for the ascent of image IMG when
    drawn in face FACE.  */
@@ -6089,7 +6089,7 @@
   for (i = best_count = 0; i < 4; ++i)
     {
       int j, n;
-	  
+
       for (j = n = 0; j < 4; ++j)
 	if (corners[i] == corners[j])
 	  ++n;
@@ -6205,7 +6205,7 @@
       img->mask = None;
       img->background_transparent_valid = 0;
     }
-      
+
   if (colors_p && img->ncolors)
     {
       x_free_colors (f, img->colors, img->ncolors);
@@ -6280,7 +6280,7 @@
 {
   struct image_cache *c = (struct image_cache *) xmalloc (sizeof *c);
   int size;
-  
+
   bzero (c, sizeof *c);
   c->size = 50;
   c->images = (struct image **) xmalloc (c->size * sizeof *c->images);
@@ -6305,7 +6305,7 @@
 
       /* Cache should not be referenced by any frame when freed.  */
       xassert (c->refcount == 0);
-      
+
       for (i = 0; i < c->used; ++i)
 	free_image (f, c->images[i]);
       xfree (c->images);
@@ -6342,7 +6342,7 @@
       /* Block input so that we won't be interrupted by a SIGIO
 	 while being in an inconsistent state.  */
       BLOCK_INPUT;
-      
+
       for (i = nfreed = 0; i < c->used; ++i)
 	{
 	  struct image *img = c->images[i];
@@ -6361,7 +6361,7 @@
       if (nfreed)
 	{
 	  Lisp_Object tail, frame;
-	  
+
 	  FOR_EACH_FRAME (tail, frame)
 	    {
 	      struct frame *f = XFRAME (frame);
@@ -6389,7 +6389,7 @@
   if (EQ (frame, Qt))
     {
       Lisp_Object tail;
-      
+
       FOR_EACH_FRAME (tail, frame)
 	if (FRAME_X_P (XFRAME (frame)))
 	  clear_image_cache (XFRAME (frame), 1);
@@ -6416,7 +6416,7 @@
       Lisp_Object mask;
 
       spec = img->spec;
-      
+
       /* `:heuristic-mask t'
 	 `:mask heuristic'
 	 means build a mask heuristically.
@@ -6426,16 +6426,16 @@
 	 image.
 	 `:mask nil'
 	 means remove a mask, if any.  */
-	      
+
       mask = image_spec_value (spec, QCheuristic_mask, NULL);
       if (!NILP (mask))
 	x_build_heuristic_mask (f, img, mask);
       else
 	{
 	  int found_p;
-		    
+
 	  mask = image_spec_value (spec, QCmask, &found_p);
-		  
+
 	  if (EQ (mask, Qheuristic))
 	    x_build_heuristic_mask (f, img, Qt);
 	  else if (CONSP (mask)
@@ -6452,8 +6452,8 @@
 	      img->mask = None;
 	    }
 	}
- 
-	  
+
+
       /* Should we apply an image transformation algorithm?  */
       conversion = image_spec_value (spec, QCconversion, NULL);
       if (EQ (conversion, Qdisabled))
@@ -6495,7 +6495,7 @@
      specification.  */
   xassert (FRAME_WINDOW_P (f));
   xassert (valid_image_p (spec));
-  
+
   GCPRO1 (spec);
 
   /* Look up SPEC in the hash table of the image cache.  */
@@ -6510,7 +6510,7 @@
   if (img == NULL)
     {
       extern Lisp_Object Qpostscript;
-      
+
       BLOCK_INPUT;
       img = make_image (spec, hash);
       cache_image (f, img);
@@ -6542,7 +6542,7 @@
 	    img->ascent = XFASTINT (ascent);
 	  else if (EQ (ascent, Qcenter))
 	    img->ascent = CENTERED_IMAGE_ASCENT;
-	  
+
 	  margin = image_spec_value (spec, QCmargin, NULL);
 	  if (INTEGERP (margin) && XINT (margin) >= 0)
 	    img->vmargin = img->hmargin = XFASTINT (margin);
@@ -6554,7 +6554,7 @@
 	      if (XINT (XCDR (margin)) > 0)
 		img->vmargin = XFASTINT (XCDR (margin));
 	    }
-	  
+
 	  relief = image_spec_value (spec, QCrelief, NULL);
 	  if (INTEGERP (relief))
 	    {
@@ -6588,9 +6588,9 @@
   /* We're using IMG, so set its timestamp to `now'.  */
   EMACS_GET_TIME (now);
   img->timestamp = EMACS_SECS (now);
-  
+
   UNGCPRO;
-  
+
   /* Value is the image id.  */
   return img->id;
 }
@@ -6742,7 +6742,7 @@
      int width, height;
 {
   GC gc;
-  
+
   xassert (interrupt_input_blocked);
   gc = XCreateGC (FRAME_X_DISPLAY (f), pixmap, 0, NULL);
   XPutImage (FRAME_X_DISPLAY (f), pixmap, gc, ximg, 0, 0, 0, 0, width, height);
@@ -6777,7 +6777,7 @@
 
   /* Try to find FILE in data-directory, then x-bitmap-file-path.  */
   fd = openp (search_path, file, Qnil, &file_found, Qnil);
-  
+
   if (fd == -1)
     file_found = Qnil;
   else
@@ -6819,7 +6819,7 @@
 	  buf = NULL;
 	}
     }
-  
+
   return buf;
 }
 
@@ -6898,7 +6898,7 @@
   XBM_TK_NUMBER
 };
 
-  
+
 /* Return non-zero if OBJECT is a valid XBM-type image specification.
    A valid specification is a list starting with the symbol `image'
    The rest of the list is a property list which must contain an
@@ -6933,7 +6933,7 @@
      Lisp_Object object;
 {
   struct image_keyword kw[XBM_LAST];
-  
+
   bcopy (xbm_format, kw, sizeof kw);
   if (!parse_image_spec (object, kw, XBM_LAST, Qxbm))
     return 0;
@@ -6965,13 +6965,13 @@
       data = kw[XBM_DATA].value;
       width = XFASTINT (kw[XBM_WIDTH].value);
       height = XFASTINT (kw[XBM_HEIGHT].value);
-      
+
       /* Check type of data, and width and height against contents of
 	 data.  */
       if (VECTORP (data))
 	{
 	  int i;
-	  
+
 	  /* Number of elements of the vector must be >= height.  */
 	  if (XVECTOR (data)->size < height)
 	    return 0;
@@ -7031,7 +7031,7 @@
   int c;
 
  loop:
-  
+
   /* Skip white space.  */
   while (*s < end && (c = *(*s)++, isspace (c)))
     ;
@@ -7041,7 +7041,7 @@
   else if (isdigit (c))
     {
       int value = 0, digit;
-      
+
       if (c == '0' && *s < end)
 	{
 	  c = *(*s)++;
@@ -7139,7 +7139,7 @@
      if (LA1 != (TOKEN)) 	\
        goto failure;		\
      else			\
-       match ()	
+       match ()
 
 #define expect_ident(IDENT)					\
      if (LA1 == XBM_TK_IDENT && strcmp (buffer, (IDENT)) == 0)	\
@@ -7182,7 +7182,7 @@
     {
       if (strcmp (buffer, "unsigned") == 0)
 	{
-	  match (); 
+	  match ();
 	  expect_ident ("char");
 	}
       else if (strcmp (buffer, "short") == 0)
@@ -7197,7 +7197,7 @@
       else
 	goto failure;
     }
-  else 
+  else
     goto failure;
 
   expect (XBM_TK_IDENT);
@@ -7220,7 +7220,7 @@
 	  *p++ = val;
 	  if (!padding_p || ((i + 2) % bytes_per_line))
 	    *p++ = value >> 8;
-	  
+
 	  if (LA1 == ',' || LA1 == '}')
 	    match ();
 	  else
@@ -7233,9 +7233,9 @@
 	{
 	  int val = value;
 	  expect (XBM_TK_NUMBER);
-	  
+
 	  *p++ = val;
-	  
+
 	  if (LA1 == ',' || LA1 == '}')
 	    match ();
 	  else
@@ -7247,7 +7247,7 @@
   return 1;
 
  failure:
-  
+
   if (data && *data)
     {
       xfree (*data);
@@ -7274,7 +7274,7 @@
   int rc;
   unsigned char *data;
   int success_p = 0;
-  
+
   rc = xbm_read_bitmap_data (contents, end, &img->width, &img->height, &data);
   if (rc)
     {
@@ -7282,7 +7282,7 @@
       unsigned long foreground = FRAME_FOREGROUND_PIXEL (f);
       unsigned long background = FRAME_BACKGROUND_PIXEL (f);
       Lisp_Object value;
-      
+
       xassert (img->width > 0 && img->height > 0);
 
       /* Get foreground and background colors, maybe allocate colors.  */
@@ -7335,7 +7335,7 @@
 				   &w, &h, NULL));
 }
 
-    
+
 /* Fill image IMG which is used on frame F with pixmap data.  Value is
    non-zero if successful.  */
 
@@ -7357,7 +7357,7 @@
       char *contents;
       int size;
       struct gcpro gcpro1;
-      
+
       file = x_find_image_file (file_name);
       GCPRO1 (file);
       if (!STRINGP (file))
@@ -7427,7 +7427,7 @@
 	      int i;
 	      char *p;
 	      int nbytes = (img->width + BITS_PER_CHAR - 1) / BITS_PER_CHAR;
-	  
+
 	      p = bits = (char *) alloca (nbytes * img->height);
 	      for (i = 0; i < img->height; ++i, p += nbytes)
 		{
@@ -7465,14 +7465,14 @@
 
   return success_p;
 }
-  
+
 
 
 /***********************************************************************
 			      XPM images
  ***********************************************************************/
 
-#if HAVE_XPM 
+#if HAVE_XPM
 
 static int xpm_image_p P_ ((Lisp_Object object));
 static int xpm_load P_ ((struct frame *f, struct image *img));
@@ -7589,7 +7589,7 @@
     {
       int i;
       XColor color;
-      
+
       for (i = 0; i < attrs->numsymbols; ++i)
 	if (XParseColor (FRAME_X_DISPLAY (f), FRAME_X_COLORMAP (f),
 			 attrs->colorsymbols[i].value, &color))
@@ -7632,7 +7632,7 @@
 {
   unsigned h = 0;
   char *s;
-  
+
   for (s = color_name; *s; ++s)
     h = (h << 2) ^ *s;
   return h %= XPM_COLOR_CACHE_BUCKETS;
@@ -7652,10 +7652,10 @@
 {
   size_t nbytes;
   struct xpm_cached_color *p;
-  
+
   if (bucket < 0)
     bucket = xpm_color_bucket (color_name);
-      
+
   nbytes = sizeof *p + strlen (color_name);
   p = (struct xpm_cached_color *) xmalloc (nbytes);
   strcpy (p->name, color_name);
@@ -7693,7 +7693,7 @@
 				       color->blue);
       p = xpm_cache_color (f, color_name, color, h);
     }
-  
+
   return p != NULL;
 }
 
@@ -7820,7 +7820,7 @@
       Lisp_Object tail;
       XpmColorSymbol *xpm_syms;
       int i, size;
-      
+
       attrs.valuemask |= XpmColorSymbols;
 
       /* Count number of symbols.  */
@@ -7853,7 +7853,7 @@
 #ifdef ALLOC_XPM_COLORS
   xpm_init_color_cache (f, &attrs);
 #endif
-  
+
   specified_file = image_spec_value (img->spec, QCfile, NULL);
   if (STRINGP (specified_file))
     {
@@ -7863,7 +7863,7 @@
 	  image_error ("Cannot find image file `%s'", specified_file, Qnil);
 	  return 0;
 	}
-      
+
       rc = XpmReadFileToPixmap (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
 				SDATA (file), &img->pixmap, &img->mask,
 				&attrs);
@@ -7910,19 +7910,19 @@
 	case XpmOpenFailed:
 	  image_error ("Error opening XPM file (%s)", img->spec, Qnil);
 	  break;
-	  
+
 	case XpmFileInvalid:
 	  image_error ("Invalid XPM file (%s)", img->spec, Qnil);
 	  break;
-	  
+
 	case XpmNoMemory:
 	  image_error ("Out of memory (%s)", img->spec, Qnil);
 	  break;
-	  
+
 	case XpmColorFailed:
 	  image_error ("Color allocation error (%s)", img->spec, Qnil);
 	  break;
-	  
+
 	default:
 	  image_error ("Unknown error (%s)", img->spec, Qnil);
 	  break;
@@ -8028,14 +8028,14 @@
       color.red = r;
       color.green = g;
       color.blue = b;
-      
+
       cmap = FRAME_X_COLORMAP (f);
       rc = x_alloc_nearest_color (f, cmap, &color);
 
       if (rc)
 	{
 	  ++ct_colors_allocated;
-      
+
 	  p = (struct ct_color *) xmalloc (sizeof *p);
 	  p->r = r;
 	  p->g = g;
@@ -8081,7 +8081,7 @@
       if (rc)
 	{
 	  ++ct_colors_allocated;
-      
+
 	  p = (struct ct_color *) xmalloc (sizeof *p);
 	  p->r = color.red;
 	  p->g = color.green;
@@ -8093,7 +8093,7 @@
       else
 	return FRAME_FOREGROUND_PIXEL (f);
     }
-  
+
   return p->pixel;
 }
 
@@ -8119,7 +8119,7 @@
       colors = (unsigned long *) xmalloc (ct_colors_allocated
 					  * sizeof *colors);
       *n = ct_colors_allocated;
-      
+
       for (i = j = 0; i < CT_SIZE; ++i)
 	for (p = ct_table[i]; p; p = p->next)
 	  colors[j++] = p->pixel;
@@ -8194,7 +8194,7 @@
   for (y = 0; y < img->height; ++y)
     {
       XColor *row = p;
-      
+
       for (x = 0; x < img->width; ++x, ++p)
 	p->pixel = XGetPixel (ximg, x, y);
 
@@ -8221,9 +8221,9 @@
   XImage *oimg;
   Pixmap pixmap;
   XColor *p;
-  
+
   init_color_table ();
-  
+
   x_create_x_image_and_pixmap (f, img->width, img->height, 0,
 			       &oimg, &pixmap);
   p = colors;
@@ -8250,7 +8250,7 @@
 
    MATRIX is a nine-element array specifying the transformation
    matrix.  See emboss_matrix for an example.
-   
+
    COLOR_ADJUST is a color adjustment added to each pixel of the
    outgoing image.  */
 
@@ -8278,7 +8278,7 @@
       p = COLOR (new, img->width - 1, y);
       p->red = p->green = p->blue = 0xffff/2;
     }
-  
+
   for (x = 1; x < img->width - 1; ++x)
     {
       p = COLOR (new, x, 0);
@@ -8290,7 +8290,7 @@
   for (y = 1; y < img->height - 1; ++y)
     {
       p = COLOR (new, 1, y);
-      
+
       for (x = 1; x < img->width - 1; ++x, ++p)
 	{
 	  int r, g, b, y1, x1;
@@ -8363,7 +8363,7 @@
 {
   int i = 0;
   int trans[9];
-  
+
   if (CONSP (matrix))
     {
       for (i = 0;
@@ -8483,7 +8483,7 @@
   /* Determine the background color of ximg.  If HOW is `(R G B)'
      take that as color.  Otherwise, use the image's background color. */
   use_img_background = 1;
-  
+
   if (CONSP (how))
     {
       int rgb[3], i;
@@ -8502,7 +8502,7 @@
 	  use_img_background = 0;
 	}
     }
-  
+
   if (use_img_background)
     bg = four_corners_best (ximg, img->width, img->height);
 
@@ -8519,7 +8519,7 @@
   x_put_x_image (f, mask_img, img->mask, img->width, img->height);
   x_destroy_x_image (mask_img);
   XDestroyImage (ximg);
-  
+
   return 1;
 }
 
@@ -8592,9 +8592,9 @@
      Lisp_Object object;
 {
   struct image_keyword fmt[PBM_LAST];
-  
+
   bcopy (pbm_format, fmt, sizeof fmt);
-  
+
   if (!parse_image_spec (object, fmt, PBM_LAST, Qpbm))
     return 0;
 
@@ -8643,7 +8643,7 @@
 
 /* Load PBM image IMG for use on frame F.  */
 
-static int 
+static int
 pbm_load (f, img)
      struct frame *f;
      struct image *img;
@@ -8706,7 +8706,7 @@
     case '1':
       raw_p = 0, type = PBM_MONO;
       break;
-      
+
     case '2':
       raw_p = 0, type = PBM_GRAY;
       break;
@@ -8718,11 +8718,11 @@
     case '4':
       raw_p = 1, type = PBM_MONO;
       break;
-      
+
     case '5':
       raw_p = 1, type = PBM_GRAY;
       break;
-      
+
     case '6':
       raw_p = 1, type = PBM_COLOR;
       break;
@@ -8743,7 +8743,7 @@
       if (raw_p && max_color_idx > 255)
 	max_color_idx = 255;
     }
-  
+
   if (width < 0
       || height < 0
       || (type != PBM_MONO && max_color_idx < 0))
@@ -8752,7 +8752,7 @@
   if (!x_create_x_image_and_pixmap (f, width, height, 0,
 				    &ximg, &img->pixmap))
     goto error;
-  
+
   /* Initialize the color hash table.  */
   init_color_table ();
 
@@ -8766,7 +8766,7 @@
       /* Parse the image specification.  */
       bcopy (pbm_format, fmt, sizeof fmt);
       parse_image_spec (img->spec, fmt, PBM_LAST, Qpbm);
-      
+
       /* Get foreground and background colors, maybe allocate colors.  */
       if (fmt[PBM_FOREGROUND].count
 	  && STRINGP (fmt[PBM_FOREGROUND].value))
@@ -8778,7 +8778,7 @@
 	  img->background = bg;
 	  img->background_valid = 1;
 	}
-      
+
       for (y = 0; y < height; ++y)
 	for (x = 0; x < width; ++x)
 	  {
@@ -8801,7 +8801,7 @@
 	for (x = 0; x < width; ++x)
 	  {
 	    int r, g, b;
-	    
+
 	    if (type == PBM_GRAY)
 	      r = g = b = raw_p ? *p++ : pbm_scan_number (&p, end);
 	    else if (raw_p)
@@ -8816,7 +8816,7 @@
 		g = pbm_scan_number (&p, end);
 		b = pbm_scan_number (&p, end);
 	      }
-	    
+
 	    if (r < 0 || g < 0 || b < 0)
 	      {
 		xfree (ximg->data);
@@ -8826,7 +8826,7 @@
 			     img->spec, Qnil);
 		goto error;
 	      }
-	    
+
 	    /* RGB values are now in the range 0..max_color_idx.
 	       Scale this to the range 0..0xffff supported by X.  */
 	    r = (double) r * 65535 / max_color_idx;
@@ -8835,7 +8835,7 @@
 	    XPutPixel (ximg, x, y, lookup_rgb_color (f, r, g, b));
 	  }
     }
-  
+
   /* Store in IMG->colors the colors allocated for the image, and
      free the color table.  */
   img->colors = colors_in_color_table (&img->ncolors);
@@ -8844,11 +8844,11 @@
   /* Maybe fill in the background field while we have ximg handy. */
   if (NILP (image_spec_value (img->spec, QCbackground, NULL)))
     IMAGE_BACKGROUND (img, f, ximg);
-  
+
   /* Put the image into a pixmap.  */
   x_put_x_image (f, ximg, img->pixmap, width, height);
   x_destroy_x_image (ximg);
-      
+
   img->width = width;
   img->height = height;
 
@@ -8930,7 +8930,7 @@
 {
   struct image_keyword fmt[PNG_LAST];
   bcopy (png_format, fmt, sizeof fmt);
-  
+
   if (!parse_image_spec (object, fmt, PNG_LAST, Qpng))
     return 0;
 
@@ -8987,7 +8987,7 @@
 
   if (length > tbr->len - tbr->index)
     png_error (png_ptr, "Read error");
-  
+
   bcopy (tbr->bytes + tbr->index, data, length);
   tbr->index = tbr->index + length;
 }
@@ -9129,14 +9129,14 @@
   png_get_IHDR (png_ptr, info_ptr, &width, &height, &bit_depth, &color_type,
 	        &interlace_type, NULL, NULL);
 
-  /* If image contains simply transparency data, we prefer to 
+  /* If image contains simply transparency data, we prefer to
      construct a clipping mask.  */
   if (png_get_valid (png_ptr, info_ptr, PNG_INFO_tRNS))
     transparent_p = 1;
   else
     transparent_p = 0;
 
-  /* This function is easier to write if we only have to handle 
+  /* This function is easier to write if we only have to handle
      one data format: RGB or RGBA with 8 bits per channel.  Let's
      transform other formats into that format.  */
 
@@ -9149,7 +9149,7 @@
   png_set_expand (png_ptr);
 
   /* Convert grayscale images to RGB.  */
-  if (color_type == PNG_COLOR_TYPE_GRAY 
+  if (color_type == PNG_COLOR_TYPE_GRAY
       || color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
     png_set_gray_to_rgb (png_ptr);
 
@@ -9198,14 +9198,14 @@
 	    }
 	}
       else if (png_get_bKGD (png_ptr, info_ptr, &image_bg))
-	/* Image contains a background color with which to 
+	/* Image contains a background color with which to
 	   combine the image.  */
 	png_set_background (png_ptr, image_bg,
 			    PNG_BACKGROUND_GAMMA_FILE, 1, 1.0);
       else
 	{
 	  /* Image does not contain a background color with which
-	     to combine the image data via an alpha channel.  Use 
+	     to combine the image data via an alpha channel.  Use
 	     the frame's background instead.  */
 	  XColor color;
 	  Colormap cmap;
@@ -9253,12 +9253,12 @@
       fclose (fp);
       fp = NULL;
     }
-  
+
   /* Create the X image and pixmap.  */
   if (!x_create_x_image_and_pixmap (f, width, height, 0, &ximg,
 				    &img->pixmap))
     goto error;
-  
+
   /* Create an image and pixmap serving as mask if the PNG image
      contains an alpha channel.  */
   if (channels == 4
@@ -9289,16 +9289,16 @@
 	  XPutPixel (ximg, x, y, lookup_rgb_color (f, r, g, b));
 
 	  /* An alpha channel, aka mask channel, associates variable
-	     transparency with an image.  Where other image formats 
-	     support binary transparency---fully transparent or fully 
+	     transparency with an image.  Where other image formats
+	     support binary transparency---fully transparent or fully
 	     opaque---PNG allows up to 254 levels of partial transparency.
 	     The PNG library implements partial transparency by combining
 	     the image with a specified background color.
 
 	     I'm not sure how to handle this here nicely: because the
 	     background on which the image is displayed may change, for
-	     real alpha channel support, it would be necessary to create 
-	     a new image for each possible background.  
+	     real alpha channel support, it would be necessary to create
+	     a new image for each possible background.
 
 	     What I'm doing now is that a mask is created if we have
 	     boolean transparency information.  Otherwise I'm using
@@ -9444,9 +9444,9 @@
      Lisp_Object object;
 {
   struct image_keyword fmt[JPEG_LAST];
-  
+
   bcopy (jpeg_format, fmt, sizeof fmt);
-  
+
   if (!parse_image_spec (object, fmt, JPEG_LAST, Qjpeg))
     return 0;
 
@@ -9517,7 +9517,7 @@
     {
       if (num_bytes > src->bytes_in_buffer)
 	ERREXIT (cinfo, JERR_INPUT_EOF);
-      
+
       src->bytes_in_buffer -= num_bytes;
       src->next_input_byte += num_bytes;
     }
@@ -9555,7 +9555,7 @@
       src = (struct jpeg_source_mgr *) cinfo->src;
       src->next_input_byte = data;
     }
-  
+
   src = (struct jpeg_source_mgr *) cinfo->src;
   src->init_source = our_init_source;
   src->fill_input_buffer = our_fill_input_buffer;
@@ -9570,7 +9570,7 @@
 /* Load image IMG for use on frame F.  Patterned after example.c
    from the JPEG lib.  */
 
-static int 
+static int
 jpeg_load (f, img)
      struct frame *f;
      struct image *img;
@@ -9603,7 +9603,7 @@
 	  UNGCPRO;
 	  return 0;
 	}
-  
+
       fp = fopen (SDATA (file), "r");
       if (fp == NULL)
 	{
@@ -9617,7 +9617,7 @@
      error is detected.  This function will perform a longjmp.  */
   cinfo.err = jpeg_std_error (&mgr.pub);
   mgr.pub.error_exit = my_error_exit;
-  
+
   if ((rc = setjmp (mgr.setjmp_buffer)) != 0)
     {
       if (rc == 1)
@@ -9628,7 +9628,7 @@
 	  image_error ("Error reading JPEG image `%s': %s", img->spec,
 		       build_string (buffer));
 	}
-	  
+
       /* Close the input file and destroy the JPEG object.  */
       if (fp)
 	fclose ((FILE *) fp);
@@ -9639,7 +9639,7 @@
 
       /* Free pixmap and colors.  */
       x_clear_image (f, img);
-      
+
       UNGCPRO;
       return 0;
     }
@@ -9689,7 +9689,7 @@
     init_color_table ();
     colors = (unsigned long *) alloca (cinfo.actual_number_of_colors
 				       * sizeof *colors);
-  
+
     for (i = 0; i < cinfo.actual_number_of_colors; ++i)
       {
 	/* Multiply RGB values with 255 because X expects RGB values
@@ -9725,7 +9725,7 @@
   /* Maybe fill in the background field while we have ximg handy. */
   if (NILP (image_spec_value (img->spec, QCbackground, NULL)))
     IMAGE_BACKGROUND (img, f, ximg);
-  
+
   /* Put the image into the pixmap.  */
   x_put_x_image (f, ximg, img->pixmap, width, height);
   x_destroy_x_image (ximg);
@@ -9806,10 +9806,10 @@
 {
   struct image_keyword fmt[TIFF_LAST];
   bcopy (tiff_format, fmt, sizeof fmt);
-  
+
   if (!parse_image_spec (object, fmt, TIFF_LAST, Qtiff))
     return 0;
-  
+
   /* Must specify either the :data or :file keyword.  */
   return fmt[TIFF_FILE].count + fmt[TIFF_DATA].count == 1;
 }
@@ -9873,22 +9873,22 @@
     case SEEK_SET:		/* Go from beginning of source.  */
       idx = off;
       break;
-      
+
     case SEEK_END:		/* Go from end of source.  */
       idx = src->len + off;
       break;
-      
+
     case SEEK_CUR:		/* Go from current position.  */
       idx = src->index + off;
       break;
-      
+
     default:			/* Invalid `whence'.   */
       return -1;
     }
-  
+
   if (idx > src->len || idx < 0)
     return -1;
-  
+
   src->index = idx;
   return src->index;
 }
@@ -9939,7 +9939,7 @@
 {
   char buf[512];
   int len;
-  
+
   len = sprintf (buf, "TIFF error: %s ", title);
   vsprintf (buf + len, format, ap);
   add_to_log (buf, Qnil, Qnil);
@@ -9953,7 +9953,7 @@
 {
   char buf[512];
   int len;
-  
+
   len = sprintf (buf, "TIFF warning: %s ", title);
   vsprintf (buf + len, format, ap);
   add_to_log (buf, Qnil, Qnil);
@@ -9996,7 +9996,7 @@
 	  UNGCPRO;
 	  return 0;
 	}
-	  
+
       /* Try to open the image file.  */
       tiff = TIFFOpen (SDATA (file), "r");
       if (tiff == NULL)
@@ -10035,7 +10035,7 @@
   TIFFGetField (tiff, TIFFTAG_IMAGEWIDTH, &width);
   TIFFGetField (tiff, TIFFTAG_IMAGELENGTH, &height);
   buf = (uint32 *) xmalloc (width * height * sizeof *buf);
-  
+
   rc = TIFFReadRGBAImage (tiff, width, height, buf, 0);
   TIFFClose (tiff);
   if (!rc)
@@ -10061,21 +10061,21 @@
   for (y = 0; y < height; ++y)
     {
       uint32 *row = buf + y * width;
-      
+
       for (x = 0; x < width; ++x)
 	{
 	  uint32 abgr = row[x];
 	  int r = TIFFGetR (abgr) << 8;
 	  int g = TIFFGetG (abgr) << 8;
 	  int b = TIFFGetB (abgr) << 8;
-	  XPutPixel (ximg, x, height - 1 - y, lookup_rgb_color (f, r, g, b)); 
+	  XPutPixel (ximg, x, height - 1 - y, lookup_rgb_color (f, r, g, b));
 	}
     }
 
   /* Remember the colors allocated for the image.  Free the color table.  */
   img->colors = colors_in_color_table (&img->ncolors);
   free_color_table ();
-      
+
   img->width = width;
   img->height = height;
 
@@ -10167,10 +10167,10 @@
 {
   struct image_keyword fmt[GIF_LAST];
   bcopy (gif_format, fmt, sizeof fmt);
-  
+
   if (!parse_image_spec (object, fmt, GIF_LAST, Qgif))
     return 0;
-  
+
   /* Must specify either the :data or :file keyword.  */
   return fmt[GIF_FILE].count + fmt[GIF_DATA].count == 1;
 }
@@ -10245,7 +10245,7 @@
 	  UNGCPRO;
 	  return 0;
 	}
-  
+
       /* Open the GIF file.  */
       gif = DGifOpenFileName (SDATA (file));
       if (gif == NULL)
@@ -10303,14 +10303,14 @@
       UNGCPRO;
       return 0;
     }
-  
+
   /* Allocate colors.  */
   gif_color_map = gif->SavedImages[ino].ImageDesc.ColorMap;
   if (!gif_color_map)
     gif_color_map = gif->SColorMap;
   init_color_table ();
   bzero (pixel_colors, sizeof pixel_colors);
-  
+
   for (i = 0; i < gif_color_map->ColorCount; ++i)
     {
       int r = gif_color_map->Colors[i].Red << 8;
@@ -10323,7 +10323,7 @@
   free_color_table ();
 
   /* Clear the part of the screen image that are not covered by
-     the image from the GIF file.  Full animated GIF support 
+     the image from the GIF file.  Full animated GIF support
      requires more than can be done here (see the gif89 spec,
      disposal methods).  Let's simply assume that the part
      not covered by a sub-image is in the frame's background color.  */
@@ -10352,7 +10352,7 @@
      `raster' here because RasterBits below is a char *, and invites
      problems with bytes >= 0x80.  */
   raster = (unsigned char *) gif->SavedImages[ino].RasterBits;
-  
+
   if (gif->SavedImages[ino].ImageDesc.Interlace)
     {
       static int interlace_start[] = {0, 4, 2, 1};
@@ -10370,14 +10370,14 @@
 	      while (row >= image_height)
 		row = interlace_start[++pass];
 	    }
-	  
+
 	  for (x = 0; x < image_width; x++)
 	    {
 	      int i = raster[(y * image_width) + x];
 	      XPutPixel (ximg, x + image_left, row + image_top,
 			 pixel_colors[i]);
 	    }
-	  
+
 	  row += interlace_increment[pass];
 	}
     }
@@ -10390,17 +10390,17 @@
 	    XPutPixel (ximg, x + image_left, y + image_top, pixel_colors[i]);
 	  }
     }
-  
+
   DGifCloseFile (gif);
 
   /* Maybe fill in the background field while we have ximg handy. */
   if (NILP (image_spec_value (img->spec, QCbackground, NULL)))
     IMAGE_BACKGROUND (img, f, ximg);
-  
+
   /* Put the image into the pixmap, then free the X image and its buffer.  */
   x_put_x_image (f, ximg, img->pixmap, width, height);
   x_destroy_x_image (ximg);
-      
+
   UNGCPRO;
   return 1;
 }
@@ -10500,9 +10500,9 @@
   struct image_keyword fmt[GS_LAST];
   Lisp_Object tem;
   int i;
-  
+
   bcopy (gs_format, fmt, sizeof fmt);
-  
+
   if (!parse_image_spec (object, fmt, GS_LAST, Qpostscript))
     return 0;
 
@@ -10568,7 +10568,7 @@
       image_error ("Unable to create pixmap for `%s'", img->spec, Qnil);
       return 0;
     }
-    
+
   /* Call the loader to fill the pixmap.  It returns a process object
      if successful.  We do not record_unwind_protect here because
      other places in redisplay like calling window scroll functions
@@ -10579,12 +10579,12 @@
 	   (unsigned long) FRAME_X_WINDOW (f),
 	   (unsigned long) img->pixmap);
   window_and_pixmap_id = build_string (buffer);
-  
+
   sprintf (buffer, "%lu %lu",
 	   FRAME_FOREGROUND_PIXEL (f),
 	   FRAME_BACKGROUND_PIXEL (f));
   pixel_colors = build_string (buffer);
-  
+
   XSETFRAME (frame, f);
   loader = image_spec_value (img->spec, QCloader, NULL);
   if (NILP (loader))
@@ -10622,7 +10622,7 @@
      instance, give up.  */
   if (i == c->used)
     return;
-  
+
   /* Kill the GS process.  We should have found PIXMAP in the image
      cache and its image should contain a process object.  */
   img = c->images[i];
@@ -10646,10 +10646,10 @@
       if (ximg)
 	{
 	  int x, y;
-	  
+
 	  /* Initialize the color table.  */
 	  init_color_table ();
-      
+
 	  /* For each pixel of the image, look its color up in the
 	     color table.  After having done so, the color table will
 	     contain an entry for each color used by the image.  */
@@ -10678,7 +10678,7 @@
       else
 	image_error ("Cannot get X image of `%s'; colors will not be freed",
 		     img->spec, Qnil);
-      
+
       UNBLOCK_INPUT;
     }
 
@@ -10781,8 +10781,8 @@
       rc = XGetWindowProperty (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
 			       prop_atom, 0, bytes_remaining,
 			       False, XA_STRING,
-			       &actual_type, &actual_format, 
-			       &actual_size, &bytes_remaining, 
+			       &actual_type, &actual_format,
+			       &actual_size, &bytes_remaining,
 			       (unsigned char **) &tmp_data);
       if (rc == Success && tmp_data)
 	prop_value = make_string (tmp_data, size);
@@ -10831,7 +10831,7 @@
 {
   EMACS_TIME delay;
   int secs, usecs = 0;
-  
+
   cancel_hourglass ();
 
   if (INTEGERP (Vhourglass_delay)
@@ -10847,7 +10847,7 @@
     }
   else
     secs = DEFAULT_HOURGLASS_DELAY;
-  
+
   EMACS_SET_SECS_USECS (delay, secs, usecs);
   hourglass_atimer = start_atimer (ATIMER_RELATIVE, delay,
 				     show_hourglass, NULL);
@@ -10865,7 +10865,7 @@
       cancel_atimer (hourglass_atimer);
       hourglass_atimer = NULL;
     }
-  
+
   if (hourglass_shown_p)
     hide_hourglass ();
 }
@@ -10891,17 +10891,17 @@
   if (!hourglass_shown_p)
     {
       Lisp_Object rest, frame;
-  
+
       BLOCK_INPUT;
-  
+
       FOR_EACH_FRAME (rest, frame)
 	{
 	  struct frame *f = XFRAME (frame);
-	  
+
 	  if (FRAME_LIVE_P (f) && FRAME_X_P (f) && FRAME_X_DISPLAY (f))
 	    {
 	      Display *dpy = FRAME_X_DISPLAY (f);
-	      
+
 #ifdef USE_X_TOOLKIT
 	      if (f->output_data.x->widget)
 #else
@@ -10909,14 +10909,14 @@
 #endif
 		{
 		  f->output_data.x->hourglass_p = 1;
-	
+
 		  if (!f->output_data.x->hourglass_window)
 		    {
 		      unsigned long mask = CWCursor;
 		      XSetWindowAttributes attrs;
-	    
+
 		      attrs.cursor = f->output_data.x->hourglass_cursor;
-	    
+
 		      f->output_data.x->hourglass_window
 			= XCreateWindow (dpy, FRAME_OUTER_WINDOW (f),
 					 0, 0, 32000, 32000, 0, 0,
@@ -10924,7 +10924,7 @@
 					 CopyFromParent,
 					 mask, &attrs);
 		    }
-	
+
 		  XMapRaised (dpy, f->output_data.x->hourglass_window);
 		  XFlush (dpy);
 		}
@@ -10951,7 +10951,7 @@
       FOR_EACH_FRAME (rest, frame)
 	{
 	  struct frame *f = XFRAME (frame);
-      
+
 	  if (FRAME_X_P (f)
 	      /* Watch out for newly created frames.  */
 	      && f->output_data.x->hourglass_window)
@@ -10980,7 +10980,7 @@
 					   Lisp_Object, Lisp_Object));
 static void compute_tip_xy P_ ((struct frame *, Lisp_Object, Lisp_Object,
 				Lisp_Object, int, int, int *, int *));
-     
+
 /* The frame of a currently visible tooltip.  */
 
 Lisp_Object tip_frame;
@@ -11013,7 +11013,7 @@
       tip_window = None;
       tip_frame = Qnil;
     }
-  
+
   return deleted;
 }
 
@@ -11077,7 +11077,7 @@
   Ferase_buffer ();
   Finsert (1, &text);
   set_buffer_internal_1 (old_buffer);
-  
+
   FRAME_CAN_HAVE_SCROLL_BARS (f) = 0;
   record_unwind_protect (unwind_create_tip_frame, frame);
 
@@ -11113,7 +11113,7 @@
   {
     Lisp_Object black;
     struct gcpro gcpro1;
-    
+
     black = build_string ("black");
     GCPRO1 (black);
     f->output_data.x->foreground_pixel
@@ -11163,7 +11163,7 @@
 	else
 	  font = x_new_font (f, SDATA (font));
       }
-    
+
     /* Try out a font which we hope has bold and italic variations.  */
     if (!STRINGP (font))
       font = x_new_font (f, "-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1");
@@ -11188,7 +11188,7 @@
 
   x_default_parameter (f, parms, Qborder_width, make_number (2),
 		       "borderWidth", "BorderWidth", RES_TYPE_NUMBER);
-  
+
   /* This defaults to 2 in order to match xterm.  We recognize either
      internalBorderWidth or internalBorder (which is what xterm calls
      it).  */
@@ -11226,7 +11226,7 @@
      end up in init_iterator with a null face cache, which should not
      happen.  */
   init_frame_faces (f);
-  
+
   f->output_data.x->parent_desc = FRAME_X_DISPLAY_INFO (f)->root_window;
   window_prompting = x_figure_window_size (f, parms);
 
@@ -11249,12 +11249,12 @@
   {
     XSetWindowAttributes attrs;
     unsigned long mask;
-    
+
     BLOCK_INPUT;
     mask = CWBackPixel | CWOverrideRedirect | CWEventMask;
     if (DoesSaveUnders (dpyinfo->screen))
       mask |= CWSaveUnder;
-    
+
     /* Window managers look at the override-redirect flag to determine
        whether or net to give windows a decoration (Xlib spec, chapter
        3.2.8).  */
@@ -11293,12 +11293,12 @@
   f->height = 0;
   SET_FRAME_WIDTH (f, 0);
   change_frame_size (f, height, width, 1, 0, 0);
-  
+
   /* Add `tooltip' frame parameter's default value. */
   if (NILP (Fframe_parameter (frame, intern ("tooltip"))))
     Fmodify_frame_parameters (frame, Fcons (Fcons (intern ("tooltip"), Qt),
 					    Qnil));
-  
+
   /* Set up faces after all frame parameters are known.  This call
      also merges in face attributes specified for new frames.
 
@@ -11313,12 +11313,12 @@
     /* Set tip_frame here, so that */
     tip_frame = frame;
     call1 (Qface_set_after_frame_default, frame);
-    
+
     if (!EQ (bg, Fframe_parameter (frame, Qbackground_color)))
       Fmodify_frame_parameters (frame, Fcons (Fcons (Qbackground_color, bg),
 					      Qnil));
   }
-  
+
   f->no_split = 1;
 
   UNGCPRO;
@@ -11361,11 +11361,11 @@
   int win_x, win_y;
   Window root, child;
   unsigned pmask;
-  
+
   /* User-specified position?  */
   left = Fcdr (Fassq (Qleft, parms));
   top  = Fcdr (Fassq (Qtop, parms));
-  
+
   /* Move the tooltip window where the mouse pointer is.  Resize and
      show it.  */
   if (!INTEGERP (left) || !INTEGERP (top))
@@ -11434,7 +11434,7 @@
   struct gcpro gcpro1, gcpro2, gcpro3, gcpro4;
   int old_windows_or_buffers_changed = windows_or_buffers_changed;
   int count = SPECPDL_INDEX ();
-  
+
   specbind (Qinhibit_redisplay, Qt);
 
   GCPRO4 (string, parms, frame, timeout);
@@ -11445,12 +11445,12 @@
     timeout = make_number (5);
   else
     CHECK_NATNUM (timeout);
-  
+
   if (NILP (dx))
     dx = make_number (5);
   else
     CHECK_NUMBER (dx);
-  
+
   if (NILP (dy))
     dy = make_number (-10);
   else
@@ -11470,7 +11470,7 @@
 	  && !NILP (Fequal (last_parms, parms)))
 	{
 	  struct frame *f = XFRAME (tip_frame);
-	  
+
 	  /* Only DX and DY have changed.  */
 	  if (!NILP (tip_timer))
 	    {
@@ -11517,7 +11517,7 @@
   /* Set up the frame's root window.  */
   w = XWINDOW (FRAME_ROOT_WINDOW (f));
   w->left = w->top = make_number (0);
-  
+
   if (CONSP (Vx_max_tooltip_size)
       && INTEGERP (XCAR (Vx_max_tooltip_size))
       && XINT (XCAR (Vx_max_tooltip_size)) > 0
@@ -11532,7 +11532,7 @@
       w->width = make_number (80);
       w->height = make_number (40);
     }
-  
+
   f->window_width = XINT (w->width);
   adjust_glyphs (f);
   w->pseudo_window_p = 1;
@@ -11570,7 +11570,7 @@
 	}
       else
 	row_width = row->pixel_width;
-      
+
       height += row->height;
       width = max (width, row_width);
     }
@@ -11589,7 +11589,7 @@
 		     root_x, root_y, width, height);
   XMapRaised (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f));
   UNBLOCK_INPUT;
-  
+
   /* Draw into the window.  */
   w->must_be_updated_p = 1;
   update_single_window (w, 1);
@@ -11620,16 +11620,16 @@
   /* Return quickly if nothing to do.  */
   if (NILP (tip_timer) && NILP (tip_frame))
     return Qnil;
-  
+
   frame = tip_frame;
   timer = tip_timer;
   GCPRO2 (frame, timer);
   tip_frame = tip_timer = deleted = Qnil;
-  
+
   count = SPECPDL_INDEX ();
   specbind (Qinhibit_redisplay, Qt);
   specbind (Qinhibit_quit, Qt);
-  
+
   if (!NILP (timer))
     call1 (Qcancel_timer, timer);
 
@@ -11732,7 +11732,7 @@
   dir = Fexpand_file_name (dir, Qnil);
   dir_xmstring = XmStringCreateLocalized (SDATA (dir));
   pattern_xmstring = XmStringCreateLocalized ("*");
-    
+
   XtSetArg (al[ac], XmNtitle, SDATA (prompt)); ++ac;
   XtSetArg (al[ac], XmNdirectory, dir_xmstring); ++ac;
   XtSetArg (al[ac], XmNpattern, pattern_xmstring); ++ac;
@@ -11755,7 +11755,7 @@
   help = XmFileSelectionBoxGetChild (dialog, XmDIALOG_HELP_BUTTON);
   XtSetSensitive (help, False);
 
-  /* Mark OK button as default.  */ 
+  /* Mark OK button as default.  */
   XtVaSetValues (XmFileSelectionBoxGetChild (dialog, XmDIALOG_OK_BUTTON),
 		 XmNshowAsDefault, True, NULL);
 
@@ -11815,7 +11815,7 @@
     {
       XmString text;
       String data;
-      
+
       XtVaGetValues (dialog, XmNtextString, &text, NULL);
       XmStringGetLtoR (text, XmFONTLIST_DEFAULT_TAG, &data);
       XmStringFree (text);
@@ -11834,7 +11834,7 @@
   /* Make "Cancel" equivalent to C-g.  */
   if (NILP (file))
     Fsignal (Qquit, Qnil);
-  
+
   return unbind_to (count, file);
 }
 
@@ -11858,7 +11858,7 @@
   struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5;
   char *cdef_file;
   char *cprompt;
-  
+
   GCPRO5 (prompt, dir, default_filename, mustmatch, file);
   CHECK_STRING (prompt);
   CHECK_STRING (dir);
@@ -11874,7 +11874,7 @@
     cdef_file = SDATA (dir);
 
   fn = xg_get_file_name (f, SDATA (prompt), cdef_file, ! NILP (mustmatch));
-  
+
   if (fn)
     {
       file = build_string (fn);
@@ -11887,7 +11887,7 @@
   /* Make "Cancel" equivalent to C-g.  */
   if (NILP (file))
     Fsignal (Qquit, Qnil);
-  
+
   return unbind_to (count, file);
 }
 
@@ -11938,7 +11938,7 @@
       UNBLOCK_INPUT;
       return Qnil;
     }
-  
+
   have_keys = Qnil;
   kb = XkbGetMap (dpy, XkbAllMapComponentsMask, XkbUseCoreKbd);
   if (kb)
@@ -11965,7 +11965,7 @@
 	}
 
       XkbFreeClientMap (kb, 0, True);
-  
+
       if (delete_keycode
 	  && backspace_keycode
 	  && XKeysymToKeycode (dpy, XK_Delete) == delete_keycode
@@ -12095,7 +12095,7 @@
   staticpro (&QCcolor_adjustment);
   QCmask = intern (":mask");
   staticpro (&QCmask);
- 
+
   Qface_set_after_frame_default = intern ("face-set-after-frame-default");
   staticpro (&Qface_set_after_frame_default);
 
@@ -12163,7 +12163,7 @@
   DEFVAR_BOOL ("display-hourglass", &display_hourglass_p,
     doc: /* Non-zero means Emacs displays an hourglass pointer on window systems.  */);
   display_hourglass_p = 1;
-  
+
   DEFVAR_LISP ("hourglass-delay", &Vhourglass_delay,
     doc: /* *Seconds to wait before displaying an hourglass pointer.
 Value must be an integer or float.  */);
@@ -12199,7 +12199,7 @@
     doc: /* Maximum size for tooltips.  Value is a pair (COLUMNS . ROWS).
 Text larger than this is clipped.  */);
   Vx_max_tooltip_size = Fcons (make_number (80), make_number (40));
-  
+
   DEFVAR_LISP ("x-no-window-manager", &Vx_no_window_manager,
     doc: /* Non-nil if no X window manager is in use.
 Emacs doesn't try to figure this out; this is always nil
@@ -12268,7 +12268,7 @@
   defsubr (&Sx_synchronize);
   defsubr (&Sx_focus_frame);
   defsubr (&Sx_backspace_delete_keys_p);
-  
+
   /* Setting callback functions for fontset handler.  */
   get_font_info_func = x_get_font_info;
 
@@ -12276,7 +12276,7 @@
 	 And the pointer assigned has the wrong type, anyway.  */
   list_fonts_func = x_list_fonts;
 #endif
-  
+
   load_font_func = x_load_font;
   find_ccl_program_func = x_find_ccl_program;
   query_font_func = x_query_font;
@@ -12317,16 +12317,16 @@
   Qxpm = intern ("xpm");
   staticpro (&Qxpm);
 #endif
-  
+
 #if HAVE_JPEG
   Qjpeg = intern ("jpeg");
   staticpro (&Qjpeg);
-#endif 
+#endif
 
 #if HAVE_TIFF
   Qtiff = intern ("tiff");
   staticpro (&Qtiff);
-#endif 
+#endif
 
 #if HAVE_GIF
   Qgif = intern ("gif");
@@ -12366,27 +12366,27 @@
 {
   image_types = NULL;
   Vimage_types = Qnil;
-  
+
   define_image_type (&xbm_type);
   define_image_type (&gs_type);
   define_image_type (&pbm_type);
-  
+
 #if HAVE_XPM
   define_image_type (&xpm_type);
 #endif
-  
+
 #if HAVE_JPEG
   define_image_type (&jpeg_type);
 #endif
-  
+
 #if HAVE_TIFF
   define_image_type (&tiff_type);
 #endif
-  
+
 #if HAVE_GIF
   define_image_type (&gif_type);
 #endif
-  
+
 #if HAVE_PNG
   define_image_type (&png_type);
 #endif
--- a/src/xmenu.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/xmenu.c	Tue Feb 04 14:56:31 2003 +0000
@@ -487,7 +487,7 @@
 
 /* This is a subroutine of single_keymap_panes that handles one
    keymap entry.
-   KEY is a key in a keymap and ITEM is its binding. 
+   KEY is a key in a keymap and ITEM is its binding.
    PENDING_MAPS_PTR points to a list of keymaps waiting to be made into
    separate panes.
    If NOTREAL is nonzero, only check for equivalent key bindings, don't
@@ -508,7 +508,7 @@
   Lisp_Object map, item_string, enabled;
   struct gcpro gcpro1, gcpro2;
   int res;
-  
+
   /* Parse the menu item and leave the result in item_properties.  */
   GCPRO2 (key, item);
   res = parse_menu_item (item, notreal, 0);
@@ -517,7 +517,7 @@
     return;			/* Not a menu item.  */
 
   map = XVECTOR (item_properties)->contents[ITEM_PROPERTY_MAP];
-  
+
   if (notreal)
     {
       /* We don't want to make a menu, just traverse the keymaps to
@@ -528,7 +528,7 @@
     }
 
   enabled = XVECTOR (item_properties)->contents[ITEM_PROPERTY_ENABLE];
-  item_string = XVECTOR (item_properties)->contents[ITEM_PROPERTY_NAME]; 
+  item_string = XVECTOR (item_properties)->contents[ITEM_PROPERTY_NAME];
 
   if (!NILP (map) && SREF (item_string, 0) == '@')
     {
@@ -601,7 +601,7 @@
       item_string = concat2 (prefix, item_string);
   }
 #endif /* not HAVE_BOXES */
- 
+
 #if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK)
   if (!NILP(map))
     /* Indicate visually that this is a submenu.  */
@@ -696,7 +696,7 @@
   int dummy;
 
   BLOCK_INPUT;
-          
+
   XQueryPointer (FRAME_X_DISPLAY (f),
                  DefaultRootWindow (FRAME_X_DISPLAY (f)),
 
@@ -835,7 +835,7 @@
               x = make_number (cur_x);
               y = make_number (cur_y);
             }
-          
+
 #else /* not HAVE_X_WINDOWS */
 	  Lisp_Object bar_window;
 	  enum scroll_bar_part part;
@@ -957,7 +957,7 @@
 
       keymaps = 0;
     }
-  
+
   unbind_to (specpdl_count, Qnil);
 
   if (NILP (position))
@@ -1146,7 +1146,7 @@
           && dpyinfo->display == event.xbutton.display)
         {
           dpyinfo->grabbed &= ~(1 << event.xbutton.button);
-#ifdef USE_MOTIF /* Pretending that the event came from a 
+#ifdef USE_MOTIF /* Pretending that the event came from a
                     Btn1Down seems the only way to convince Motif to
                     activate its callbacks; setting the XmNmenuPost
                     isn't working. --marcus@sysc.pdx.edu.  */
@@ -1167,7 +1167,7 @@
           if (!IsModifierKey (keysym))
             popup_activated_flag = 0;
         }
-      
+
       x_dispatch_event (&event, event.xany.display);
     }
 }
@@ -1203,7 +1203,7 @@
    The reason for saving the button event until here, instead of
    passing it to the toolkit right away, is that we can safely
    execute Lisp code.  */
-   
+
 void
 x_activate_menubar (f)
      FRAME_PTR f;
@@ -1211,11 +1211,11 @@
   if (!f->output_data.x->saved_menu_event->type)
     return;
 
-#ifdef USE_GTK  
+#ifdef USE_GTK
   if (! xg_win_to_widget (f->output_data.x->saved_menu_event->xany.window))
     return;
 #endif
-  
+
   set_frame_menubar (f, 0, 1);
   BLOCK_INPUT;
 #ifdef USE_GTK
@@ -1230,7 +1230,7 @@
   if (f->output_data.x->saved_menu_event->type == ButtonRelease)
     pending_menu_activation = 1;
 #endif
-  
+
   /* Ignore this if we get it a second time.  */
   f->output_data.x->saved_menu_event->type = 0;
 }
@@ -1298,7 +1298,7 @@
     }
   else
     {
-      /* WIDGET is the popup menu.  It's parent is the frame's 
+      /* WIDGET is the popup menu.  It's parent is the frame's
 	 widget.  See which frame that is.  */
       xt_or_gtk_widget frame_widget = XtParent (widget);
       Lisp_Object tail;
@@ -1330,7 +1330,7 @@
 {
   xg_menu_item_cb_data *cb_data;
   Lisp_Object help;
-  
+
   cb_data = (xg_menu_item_cb_data*) g_object_get_data (G_OBJECT (widget),
                                                        XG_ITEM_DATA);
   if (! cb_data) return;
@@ -1356,7 +1356,7 @@
   widget_value *wv = (widget_value *) call_data;
 
   help = wv ? wv->help : Qnil;
-  
+
   /* Determine the frame for the help event.  */
   f = menubar_id_to_frame (id);
 
@@ -1620,7 +1620,7 @@
   first_wv = wv;
   save_wv = 0;
   prev_wv = 0;
- 
+
   /* Loop over all panes and items made by the preceding call
      to parse_single_submenu and construct a tree of widget_value objects.
      Ignore the panes and items used by previous calls to
@@ -1653,10 +1653,10 @@
 	  /* Create a new pane.  */
 	  Lisp_Object pane_name, prefix;
 	  char *pane_string;
-	  
+
 	  pane_name = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_NAME];
 	  prefix = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_PREFIX];
-	  
+
 #ifndef HAVE_MULTILINGUAL_MENU
 	  if (STRINGP (pane_name) && STRING_MULTIBYTE (pane_name))
 	    {
@@ -1700,7 +1700,7 @@
 	  /* Create a new item within current pane.  */
 	  Lisp_Object item_name, enable, descrip, def, type, selected;
 	  Lisp_Object help;
-	  
+
 	  item_name = AREF (menu_items, i + MENU_ITEMS_ITEM_NAME);
 	  enable = AREF (menu_items, i + MENU_ITEMS_ITEM_ENABLE);
 	  descrip = AREF (menu_items, i + MENU_ITEMS_ITEM_EQUIV_KEY);
@@ -1715,7 +1715,7 @@
 	      item_name = ENCODE_SYSTEM (item_name);
 	      AREF (menu_items, i + MENU_ITEMS_ITEM_NAME) = item_name;
 	    }
-	  
+
           if (STRINGP (descrip) && STRING_MULTIBYTE (descrip))
 	    {
 	      descrip = ENCODE_SYSTEM (descrip);
@@ -1724,7 +1724,7 @@
 #endif /* not HAVE_MULTILINGUAL_MENU */
 
 	  wv = xmalloc_widget_value ();
-	  if (prev_wv) 
+	  if (prev_wv)
 	    prev_wv->next = wv;
 	  else
 	    save_wv->contents = wv;
@@ -1737,7 +1737,7 @@
 	     as long as pointers have enough bits to hold small integers.  */
 	  wv->call_data = (!NILP (def) ? (void *) (EMACS_INT) i : 0);
 	  wv->enabled = !NILP (enable);
-	  
+
 	  if (NILP (type))
 	    wv->button_type = BUTTON_TYPE_NONE;
 	  else if (EQ (type, QCradio))
@@ -1783,7 +1783,7 @@
 #else
   struct x_output *x = f->output_data.x;
   int columns, rows;
-  
+
   if (!x->menubar_widget || XtIsManaged (x->menubar_widget))
     return 0;
 
@@ -1847,7 +1847,7 @@
     f->output_data.x->id = next_menubar_widget_id++;
   id = f->output_data.x->id;
 #endif
-  
+
   if (! menubar_widget)
     deep_p = 1;
   else if (pending_menu_activation && !deep_p)
@@ -1895,7 +1895,7 @@
 
       /* Run the Lucid hook.  */
       safe_run_hooks (Qactivate_menubar_hook);
-      
+
       /* If it has changed current-menubar from previous value,
 	 really recompute the menubar from the value.  */
       if (! NILP (Vlucid_menu_bar_dirty_flag))
@@ -1960,7 +1960,7 @@
 	  menu_items_n_panes = submenu_n_panes[i];
 	  wv = digest_single_submenu (submenu_start[i], submenu_end[i],
 				      submenu_top_level_items[i]);
-	  if (prev_wv) 
+	  if (prev_wv)
 	    prev_wv->next = wv;
 	  else
 	    first_wv->contents = wv;
@@ -2039,7 +2039,7 @@
 	     This value just has to be different from small integers.  */
 	  wv->call_data = (void *) (EMACS_INT) (-1);
 
-	  if (prev_wv) 
+	  if (prev_wv)
 	    prev_wv->next = wv;
 	  else
 	    first_wv->contents = wv;
@@ -2073,9 +2073,9 @@
   else
     {
       GtkWidget *wvbox = f->output_data.x->vbox_widget;
-      
+
       menubar_widget
-        = xg_create_widget ("menubar", "menubar", f, first_wv, 
+        = xg_create_widget ("menubar", "menubar", f, first_wv,
                             G_CALLBACK (menubar_selection_callback),
                             G_CALLBACK (popup_deactivate_callback),
                             G_CALLBACK (menu_highlight_callback));
@@ -2083,7 +2083,7 @@
       f->output_data.x->menubar_widget = menubar_widget;
     }
 
-  
+
 #else /* not USE_GTK */
   if (menubar_widget)
     {
@@ -2099,7 +2099,7 @@
     }
   else
     {
-      menubar_widget = lw_create_widget ("menubar", "menubar", id, first_wv, 
+      menubar_widget = lw_create_widget ("menubar", "menubar", id, first_wv,
 					 f->output_data.x->column_widget,
 					 0,
 					 popup_activate_callback,
@@ -2110,7 +2110,7 @@
     }
 
   {
-    int menubar_size 
+    int menubar_size
       = (f->output_data.x->menubar_widget
 	 ? (f->output_data.x->menubar_widget->core.height
 	    + f->output_data.x->menubar_widget->core.border_width)
@@ -2132,7 +2132,7 @@
     f->output_data.x->menubar_height = menubar_size;
   }
 #endif /* not USE_GTK */
-  
+
   free_menubar_widget_value_tree (first_wv);
   update_frame_menubar (f);
 
@@ -2173,7 +2173,7 @@
   menubar_widget = f->output_data.x->menubar_widget;
 
   f->output_data.x->menubar_height = 0;
-  
+
   if (menubar_widget)
     {
 #ifdef USE_MOTIF
@@ -2187,14 +2187,14 @@
 	 is switched off, which fixes the shell position.  */
       Position x0, y0, x1, y1;
 #endif
-      
+
       BLOCK_INPUT;
 
 #ifdef USE_MOTIF
       if (f->output_data.x->widget)
 	XtVaGetValues (f->output_data.x->widget, XtNx, &x0, XtNy, &y0, NULL);
 #endif
-      
+
       lw_destroy_all_widgets ((LWLIB_ID) f->output_data.x->id);
       f->output_data.x->menubar_widget = NULL;
 
@@ -2206,7 +2206,7 @@
 	    XtVaSetValues (f->output_data.x->widget, XtNx, x0, XtNy, y0, NULL);
 	}
 #endif
-      
+
       UNBLOCK_INPUT;
     }
 }
@@ -2300,7 +2300,7 @@
                            G_CALLBACK (popup_deactivate_callback),
                            G_CALLBACK (menu_highlight_callback));
   xg_crazy_callback_abort = 0;
-  
+
   for (i = 0; i < 5; i++)
     if (FRAME_X_DISPLAY_INFO (f)->grabbed & (1 << i))
       break;
@@ -2321,7 +2321,7 @@
   /* Display the menu.  */
   gtk_widget_show_all (menu);
   gtk_menu_popup (GTK_MENU (menu), 0, 0, pos_func, &popup_x_y, i, 0);
-  
+
   xg_did_tearoff = 0;
   /* Set this to one.  popup_widget_loop increases it by one, so it becomes
      two.  show_help_echo uses this to detect popup menus.  */
@@ -2333,7 +2333,7 @@
     xg_keep_popup (menu, xg_did_tearoff);
   else
     gtk_widget_destroy (menu);
-    
+
   /* Must reset this manually because the button release event is not passed
      to Emacs event loop. */
   FRAME_X_DISPLAY_INFO (f)->grabbed = 0;
@@ -2425,7 +2425,7 @@
      that it is unnecessary--that the menu has already disappeared.
      Nowadays the menu disappears ok, all right, but
      we need to delete the widgets or multiple ones will pile up.  */
-  lw_destroy_all_widgets (menu_id); 
+  lw_destroy_all_widgets (menu_id);
 }
 
 #endif /* not USE_GTK */
@@ -2468,7 +2468,7 @@
   wv->help =Qnil;
   first_wv = wv;
   first_pane = 1;
- 
+
   /* Loop over all panes and items, filling in the tree.  */
   i = 0;
   while (i < menu_items_used)
@@ -2500,10 +2500,10 @@
 	  /* Create a new pane.  */
 	  Lisp_Object pane_name, prefix;
 	  char *pane_string;
-	  
+
 	  pane_name = AREF (menu_items, i + MENU_ITEMS_PANE_NAME);
 	  prefix = AREF (menu_items, i + MENU_ITEMS_PANE_PREFIX);
-	  
+
 #ifndef HAVE_MULTILINGUAL_MENU
 	  if (STRINGP (pane_name) && STRING_MULTIBYTE (pane_name))
 	    {
@@ -2564,18 +2564,18 @@
 	      item_name = ENCODE_SYSTEM (item_name);
 	      AREF (menu_items, i + MENU_ITEMS_ITEM_NAME) = item_name;
 	    }
-	  
+
           if (STRINGP (descrip) && STRING_MULTIBYTE (descrip))
 	    {
 	      descrip = ENCODE_SYSTEM (descrip);
 	      AREF (menu_items, i + MENU_ITEMS_ITEM_EQUIV_KEY) = descrip;
 	    }
 #endif /* not HAVE_MULTILINGUAL_MENU */
- 
+
 	  wv = xmalloc_widget_value ();
-	  if (prev_wv) 
+	  if (prev_wv)
 	    prev_wv->next = wv;
-	  else 
+	  else
 	    save_wv->contents = wv;
 	  wv->name = (char *) SDATA (item_name);
 	  if (!NILP (descrip))
@@ -2629,7 +2629,7 @@
       if (STRING_MULTIBYTE (title))
 	title = ENCODE_SYSTEM (title);
 #endif
-      
+
       wv_title->name = (char *) SDATA (title);
       wv_title->enabled = TRUE;
       wv_title->button_type = BUTTON_TYPE_NONE;
@@ -2741,7 +2741,7 @@
 
       /* Process events that apply to the menu.  */
       popup_widget_loop ();
-  
+
       gtk_widget_destroy (menu);
     }
 }
@@ -2807,7 +2807,7 @@
   {
     int count = SPECPDL_INDEX ();
     int fact = 4 * sizeof (LWLIB_ID);
-    
+
     /* xdialog_show_unwind is responsible for popping the dialog box down.  */
     record_unwind_protect (xdialog_show_unwind,
                            Fcons (make_number (dialog_id >> (fact)),
@@ -2858,7 +2858,7 @@
     pane_name = XVECTOR (menu_items)->contents[MENU_ITEMS_PANE_NAME];
     prefix = XVECTOR (menu_items)->contents[MENU_ITEMS_PANE_PREFIX];
     pane_string = (NILP (pane_name)
-		   ? "" : (char *) SDATA (pane_name));  
+		   ? "" : (char *) SDATA (pane_name));
     prev_wv = xmalloc_widget_value ();
     prev_wv->value = pane_string;
     if (keymaps && !NILP (prefix))
@@ -2867,19 +2867,19 @@
     prev_wv->name = "message";
     prev_wv->help = Qnil;
     first_wv = prev_wv;
- 
+
     /* Loop over all panes and items, filling in the tree.  */
     i = MENU_ITEMS_PANE_LENGTH;
     while (i < menu_items_used)
       {
-	
+
 	/* Create a new item within current pane.  */
 	Lisp_Object item_name, enable, descrip;
 	item_name = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_NAME];
 	enable = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_ENABLE];
 	descrip
 	  = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_EQUIV_KEY];
-	
+
 	if (NILP (item_name))
 	  {
 	    free_menubar_widget_value_tree (first_wv);
@@ -2950,7 +2950,7 @@
 
   /* Free the widget_value objects we used to specify the contents.  */
   free_menubar_widget_value_tree (first_wv);
-  
+
   /* Find the selected item, and its pane, to return
      the proper value.  */
   if (menu_item_selection != 0)
@@ -3009,7 +3009,7 @@
 
    PANE is the pane number, and ITEM is the menu item number in
    the menu (currently not used).
-   
+
    This cannot be done with generating a HELP_EVENT because
    XMenuActivate contains a loop that doesn't let Emacs process
    keyboard events.  */
@@ -3023,7 +3023,7 @@
   Lisp_Object *first_item;
   Lisp_Object pane_name;
   Lisp_Object menu_object;
- 
+
   first_item = XVECTOR (menu_items)->contents;
   if (EQ (first_item[0], Qt))
     pane_name = first_item[MENU_ITEMS_PANE_NAME];
@@ -3032,7 +3032,7 @@
     pane_name = empty_string;
   else
     pane_name = first_item[MENU_ITEMS_ITEM_NAME];
- 
+
   /* (menu-item MENU-NAME PANE-NUMBER)  */
   menu_object = Fcons (Qmenu_item,
  		       Fcons (pane_name,
@@ -3040,7 +3040,7 @@
   show_help_echo (help_string ? build_string (help_string) : Qnil,
  		  Qnil, menu_object, make_number (item), 1);
 }
-  
+
 
 static Lisp_Object
 xmenu_show (f, x, y, for_click, keymaps, title, error)
@@ -3051,7 +3051,7 @@
      Lisp_Object title;
      char **error;
 {
-  Window root;		
+  Window root;
   XMenu *menu;
   int pane, selidx, lpane, status;
   Lisp_Object entry, pane_prefix;
@@ -3118,7 +3118,7 @@
   /* Adjust coordinates to be root-window-relative.  */
   x += f->output_data.x->left_pos;
   y += f->output_data.x->top_pos;
- 
+
   /* Create all the necessary panes and their items.  */
   i = 0;
   while (i < menu_items_used)
@@ -3183,7 +3183,7 @@
 	    = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_EQUIV_KEY];
 	  help = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_HELP];
 	  help_string = STRINGP (help) ? SDATA (help) : NULL;
-	  
+
 	  if (!NILP (descrip))
 	    {
 	      int gap = maxwidth - SBYTES (item_name);
@@ -3347,7 +3347,7 @@
   Vmenu_updating_frame = Qnil;
 
 #ifdef USE_X_TOOLKIT
-  widget_id_tick = (1<<16);	
+  widget_id_tick = (1<<16);
   next_menubar_widget_id = 1;
 #endif
 
--- a/src/xterm.c	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/xterm.c	Tue Feb 04 14:56:31 2003 +0000
@@ -8783,12 +8783,12 @@
   gdouble position;
   gdouble *p;
   int diff;
-  
+
   int part = -1, whole = 0, portion = 0;
   GtkAdjustment *adj = GTK_ADJUSTMENT (widget);
-  
+
   if (xg_ignore_gtk_scrollbar) return;
-  
+
   position = gtk_adjustment_get_value (adj);
 
   p = g_object_get_data (G_OBJECT (widget), XG_LAST_SB_DATA);
@@ -8803,7 +8803,7 @@
   *p = position;
 
   diff = (int) (position - previous);
-  
+
   if (diff == (int) adj->step_increment)
     {
       part = scroll_bar_down_arrow;
@@ -8831,7 +8831,7 @@
       portion = min (position, whole);
       bar->dragging = make_number (portion);
     }
-  
+
   if (part >= 0)
     {
       xg_ignore_next_thumb = 1;
@@ -10221,7 +10221,7 @@
    Returns non-zero if the event was filtered, caller shall not process
    this event further.
    Returns zero if event is wasn't filtered.  */
-   
+
 #ifdef HAVE_X_I18N
 static int
 x_filter_event (dpyinfo, event)
@@ -10286,7 +10286,7 @@
 
 
 /* Handles the XEvent EVENT on display DPYINFO.
-   
+
    *FINISH is X_EVENT_GOTO_OUT if caller should stop reading events.
    *FINISH is zero if caller should continue reading events.
    *FINISH is X_EVENT_DROP if event should not be passed to the toolkit.
@@ -10294,7 +10294,7 @@
    Events representing keys are stored in buffer *BUFP_R,
    which can hold up to *NUMCHARSP characters.
    We return the number of characters stored into the buffer. */
-   
+
 static int
 handle_one_xevent (dpyinfo, eventp, bufp_r, numcharsp, finish)
      struct x_display_info *dpyinfo;
@@ -10312,7 +10312,7 @@
   XEvent event = *eventp;
 
   *finish = X_EVENT_NORMAL;
-  
+
   switch (event.type)
     {
     case ClientMessage:
@@ -11541,7 +11541,7 @@
     }
 
   goto ret;
-  
+
  out:
   *finish = X_EVENT_GOTO_OUT;
 
@@ -11549,7 +11549,7 @@
   *bufp_r = bufp;
   *numcharsp = numchars;
   *eventp = event;
-  
+
   return count;
 }
 
@@ -11569,11 +11569,11 @@
   struct input_event *bufpp = bufp;
   int numchars = 10;
   int finish = X_EVENT_NORMAL;
-      
+
   for (dpyinfo = x_display_list; dpyinfo; dpyinfo = dpyinfo->next)
     if (dpyinfo->display == display)
       break;
-          
+
   if (dpyinfo)
     {
       int i, events;
@@ -11681,7 +11681,7 @@
          We use a bunch of globals to communicate with our filter function,
          that is kind of ugly, but it works. */
       current_dpyinfo = dpyinfo;
-      
+
       while (gtk_events_pending ())
         {
           static int nr = 0;
@@ -11703,7 +11703,7 @@
       while (XPending (dpyinfo->display))
 	{
           int finish;
-          
+
 	  XNextEvent (dpyinfo->display, &event);
 
 #ifdef HAVE_X_I18N
@@ -14105,7 +14105,7 @@
           FRAME_GTK_OUTER_WIDGET (f) = 0;
         }
 #endif /* USE_GTK */
-          
+
       if (FRAME_X_WINDOW (f))
 	XDestroyWindow (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f));
 #endif /* !USE_X_TOOLKIT */
@@ -14208,7 +14208,7 @@
   int ac = 0;
   Dimension widget_width, widget_height;
 #endif
-  
+
   Window window = FRAME_OUTER_WINDOW (f);
 
   /* Setting PMaxSize caused various problems.  */
@@ -15198,7 +15198,7 @@
 
     argv[argc++] = "--name";
     argv[argc++] = resource_name;
-    
+
 #ifdef HAVE_X11R5
     XSetLocaleModifiers ("");
 #endif
@@ -15210,7 +15210,7 @@
     xg_initialize ();
 
     dpy = GDK_DISPLAY ();
-    
+
     /* NULL window -> events for all windows go to our function */
     gdk_window_add_filter (NULL, event_handler_gdk, NULL);
 
@@ -15226,10 +15226,10 @@
 
       if (! NILP (abs_file) && Ffile_readable_p (abs_file))
         gtk_rc_parse (SDATA (abs_file));
-      
+
       UNGCPRO;
     }
-    
+
     XSetErrorHandler (x_error_handler);
     XSetIOErrorHandler (x_io_error_quitter);
   }
--- a/src/xterm.h	Tue Feb 04 13:30:45 2003 +0000
+++ b/src/xterm.h	Tue Feb 04 14:56:31 2003 +0000
@@ -30,7 +30,7 @@
 #include <X11/StringDefs.h>
 #include <X11/IntrinsicP.h>	/* CoreP.h needs this */
 #include <X11/CoreP.h>		/* foul, but we need this to use our own
-				   window inside a widget instead of one 
+				   window inside a widget instead of one
 				   that Xt creates... */
 #include <X11/StringDefs.h>
 
@@ -77,7 +77,7 @@
 #ifdef PBaseSize
 /* AIX 3.1's X is somewhere between X11R3 and X11R4.  It has
    PBaseSize, but not XWithdrawWindow, XSetWMName, XSetWMNormalHints,
-   XSetWMIconName.  
+   XSetWMIconName.
    AIX 3.2 is at least X11R4.  */
 #if (!defined AIX) || (defined AIX3_2)
 #define HAVE_X11R4
@@ -138,51 +138,51 @@
 {
   /* Chain of all x_display_info structures.  */
   struct x_display_info *next;
-  
+
   /* Connection number (normally a file descriptor number).  */
   int connection;
-  
+
   /* This says how to access this display in Xlib.  */
   Display *display;
-  
+
   /* This is a cons cell of the form (NAME . FONT-LIST-CACHE).
      The same cons cell also appears in x_display_name_list.  */
   Lisp_Object name_list_element;
-  
+
   /* Number of frames that are on this display.  */
   int reference_count;
-  
+
   /* The Screen this connection is connected to.  */
   Screen *screen;
 
   /* Dots per inch of the screen.  */
   double resx, resy;
-  
+
   /* The Visual being used for this display.  */
   Visual *visual;
 
   /* The colormap being used.  */
   Colormap cmap;
-  
+
   /* Number of panes on this screen.  */
   int n_planes;
-  
+
   /* Dimensions of this screen.  */
   int height, width;
-  
+
   /* Mask of things that cause the mouse to be grabbed.  */
   int grabbed;
-  
+
   /* Emacs bitmap-id of the default icon bitmap for this frame.
      Or -1 if none has been allocated yet.  */
   int icon_bitmap_id;
-  
+
   /* The root window of this screen.  */
   Window root_window;
-  
+
   /* The cursor to use for vertical scroll bars.  */
   Cursor vertical_scroll_bar_cursor;
-  
+
   /* X Resource data base */
   XrmDatabase xrdb;
 
@@ -274,19 +274,19 @@
 
   /* Communication with window managers.  */
   Atom Xatom_wm_protocols;
-  
+
   /* Kinds of protocol things we may receive.  */
   Atom Xatom_wm_take_focus;
   Atom Xatom_wm_save_yourself;
   Atom Xatom_wm_delete_window;
-  
+
   /* Atom for indicating window state to the window manager.  */
   Atom Xatom_wm_change_state;
-  
+
   /* Other WM communication */
   Atom Xatom_wm_configure_denied; /* When our config request is denied */
   Atom Xatom_wm_window_moved;     /* When the WM moves us.  */
-  
+
   /* EditRes protocol */
   Atom Xatom_editres;
 
@@ -476,7 +476,7 @@
   GtkWidget *toolbar_widget;
   /* The handle box that makes the tool bar detachable.  */
   GtkWidget *handlebox_widget;
-  
+
   /* The last size hints set.  */
   GdkGeometry size_hints;
   long hint_flags;
@@ -508,7 +508,7 @@
   /* Foreground color for scroll bars.  A value of -1 means use the
      default (black for non-toolkit scroll bars).  */
   unsigned long scroll_bar_foreground_pixel;
-  
+
   /* Background color for scroll bars.  A value of -1 means use the
      default (background color of the frame for non-toolkit scroll
      bars).  */
@@ -530,7 +530,7 @@
   /* Window whose cursor is hourglass_cursor.  This window is temporarily
      mapped to display an hourglass cursor.  */
   Window hourglass_window;
-  
+
   /* Non-zero means hourglass cursor is currently displayed.  */
   unsigned hourglass_p : 1;
 
@@ -629,7 +629,7 @@
   /* As x_pixels_diff, but to FRAME_OUTER_WINDOW.  For some reason the
      two might differ by a pixel, depending on WM */
   int x_pixels_outer_diff;
-  
+
   /* As y_pixels_diff, but to FRAME_OUTER_WINDOW.  In the toolkit version,
      these may differ because this does not take into account possible
      menubar.  y_pixels_diff is with menubar height included */
@@ -878,7 +878,7 @@
 
 /* Return the length of the rectangle within which the top of the
    handle must stay.  This isn't equivalent to the inside height,
-   because the scroll bar handle has a minimum height.  
+   because the scroll bar handle has a minimum height.
 
    This is the real range of motion for the scroll bar, so when we're
    scaling buffer positions to scroll bar positions, we use this, not
@@ -941,7 +941,7 @@
    + (f)->output_data.x->internal_border_width)
 
 
-/* Return the row/column (zero-based) of the character cell containing 
+/* Return the row/column (zero-based) of the character cell containing
    the pixel on FRAME at ROW/COL.  */
 #define PIXEL_TO_CHAR_ROW(f, row) \
   (((row) - (f)->output_data.x->internal_border_width) \
--- a/update-subdirs	Tue Feb 04 13:30:45 2003 +0000
+++ b/update-subdirs	Tue Feb 04 14:56:31 2003 +0000
@@ -24,7 +24,7 @@
 for file in *; do
     case $file in
 	*.elc | *.el | term | RCS | CVS | Old | . | .. | =* | *~ | *.orig | *.rej)
-	  ;;	
+	  ;;
 	*)
 	    if [ -d $file ]; then
 	      subdirs="\"$file\" $subdirs"